[MMUSIC] FQDN support in ice-sip-sdp

Roman Shpount <roman@telurix.com> Wed, 03 April 2019 16:47 UTC

Return-Path: <roman@telurix.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EDB54120094 for <mmusic@ietfa.amsl.com>; Wed, 3 Apr 2019 09:47:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.89
X-Spam-Level:
X-Spam-Status: No, score=-1.89 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=telurix-com.20150623.gappssmtp.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 xbeONjDwqY_G for <mmusic@ietfa.amsl.com>; Wed, 3 Apr 2019 09:47:10 -0700 (PDT)
Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) (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 07CAE120046 for <mmusic@ietf.org>; Wed, 3 Apr 2019 09:47:10 -0700 (PDT)
Received: by mail-pl1-x630.google.com with SMTP id w23so5373658ply.4 for <mmusic@ietf.org>; Wed, 03 Apr 2019 09:47:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telurix-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to:cc; bh=NuUC82/O29pGtWUvBLfq2KbKeDtn+53yNiWTnxCcF5E=; b=JO8UL2iTRZr4DpSHduhCstMdi9Nxbja1QWfuPb8RS++w93p1x1YZ5JmRvvhG2omSl4 DLI72smd1i3N7Rhb2QFt1XjrO1fFGDE12Lcz/Y/gcedGWZjr5rlcC4rQq4GNg45wGUaL UKbEU+9NusVtpeOrDnxxT7HEVmazSzvvA61ktI4EdtRZnkpbMry9Awgtxe/mNt09dQo+ Lhk2SNHHL5yrTS5Tcr4lGK5VkUlbMm+MAe1kOlbW1uWAmknIEgLArXGxosv4Tz/Ek5w+ 6TOn4fBjXJeE9JH3ypnoguWE+09/jP7HsNKdoz+u5a89vagvdIp1jWdPTBOutSKqeDZw ulZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=NuUC82/O29pGtWUvBLfq2KbKeDtn+53yNiWTnxCcF5E=; b=WrX8b/lVv4CESPH29zjZoxTVVxfT0eD+5XFtWJ7tJ6Dft8dHxng91MD9u517CGYoN9 ahIgC5PSa6Y+rpYmfAzg5SdXQExYZ6eyW5nCN9Kn0AJS8oCnZpwILgrGmoOh2EO8g9RN OpQVC4ZXADBt480MMuvkcJxs673L2nDOyBNbkPDnRcBmRjvRokaA565rSryBnzuZJogJ b2y8MgxwnCOnuT0YmwGIqPMGqoviCxLPG2nkAMS5nMwrOy/24uGmWMcIlvR4nvKNY5y6 uJNNld4m0W7ffMv4Rv47rYN1aY9RSVx2E7pd5Hx5L9ZoV5M7fW+KudHuPiIeJQq7FSo4 10QA==
X-Gm-Message-State: APjAAAXCK1l+CexGh6E7kTGN8Yqjm6b+oSUweX2Q2BVz+Xrc5kB09WG4 z6SsI6DOX8HLQF4u+PXoVINnswKV7aE=
X-Google-Smtp-Source: APXvYqy9qC4Ozd3vf/Xexk4seKtGkgwguVXq1kbi7D+C1Wsak51d4367AemlpgVQuraKl0FCig2KzA==
X-Received: by 2002:a17:902:28a7:: with SMTP id f36mr905706plb.169.1554310029191; Wed, 03 Apr 2019 09:47:09 -0700 (PDT)
Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com. [209.85.210.177]) by smtp.gmail.com with ESMTPSA id x8sm5408292pgp.48.2019.04.03.09.47.08 for <mmusic@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Apr 2019 09:47:08 -0700 (PDT)
Received: by mail-pf1-f177.google.com with SMTP id c207so8438327pfc.7 for <mmusic@ietf.org>; Wed, 03 Apr 2019 09:47:08 -0700 (PDT)
X-Received: by 2002:a62:ab12:: with SMTP id p18mr431199pff.216.1554310027830; Wed, 03 Apr 2019 09:47:07 -0700 (PDT)
MIME-Version: 1.0
From: Roman Shpount <roman@telurix.com>
Date: Wed, 03 Apr 2019 12:46:59 -0400
X-Gmail-Original-Message-ID: <CAD5OKxux4s=4TtA7vQT0X-u+3RS+MVHG=RjgGDHWQ5H1k0OdLg@mail.gmail.com>
Message-ID: <CAD5OKxux4s=4TtA7vQT0X-u+3RS+MVHG=RjgGDHWQ5H1k0OdLg@mail.gmail.com>
To: mmusic WG <mmusic@ietf.org>
Cc: Justin Uberti <juberti@google.com>, Christer Holmberg <christer.holmberg@ericsson.com>, Eric Rescorla <ekr@rtfm.com>, Flemming Andreasen <fandreas@cisco.com>
Content-Type: multipart/alternative; boundary="0000000000001469e20585a3010e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/b0zAOJnAgfsLOEYkrqTr9-4D8gA>
Subject: [MMUSIC] FQDN support in ice-sip-sdp
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.29
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, 03 Apr 2019 16:47:13 -0000

