Re: [sipcore] WGLC: draft-ietf-sip-dual-stack

Adam Roach <adam@nostrum.com> Wed, 30 March 2016 14:53 UTC

Return-Path: <adam@nostrum.com>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4678512D769 for <sipcore@ietfa.amsl.com>; Wed, 30 Mar 2016 07:53:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=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 R0MAu3x787mD for <sipcore@ietfa.amsl.com>; Wed, 30 Mar 2016 07:53:36 -0700 (PDT)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0329B12D76E for <sipcore@ietf.org>; Wed, 30 Mar 2016 07:53:26 -0700 (PDT)
Received: from Orochi.local (99-152-145-110.lightspeed.dllstx.sbcglobal.net [99.152.145.110]) (authenticated bits=0) by nostrum.com (8.15.2/8.14.9) with ESMTPSA id u2UErJ4v051489 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Wed, 30 Mar 2016 09:53:20 -0500 (CDT) (envelope-from adam@nostrum.com)
X-Authentication-Warning: raven.nostrum.com: Host 99-152-145-110.lightspeed.dllstx.sbcglobal.net [99.152.145.110] claimed to be Orochi.local
To: "Dale R. Worley" <worley@ariadne.com>, Robert Sparks <rjsparks@nostrum.com>
References: <87poudw3iv.fsf@hobgoblin.ariadne.com>
From: Adam Roach <adam@nostrum.com>
Message-ID: <56FBE85F.6080707@nostrum.com>
Date: Wed, 30 Mar 2016 09:53:19 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.7.0
MIME-Version: 1.0
In-Reply-To: <87poudw3iv.fsf@hobgoblin.ariadne.com>
Content-Type: multipart/alternative; boundary="------------070606040505000907060809"
Archived-At: <http://mailarchive.ietf.org/arch/msg/sipcore/AADfEttygv-bjlfsF7APY2-f1V8>
Cc: sipcore@ietf.org
Subject: Re: [sipcore] WGLC: draft-ietf-sip-dual-stack
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 30 Mar 2016 14:53:39 -0000

[as individual]

On 3/29/16 13:19, Dale R. Worley wrote:
> As far as I can tell, the goal of this section is to make it clear that
> if SRV records translate a SIP domain into (e.g.) two SRV records with
> different priorities, and one SRV record's target name only has IPv4
> addresses and the other SRV record's target name only has IPv6
> addresses, then which family of addresses is attempted first is to be
> determined by priorities of the SRV records.  This being the process
> described in section 4.2 of this draft.

I think it's somewhat more general than that, though. if you look up an 
SRV record and get multiple A and multiple AAAA records, and those 
records in turn contain multiple literal IP addresses, then you apply 
the SRV priorities first and the RFC 6724 processes second.

I think an example might help.

Let's say I look up an SRV record (_sip._tcp.example.com) and get back 
two entries:

_sip._tcp.example.com.  300 IN  SRV  10 1 5060 sip-1.example.com.
_sip._tcp.example.com.  300 IN  SRV  20 1 5060 sip-2.example.com.


So then I grab the A and AAAA records for sip-1.example.com and 
sip-2.example.com:

sip-1.example.com.    300  IN  AAAA  2001:0db8:58:c02::face
sip-1.example.com.    300  IN  AAAA  2001:0db8:c:a06::2:cafe
sip-1.example.com.    300  IN  AAAA  2001:0db8:44:204::d1ce

sip-1.example.com.    1800  IN  A  192.0.2.45
sip-1.example.com.    1800  IN  A  203.0.113.109
sip-1.example.com.    1800  IN  A  198.51.100.24

sip-2.example.com.    300  IN  AAAA  2001:0db8:58:c02::dead
sip-2.example.com.    300  IN  AAAA  2001:0db8:c:a06::2:beef
sip-2.example.com.    300  IN  AAAA  2001:0db8:44:204::c0de

sip-2.example.com.    1800  IN  A  192.0.2.75
sip-2.example.com.    1800  IN  A  203.0.113.38
sip-2.example.com.    1800  IN  A  198.51.100.140


What I believe we're saying is that I will process these addresses in a 
batch, altogether, using RFC6724 section 6 rules:

  * 2001:0db8:58:c02::face
  * 2001:0db8:c:a06::2:cafe
  * 2001:0db8:44:204::d1ce
  * 192.0.2.45
  * 203.0.113.109
  * 198.51.100.24


And then (but only then, after I've exhausted that entire batch of 
addresses), I'll process these addresses in a batch, altogether, using 
RFC6724 section 6 rules:

  * 2001:0db8:58:c02::dead
  * 2001:0db8:c:a06::2:beef
  * 2001:0db8:44:204::c0de
  * 192.0.2.75
  * 203.0.113.38
  * 198.51.100.140


... and, most importantly, I won't mix the batches together.

/a