Re: [MMUSIC] FQDN support in ice-sip-sdp

Roman Shpount <> Sun, 14 April 2019 22:12 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 66FED1202CD for <>; Sun, 14 Apr 2019 15:12:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Status: No, score=-1.889 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, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id t4Ju9XSBvPcn for <>; Sun, 14 Apr 2019 15:12:55 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4864:20::632]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 897151202CC for <>; Sun, 14 Apr 2019 15:12:55 -0700 (PDT)
Received: by with SMTP id bf11so7568175plb.12 for <>; Sun, 14 Apr 2019 15:12:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1T5tmiG4wzonm+8OIMjT9ayi0gnLM6ZbYhH+QVkUQsM=; b=tw5DZWGmyBLi+RJgpVAXkEbLFfynh2z8ytGy5f5CIUa43Ey18JjSHMPou4wkv7Yua8 SHF24XW4gz6djRYJxDM+24TmhzUQ3y2O+LZunls8dMQDyZOm2/r6itXGcVQLDx9aeLNP Uww7GkbM3SEf4BMgfMXTpcx2tUaEd62+x3n/L0BiAncvyQE+2M3SjPqKE1jAXtPxNVct io3bB3xRzC1SfQNMHG6clDhWaySWhHekaRHXIAhASw+kh9C9CrfxECywjQgomgvoulM3 dJC/GIEJvDSW7uJMKVr9tF1wgBpUSZFKyhzV+v3NcbspFWxRVCBlS+COOqV+jkaPBasx Ej4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1T5tmiG4wzonm+8OIMjT9ayi0gnLM6ZbYhH+QVkUQsM=; b=eymHP5JLDHvb0wqzo8tNQi3qEaVFjuObA6MEfTcp0OmpL91NDpSSsdINO3VEfltBsd A0iTtU/GbFDZ/DsKQXUd250lkv5slHrtChwTz0LofOKC+Ygpl6fZ/mSVlJQ5e+V7CAxZ G9MZaVyHnkrDknjOJvO2u+DwJSUdl0Yjk7fBrYDEy7M1dXTQLr4KnVwJlEgLVASvMUY9 W7/qfS9KyouPDWBHQyp8ms0mIPIreAlq5k7Hw7IvGOD97VhikohSkopYbHewNnFpA38+ YNZ20btXeDPi5LnXwji563APA7MpjPcTvpYmk4ZpXfXVrwLizrxhZ1zeQHvOmN0XrTiv tuRg==
X-Gm-Message-State: APjAAAV42xuP8+xQBugOnr51iZJCfnWCNFHkcfp2UTXx97qUZKITBOLy ZYICu7I4SHkcw2aukZGFbAAJmTAPiHM=
X-Google-Smtp-Source: APXvYqxwQysKD1CGb6m6rmxIsaxwf404xjM2JTTP4PvM/r31LXxlrJ8It4+Rb9paSFLJM54aR1vW1Q==
X-Received: by 2002:a17:902:525:: with SMTP id 34mr59838543plf.138.1555279974673; Sun, 14 Apr 2019 15:12:54 -0700 (PDT)
Received: from ( []) by with ESMTPSA id a10sm16868545pfc.21.2019. for <> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 Apr 2019 15:12:53 -0700 (PDT)
Received: by with SMTP id 8so7608964pfr.4 for <>; Sun, 14 Apr 2019 15:12:53 -0700 (PDT)
X-Received: by 2002:a63:6a44:: with SMTP id f65mr32928342pgc.354.1555279972962; Sun, 14 Apr 2019 15:12:52 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
From: Roman Shpount <>
Date: Sun, 14 Apr 2019 18:12:54 -0400
X-Gmail-Original-Message-ID: <>
Message-ID: <>
To: Christer Holmberg <>
Cc: Suhas Nandakumar <>, mmusic WG <>, Flemming Andreasen <>
Content-Type: multipart/alternative; boundary="0000000000005099f1058684d65c"
Archived-At: <>
Subject: Re: [MMUSIC] FQDN support in ice-sip-sdp
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sun, 14 Apr 2019 22:12:59 -0000

Hi  Christer,

On Sun, Apr 14, 2019 at 4:43 AM Christer Holmberg <> wrote:

> But, the other reason was to correct issues and unspecified cases found in
> RFC 5245, and FQDN seems to be one such issue. Unfortunately we didn't
> detect it before publishing RFC 8445, so any generic ICE FQDN procedures
> would have to be in a separate draft.
> Again, I don't have a strong opinion on whether the SDP specific parts of
> FQDN are in ice-sip-sdp or in a separate draft.

I think the question is if FQDN is just another way to encode a single IP
address or if FQDN resolution affects ICE nomination process. If we decide
that demarcation point between ICE candidate signaling (ice-sip-sdp) and
ICE nomination i(RFC 8445) s the list of candidates with IP addresses, then
handling FQDN falls under signaling (ice-sip-sdp). If you think DNS
resolution affects ICE nomination process, then we will need a separate
draft for handling candidates with FQDN. I think former is the case and we
can put FQDN handling in ice-sip-sdp.

