Re: [MMUSIC] ICE candidate pairing and NAT64

🔓Dan Wing <dwing@cisco.com> Wed, 24 June 2015 15:57 UTC

Return-Path: <dwing@cisco.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0615E1ACE8E for <mmusic@ietfa.amsl.com>; Wed, 24 Jun 2015 08:57:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.211
X-Spam-Level:
X-Spam-Status: No, score=-14.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
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 fYrQ1GPUqZe1 for <mmusic@ietfa.amsl.com>; Wed, 24 Jun 2015 08:57:13 -0700 (PDT)
Received: from alln-iport-5.cisco.com (alln-iport-5.cisco.com [173.37.142.92]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 581111ACE9B for <mmusic@ietf.org>; Wed, 24 Jun 2015 08:57:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3864; q=dns/txt; s=iport; t=1435161433; x=1436371033; h=mime-version:subject:from:in-reply-to:date:cc: content-transfer-encoding:message-id:references:to; bh=8v4QI7IRml7S9ggA5qHHWjxLzRsMIV8WzssslxSkXqI=; b=AISSQyoIgs/F6k9M282vqQPjjBzwM/LPbqM5ugUzsN+9ZasPMLyHfFKJ ieaqeDHSnmVEHkwdqkHp6lkKi2i+pFk+Ir9j0BILPGmcHCY9DIyM5cPXz h/ENxaFYrwjO32/8FLWJweMZI+/rsPgGvH3df5TceG1Q4zxZsRTBJ1cdI c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DOCwA00opV/5FdJa1bgxFUX4MetUGENIFmhXgCgUk6EgEBAQEBAQGBCkEDg14BAQEDASNEEgULCQIYAgImAgJXBhOIJwgNmXadGZZQAQEBAQEBAQEBAQEBAQEBAQEBAQEBF4EhiimEOxgzB4JoL4EUBY0BhwSLUYE6hnuMJ4NcJmOBLheBch4xAYJHAQEB
X-IronPort-AV: E=Sophos;i="5.13,672,1427760000"; d="scan'208";a="162488541"
Received: from rcdn-core-9.cisco.com ([173.37.93.145]) by alln-iport-5.cisco.com with ESMTP; 24 Jun 2015 15:57:12 +0000
Received: from [10.24.103.212] ([10.24.103.212]) by rcdn-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id t5OFvBpS000529 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 24 Jun 2015 15:57:12 GMT
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: 🔓Dan Wing <dwing@cisco.com>
In-Reply-To: <5BA416A3-E8B9-4A28-95C2-6CCF31072A83@vidyo.com>
Date: Wed, 24 Jun 2015 08:57:11 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <4C0411C4-02C7-4B19-B8F8-2E6E4E277008@cisco.com>
References: <CA8D917B-8C7C-42B9-BF65-F7209DFCA15C@vidyo.com> <64FC711B-0B70-4489-A08B-8218DA80BF77@cisco.com> <5BA416A3-E8B9-4A28-95C2-6CCF31072A83@vidyo.com>
To: Jonathan Lennox <jonathan@vidyo.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/fuOT-o8VSEEvul479psXZZVDySQ>
Cc: mmusic <mmusic@ietf.org>
Subject: Re: [MMUSIC] ICE candidate pairing and NAT64
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mmusic/>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Jun 2015 15:57:22 -0000

On 24-Jun-2015 08:35 am, Jonathan Lennox <jonathan@vidyo.com> wrote:
> 
>> On Jun 23, 2015, at 9:21 PM, 🔓Dan Wing <dwing@cisco.com> wrote:
>> 
>> On 23-Jun-2015 12:28 pm, Jonathan Lennox <jonathan@vidyo.com> wrote:
>>> 
>>> Apple’s recent announcement that all iOS apps are soon going to be required to support running behind NAT64 has led me to contemplate what this means for ICE.
>>> 
>>> Should ICE endpoints be required and/or recommended to support using RFC 7050 NAT64 prefix discovery to pair local IPv6 candidates which have a NAT64 gateway with remote IPv4 candidates?
>> 
>> Yes.
>> 
>>> What does this do to connectivity check pacing, or to the total number of connectivity checks?
>> 
>> It means an IPv6-only device with a NAT64 has same number of candidates as a dual-stack device.  I would pace and prioritize NAT64 addresses exactly same as IPv4 addresses would be paced and prioritized on a dual-stack host.
> 
> The issue that occurred to me (having thought about this some more) is that if you’re on a 464XLAT network, I don’t think you want to have the application do its own RFC 7050 pairing — instead, you probably want to use the 464XLAT interface to pair with remote IPv4 candidates.
> 
> Unfortunately, I don’t see any easy way for an application to be able to tell the difference between being on a device with 464XLAT (which will appear as an IPv6 local address with NAT64 plus a private address space IPv4 address) vs. a device with NAT64 on one interface and IPv4 on another (e.g. cellular data plus wi-fi).  

I had remembered 464XLAT used a special IPv4 address for its CLAT, but reading RFC6877 now, I am mis-remembering (or it was deemed a bad idea and pulled from the eventual RFC).

> In the latter case, essentially what an ICE stack needs to do is application-layer 464XLAT for the NAT64 candidates, but doing it redundantly for the former case seems like a bad idea.  Any thoughts, other than deep knowledge of device configuration?
> 
>>> And how many operating systems can support a userspace app doing an RFC 7050 DNS lookup on a per-interface basis?  (Even if you roll your own DNS resolver, you still need to be able to obtain per-interface DNS server configuration information to find the interface’s appropriate DNS64 server.)
>> 
>> Dunno.  MIF was going to solve that.  I will note that dnsmasq appears capable of sending DNS requests out certain interfaces (see the --server option at http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html), so it must be relatively possible?
> 
> It’s not just a matter of which interface you use to send the request, but which interface’s configuration information you use to discover the DNS server.  (Consider a dual-SIM device which can connect to  two different carriers’ cellular data networks, both of which are using NAT64.)

Yes, good point.  I agree if all the DNS & DNS64 servers learned from each interface is munged together (like it is with the traditional /etc/resolv.conf), we can't be successful at building synthetic NAT64 addresses.  That's what MIF was going to fix.  I know Dmitry Anipko was making good progress at keeping the learned DNS server from each interface separate on Windows, mostly for split-horizon support [e.g., enterprise VPN] but per-interface DNS64 is exactly the same split-horizon problem.  The learned DNS servers, and the interface each DNS server was learned from, need to be available to the application.  On OSs where that isn't possible, I think worst case is some additional ICE candidates and additional ICE connectivity checks, which will fail?

-d