Re: [sipcore] Suresh Krishnan's Discuss on draft-ietf-sipcore-dns-dual-stack-07: (with DISCUSS)

"Gonzalo Salgueiro (gsalguei)" <gsalguei@cisco.com> Thu, 25 August 2016 03:50 UTC

Return-Path: <gsalguei@cisco.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 D45F212D10C; Wed, 24 Aug 2016 20:50:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -13.079
X-Spam-Level:
X-Spam-Status: No, score=-13.079 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.548, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 Gnz9ucT_SEvn; Wed, 24 Aug 2016 20:50:07 -0700 (PDT)
Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B355512B04F; Wed, 24 Aug 2016 20:50:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=15386; q=dns/txt; s=iport; t=1472097006; x=1473306606; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=D+/eF7XUUmoGddipJXyyaww51RHYXKiaAy6XWwf/bb4=; b=mIR+5e/le065wVmiVs5H5+klxV+dr3DvyBnIovI7fmoKEZOzQnsYAURV /2xxYLH/e1JQEM3UE8lG54iVjW+bnS0x0FVLLxuhYTh55l/W+STcN9/Kj 0tCGYBMe/cOOMi693xF+h99j6fPGW8l3f6gOtZumMpMaVl5EHCqexs9Zz 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DcAgAJar5X/5JdJa1cgykBAQEBAR5WfAezBYJ5gg+Bfh+EI4FbAoFROBQCAQEBAQEBAV4nhGIBBXIHEAIBCD8HMhQRAgQOBYgyDsAxAQEBAQEBAQEBAQEBAQEBAQEBAQEBHIYugXgIgk2EKlSCb4IvBYYQiA+LKQGGH4J/gniDDIFthFyJB4xAg3gBDw82gkiBNXABAQGHVX8BAQE
X-IronPort-AV: E=Sophos;i="5.28,573,1464652800"; d="scan'208,217";a="313586053"
Received: from rcdn-core-10.cisco.com ([173.37.93.146]) by alln-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Aug 2016 03:50:05 +0000
Received: from XCH-ALN-010.cisco.com (xch-aln-010.cisco.com [173.36.7.20]) by rcdn-core-10.cisco.com (8.14.5/8.14.5) with ESMTP id u7P3o5S9014813 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 25 Aug 2016 03:50:05 GMT
Received: from xch-aln-009.cisco.com (173.36.7.19) by XCH-ALN-010.cisco.com (173.36.7.20) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Wed, 24 Aug 2016 22:50:04 -0500
Received: from xch-aln-009.cisco.com ([173.36.7.19]) by XCH-ALN-009.cisco.com ([173.36.7.19]) with mapi id 15.00.1210.000; Wed, 24 Aug 2016 22:50:05 -0500
From: "Gonzalo Salgueiro (gsalguei)" <gsalguei@cisco.com>
To: Suresh Krishnan <suresh.krishnan@ericsson.com>
Thread-Topic: Suresh Krishnan's Discuss on draft-ietf-sipcore-dns-dual-stack-07: (with DISCUSS)
Thread-Index: AQHR/oPDG5fffFhK70W0JbKQU/W66A==
Date: Thu, 25 Aug 2016 03:50:05 +0000
Message-ID: <39AEA207-8847-4178-8079-F31D1B50653F@cisco.com>
References: <87k2fc7b8f.fsf@hobgoblin.ariadne.com>
In-Reply-To: <87k2fc7b8f.fsf@hobgoblin.ariadne.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.82.230.249]
Content-Type: multipart/alternative; boundary="_000_39AEA207884741788079F31D1B50653Fciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/c89C_SEZxvEF8PQT8UUz_nLGn24>
Cc: SIPCORE <sipcore@ietf.org>, "draft-ietf-sipcore-dns-dual-stack@ietf.org" <draft-ietf-sipcore-dns-dual-stack@ietf.org>, The IESG <iesg@ietf.org>, "sipcore-chairs@ietf.org" <sipcore-chairs@ietf.org>
Subject: Re: [sipcore] Suresh Krishnan's Discuss on draft-ietf-sipcore-dns-dual-stack-07: (with DISCUSS)
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: Thu, 25 Aug 2016 03:50:09 -0000

Hi Suresh -


Just following up on this.  The updated draft (-08) attempts to address your DISCUSS.  You can see the diffs here:

https://www.ietf.org/rfcdiff?url1=draft-ietf-sipcore-dns-dual-stack-07&url2=http://svn.resiprocate.org/rep/ietf-drafts/worley/draft-ietf-sipcore-dns-dual-stack-08.txt

and the entire current draft can be found here:

http://svn.resiprocate.org/rep/ietf-drafts/worley/draft-ietf-sipcore-dns-du=
al-stack-08.txt<http://svn.resiprocate.org/rep/ietf-drafts/worley/draft-ietf-sipcore-dns-dual-stack-08.txt>

Once you confirm your points are addressed we will publish the -08 version.

Thanks,

Gonzalo


On Aug 19, 2016, at 4:30 PM, Dale R. Worley <worley@ariadne.com<mailto:worley@ariadne.com>> wrote:

"Suresh Krishnan" <suresh.krishnan@ericsson.com<mailto:suresh.krishnan@ericsson.com>> writes:
* Section 3.1

It is not clear to me what exactly the normative addendum is requiring
the client to do as regards to the DNS query while implementing "The
dual-stack client SHOULD look up all address records". Does this mean
that the client should do a AAAA (28) query followed by (or in parallel
or preceded ) for a A (1) query? I think it would be good to clarify the
types and ordering/concurrency of the queries.

Given that the responses to DNS queries do not depend on the order in
which they are done, it seems to me that the only necessity is to
specify that the client must do both A and AAAA queries.

In regard to the specific record types, one of our goals was that the
wording should be robust to the possibility of additional address
families being created.  Thus we used the wording

     The dual-stack client SHOULD look up all address records [...] for
     all address family(ies) that it supports [...] for the domain name
     and add the resulting addresses to the list of IP addresses to be
     contacted.

Assuming that the client supports exactly IPv4 and IPv6, the queries to
obtain address records for those families are A and AAAA.  I don't see
that the text can be interpreted in a different way.

* Section 4

I am a bit puzzled by the merging of the address lists from two separate
DNS queries in relation to RFC6724. This is how I see the destination
address selection in RFC6724. The application ends up calling some kind
of name resolution API (something like getaddrinfo()) with a
hostname/FQDN (say sip-1.example.com<http://sip-1.example.com>) and this results in a set of
addresses being returned. The destination address selection algorithm
specified in Section 6 of RFC6724 then orders these addresses and picks
one. I am not seeing how the second FQDN and its associated set of
addresses become involved in the RFC6724 process. Is this something that
you are adding on top of RFC6724? Please clarify.

One way of looking at it is that the full process of resolving the
server's address is the process for SRV records (RFC 2782) on top of the
destination address selection process (RFC 6724).  You've identified
that correctly.

The full process is fairly complicated, and the full documentation
involves the interaction of RFC 3263, RFC 2782, and RFC 6724.  But
restricting our attention to the case in question:

- The SRV records for domain name in the destination SIP URL are looked
 up.  (RFC 3263)

- Depending on the priority and weight fields (and the randomization
 implied by them!), the "target" domain names of the SRV records are
 listed in a particular order.  (RFC 2782)

The case in question is when there are more than one SRV records for the
destination domain name, and hence more than one target domain name.

- Each of those target domain names is expanded into a group of IPv4 and
 IPv6 addresses by looking up the A and AAAA records for the name.  Each
 group is sorted by the destination selection algorithm.  (This can be
 accomplished by calling getaddrinfo() on the target domain name.)
 (RFC 6724)

- The sorted groups of addresses for the target domain names are
 concatenated in the order of the target domain names.

The crucial point here is that the destination selection reordering is
only within the groups that result from the target domain names of the
SRVs -- The whole algorithm is a two-field sort with the "major" sort
being done by the SRV algorithm and the "minor" sort being done by
destination selection.

The original RFC 3263 specification describes the first two steps, but
presumes that the third step does not explicitly sort the addresses that
are obtained for the target domain name.  As a general rule, people who
have digested the rules of RFC 3263 agree that the "naturally correct"
way to incorporate destination selection (now that it exists for IPv6)
is to expand the third step to include that sortation -- and,
critically, that destination selection cannot reorder two addresses
between groups that derive from different target domain names.

The purpose of section 4 is to make that understanding normative.

Now, comparing what I have written here with the text in section 4, I
see that section 4 does not make explicit the ordered list of target
domain names from the SRV records.  And I can see that if the reader is
not thoroughly familiar with RFC 3263, that makes the overall process
significantly less clear, because it doesn't make step 2 above explicit.

I've updated the draft -08 to show the list of target domain names.
You can see the difference in
https://www.ietf.org/rfcdiff?url1=draft-ietf-sipcore-dns-dual-stack-07&url2=http://svn.resiprocate.org/rep/ietf-drafts/worley/draft-ietf-sipcore-dns-dual-stack-08.txt
and the entire current draft in
http://svn.resiprocate.org/rep/ietf-drafts/worley/draft-ietf-sipcore-dns-dual-stack-08.{txt,html}

Dale