Keep in mind that we also need to decide on whether ice-pac should be an
> ice-sip-sdp dependency, in which case the publication may get delayed
> anyway (eventhough we hope to finalize ice-pac pretty fast).

I do not think ice-sip-sdp needs to have ice-pac as dependency, but I am
going to bring this up in another thread. I wanted to concentrate on FQDN
first and then address other ice-sip-sdp issues, such as the fact that SDP
offer can contain an empty candidate list.

> Please note, that if we specify that candidate line using FQDN
> contact-address MUST specify address type and FQDN MUST resolve
> > to a single address per address type, then FQDN handling is trivial:
> Agent should do a DNS resolution and use the result.
> Yes.
> > Figuring out how to handle multiple results per DNS query certainly
> warrants a separate draft and should be out of scope.
> We also need to keep in mind that, even though a single DNS request only
> returns a single address, if some kind of load balancing is used different
> DNS requests may return a different address. Perhaps we need to cover that
> by saying that an ICE agent must not change the IP address:port associated
> with a candidate.

This is part of the problem with DNS. One agent can publish FQDN that
points to a single IP, but when another agent runs the DNS query, it can
return more then one result (such as DNS64), different result (some sort of
NAT or proxy) or no results. DNS network can be adversarial and
deliberately send traffic through a proxy for man-on-the-middle attack. I
would prefer to limit what we require to each of the agents and then allow
connectivity checks to sort this out. So far the requirements are that
agent that creates the candidate list should only use FQDN that points to
single address of given type and agent receiving the candidate list should
only use candidate lines that produce a single address.

> a. Define how to specify address type in candidate line. This is
> certainly an SDP problem and I think is a pre-requisite to using any
> addresses, such as
> > FQDN, where address type is non-obvious
> HOW to define the address type in a candidate lite is for sure an SDP
> problem. But, the fact that the address type needs to be provided for a
> candidate is an ICE problem.

As I have mentioned earlier, this is the question of defining
responsibilities of signaling vs actual ICE processing. DNS resolution does
not have to be part of ICE processing and can be part of signaling. ICE
processing can always start with the list of candidates with addresses
already resolved.

> b. Specify that if agent compliant with ice-sip-sdp uses FQDN
> contact-address, it MUST specify addrtype for the candidate.
> Do we know how an existing implementation would process the addrtype? Are
> there any procedures regarding unsupported candidate properties?

 Since I just invented addrtype, I do not think anything would process it.
Unsupported candidate properties are supposed to be ignored. We see a lot
of unsupported properties in the wild, such as "generation" and
"network-id". These extra candidate attributes do not seem to cause any
interop issues, so I do not think adding a new candidate type attribute
would be a problem

> c. Specify that if FQDN resolves to a single address for the specified
> family then that this address is used for this candidate. Candidate lines
> with
> > FQDN returning multiple results per query MUST be ignored until their
> handling is defined in a future draft
> >
> > d. Specify what to do with FQDN without address type specified such as
> SDP from legacy RFC 5245 implementations. We can go with try AAAA
> resolution
> > first and use if single address is returned. If nothing is returned from
> AAAA query, try A query. If single address is returned, used that address,
> ignore
> > the candidate line otherwise. This matches RFC 5245 language and should
> work in all the same situations where RFC 5245 implementations were working.
> d) works assuming both ICE agents get the same IP address:port from DNS.

Option d  is best effort for interop with current RFC 5245 implementations.
It would work in the same cases when RFC 5245 implementation would. I am
not sure any current RFC 5245 implementations actually use FQDN, but if
such implementations do exist, this is what RFC 5245 specified.

> What do you think?
> I think you suggestion is good. But, as I have indicated, I would like to
> have a generic ICE FQDN draft that ice-sip-sdp (or a separate MMUSIC draft)
> references.
> Similarly to ice-pac, I think such draft could be produced relatively
> fast. It more or less only needs to say that:
> 1) An ICE agent that uses FQDN needs to provide one candidate per address
> family, and indicate the addrtype for each of those candidates.
> 2) Some text regarding backward compatibility. Do we assume some default
> behavior by existing implementations, or do we require an ICE option?

I do not think we need an ICE option. I think presence of addrtype can be

This being said we need to decide two things:

1. Does FQDN resolution belongs to ICE processing? In this case candidate
list includes FQDN with address type and ICE processing describes how FQDN
are resolved and converted to addresses. Or, alternatively, does FQDN
resolution belongs to ICE signaling? In this case candidate list includes
resolved address and ICE agent deals with addresses only.

2. Do we specify how to deal with FQDN in ice-sip-sdp or do we specify in
ice-sip-sdp that FQDN must be ignored and their handling is defined in some
other draft?

Based on answers to these questions we can deiced how many additional
drafts we will need.

Roman Shpount