Re: [sipcore] Happy Eyeballs for SIP

Jonathan Lennox <jonathan@vidyo.com> Mon, 15 February 2016 19:51 UTC

Return-Path: <prvs=6853d74bef=jonathan@vidyo.com>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7CEB31A003B for <sipcore@ietfa.amsl.com>; Mon, 15 Feb 2016 11:51:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.403
X-Spam-Level:
X-Spam-Status: No, score=0.403 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, HTML_MESSAGE=0.001, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_SORBS_WEB=0.77, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5ZsLbI_wL_oE for <sipcore@ietfa.amsl.com>; Mon, 15 Feb 2016 11:51:05 -0800 (PST)
Received: from mx0b-00198e01.pphosted.com (mx0b-00198e01.pphosted.com [67.231.157.197]) (using TLSv1.2 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC8421A9030 for <sipcore@ietf.org>; Mon, 15 Feb 2016 11:51:05 -0800 (PST)
Received: from pps.filterd (m0073110.ppops.net [127.0.0.1]) by mx0b-00198e01.pphosted.com (8.15.0.59/8.15.0.59) with SMTP id u1FJoDiO021591; Mon, 15 Feb 2016 14:50:41 -0500
Received: from mail.vidyo.com ([162.209.16.214]) by mx0b-00198e01.pphosted.com with ESMTP id 210ye5j9v1-1 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Mon, 15 Feb 2016 14:50:41 -0500
Received: from 492132-EXCH1.vidyo.com ([fe80::50:56ff:fe85:4f77]) by 492133-EXCH2.vidyo.com ([fe80::50:56ff:fe85:6b62%13]) with mapi id 14.03.0195.001; Mon, 15 Feb 2016 13:50:39 -0600
From: Jonathan Lennox <jonathan@vidyo.com>
To: "Olle E. Johansson" <oej@edvina.net>
Thread-Topic: [sipcore] Happy Eyeballs for SIP
Thread-Index: AQHRZdCBzyKanvDHTkqEPJO8cE8v658pXV2AgASP4YA=
Date: Mon, 15 Feb 2016 19:50:39 +0000
Message-ID: <69252B73-3F04-4FCF-8C47-63C7C813C2BB@vidyo.com>
References: <878u2p66pp.fsf@hobgoblin.ariadne.com> <330D9D8A-CB91-4E84-92F4-49A7C54090B2@edvina.net>
In-Reply-To: <330D9D8A-CB91-4E84-92F4-49A7C54090B2@edvina.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [160.79.219.114]
Content-Type: multipart/alternative; boundary="_000_69252B733F044FCF8C4763C7C813C2BBvidyocom_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.15.21, 1.0.33, 0.0.0000 definitions=2016-02-15_10:2016-02-15,2016-02-15,1970-01-01 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1601100000 definitions=main-1602150326
Archived-At: <http://mailarchive.ietf.org/arch/msg/sipcore/ZkG7kwXYrEuWnvn1ZyLaX0NFzJA>
Cc: "Dale R. Worley" <worley@ariadne.com>, "sipcore@ietf.org" <sipcore@ietf.org>
Subject: Re: [sipcore] Happy Eyeballs for SIP
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 15 Feb 2016 19:51:07 -0000

On Feb 12, 2016, at 5:10 PM, Olle E. Johansson <oej@edvina.net<mailto:oej@edvina.net>> wrote:


On 12 Feb 2016, at 20:58, Dale R. Worley <worley@ariadne.com<mailto:worley@ariadne.com>> wrote:

Is anyone considering writing up the actual use of Happy Eyeballs in a
SIP context?

Does anyone have any practical experience or suggestions for what HE in
SIP would be?

After discussing this for many years with many people this is my conclusion:

For connection oriented protocols - just point to existing RFC for happy eyeballs.

For UDP we have no solution, period. The only way is to handle this in DNS SRV
and have separate priorities for IPv4 and IPv6 in the order the service likes.
This is why we have tested DNS SRV with dual stacks in many SIPits and written the draft about
dual stack issues - many IPv4 only clients crashed or failed when the first SRV priority
did not have IPv4 addresses at all. They also crashed when IPv6 was in various headers,
as documented in https://tools.ietf.org/html/draft-klatsky-dispatch-ipv6-impact-ipv4-03

Most of these problems are going to be true for TCP IPv6 too, aren’t they? Happy Eyeballs doesn’t make the problem worse.  If there are buggy implementations out there, this is something that you’re presumably either going to have to have the implementers fix, or else clean up with SBCs.

One has to remember that the IPv4 and IPv6 address for a dual stack server may lead
to different servers, thus sending a UDP message at the same time to both may cause
multiple transactions and all kinds of interesting side effects. (Hadriel Kaplan reminded
me of this).

So the documentation on Happy Eyeballs in sip is pretty short: Don’t try this with UDP.
Solve the problem another way. (in fact, move to TCP/TLS as soon as you can :-) )

If someone has a cool solution to this UDP issue - preferably without loosing one round trip -
I would be more than happy to hear it!

The “may lead to different servers” issue is under the control of the person setting up the SRV records for the SIP server, though.

So it should be possible, I think, to say that you can set up DNS records for UDP happy eyeballs only if either 1) you personally can handle merged request detection for all requests to a target, or 2) you are a pure 3261 proxy and also can guarantee that there are no B2BUAs (that modify From tag, Call-ID, or CSeq) or Gateways downstream of you.  If this is the case, then forking the SIP request to the v4 and v6 addresses would accomplish happy eyeballs.

I don’t know if this is a large enough subset of SIP environments to be interesting, though.