Re: [sipcore] Happy Eyeballs for SIP

"Olle E. Johansson" <oej@edvina.net> Fri, 12 February 2016 22:10 UTC

Return-Path: <oej@edvina.net>
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 3077E1A9103 for <sipcore@ietfa.amsl.com>; Fri, 12 Feb 2016 14:10:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.551
X-Spam-Level:
X-Spam-Status: No, score=-1.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_NONE=-0.0001, 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 rtjg0WjCGm5q for <sipcore@ietfa.amsl.com>; Fri, 12 Feb 2016 14:10:47 -0800 (PST)
Received: from smtp7.webway.se (smtp7.webway.se [212.3.14.205]) by ietfa.amsl.com (Postfix) with ESMTP id A70CB1A90FC for <sipcore@ietf.org>; Fri, 12 Feb 2016 14:10:45 -0800 (PST)
Received: from [192.168.40.17] (h87-96-134-129.dynamic.se.alltele.net [87.96.134.129]) by smtp7.webway.se (Postfix) with ESMTPA id 7E42F93DE5C; Fri, 12 Feb 2016 22:09:49 +0000 (UTC)
Content-Type: multipart/signed; boundary="Apple-Mail=_6C222BA8-890C-4B11-BCB4-FFB77477F056"; protocol="application/pkcs7-signature"; micalg="sha1"
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: "Olle E. Johansson" <oej@edvina.net>
In-Reply-To: <878u2p66pp.fsf@hobgoblin.ariadne.com>
Date: Fri, 12 Feb 2016 23:10:39 +0100
Message-Id: <330D9D8A-CB91-4E84-92F4-49A7C54090B2@edvina.net>
References: <878u2p66pp.fsf@hobgoblin.ariadne.com>
To: "Dale R. Worley" <worley@ariadne.com>
X-Mailer: Apple Mail (2.3112)
Archived-At: <http://mailarchive.ietf.org/arch/msg/sipcore/P3sSUaFcNCB2_fBckFJ6w0cmfkM>
Cc: sipcore@ietf.org, Olle E Johansson <oej@edvina.net>
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: Fri, 12 Feb 2016 22:10:50 -0000

> On 12 Feb 2016, at 20:58, Dale R. Worley <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

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!

/O