Reposting er Flemming's advise as a new thread:

Hi All,

I have created a pull request to ice-sip-sdp (
https://github.com/suhasHere/ice-sip-sdp/pull/1), which among other things
added back support for FQDN to ice-sip-sdp.

In order to do this, I've done the following:

1. I have changed "IP address" to "connection address" throughout the
document whenever address in c= line or ICE candidate attribute is
mentioned. I hope this is not controversial since it matches ABNF.

2. I have changed the definition of <connection-address>

Old:

<connection-address>: :: is taken from RFC 4566 <<RFC4566>>.
It is the IP address of the candidate. When parsing this field, an agent
can differentiate
an IPv4 address and an IPv6 address by presence of a colon in its value --
the presence of
a colon indicates IPv6. An agent MUST ignore candidate lines that include
candidates with
IP address versions that are not supported or recognized.


New:

<connection-address>: :: is taken from RFC 4566 <<RFC4566>>.
It is the IP address of the candidate, allowing for IPv4 addresses, IPv6
addresses, and fully
qualified domain names (FQDNs).  When parsing this field, an agent can
differentiate
an IPv4 address and an IPv6 address by presence of a colon in its value -
the presence of a
colon indicates IPv6.  An agent MUST ignore candidate lines that include
candidates with
IP address versions that are not supported or recognized.  An IP address
SHOULD be used,
but an FQDN MAY be used in place of an IP address.  In that case, when
receiving an
offer or answer containing an FQDN in an a=candidate attribute, the FQDN is
looked up in
the DNS first using both AAAA record (assuming the agent supports IPv6),
and using an A
record (assuming the agent supports IPv4). If, and only if, the DNS query
returns
only one IP address it is then used for the remainder of ICE processing. If
DNS query
returned more then one result, including situation where single IPv4 and
single IPv6
results are returned, an agent MUST ignore the candidate. Handling of
multiple DNS
results for a candidate can be defined in the future specification. If
candidate
with FQDN <connection-address> is the default destination/candidate, the
the "c="
address type MUST be set the IP address family for the FQDN DNS resolution
result
and the "c=" connection address MUST be set to FQDN.



This change reflects what was discussed previously. I am, personally, less
then happy with this change. My biggest issue is requirement for FQDN to
resolve to a single address or be ignored. In practice, this is problematic
when things like DNS64/NAT64 are used. When DNS64 is used, even when FQDN
was supposed to only resolve to IPv4, AAAA will also return result which
will point to the NAT64 gateway. Based on the current language, this will
result in candidate being ignored even though it should work with either
IPv4 or IPv6 address. Most immediately, this will mean FQDN resolving to
IPv4 will be ignored on a lot of mobile networks.

I have also added language that defines what is supposed to be placed in c=
line when default candidate is an FQDN candidate. What happens when FQDN
resolution result and address family in c= line do not match was not
specified.

To summarize, this no worse then RFC 5245, but still fairly messy. I see
two possible ways to clean this up:

a. Add a candidate extension which specifies candidate address type,
something like addrtype which can be set to "inipv4" or "inipv6". If IP
address is used and it does not match the addrtype candidate extension,
this candidate is ignored. When FQDN is used, it is resolved using A DNS
request when addrtype is inipv4 or not present and using AAAA DNS request
when addrtype is inipv6. Address family in c= line, when FQDN is a default
candidate must be IN IPV4 if addrtype is inipv4 or not present, and must be
IP IPV6 if addrtype is inipv6

b. Specify that during ICE nomination all DNS resolution results for the
candidate should be added as separate candidates to the candidate list.
This is likely to cause more problems then option a. One of these problems
that I see is priority values for these candidates. Candidate priorities
should be different for all of them but only one value is specified in SDP
candidate attribute.

In order to simplify tracking changes, I will write different emails about
other changes I've done in the pull request.

I have also included people who shown previous interest in this topic.
Please let me know if I need to cross post to rtcweb and ice WG.

Thank you for your attention,
_____________
Roman Shpount