rfc8777xml2.original.xml   rfc8777.xml 
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.12 -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc ipr="trust200902" docName="draft-ietf-mboned-driad-amt-discovery-13" catego
ry="std" updates="7450">
<front>
<title abbrev="DRIAD">DNS Reverse IP AMT (Automatic Multicast Tunneling) Dis
covery</title>
<author initials="J." surname="Holland" fullname="Jake Holland">
<organization>Akamai Technologies, Inc.</organization>
<address>
<postal>
<street>150 Broadway</street>
<city>Cambridge, MA 02144</city>
<country>United States of America</country>
</postal>
<email>jakeholland.net@gmail.com</email>
</address>
</author>
<date year="2019" month="December" day="20"/>
<area>Ops</area>
<workgroup>Mboned</workgroup>
<keyword>Internet-Draft</keyword>
<abstract>
<t>This document updates RFC 7450 (Automatic Multicast Tunneling, or AMT) by
modifying the relay discovery process. A new DNS resource record named
AMTRELAY is defined for publishing AMT relays for source-specific multicast
channels. The reverse IP DNS zone for a multicast sender’s IP address is
configured to use AMTRELAY resource records to advertise a set of AMT relays
that can receive and forward multicast traffic from that sender over an AMT
tunnel. Other extensions and clarifications to the relay discovery
process are also defined.</t>
</abstract>
</front>
<middle>
<section anchor="intro" title="Introduction">
<t>This document defines DNS Reverse IP AMT Discovery (DRIAD), a mechanism for
AMT gateways to discover AMT relays that are capable of forwarding multicast
traffic from a known source IP address.</t>
<t>AMT (Automatic Multicast Tunneling) is defined in <xref target="RFC7450"/>, a
nd provides
a method to transport multicast traffic over a unicast tunnel, in order to
traverse non-multicast-capable network segments.</t>
<t>Section 4.1.5 of <xref target="RFC7450"/> explains that the relay selection p
rocess
for AMT is intended to be more flexible than the particular discovery method
described in that document, and further explains that the selection process
might need to depend on the source of the multicast traffic in some
deployments, since a relay must be able to receive multicast traffic from the
desired source in order to forward it.</t>
<t>That section goes on to suggest DNS-based queries as a possible solution.
DRIAD is a DNS-based solution, as suggested there. This solution also
addresses the relay discovery issues in the “Disadvantages” lists in Section
3.3 of <xref target="RFC8313"/> and Section 3.4 of <xref target="RFC8313"/>.</t>
<t>The goal for DRIAD is to enable multicast connectivity between separate
multicast-enabled networks when neither the sending nor the receiving network
is connected to a multicast-enabled backbone, without pre-configuring any
peering arrangement between the networks.</t>
<t>This document extends the relay discovery procedure described in Section
5.2.3.4 of <xref target="RFC7450"/>.</t>
<section anchor="background" title="Background">
<t>The reader is assumed to be familiar with the basic DNS concepts
described in <xref target="RFC1034"/>, <xref target="RFC1035"/>, and the subsequ
ent documents that
update them, particularly <xref target="RFC2181"/>.</t>
<t>The reader is also assumed to be familiar with the concepts and terminology
regarding source-specific multicast as described in <xref target="RFC4607"/> and
the
use of IGMPv3 <xref target="RFC3376"/> and MLDv2 <xref target="RFC3810"/> for gr
oup management of
source-specific multicast channels, as described in <xref target="RFC4604"/>.</t
>
<t>The reader should also be familiar with AMT, particularly the terminology
listed in Section 3.2 of <xref target="RFC7450"/> and Section 3.3 of <xref targe
t="RFC7450"/>.</t>
</section>
<section anchor="terminology" title="Terminology">
<section anchor="relays-and-gateways" title="Relays and Gateways">
<t>When reading this document, it’s especially helpful to recall that once
an AMT tunnel is established, the relay receives native multicast traffic
and sends unicast tunnel-encapsulated traffic to the gateway, and the gateway
receives the tunnel-encapsulated packets, decapsulates them, and forwards
them as native multicast packets, as illustrated in <xref target="figtunnel"/>.<
/t>
<figure title="AMT Tunnel Illustration" anchor="figtunnel"><artwork><![CDATA[
Multicast +-----------+ Unicast +-------------+ Multicast
>---------> | AMT relay | >=======> | AMT gateway | >--------->
+-----------+ +-------------+
]]></artwork></figure>
</section>
<section anchor="definitions" title="Definitions">
<texttable>
<ttcol align='right'>Term</ttcol>
<ttcol align='left'>Definition</ttcol>
<c>(S,G)</c>
<c>A source-specific multicast channel, as described in <xref target="RFC4
607"/>. A pair of IP addresses with a source host IP and destination group IP.</
c>
<c>discovery broker</c>
<c>A broker or load balancer for AMT relay discovery, as mentioned in sect
ion 4.2.1.1 of <xref target="RFC7450"/>.</c>
<c>downstream</c>
<c>Further from the source of traffic, as described in <xref target="RFC74
50"/>.</c>
<c>FQDN</c>
<c>Fully Qualified Domain Name, as described in <xref target="RFC8499"/></
c>
<c>gateway</c>
<c>An AMT gateway, as described in <xref target="RFC7450"/></c>
<c>L flag</c>
<c>The “Limit” flag described in Section 5.1.4.4 of <xref target="RFC7450"
/></c>
<c>relay</c>
<c>An AMT relay, as described in <xref target="RFC7450"/></c>
<c>RPF</c>
<c>Reverse Path Forwarding, as described in <xref target="RFC5110"/></c>
<c>RR</c>
<c>A DNS Resource Record, as described in <xref target="RFC1034"/></c>
<c>RRType</c>
<c>A DNS Resource Record Type, as described in <xref target="RFC1034"/></c
>
<c>SSM</c>
<c>Source-specific multicast, as described in <xref target="RFC4607"/></c>
<c>upstream</c>
<c>Closer to the source of traffic, as described in <xref target="RFC7450"
/>.</c>
<c>CMTS</c>
<c>Cable Modem Termination System</c>
<c>OLT</c>
<c>Optical Line Terminal</c>
</texttable>
<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”,
“MAY”, and “OPTIONAL” in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and
only when, they
appear in all capitals, as shown here.</t>
</section>
</section>
</section>
<section anchor="relay-discovery-overview" title="Relay Discovery Overview">
<section anchor="basic-mechanics" title="Basic Mechanics">
<t>The AMTRELAY resource record (RR) defined in this document is used to
publish the IP address or domain name of a set of AMT relays or discovery
brokers that can receive, encapsulate, and forward multicast traffic from
a particular sender.</t>
<t>The sender is the owner of the RR, and configures the zone so that it
contains a set of RRs that provide the addresses or domain names of AMT
relays (or discovery brokers that advertise relays) that can receive
multicast IP traffic from that sender.</t>
<t>This enables AMT gateways in remote networks to discover an AMT relay that
is capable of forwarding traffic from the sender. This in turn enables those
AMT gateways to receive the multicast traffic tunneled over a unicast AMT
tunnel from those relays, and then to pass the multicast packets into
networks or applications that are using the gateway to subscribe to traffic
from that sender.</t>
<t>This mechanism only works for source-specific multicast (SSM) channels. The
source address of the (S,G) is reversed and used as an index into one of the
reverse mapping trees (in-addr.arpa for IPv4, as described in Section 3.5 of
<xref target="RFC1035"/>, or ip6.arpa for IPv6, as described in Section 2.5 of <
xref target="RFC3596"/>).</t>
<t>This mechanism should be treated as an extension of the AMT relay discovery
procedure described in Section 5.2.3.4 of <xref target="RFC7450"/>. A gateway t
hat
supports this method of AMT relay discovery SHOULD use this method
whenever it’s performing the relay discovery procedure, and the source IP
addresses for desired (S,G)s are known to the gateway, and conditions match
the requirements outlined in <xref target="priority"/>.</t>
<t>Some detailed example use cases are provided in <xref target="exampledeployme
nts"/>, and
other applicable example topologies appear in Section 3.3 of <xref target="RFC83
13"/>,
Section 3.4 of <xref target="RFC8313"/>, and Section 3.5 of <xref target="RFC831
3"/>.</t>
</section>
<section anchor="signaling-and-discovery" title="Signaling and Discovery">
<t>This section describes a typical example of the end-to-end process for
signaling a receiver’s join of an SSM channel that relies on an AMTRELAY
RR.</t>
<t>The example in <xref target="figmessaging"/> contains 2 multicast-enabled
networks that are both connected to the internet with non-multicast-capable
links, and which have no direct association with each other.</t>
<t>A content provider operates a sender, which is a source of multicast traffic
inside a multicast-capable network.</t>
<t>An end user who is a customer of the content provider has a multicast-capable
internet service provider, which operates a receiving network that uses an
AMT gateway. The AMT gateway is DRIAD-capable.</t>
<t>The content provider provides the user with a receiving application that
tries to subscribe to at least one (S,G). This receiving application could
for example be a file transfer system using FLUTE <xref target="RFC6726"/> or a
live
video stream using RTP <xref target="RFC3550"/>, or any other application that m
ight
subscribe to an SSM channel.</t>
<figure title="DRIAD Messaging" anchor="figmessaging"><artwork><![CDATA[
+---------------+
| Sender |
| | | 2001:db8::a |
| | +---------------+
|Data| |
|Flow| Multicast |
\| |/ Network |
\ / | 5: Propagate RPF for Join(S,G)
\ / +---------------+
\/ | AMT Relay |
| 2001:db8:c::f |
+---------------+
| 4: Gateway connects to Relay,
sends Join(S,G) over tunnel
|
Unicast
Tunnel | 3: --> DNS Query: type=AMTRELAY,
/ a.0.0.0.0.0.0.0.0.0.0.0.
^ | / 0.0.0.0.0.0.0.0.0.0.0.0.
| / 8.b.d.0.1.0.0.2.ip6.arpa
| | / <-- Response:
Join/Leave +-------------+ AMTRELAY=2001:db8:c::f
Signals | AMT gateway |
| +-------------+
| | 2: Propagate RPF for Join(S,G)
| Multicast |
Network |
| 1: Join(S=2001:db8::a,G=ff3e::8000:d)
+-------------+
| Receiver |
| (end user) |
+-------------+
]]></artwork></figure>
<t>In this simple example, the sender IP is 2001:db8::a, it is sending
traffic to the group address ff3e::8000:d, and the relay IP is
2001:db8::c:f.</t>
<t>The content provider has previously configured the DNS zone that
contains the reverse IP domain name for the sender’s IP address
so that it provides an AMTRELAY RR with the relay’s IP address.
(See <xref target="rpformat"/> for details about the AMTRELAY RR format and
semantics.) As described in Section 2.5 of <xref target="RFC3596"/>, the
reverse IP FQDN of the sender’s address “2001:db8::a” is:</t>
<figure><artwork><![CDATA[
a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.
arpa.
]]></artwork></figure>
<t>The sequence of events depicted in <xref target="figmessaging"/> is as follow
s:</t>
<t><list style="numbers">
<t>The end user starts the app, which issues a join to the (S,G):
(2001:db8::a, ff3e::8000:d).</t>
<t>The join propagates with RPF through the receiver’s multicast-enabled
network with PIM <xref target="RFC7761"/> or another multicast routing mechanism
,
until the AMT gateway receives a signal to join the (S,G).</t>
<t>The AMT gateway performs a reverse DNS lookup for the AMTRELAY RRType,
by sending an AMTRELAY RRType query for the reverse IP domain name
for the sender’s source IP address (the S from the (S,G)). <vspace blankLines='
1'/>
The DNS resolver for the AMT gateway uses ordinary DNS recursive
resolution until it has the authoritative result that the content
provider configured, which informs the AMT gateway that the relay address
is 2001:db8::c:f.</t>
<t>The AMT gateway performs AMT handshakes with the AMT relay as described
in Section 4 of <xref target="RFC7450"/>, then forwards a Membership report to t
he
relay indicating subscription to the (S,G).</t>
<t>The relay propagates the join through its network toward the sender,
then forwards the appropriate AMT-encapsulated traffic to the
gateway, which decapsulates and forwards it as native multicast through
its downstream network to the end user.</t>
</list></t>
<t>In the case of an IPv4 (S,G), the only difference in the AMT relay
discovery process is the use of the in-addr.arpa reverse IP domain name,
as described in Section 3.5 of <xref target="RFC1035"/>, instead of the in6.arpa
domain name. For example, if the (S,G) is (198.51.100.12, 232.252.0.2),
the reverse IP FQDN for the AMTRELAY query would be
“12.100.51.198.in-addr.arpa.”.</t>
<t>Note that the address family of the AMT tunnel is independent of the
address family for the multicast traffic.</t>
</section>
<section anchor="exampledeployments" title="Example Deployments">
<section anchor="exrx" title="Example Receiving Networks">
<section anchor="exrxisp" title="Internet Service Provider">
<t>One example of a receiving network is an Internet Service Provider (ISP)
that offers multicast ingest services to its subscribers, illustrated in
<xref target="figrxisp"/>.</t>
<t>In the example network below, subscribers can join (S,G)s with MLDv2 or
IGMPv3 as described in <xref target="RFC4604"/>, and the AMT gateway in this
ISP can receive and forward multicast traffic from one of the example sending
networks in <xref target="extx"/> by discovering the appropriate AMT relays with
a DNS
lookup for the AMTRELAY RR with the reverse IP of the source in the (S,G).</t>
<figure title="Receiving ISP Example" anchor="figrxisp"><artwork><![CDATA[
Internet
^ ^ Multicast-enabled
| | Receiving Network
+------|------------|-------------------------+
| | | |
| +--------+ +--------+ +=========+ |
| | Border |---| Border | | AMT | |
| | Router | | Router | | gateway | |
| +--------+ +--------+ +=========+ |
| | | | |
| +-----+------+-----------+--+ |
| | | |
| +-------------+ +-------------+ |
| | Agg Routers | .. | Agg Routers | |
| +-------------+ +-------------+ |
| / \ \ / \ |
| +---------------+ +---------------+ |
| |Access Systems | ....... |Access Systems | |
| |(CMTS/OLT/etc.)| |(CMTS/OLT/etc.)| |
| +---------------+ +---------------+ |
| | | |
+--------|------------------------|-----------+
| |
+---+-+-+---+---+ +---+-+-+---+---+
| | | | | | | | | |
/-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\
|_| |_| |_| |_| |_| |_| |_| |_| |_| |_|
Subscribers
]]></artwork></figure>
</section>
<section anchor="exoffice" title="Small Office">
<t>Another example receiving network is a small branch office that regularly
accesses some multicast content, illustrated in <xref target="figrxofficenm"/>.<
/t>
<t>This office has desktop devices that need to receive some multicast traffic,
so an AMT gateway runs on a LAN with these devices, to pull traffic in
through a non-multicast next-hop.</t>
<t>The office also hosts some mobile devices that have AMT gateway instances
embedded inside apps, in order to receive multicast traffic over their
non-multicast wireless LAN. (Note that the “Legacy Router” is a
simplification that’s meant to describe a variety of possible conditions;
for example it could be a device providing a split-tunnel VPN as described
in <xref target="RFC7359"/>, deliberately excluding multicast traffic for a VPN
tunnel, rather than a device which is incapable of multicast forwarding.)</t>
<figure title="Small Office (no multicast up)" anchor="figrxofficenm"><artwork><
![CDATA[
Internet
(non-multicast)
^
| Office Network
+----------|----------------------------------+
| | |
| +---------------+ (Wifi) Mobile apps |
| | Modem+ | Wifi | - - - - w/ embedded |
| | Router | AP | AMT gateways |
| +---------------+ |
| | |
| | |
| +----------------+ |
| | Legacy Router | |
| | (unicast) | |
| +----------------+ |
| / | \ |
| / | \ |
| +--------+ +--------+ +--------+=========+ |
| | Phones | | ConfRm | | Desks | AMT | |
| | subnet | | subnet | | subnet | gateway | |
| +--------+ +--------+ +--------+=========+ |
| |
+---------------------------------------------+
]]></artwork></figure>
<t>By adding an AMT relay to this office network as in <xref target="figrxoffice
"/>, it’s
possible to make use of multicast services from the example multicast-capable
ISP in <xref target="exrxisp"/>.</t>
<figure title="Small Office Example" anchor="figrxoffice"><artwork><![CDATA[
Multicast-capable ISP
^
| Office Network
+----------|----------------------------------+
| | |
| +---------------+ (Wifi) Mobile apps |
| | Modem+ | Wifi | - - - - w/ embedded |
| | Router | AP | AMT gateways |
| +---------------+ |
| | +=======+ |
| +---Wired LAN---| AMT | |
| | | relay | |
| +----------------+ +=======+ |
| | Legacy Router | |
| | (unicast) | |
| +----------------+ |
| / | \ |
| / | \ |
| +--------+ +--------+ +--------+=========+ |
| | Phones | | ConfRm | | Desks | AMT | |
| | subnet | | subnet | | subnet | gateway | |
| +--------+ +--------+ +--------+=========+ |
| |
+---------------------------------------------+
]]></artwork></figure>
<t>When multicast-capable networks are chained like this, with a network like
the one in <xref target="figrxoffice"/> receiving internet services from a
multicast-capable network like the one in <xref target="figrxisp"/>, it’s import
ant for
AMT gateways to reach the more local AMT relay, in order to avoid
accidentally tunneling multicast traffic from a more distant AMT relay with
unicast, and failing to utilize the multicast transport capabilities of the
network in <xref target="figrxisp"/>.</t>
</section>
</section>
<section anchor="extx" title="Example Sending Networks">
<section anchor="extxsnd" title="Sender-controlled Relays">
<t>When a sender network is also operating AMT relays to distribute multicast
traffic, as in <xref target="figtxrelay"/>, each address could appear as an AMTR
ELAY RR
for the reverse IP of the sender, or one or more domain names could appear
in AMTRELAY RRs, and the AMT relay addresses can be discovered by finding
A or AAAA records from those domain names.</t>
<figure title="Small Office Example" anchor="figtxrelay"><artwork><![CDATA[
Sender Network
+-----------------------------------+
| |
| +--------+ +=======+ +=======+ |
| | Sender | | AMT | | AMT | |
| +--------+ | relay | | relay | |
| | +=======+ +=======+ |
| | | | |
| +-----+------+----------+ |
| | |
+-----------|-----------------------+
v
Internet
(non-multicast)
]]></artwork></figure>
</section>
<section anchor="extxprv" title="Provider-controlled Relays">
<t>When an ISP offers a service to transmit outbound multicast traffic through
a forwarding network, it might also offer AMT relays in order to reach
receivers without multicast connectivity to the forwarding network, as in
<xref target="figtxisp"/>. In this case it’s recommended that the ISP also provi
de at
least one domain name for the AMT relays for use with the AMTRELAY RR.</t>
<t>When the sender wishes to use the relays provided by the ISP for
forwarding multicast traffic, an AMTRELAY RR should be configured to use
the domain name provided by the ISP, to allow for address reassignment of the
relays without forcing the sender to reconfigure the corresponding AMTRELAY
RRs.</t>
<figure title="Sending ISP Example" anchor="figtxisp"><artwork><![CDATA[
+--------+
| Sender |
+---+----+ Multicast-enabled
| Sending Network
+-----------|-------------------------------+
| v |
| +------------+ +=======+ +=======+ |
| | Agg Router | | AMT | | AMT | |
| +------------+ | relay | | relay | |
| | +=======+ +=======+ |
| | | | |
| +-----+------+--------+---------+ |
| | | |
| +--------+ +--------+ |
| | Border |---| Border | |
| | Router | | Router | |
| +--------+ +--------+ |
+-----|------------|------------------------+
| |
v v
Internet
(non-multicast)
]]></artwork></figure>
</section>
</section>
</section>
</section>
<section anchor="relay-discovery-operation" title="Relay Discovery Operation">
<section anchor="priority" title="Optimal Relay Selection">
<section anchor="overview" title="Overview">
<t>The reverse source IP DNS query of an AMTRELAY RR is a good way for a gateway
to discover a relay that is known to the sender.</t>
<t>However, it is NOT necessarily a good way to discover the best relay for that
gateway to use, because the RR will only provide information about relays
known to the source.</t>
<t>If there is an upstream relay in a network that is topologically closer to
the gateway and able to receive and forward multicast traffic from the sender,
that relay is better for the gateway to use, since more of the network path
uses native multicast, allowing more chances for packet replication. But since
that relay is not known to the sender, it won’t be advertised in the sender’s
reverse IP DNS record. An example network that illustrates this scenario is
outlined in <xref target="figrxoffice"/> from <xref target="exoffice"/>.</t>
<t>It’s only appropriate for an AMT gateway to discover an AMT relay by querying
an AMTRELAY RR owned by a sender when all of these conditions are met:</t>
<t><list style="numbers">
<t>The gateway needs to propagate a join of an (S,G) over AMT, because in
the gateway’s network, no RPF next hop toward the source can
propagate a native multicast join of the (S,G); and</t>
<t>The gateway is not already connected to a relay that forwards multicast
traffic from the source of the (S,G); and</t>
<t>The gateway is not configured to use a particular IP address for AMT
discovery, or a relay discovered with that IP is not able to forward
traffic from the source of the (S,G); and</t>
<t>The gateway is not able to find an upstream AMT relay with DNS-SD
<xref target="RFC6763"/>, using “_amt._udp” as the Service section of the querie
s, or a
relay discovered this way is not able to forward traffic from the source of
the (S,G) (as described in <xref target="trafficabsent"/> or <xref target="loade
d"/>); and</t>
<t>The gateway is not able to find an upstream AMT relay with the well-known
anycast addresses from Section 7 of <xref target="RFC7450"/>.</t>
</list></t>
<t>When the above conditions are met, the gateway has no path within its local
network that can receive multicast traffic from the source IP of the (S,G).</t>
<t>In this situation, the best way to find a relay that can forward the
required traffic is to use information that comes from the operator of the
sender. When the sender has configured an AMTRELAY RR, gateways can use the
DRIAD mechanism defined in this document to discover the relay information
provided by the sender.</t>
<t>Note that the DNS-SD service is not source-specific, so even though
when available, several methods of finding a more local source of
multicast traffic connectivity are preferred to using a relay
provided by an AMTRELAY RR, a gateway further upstream would still be
using the AMTRELAY RR unless the upstream network has a peering
that provides an alternative end-to-end multicast transport path for
the (S,G)’s traffic.</t>
</section>
<section anchor="ordering" title="Preference Ordering">
<t>This section defines a preference ordering for relay addresses during
the relay discovery process. Gateways are encouraged to implement a
Happy Eyeballs algorithm to try candidate relays concurrently, but even
gateways that do not implement a Happy Eyeballs algorithm SHOULD use
this ordering, except as noted.</t>
<t>When establishing an AMT tunnel to forward multicast data, it’s
very important for the discovery process to prioritize the network
topology considerations ahead of address selection considerations, in
order to gain the packet replication benefits from using multicast
instead of unicast tunneling in the multicast-capable portions of the
network path.</t>
<t>The intent of the advice and requirements in this section is to describe
how a gateway should make use of the concurrency provided by a Happy
Eyeballs algorithm to reduce the join latency, while still prioritizing
network efficiency considerations over Address Selection considerations.</t>
<t>Section 4 of <xref target="RFC8305"/> requires a Happy Eyeballs algorithm to
sort
the addresses with the Destination Address Selection defined in Section
6 of <xref target="RFC6724"/>, but for the above reasons, that requirement is su
perseded
in the AMT discovery use case by the following considerations:</t>
<t><list style="symbols">
<t>Prefer Local Relays <vspace blankLines='1'/>
<xref target="figrxoffice"/> and <xref target="exoffice"/> provide a motivating
example to prefer
DNS-SD <xref target="RFC6763"/> for discovery strictly ahead of using the AMTRE
LAY RR
controlled by the sender for AMT discovery. <vspace blankLines='1'/>
For this reason, it’s RECOMMENDED that AMT gateways by default perform
service discovery using DNS Service Discovery (DNS-SD) <xref target="RFC6763"/>
for
_amt._udp.&lt;domain&gt; (with &lt;domain&gt; chosen as described in Section 11
of
<xref target="RFC6763"/>) and use the AMT relays discovered that way in prefere
nce to
AMT relays discoverable via the mechanism defined in this document
(DRIAD).</t>
<t>Prefer Relays Managed by the Containing Network <vspace blankLines='1'/>
When no local relay is discoverable with DNS-SD, it still may be the
case that a relay local to the receiver is operated by the network
providing transit services to the receiver. <vspace blankLines='1'/>
In this case, when the network cannot make the relay discoverable via
DNS-SD, the network SHOULD use the well-known anycast addresses from
Section 7 of <xref target="RFC7450"/> to route discovery traffic to the relay m
ost
appropriate to the receiver’s gateway. <vspace blankLines='1'/>
Accordingly, the gateway SHOULD by default discover a relay with the
well-known AMT anycast addresses as the second preference after DNS-SD
when searching for a local relay.</t>
<t>Let Sender Manage Relay Provisioning <vspace blankLines='1'/>
A related motivating example is provided by considering a sender whose
traffic can be forwarded by relays in a sender-controlled network
like <xref target="figtxrelay"/> in <xref target="extxsnd"/>, and also by relay
s in a
provider-controlled network like <xref target="figtxisp"/> in <xref target="ext
xprv"/>, with
different cost and scalability profiles for the different options. <vspace bla
nkLines='1'/>
In this example about the sending-side network, the precedence field
described in <xref target="rrdef-precedence"/> is a critical method of control
so
that senders can provide the appropriate guidance to gateways
during the discovery process, in order to manage load and failover
scenarios in a manner that operates well with the sender’s
provisioning strategy for horizontal scaling of AMT relays. <vspace blankLines
='1'/>
Therefore, after DNS-SD, the precedence from the RR MUST be used for
sorting preference ahead of the Destination Address Selection ordering
from Section 6 of <xref target="RFC6724"/>, so that only relay IPs with the sam
e
precedence are directly compared according to the Destination Address
Selection ordering.</t>
</list></t>
<t>Accordingly, AMT gateways SHOULD by default prefer relays in this order:</t>
<figure><artwork><![CDATA[
1. DNS-SD
2. Anycast addresses from Section 7 of [RFC7450]
3. DRIAD
]]></artwork></figure>
<t>This default behavior MAY be overridden by administrative configuration where
other behavior is more appropriate for the gateway within its network.</t>
<t>Among relay addresses that have an equivalent preference as described above,
a
Happy Eyeballs algorithm for AMT SHOULD use the Destination Address Selection
defined in Section 6 of <xref target="RFC6724"/>.</t>
<t>Among relay addresses that still have an equivalent preference after the
above orderings, a gateway SHOULD make a non-deterministic choice (such as
a pseudorandom selection) for relay preference ordering, in order to
support load balancing by DNS configurations that provide many relay
options.</t>
<t>The gateway MAY introduce a bias in the non-deterministic choice according
to information obtained out of band or from a historical record about
network topology, timing information, or the response to a probing
mechanism, that indicates some expected benefits from selecting some relays
in preference to others. Details about the structure and collection of
this information are out of scope for this document, but a gateway in
possession of such information MAY use it to prefer topologically closer
relays.</t>
<t>Within the above constraints, gateways MAY make use of other considerations
from Section 4 of <xref target="RFC8305"/>, such as the address family interleav
ing
strategies, to produce a final ordering of candidate relay addresses.</t>
<t>Note also that certain relay addresses might be excluded from consideration
by the hold-down timers described in <xref target="trafficabsent"/> or <xref tar
get="loaded"/>. These
relays constitute “unusable destinations” under Rule 1 of the Destination
Address Selection, and are also not part of the superseding considerations
described above.</t>
<t>The discovery and connection process for the relay addresses in the above
described ordering MAY operate in parallel, subject to delays prescribed
by the Happy Eyeballs requirements described in Section 5 of <xref target="RFC83
05"/>
for successively launched concurrent connection attempts.</t>
</section>
<section anchor="connecting-to-multiple-relays" title="Connecting to Multiple Re
lays">
<t>In some deployments, it may be useful for a gateway to connect to
multiple upstream relays and subscribe to the same traffic, in order to
support an active/active failover model. A gateway SHOULD NOT be
configured to do so without guaranteeing that adequate bandwidth is
available.</t>
<t>A gateway configured to do this SHOULD still use the same preference
ordering logic from <xref target="ordering"/> for each connection. (Note that
this ordering allows for overriding by explicit administrative
configuration where required.)</t>
</section>
</section>
<section anchor="happy" title="Happy Eyeballs">
<section anchor="overview-1" title="Overview">
<t>Often, multiple choices of relay will exist for a gateway using DRIAD
for relay discovery. Happy Eyeballs <xref target="RFC8305"/> provides a widely
deployed and generalizable strategy for probing multiple possible
connections in parallel, therefore it is RECOMMENDED that DRIAD-capable
gateways implement a Happy Eyeballs algorithm to support fast discovery
of the most preferred available relay, by probing multiple relays
concurrently.</t>
<t>The parallel discovery logic of a Happy Eyeballs algorithm serves to
reduce join latency for the initial join of an SSM channel. This section
and the preference ordering of relays defined in <xref target="ordering"/> taken
together provide guidance on use of a Happy Eyeballs algorithm for the
case of establishing AMT connections.</t>
<t>Note that according to the definition in <xref target="connection-def"/> of t
his
document, establishing the connection occurs before sending a membership
report. As described in Section 5 of <xref target="RFC8305"/>, only one of the
successful connections will be used, and the others are all canceled
or ignored. In the context of an AMT connection, this means the gateway
will send the membership reports that subscribe to traffic only for the
chosen connection, after the Happy Eyeballs algorithm resolves.</t>
</section>
<section anchor="algorithm-guidelines" title="Algorithm Guidelines">
<t>During the “Initiation of asynchronous DNS queries” phase described in
Section 3 of <xref target="RFC8305"/>), a gateway attempts to resolve the domain
names
listed in <xref target="priority"/>. This consists of resolving the SRV queries
for
DNS-SD domains for the AMT service, as well as the AMTRELAY query for the
reverse IP domain defined in this document.</t>
<t>Each of the SRV and AMTRELAY responses might contain one or more IP
addresses, (as with type 1 or type 2 AMTRELAY responses, or when the
SRV Additional Data section of the SRV response contains the address
records for the target, as urged by <xref target="RFC2782"/>), or they might
contain only domain names (as with type 3 responses from <xref target="rtype"/>,
or
an SRV response without an additional data section).</t>
<t>When present, IP addresses in the initial response provide resolved
destination address candidates for the “Sorting of resolved
destination addresses” phase described in Section 4 of <xref target="RFC8305"/>)
,
whereas domain names without IP addresses in the initial response result
in another set of queries for AAAA and A records, whose responses provide
the candidate resolved destination addresses.</t>
<t>Since the SRV or AMTRELAY responses don’t have a bound on the count of
queries that might be generated aside from the bounds imposed by the
DNS resolver, it’s important for the gateway to provide a rate limit on
the DNS queries. The DNS query functionality is expected to follow
ordinary standards and best practices for DNS clients. A gateway MAY
use an existing DNS client implementation that does so, and MAY rely on
that client’s rate limiting logic to avoid issuing excessive queries.
Otherwise, a gateway MUST provide a rate limit for the DNS queries, and
its default settings SHOULD NOT permit more than 10 queries for any
100-millisecond period (though this MAY be overridable by administrative
configuration).</t>
<t>As the resolved IP addresses arrive, the Happy Eyeballs algorithm
sorts them according to the requirements and recommendations given in
<xref target="ordering"/>, and attempts connections with the corresponding relay
s
under the algorithm restrictions and guidelines given in <xref target="RFC8305"/
> for
the “Establishment of one connection, which cancels all other attempts”
phase. As described in Section 3 of <xref target="RFC8305"/>, DNS resolution is
treated as asynchronous, and connection initiation does not wait
for lagging DNS responses.</t>
</section>
<section anchor="connection-def" title="Connection Definition">
<t>Section 5 of <xref target="RFC8305"/> non-normatively describes success at a
connection attempt as “generally when the TCP handshake completes”.</t>
<t>There is no normative definition of a connection in the AMT specification
<xref target="RFC7450"/>, and there is no TCP connection involved in an AMT tunn
el.</t>
<t>However, the concept of an AMT connection in the context of a Happy
Eyeballs algorithm is a useful one, and so this section provides the
following normative definition:</t>
<t><list style="symbols">
<t>An AMT connection is established successfully when the gateway receives
from a newly discovered relay a valid Membership Query message
(Section 5.1.4 of <xref target="RFC7450"/>) that does not have the L flag set.</
t>
</list></t>
<t>See <xref target="loaded"/> of this document for further information about th
e
relevance of the L flag to the establishment of a Happy Eyeballs
connection. See <xref target="flowhealth"/> for an overview of how to respond
if the connection does not provide multicast connectivity to the
source.</t>
<t>To “cancel” this kind of AMT connection for the Happy Eyeballs algorithm,
a gateway that has not sent a membership report with a subscription
would simply stop sending AMT packets for that connection. A
gateway only sends a membership report to a connection it has chosen as
the most preferred available connection.</t>
</section>
</section>
<section anchor="guidelines-for-restarting-discovery" title="Guidelines for Rest
arting Discovery">
<section anchor="overview-2" title="Overview"> <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.12 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<t>It’s expected that gateways deployed in different environments will use a <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draf
variety of heuristics to decide when it’s appropriate to restart the relay t-ietf-mboned-driad-amt-discovery-13" number="8777" submissionType="IETF" catego
discovery process, in order to meet different performance goals (for example, ry="std" consensus="true" updates="7450" obsoletes="" xml:lang="en" tocInclude="
to fulfill different kinds of service level agreements).</t> true" sortRefs="true" symRefs="true" version="3">
<t>In general, restarting the discovery process is always safe for <!-- xml2rfc v2v3 conversion 2.39.0 -->
the gateway and relay during any of the events listed in this section, <front>
but may cause a disruption in the forwarded traffic if the discovery <title abbrev="DRIAD">DNS Reverse IP Automatic Multicast
process results in choosing a different relay, because this changes Tunneling (AMT) Discovery</title>
the RPF forwarding tree for the multicast traffic upstream of the gateway. <seriesInfo name="RFC" value="8777"/>
This is likely to result in some dropped or duplicated packets from channels <author initials="J." surname="Holland" fullname="Jake Holland">
actively being tunneled from the old relay to the gateway.</t> <organization>Akamai Technologies, Inc.</organization>
<address>
<postal>
<street>150 Broadway</street>
<city>Cambridge</city><region>MA</region><code>02144</code>
<country>United States of America</country>
</postal>
<email>jakeholland.net@gmail.com</email>
</address>
</author>
<date year="2020" month="April"/>
<area>Ops</area>
<workgroup>Mboned</workgroup>
<t>The degree of impact on the traffic from choosing a different relay may <keyword>example</keyword>
depend on network conditions between the gateway and the new relay, as well
as the network conditions and topology between the sender and the new relay,
as this may cause the relay to propagate a new RPF join toward the sender.</t>
<t>Balancing the expected impact on the tunneled traffic against likely <abstract>
or observed problems with an existing connection to the relay is the goal <t>This document updates RFC 7450, "Automatic Multicast Tunneling" (or AM
of the heuristics that gateways use to determine when to restart the T), by
discovery process.</t> modifying the relay discovery process. A new DNS resource record named
AMTRELAY is defined for publishing AMT relays for source-specific multicast
channels. The reverse IP DNS zone for a multicast sender's IP address is
configured to use AMTRELAY resource records to advertise a set of AMT relays
that can receive and forward multicast traffic from that sender over an AMT
tunnel. Other extensions and clarifications to the relay discovery
process are also defined.</t>
</abstract>
</front>
<middle>
<section anchor="intro" numbered="true" toc="default">
<name>Introduction</name>
<t>This document defines DNS Reverse IP AMT Discovery (DRIAD), a mechanis
m for
AMT gateways to discover AMT relays that are capable of forwarding multicast
traffic from a known source IP address.</t>
<t>AMT (Automatic Multicast Tunneling) is defined in <xref target="RFC745
0" format="default"/> and provides
a method to transport multicast traffic over a unicast tunnel in order to
traverse network segments that are not multicast capable.</t>
<t><xref target="RFC7450" sectionFormat="of" section="4.1.5"/> explains t
hat the relay selection process
for AMT is intended to be more flexible than the particular discovery method
described in that document. That section further explains that the selection pr
ocess
might need to depend on the source of the multicast traffic in some
deployments, since a relay must be able to receive multicast traffic from the
desired source in order to forward it.</t>
<t><xref target="RFC7450" sectionFormat="of" section="4.1.5"/> goes on
to suggest DNS-based queries as a possible solution: DRIAD is DNS based.
This solution also
addresses the relay discovery issues in the "Disadvantages of this configuratio
n" lists in Sections
<xref target="RFC8313" sectionFormat="bare" section="3.3"/> and
<xref target="RFC8313" sectionFormat="bare" section="3.4"/> of <xref
target="RFC8313"/>.</t>
<t>The goal for DRIAD is to enable multicast connectivity between separat
e
multicast-enabled networks without preconfiguring any
peering arrangements between the networks when neither the sending nor the rece
iving network
is connected to a multicast-enabled backbone.</t>
<t>This document extends the relay discovery procedure described in <xref
target="RFC7450" sectionFormat="of" section="5.2.3.4"/>.</t>
<section anchor="background" numbered="true" toc="default">
<name>Background</name>
<t>The reader is assumed to be familiar with the basic DNS concepts
described in <xref target="RFC1034" format="default"/>, <xref target="RFC1035"
format="default"/>, and the subsequent documents that update them, particularly
<xref target="RFC2181" format="default"/>.</t>
<t>The reader is also assumed to be familiar with the concepts and termi
nology
regarding source-specific multicast as described in <xref target="RFC4607" form
at="default"/> and the
use of Internet Group Management Protocol Version 3 (IGMPv3) <xref
target="RFC3376" format="default"/> and Multicast Listener Discovery Version 2
(MLDv2) <xref target="RFC3810" format="default"/> for group management of
source-specific multicast channels, as described in <xref target="RFC4604" form
at="default"/>.</t>
<t>The reader should also be familiar with AMT, particularly the termino
logy
listed in Sections <xref target="RFC7450" sectionFormat="bare" section="3.2"/>
and <xref target="RFC7450" sectionFormat="bare" section="3.3"/> of <xref
target="RFC7450"/>.</t>
</section>
<section anchor="terminology" numbered="true" toc="default">
<name>Terminology</name>
<section anchor="relays-and-gateways" numbered="true" toc="default">
<name>Relays and Gateways</name>
<t>When reading this document, it's especially helpful to recall that
once
an AMT tunnel is established, the relay receives native multicast traffic
and sends unicast tunnel-encapsulated traffic to the gateway. The gateway
receives the tunnel-encapsulated packets, decapsulates them, and forwards
them as native multicast packets, as illustrated in <xref target="figtunnel" fo
rmat="default"/>.</t>
<figure anchor="figtunnel">
<name>AMT Tunnel Illustration</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
<t>The non-normative advice in this section should be treated as guidelines to Multicast +-----------+ Unicast +-------------+ Multicast
operators and implementors working with AMT systems that can use DRIAD as >---------> | AMT relay | >=======> | AMT gateway | >--------->
part of the relay discovery process.</t> +-----------+ +-------------+
]]></artwork>
</figure>
</section>
<section anchor="definitions" numbered="true" toc="default">
<name>Definitions</name>
<table align="center">
<name>Definitions</name>
<thead>
<tr>
<th align="right">Term</th>
<th align="left">Definition</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">(S,G)</td>
<td align="left">A source-specific multicast channel, as describ
ed in <xref target="RFC4607" format="default"/>. A pair of IP addresses with a s
ource host IP and destination group IP.</td>
</tr>
<tr>
<td align="right">CMTS</td>
<td align="left">Cable Modem Termination System</td>
</tr>
<tr>
<td align="right">discovery broker</td>
<td align="left">A broker or load balancer for AMT relay
discovery, as mentioned in <xref
target="RFC7450" sectionFormat="of" section="4.2.1.1"/>.</td>
</tr>
<tr>
<td align="right">downstream</td>
<td align="left">Further from the source of traffic, as describe
d in <xref target="RFC7450" format="default"/>.</td>
</tr>
<tr>
<td align="right">FQDN</td>
<td align="left">Fully Qualified Domain Name, as described in <x
ref target="RFC8499" format="default"/>.</td>
</tr>
<tr>
<td align="right">gateway</td>
<td align="left">An AMT gateway, as described in <xref target="R
FC7450" format="default"/>.</td>
</tr>
<tr>
<td align="right">L flag</td>
<td align="left">The "Limit" flag described in <xref target="RFC
7450" sectionFormat="of" section="5.1.4.4"/>.</td>
</tr>
<tr>
<td align="right">OLT</td>
<td align="left">Optical Line Terminal</td>
</tr>
<tr>
<td align="right">relay</td>
<td align="left">An AMT relay, as described in <xref target="RFC
7450" format="default"/>.</td>
</tr>
<tr>
<td align="right">RPF</td>
<td align="left">Reverse Path Forwarding, as described in <xref
target="RFC5110" format="default"/>.</td>
</tr>
<tr>
<td align="right">RR</td>
<td align="left">A DNS Resource Record, as described in <xref ta
rget="RFC1034" format="default"/>.</td>
</tr>
<tr>
<td align="right">RRType</td>
<td align="left">A DNS Resource Record Type, as described in <xr
ef target="RFC1034" format="default"/>.</td>
</tr>
<tr>
<td align="right">SSM</td>
<td align="left">Source-specific multicast, as described in <xre
f target="RFC4607" format="default"/>.</td>
</tr>
<tr>
<td align="right">upstream</td>
<td align="left">Closer to the source of traffic, as described i
n <xref target="RFC7450" format="default"/>.</td>
</tr>
</tbody>
</table>
</section>
<section anchor="reqs" numbered="true" toc="default">
<name>Requirements Language</name>
<t>
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQ
UIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14
>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
</section>
</section>
</section>
<section anchor="relay-discovery-overview" numbered="true" toc="default">
<name>Relay Discovery Overview</name>
<section anchor="basic-mechanics" numbered="true" toc="default">
<name>Basic Mechanics</name>
<t>The AMTRELAY resource record (RR) defined in this document is used to
publish the IP address or domain name of a set of AMT relays or discovery
brokers that can receive, encapsulate, and forward multicast traffic from
a particular sender.</t>
<t>The sender is the owner of the RR and configures the zone so that it
contains a set of RRs that provide the addresses or domain names of AMT
relays (or discovery brokers that advertise relays) that can receive
multicast IP traffic from that sender.</t>
<t>This enables AMT gateways in remote networks to discover an AMT relay
that
is capable of forwarding traffic from the sender. This, in turn, enables those
AMT gateways to receive the multicast traffic tunneled over a unicast AMT
tunnel from those relays and then pass the multicast packets into
networks or applications that are using the gateway to subscribe to traffic
from that sender.</t>
<t>This mechanism only works for source-specific multicast (SSM) channel
s. The
source address of the (S,G) is reversed and used as an index into one of the
reverse mapping trees (in-addr.arpa for IPv4, as described in <xref
target="RFC1035" sectionFormat="of" section="3.5"/>, or ip6.arpa for IPv6, as
described in <xref target="RFC3596" sectionFormat="of" section="2.5"/>).
</t>
<t>This mechanism should be treated as an extension of the AMT relay dis
covery
procedure described in <xref target="RFC7450" sectionFormat="of" section="5.2.3
.4"/>. A gateway that
supports this method of AMT relay discovery <bcp14>SHOULD</bcp14> use this meth
od
whenever it's performing the relay discovery procedure, the source IP
addresses for desired (S,G)s are known to the gateway, and conditions match
the requirements outlined in <xref target="priority" format="default"/>.</t>
<t>Some detailed example use cases are provided in <xref target="example
deployments" format="default"/>, and
other applicable example topologies appear in Sections <xref
target="RFC8313" sectionFormat="bare" section="3.3"/>,
<xref target="RFC8313" sectionFormat="bare" section="3.4"/>, and <xref
target="RFC8313" sectionFormat="bare" section="3.5"/> of <xref target="RFC8313"
/>.</t>
</section>
<section anchor="signaling-and-discovery" numbered="true" toc="default">
<name>Signaling and Discovery</name>
<t>This section describes a typical example of the end-to-end process fo
r
signaling a receiver's join of an SSM channel that relies on an AMTRELAY
RR.</t>
<t>The example in <xref target="figmessaging" format="default"/> contain
s two multicast-enabled
networks that are both connected to the internet with non-multicast-capable
links and which have no direct association with each other.</t>
<t>A content provider operates a sender, which is a source of multicast
traffic
inside a multicast-capable network.</t>
<t>An end user who is a customer of the content provider has a multicast
-capable
Internet Service Provider (ISP), which operates a receiving network that uses a
n
AMT gateway. The AMT gateway is DRIAD capable.</t>
<t>The content provider provides the user with a receiving application t
hat
tries to subscribe to at least one (S,G). This receiving application could,
for example, be a file transfer system using File Delivery over Unidirectional
Transport (FLUTE) <xref target="RFC6726" format="default"/>, a live
video stream using RTP <xref target="RFC3550" format="default"/>, or any other
application that might
subscribe to an SSM channel.</t>
<figure anchor="figmessaging">
<name>DRIAD Messaging</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
+---------------+
| Sender |
| | | 2001:db8::a |
| | +---------------+
|Data| |
|Flow| Multicast |
\| |/ Network |
\ / | 5: Propagate RPF for Join(S,G)
\ / +---------------+
\/ | AMT relay |
| 2001:db8:c::f |
+---------------+
| 4: Gateway connects to Relay,
sends Join(S,G) over tunnel
|
Unicast
Tunnel | 3: --> DNS Query: type=AMTRELAY,
/ a.0.0.0.0.0.0.0.0.0.0.0.
^ | / 0.0.0.0.0.0.0.0.0.0.0.0.
| / 8.b.d.0.1.0.0.2.ip6.arpa
| | / <-- Response:
Join/Leave +-------------+ AMTRELAY=2001:db8:c::f
Signals | AMT gateway |
| +-------------+
| | 2: Propagate RPF for Join(S,G)
| Multicast |
Network |
| 1: Join(S=2001:db8::a,G=ff3e::8000:d)
+-------------+
| Receiver |
| (end user) |
+-------------+
]]></artwork>
</figure>
<t>In this simple example, the sender IP is 2001:db8::a, which is sendin
g
traffic to the group address ff3e::8000:d, and the relay IP is
2001:db8::c:f.</t>
<t>The content provider has previously configured the DNS zone that
contains the reverse IP domain name for the sender's IP address
so that it provides an AMTRELAY RR with the relay's IP address
(see <xref target="rpformat" format="default"/> for details about the AMTRELAY
RR format and
semantics). As described in <xref target="RFC3596"
sectionFormat="of" section="2.5"/>, the
reverse IP FQDN of the sender's address "2001:db8::a" is:</t>
<sourcecode name="" type=""><![CDATA[
a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.
arpa.
]]></sourcecode>
<t>The sequence of events depicted in <xref target="figmessaging" format
="default"/> is as follows:</t>
<ol spacing="normal" type="1">
<li>The end user starts the app, which issues a join to the (S,G):
(2001:db8::a, ff3e::8000:d).</li>
<li>The join propagates with RPF through the receiver's multicast-enab
led
network with PIM <xref target="RFC7761" format="default"/> or another
multicast routing mechanism until the AMT gateway receives a signal to
join the (S,G).</li>
<li>
<t>The AMT gateway performs a reverse DNS lookup for the AMTRELAY
RRType by sending an AMTRELAY RRType query for the reverse IP domain
name
for the sender's source IP address (the S from the (S,G)). </t>
<t>
The DNS resolver for the AMT gateway uses ordinary DNS recursive
resolution until it has the authoritative result that the content
provider configured, which informs the AMT gateway that the relay address
is 2001:db8::c:f.</t>
</li>
<li>The AMT gateway performs AMT handshakes with the AMT relay as desc
ribed
in <xref target="RFC7450" section="4" sectionFormat="of"/>, then forwards a mem
bership report to the
relay, indicating subscription to the (S,G).</li>
<li>The relay propagates the join through its network toward the
sender and then forwards the appropriate AMT-encapsulated traffic to t
he
gateway, which decapsulates and forwards it as a native multicast through
its downstream network to the end user.</li>
</ol>
<t>In the case of an IPv4 (S,G), the only difference in the AMT relay
discovery process is the use of the in-addr.arpa reverse IP domain name,
as described in <xref target="RFC1035" sectionFormat="of" section="3.5"/>, inst
ead of the in6.arpa
domain name. For example, if the (S,G) is (198.51.100.12, 232.252.0.2),
the reverse IP FQDN for the AMTRELAY query would be
"12.100.51.198.in-addr.arpa.".</t>
<t>Note that the address family of the AMT tunnel is independent of the
address family for the multicast traffic.</t>
</section>
<section anchor="exampledeployments" numbered="true" toc="default">
<name>Example Deployments</name>
<section anchor="exrx" numbered="true" toc="default">
<name>Example Receiving Networks</name>
<section anchor="exrxisp" numbered="true" toc="default">
<name>Internet Service Provider</name>
<t>One example of a receiving network is an Internet Service Provide
r (ISP)
that offers multicast ingest services to its subscribers, illustrated in
<xref target="figrxisp" format="default"/>.</t>
<t>In the example network below, subscribers can join (S,G)s with ML
Dv2 or
IGMPv3 as described in <xref target="RFC4604" format="default"/>, and the AMT g
ateway in this
ISP can receive and forward multicast traffic from one of the example sending
networks in <xref target="extx" format="default"/> by discovering the appropria
te AMT relays with a DNS
lookup for the AMTRELAY RR with the reverse IP of the source in the (S,G).</t>
<figure anchor="figrxisp">
<name>Receiving ISP Example</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
Internet
^ ^ Multicast-enabled
| | Receiving Network
+------|------------|-------------------------+
| | | |
| +--------+ +--------+ +=========+ |
| | Border |---| Border | | AMT | |
| | Router | | Router | | gateway | |
| +--------+ +--------+ +=========+ |
| | | | |
| +-----+------+-----------+--+ |
| | | |
| +-------------+ +-------------+ |
| | Agg Routers | .. | Agg Routers | |
| +-------------+ +-------------+ |
| / \ \ / \ |
| +---------------+ +---------------+ |
| |Access Systems | ....... |Access Systems | |
| |(CMTS/OLT/etc.)| |(CMTS/OLT/etc.)| |
| +---------------+ +---------------+ |
| | | |
+--------|------------------------|-----------+
| |
+---+-+-+---+---+ +---+-+-+---+---+
| | | | | | | | | |
/-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\
|_| |_| |_| |_| |_| |_| |_| |_| |_| |_|
</section> Subscribers
<section anchor="updates-to-restarting-events" title="Updates to Restarting Even ]]></artwork>
ts"> </figure>
</section>
<section anchor="exoffice" numbered="true" toc="default">
<name>Small Office</name>
<t>Another example receiving network is a small branch office that r
egularly
accesses some multicast content, illustrated in <xref target="figrxofficenm" fo
rmat="default"/>.</t>
<t>This office has desktop devices that need to receive some multica
st traffic,
so an AMT gateway runs on a LAN with these devices to pull traffic in
through a non-multicast next hop.</t>
<t>The office also hosts some mobile devices that have AMT gateway i
nstances
embedded inside apps in order to receive multicast traffic over their
non-multicast wireless LAN. (Note that the "Legacy Router" is a
simplification that's meant to describe a variety of possible conditions;
for example, it could be a device providing a split-tunnel VPN as described
in <xref target="RFC7359" format="default"/>, deliberately excluding multicast
traffic for a VPN
tunnel, rather than a device that is incapable of multicast forwarding.)</t>
<figure anchor="figrxofficenm">
<name>Small Office (No Multicast Up)</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
Internet
(non-multicast)
^
| Office Network
+----------|----------------------------------+
| | |
| +---------------+ (Wifi) Mobile apps |
| | Modem+ | Wifi | - - - - w/ embedded |
| | Router | AP | AMT gateways |
| +---------------+ |
| | |
| | |
| +----------------+ |
| | Legacy Router | |
| | (unicast) | |
| +----------------+ |
| / | \ |
| / | \ |
| +--------+ +--------+ +--------+=========+ |
| | Phones | | ConfRm | | Desks | AMT | |
| | subnet | | subnet | | subnet | gateway | |
| +--------+ +--------+ +--------+=========+ |
| |
+---------------------------------------------+
]]></artwork>
</figure>
<t>By adding an AMT relay to this office network as in <xref target=
"figrxoffice" format="default"/>, it's
possible to make use of multicast services from the example multicast-capable
ISP in <xref target="exrxisp" format="default"/>.</t>
<figure anchor="figrxoffice">
<name>Small Office Example</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
Multicast-capable ISP
^
| Office Network
+----------|----------------------------------+
| | |
| +---------------+ (Wifi) Mobile apps |
| | Modem+ | Wifi | - - - - w/ embedded |
| | Router | AP | AMT gateways |
| +---------------+ |
| | +=======+ |
| +---Wired LAN---| AMT | |
| | | relay | |
| +----------------+ +=======+ |
| | Legacy Router | |
| | (unicast) | |
| +----------------+ |
| / | \ |
| / | \ |
| +--------+ +--------+ +--------+=========+ |
| | Phones | | ConfRm | | Desks | AMT | |
| | subnet | | subnet | | subnet | gateway | |
| +--------+ +--------+ +--------+=========+ |
| |
+---------------------------------------------+
]]></artwork>
</figure>
<t>When multicast-capable networks are chained like this, with a net
work like
the one in <xref target="figrxoffice" format="default"/> receiving Internet ser
vices from a
multicast-capable network like the one in <xref target="figrxisp" format="defau
lt"/>, it's important for
AMT gateways to reach the more local AMT relay in order to avoid
accidentally tunneling multicast traffic from a more distant AMT relay with
unicast and failing to utilize the multicast transport capabilities of the
network in <xref target="figrxisp" format="default"/>.</t>
</section>
</section>
<section anchor="extx" numbered="true" toc="default">
<name>Example Sending Networks</name>
<section anchor="extxsnd" numbered="true" toc="default">
<name>Sender-Controlled Relays</name>
<t>When a sender network is also operating AMT relays to distribute
multicast
traffic, as in <xref target="figtxrelay" format="default"/>, each address could
appear as an AMTRELAY RR
for the reverse IP of the sender. Alternately, one or more domain names could a
ppear
in AMTRELAY RRs, and the AMT relay addresses can be discovered by finding
A or AAAA records from those domain names.</t>
<figure anchor="figtxrelay">
<name>Small Office Example</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
Sender Network
+-----------------------------------+
| |
| +--------+ +=======+ +=======+ |
| | Sender | | AMT | | AMT | |
| +--------+ | relay | | relay | |
| | +=======+ +=======+ |
| | | | |
| +-----+------+----------+ |
| | |
+-----------|-----------------------+
v
Internet
(non-multicast)
]]></artwork>
</figure>
</section>
<section anchor="extxprv" numbered="true" toc="default">
<name>Provider-Controlled Relays</name>
<t>When an ISP offers a service to transmit outbound multicast traff
ic through
a forwarding network, it might also offer AMT relays in order to reach
receivers without multicast connectivity to the forwarding network, as in
<xref target="figtxisp" format="default"/>. In this case, it's recommended that
the ISP also provide at
least one domain name for the AMT relays for use with the AMTRELAY RR.</t>
<t>When the sender wishes to use the relays provided by the ISP for
forwarding multicast traffic, an AMTRELAY RR should be configured to use
the domain name provided by the ISP to allow for address reassignment of the
relays without forcing the sender to reconfigure the corresponding AMTRELAY
RRs.</t>
<figure anchor="figtxisp">
<name>Sending ISP Example</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
+--------+
| Sender |
+---+----+ Multicast-enabled
| Sending Network
+-----------|-------------------------------+
| v |
| +------------+ +=======+ +=======+ |
| | Agg Router | | AMT | | AMT | |
| +------------+ | relay | | relay | |
| | +=======+ +=======+ |
| | | | |
| +-----+------+--------+---------+ |
| | | |
| +--------+ +--------+ |
| | Border |---| Border | |
| | Router | | Router | |
| +--------+ +--------+ |
+-----|------------|------------------------+
| |
v v
Internet
(non-multicast)
]]></artwork>
</figure>
</section>
</section>
</section>
</section>
<section anchor="relay-discovery-operation" numbered="true" toc="default">
<name>Relay Discovery Operation</name>
<section anchor="priority" numbered="true" toc="default">
<name>Optimal Relay Selection</name>
<section anchor="overview" numbered="true" toc="default">
<name>Overview</name>
<t>The reverse source IP DNS query of an AMTRELAY RR is a good way for
a gateway
to discover a relay that is known to the sender.</t>
<t>However, it is *not* necessarily a good way to discover the best re
lay for that
gateway to use, because the RR will only provide information about relays
known to the source.</t>
<t>If there is an upstream relay in a network that is topologically cl
oser to
the gateway and is able to receive and forward multicast traffic from the sende
r,
that relay is better for the gateway to use since more of the network path
uses native multicast, allowing more chances for packet replication. But since
that relay is not known to the sender, it won't be advertised in the sender's
reverse IP DNS record. An example network that illustrates this scenario is
outlined in <xref target="figrxoffice" format="default"/> from <xref target="ex
office" format="default"/>.</t>
<t>It's only appropriate for an AMT gateway to discover an AMT relay b
y querying
an AMTRELAY RR owned by a sender when all of these conditions are met:</t>
<ol spacing="normal" type="1">
<li>The gateway needs to propagate a join of an (S,G) over AMT becau
se in
the gateway's network, no RPF next hop toward the source can
propagate a native multicast join of the (S,G);</li>
<li>The gateway is not already connected to a relay that forwards mu
lticast
traffic from the source of the (S,G);</li>
<li>The gateway is not configured to use a particular IP address for
AMT
discovery, or a relay discovered with that IP is not able to forward
traffic from the source of the (S,G);</li>
<li>The gateway is not able to find an upstream AMT relay with
DNS-based Service Discovery (DNS-SD)
<xref target="RFC6763" format="default"/> using "_amt._udp" as the Service sect
ion of the queries, or a
relay discovered this way is not able to forward traffic from the source of
the (S,G) (as described in <xref target="trafficabsent" format="default"/> and
<xref target="loaded" format="counter"/>); and</li>
<li>The gateway is not able to find an upstream AMT relay with the w
ell-known
anycast addresses from <xref target="RFC7450" sectionFormat="of" section="7"/>.
</li>
</ol>
<t>When all of the above conditions are met, the gateway has no path w
ithin its local
network that can receive multicast traffic from the source IP of the (S,G).</t>
<t>In this situation, the best way to find a relay that can forward th
e
required traffic is to use information that comes from the operator of the
sender. When the sender has configured an AMTRELAY RR, gateways can use the
DRIAD mechanism defined in this document to discover the relay information
provided by the sender.</t>
<t>Note that the above conditions are designed to prefer the use of
a local AMT relay if one can be discovered. However, note also
that the network upstream of the locally discovered relay would
still need to receive traffic from the sender of the (S,G) in order
to forward it. Therefore, unless the upstream network contains the
sender or has a multicast-capable peering with a network that can
forward traffic from the sender, the upstream network might still
use AMT to ingest the traffic from a network that can receive
traffic from the sender. If this is the case, the upstream AMT
gateway could still rely on the AMTRELAY RR provided by the sender,
even though the AMTRELAY RR is not directly used by gateways
topologically closer to the receivers. For a concrete example of
such a situation, consider the network in <xref target="figrxoffice"/>
connected as one
of the customers to the network in <xref target="figrxisp"/>.</t>
</section>
<section anchor="ordering" numbered="true" toc="default">
<name>Preference Ordering</name>
<t>This section defines a preference ordering for relay addresses duri
ng
the relay discovery process. Gateways are encouraged to implement a
Happy Eyeballs <xref target="RFC8305"/> algorithm to try candidate relays
concurrently (see <xref target="happy"/>), but even
gateways that do not implement a Happy Eyeballs algorithm <bcp14>SHOULD</bcp14>
use
this ordering, except as noted.</t>
<t>When establishing an AMT tunnel to forward multicast data, it's
very important for the discovery process to prioritize network
topology considerations ahead of address selection considerations in
order to gain the packet replication benefits from using multicast
instead of unicast tunneling in the multicast-capable portions of the
network path.</t>
<t>The intent of the advice and requirements in this section is to des
cribe
how a gateway should make use of the concurrency provided by a Happy
Eyeballs algorithm to reduce the join latency while still prioritizing
network efficiency considerations over address selection considerations.</t>
<t><xref target="RFC8305" sectionFormat="of" section="4"/> requires a
Happy Eyeballs algorithm to sort
the addresses with the Destination Address Selection defined in <xref target="R
FC6724" sectionFormat="of" section="6"/>, but for the above reasons, that requir
ement is superseded
in the AMT discovery use case by the following considerations:</t>
<ul spacing="normal">
<li>
<t>Prefer Local Relays </t>
<t><xref target="figrxoffice" format="default"/> and <xref target=
"exoffice" format="default"/> provide a motivating example to prefer
DNS-SD <xref target="RFC6763" format="default"/> for discovery strictly ahead
of using the AMTRELAY RR
controlled by the sender for AMT discovery.</t>
<t>
For this reason, it's <bcp14>RECOMMENDED</bcp14> that AMT gateways by default p
erform
service discovery using DNS Service Discovery (DNS-SD) <xref target="RFC6763"
format="default"/> for
_amt._udp.&lt;domain&gt; (with &lt;domain&gt; chosen as described in <xref tar
get="RFC6763" sectionFormat="of" section="11"/>) and use the AMT relays discover
ed that way in preference to
AMT relays discoverable via the mechanism defined in this document
(DRIAD).</t>
</li>
<li>
<t>Prefer Relays Managed by the Containing Network </t>
<t>
When no local relay is discoverable with DNS-SD, it still may be the
case that a relay local to the receiver is operated by the network
providing transit services to the receiver. </t>
<t>
In this case, when the network cannot make the relay discoverable via
DNS-SD, the network <bcp14>SHOULD</bcp14> use the well-known anycast addresses
from <xref target="RFC7450" format="default" section="7"/> to route discovery t
raffic to the relay most
appropriate to the receiver's gateway.</t>
<t>
Accordingly, the gateway <bcp14>SHOULD</bcp14> by default discover a relay with
the
well-known AMT anycast addresses as the next-best option after DNS-SD
when searching for a local relay.</t>
</li>
<li>
<t>Let Sender Manage Relay Provisioning </t>
<t>
A related motivating example is provided by considering a sender whose
traffic can be forwarded by relays in a sender-controlled network
like <xref target="figtxrelay" format="default"/> in <xref target="extxsnd" fo
rmat="default"/> and by relays in a
provider-controlled network like <xref target="figtxisp" format="default"/> in
<xref target="extxprv" format="default"/>, with
different cost and scalability profiles for the different options. </t>
<t>
In this example about the sending-side network, the precedence field
described in <xref target="rrdef-precedence" format="default"/> is a critical
method of control so
that senders can provide the appropriate guidance to gateways
during the discovery process in order to manage load and failover
scenarios in a manner that operates well with the sender's
provisioning strategy for horizontal scaling of AMT relays. </t>
<t>
Therefore, after DNS-SD, the precedence from the RR <bcp14>MUST</bcp14> be used
for
sorting preference ahead of the Destination Address Selection ordering
from <xref target="RFC6724" section="6" sectionFormat="of"/> so that only rela
y IPs with the same
precedence are directly compared according to the Destination Address
Selection ordering.</t>
</li>
</ul>
<t>Accordingly, AMT gateways <bcp14>SHOULD</bcp14> by default prefer r
elays in this
order:</t>
<ol>
<li>DNS-SD</li>
<li>Anycast addresses from <xref target="RFC7450" sectionFormat="of" section="7
"/></li>
<li>DRIAD</li>
</ol>
<t>This default behavior <bcp14>MAY</bcp14> be overridden by administr
ative configuration where
other behavior is more appropriate for the gateway within its network.</t>
<t>Among relay addresses that have an equivalent preference as describ
ed above, a
Happy Eyeballs algorithm for AMT <bcp14>SHOULD</bcp14> use the Destination Addr
ess Selection
defined in <xref target="RFC6724" sectionFormat="of" section="6"/>.</t>
<t>Among relay addresses that still have an equivalent preference afte
r the
above orderings, a gateway <bcp14>SHOULD</bcp14> make a non-deterministic choic
e (such as
a pseudorandom selection) for relay preference ordering in order to
support load balancing by DNS configurations that provide many relay
options.</t>
<t>The gateway <bcp14>MAY</bcp14> introduce a bias in the non-determin
istic choice according
to information that indicates expected benefits from selecting some relays in
preference to others. Details about the structure and collection of this
information are out of scope for this document but could, for example, be
obtained by out-of-band methods or from a historical record about
network topology, timing information, or the response to a probing
mechanism. A gateway in possession of such information <bcp14>MAY</bcp14> use i
t to prefer topologically closer relays.</t>
<t>Within the above constraints, gateways <bcp14>MAY</bcp14> make use
of other considerations
from <xref target="RFC8305" sectionFormat="of" section="4"/>, such as the addre
ss family interleaving
strategies, to produce a final ordering of candidate relay addresses.</t>
<t>Note also that certain relay addresses might be excluded from consi
deration
by the hold-down timers described in <xref target="trafficabsent" format="defau
lt"/> or <xref target="loaded" format="counter"/>. These
relays constitute "unusable destinations" under Rule 1 of the Destination
Address Selection and are also not part of the superseding considerations
described above.</t>
<t>The discovery and connection process for the relay addresses in the
above
described ordering <bcp14>MAY</bcp14> operate in parallel, subject to delays pr
escribed
by the Happy Eyeballs requirements described in <xref
target="RFC8305" sectionFormat="of" section="5"/>
for successively launched concurrent connection attempts.</t>
</section>
<section anchor="connecting-to-multiple-relays" numbered="true" toc="def
ault">
<name>Connecting to Multiple Relays</name>
<t>In some deployments, it may be useful for a gateway to connect to
multiple upstream relays and subscribe to the same traffic in order to
support an active/active failover model. A gateway <bcp14>SHOULD NOT</bcp14> b
e
configured to do so without guaranteeing that adequate bandwidth is
available.</t>
<t>A gateway configured to do this <bcp14>SHOULD</bcp14> still use the
same preference-ordering logic from <xref target="ordering" format="default"/>
for each connection. (Note that
this ordering allows for overriding by explicit administrative
configuration where required.)</t>
</section>
</section>
<section anchor="happy" numbered="true" toc="default">
<name>Happy Eyeballs</name>
<section anchor="overview-1" numbered="true" toc="default">
<name>Overview</name>
<t>Often, multiple choices of relay will exist for a gateway using DRI
AD
for relay discovery. Happy Eyeballs <xref target="RFC8305" format="default"/>
provides a widely
deployed and generalizable strategy for probing multiple possible
connections in parallel. Therefore, it is <bcp14>RECOMMENDED</bcp14> that DRIAD
-capable
gateways implement a Happy Eyeballs algorithm to support fast discovery
of the most preferred available relay by probing multiple relays
concurrently.</t>
<t>The parallel discovery logic of a Happy Eyeballs algorithm serves t
o
reduce join latency for the initial join of an SSM channel. This section
and the preference ordering of relays defined in <xref target="ordering"
format="default"/> together provide guidance on use of a Happy Eyeballs algorit
hm for the
case of establishing AMT connections.</t>
<t>Note that according to the definition in <xref target="connection-d
ef" format="default"/> of this
document, establishing the connection occurs before sending a membership
report. As described in <xref target="RFC8305"
sectionFormat="of" section="5"/>, only one of the
successful connections will be used, and the others are all canceled
or ignored. In the context of an AMT connection, this means the gateway
will send the membership reports that subscribe to traffic only for the
chosen connection after the Happy Eyeballs algorithm resolves.</t>
</section>
<section anchor="algorithm-guidelines" numbered="true" toc="default">
<name>Algorithm Guidelines</name>
<t>During the "Initiation of asynchronous DNS queries" phase
described in <xref target="RFC8305" sectionFormat="of" section="3"/>,
a gateway attempts to resolve the domain names
listed in <xref target="priority" format="default"/>. This consists of resolvi
ng the SRV queries for
DNS-SD domains for the AMT service, as well as the AMTRELAY query for the
reverse IP domain defined in this document.</t>
<t>Section 5.2.3.4.1 of <xref target="RFC7450"/> lists several events that may c <t>Each of the SRV and AMTRELAY responses might contain:</t>
ause a
gateway to start or restart the discovery procedure.</t>
<t>This document provides some updates and recommendations regarding the <ul
handling of these and similar events. The first 5 events are copied spacing="normal"> <li>one
here and numbered for easier reference, and the remaining 4 events are or more IP addresses (as with type 1 or type 2 AMTRELAY
newly added for consideration in this document:</t> responses or when the SRV Additional Data section of the
SRV response contains the address records for the target,
as urged by <xref target="RFC2782" format="default"/>),
or</li>
<li>
only domain names (as with type 3
responses from <xref target="rtype" format="default"/> or
an SRV response without an additional data section).</li></ul>
<t>When present, IP addresses in the initial response provide resolved
destination address candidates for the "Sorting of resolved
destination addresses" phase described in <xref target="RFC8305"
sectionFormat="of" section="4"/>),
whereas domain names without IP addresses in the initial response result
in another set of queries for AAAA and A records, whose responses provide
the candidate resolved destination addresses.</t>
<t>Since the SRV or AMTRELAY responses don't have a bound on the count
of
queries that might be generated aside from the bounds imposed by the
DNS resolver, it's important for the gateway to provide a rate limit on
the DNS queries. The DNS query functionality is expected to follow
ordinary standards and best practices for DNS clients. A gateway <bcp14>MAY</b
cp14>
use an existing DNS client implementation that does so and <bcp14>MAY</bcp14> r
ely on
that client's rate-limiting logic to avoid issuing excessive queries.
Otherwise, a gateway <bcp14>MUST</bcp14> provide a rate limit for the DNS queri
es, and
its default settings <bcp14>SHOULD NOT</bcp14> permit more than 10 queries for
any
100-millisecond period (though this <bcp14>MAY</bcp14> be overridable by the ad
ministrative
configuration).</t>
<t>As the resolved IP addresses arrive, the Happy Eyeballs algorithm
sorts them according to the requirements and recommendations given in
<xref target="ordering" format="default"/> and attempts connections with the co
rresponding relays
under the algorithm restrictions and guidelines given in <xref target="RFC8305"
format="default"/> for
the "Establishment of one connection, which cancels all other attempts"
phase. As described in <xref target="RFC8305" sectionFormat="of" section="3"/>
, DNS resolution is
treated as asynchronous, and connection initiation does not wait
for lagging DNS responses.</t>
</section>
<section anchor="connection-def" numbered="true" toc="default">
<name>Connection Definition</name>
<t><xref target="RFC8305" sectionFormat="of" section="5"/>
non-normatively describes a successful connection attempt as "generall
y when the TCP handshake completes".</t>
<t>There is no normative definition of a connection in the AMT specifi
cation
<xref target="RFC7450" format="default"/>, and there is no TCP connection invol
ved in an AMT tunnel.</t>
<t>However, the concept of an AMT connection in the context of a Happy
Eyeballs algorithm is a useful one, and so this section provides the
following normative definition:</t>
<ul spacing="normal">
<t><list style="numbers"> <li>An AMT connection is established successfully when the gateway r
<t>When a gateway pseudo-interface is started (enabled).</t> eceives
<t>When the gateway wishes to report a group subscription when none from a newly discovered relay a valid Membership Query message
currently exist.</t> (<xref target="RFC7450" sectionFormat="of" section="5.1.4"/>) that does not hav
<t>Before sending the next Request message in a membership update e the L flag set.</li>
cycle.</t> </ul>
<t>After the gateway fails to receive a response to a Request <t>See <xref target="loaded" format="default"/> of this document for f
message.</t> urther information about the
<t>After the gateway receives a Membership Query message with the relevance of the L flag to the establishment of a Happy Eyeballs
L flag set to 1.</t> connection. See <xref target="flowhealth" format="default"/> for an overview o
<t>When the gateway wishes to report an (S,G) subscription with a source f how to respond
address that does not currently have other group subscriptions.</t> if the connection does not provide multicast connectivity to the
<t>When there is a network change detected, for example when a gateway is source.</t>
operating inside an end user device or application, and the device <t>To "cancel" this kind of AMT connection for the Happy Eyeballs algo
joins a different network, or when the domain portion of a DNS-SD rithm,
a gateway that has not sent a membership report with a subscription
would simply stop sending AMT packets for that connection. A
gateway only sends a membership report to a connection it has chosen as
the most preferred available connection.</t>
</section>
</section>
<section anchor="guidelines-for-restarting-discovery" numbered="true" toc
="default">
<name>Guidelines for Restarting Discovery</name>
<section anchor="overview-2" numbered="true" toc="default">
<name>Overview</name>
<t>It's expected that gateways deployed in different environments will
use a
variety of heuristics to decide when it's appropriate to restart the relay
discovery process in order to meet different performance goals (for example,
to fulfill different kinds of service level agreements).</t>
<t>In general, restarting the discovery process is always safe for
the gateway and relay during any of the events listed in this section
but may cause a disruption in the forwarded traffic if the discovery
process results in choosing a different relay because this changes
the RPF forwarding tree for the multicast traffic upstream of the gateway.
This is likely to result in some dropped or duplicated packets from channels
actively being tunneled from the old relay to the gateway.</t>
<t>The degree of impact on the traffic from choosing a different relay
may
depend on network conditions between the gateway and the new relay, as well
as the network conditions and topology between the sender and the new relay,
as this may cause the relay to propagate a new RPF join toward the sender.</t>
<t>Balancing the expected impact on the tunneled traffic against likel
y
or observed problems with an existing connection to the relay is the goal
of the heuristics that gateways use to determine when to restart the
discovery process.</t>
<t>The non-normative advice in this section should be treated as guide
lines to
operators and implementors working with AMT systems that can use DRIAD as
part of the relay discovery process.</t>
</section>
<section anchor="updates-to-restarting-events" numbered="true" toc="defa
ult">
<name>Updates to Restarting Events</name>
<t><xref target="RFC7450" sectionFormat="of" section="5.2.3.4.1"/> lis
ts several events that may cause a
gateway to start or restart the discovery procedure.</t>
<t>This document provides some updates and recommendations regarding t
he
handling of these and similar events. The first five events are copied
here and numbered for easier reference, and the remaining four events are
newly added for consideration in this document:</t>
<ol spacing="normal" type="1">
<li>When a gateway pseudo-interface is started (enabled).</li>
<li>When the gateway wishes to report a group subscription when none
currently exists.</li>
<li>Before sending the next Request message in a membership update
cycle.</li>
<li>After the gateway fails to receive a response to a Request
message.</li>
<li>After the gateway receives a Membership Query message with the
L flag set to 1.</li>
<li>When the gateway wishes to report an (S,G) subscription with a s
ource
address that does not currently have other group subscriptions.</li>
<li>When there is a network change detected; for example, when a gat
eway is
operating inside an end user device or application and the device
joins a different network or when the domain portion of a DNS-SD
domain name changes in response to a DHCP message or administrative domain name changes in response to a DHCP message or administrative
configuration.</t> configuration.</li>
<t>When substantial loss, persistent congestion, or network overload is <li>When substantial loss, persistent congestion, or network overloa
detected in the stream of AMT packets from a relay.</t> d is
<t>When the gateway has reported one or more (S,G) subscriptions, but detected in the stream of AMT packets from a relay.</li>
no traffic is received from the source for some timeout. (See <li>When the gateway has reported one or more (S,G) subscriptions bu
<xref target="trafficabsent"/>).</t> t
</list></t> no traffic is received from the source for some timeout (see
<xref target="trafficabsent" format="default"/>).</li>
<t>This list is not exhaustive, nor are any of the listed events strictly </ol>
<t>This list is not exhaustive, nor are any of the listed events stric
tly
required to always force a restart of the discovery process.</t> required to always force a restart of the discovery process.</t>
<t>Note that during event #1, a gateway may use DNS-SD but does not
<t>Note that during event #1, a gateway may use DNS-SD, but does not
have sufficient information to use DRIAD, since no source is known.</t> have sufficient information to use DRIAD, since no source is known.</t>
</section>
</section> <section anchor="stability" numbered="true" toc="default">
<section anchor="stability" title="Tunnel Stability"> <name>Tunnel Stability</name>
<t>In general, subscribers to active traffic flows that are being forw
<t>In general, subscribers to active traffic flows that are being forwarded arded
by an AMT gateway are less likely to experience a degradation in service by an AMT gateway are less likely to experience a degradation in service
(for example, from missing or duplicated packets) when the gateway continues (for example, from missing or duplicated packets) when the gateway continues
using the same relay, as long as the relay is not overloaded and the network using the same relay as long as the relay is not overloaded and the network
conditions remain stable.</t> conditions remain stable.</t>
<t>Therefore, gateways <bcp14>SHOULD</bcp14> avoid performing a full r
<t>Therefore, gateways SHOULD avoid performing a full restart of the discovery estart of the discovery
process during routine cases of event #3 (sending a new Request message), process during routine cases of event #3 (sending a new Request message),
since it occurs frequently in normal operation.</t> since it occurs frequently in normal operation.</t>
<t>However, see Sections <xref target="flowhealth" format="counter"/>,
<t>However, see <xref target="flowhealth"/>, <xref target="discoverymessage"/>, <xref target="discoverymessage" format="counter"/>, and <xref target="ancient"
and <xref target="ancient"/> for more format="counter"/> for more
information about exceptional cases when it may be appropriate to use information about exceptional cases when it may be appropriate to use
event #3.</t> event #3.</t>
</section>
</section> <section anchor="flowhealth" numbered="true" toc="default">
<section anchor="flowhealth" title="Traffic Health"> <name>Traffic Health</name>
<section anchor="trafficabsent" numbered="true" toc="default">
<section anchor="trafficabsent" title="Absence of Traffic"> <name>Absence of Traffic</name>
<t>If a gateway indicates one or more (S,G) subscriptions in a Membe
<t>If a gateway indicates one or more (S,G) subscriptions in a Membership rship
Update message, but no traffic for any of the (S,G)s is received in a Update message but no traffic for any of the (S,G)s is received in a
reasonable time, it’s appropriate for the gateway to restart the reasonable time, it's appropriate for the gateway to restart the
discovery process.</t> discovery process.</t>
<t>If the gateway restarts the discovery process multiple times cons
<t>If the gateway restarts the discovery process multiple times consecutively ecutively
for this reason, the timeout period SHOULD be adjusted to provide a random for this reason, the timeout period <bcp14>SHOULD</bcp14> be adjusted to provide
a random
exponential back-off.</t> exponential back-off.</t>
<t>The <bcp14>RECOMMENDED</bcp14> timeout is a random value in the r
<t>The RECOMMENDED timeout is a random value in the range ange
[initial_timeout, MIN(initial_timeout * 2^retry_count, maximum_timeout)], [initial_timeout, MIN(initial_timeout * 2^retry_count, maximum_timeout)],
with a RECOMMENDED initial_timeout of 4 seconds and a RECOMMENDED with a <bcp14>RECOMMENDED</bcp14> initial_timeout of 4 seconds and a <bcp14>RECO MMENDED</bcp14>
maximum_timeout of 120 seconds (which is the recommended minimum NAT maximum_timeout of 120 seconds (which is the recommended minimum NAT
mapping timeout described in <xref target="RFC4787"/>).</t> mapping timeout described in <xref target="RFC4787" format="default"/>).</t>
<t>Note that the recommended initial_timeout is larger than the init
<t>Note that the recommended initial_timeout is larger than the initial ial
timout recommended in the similar algorithm from Section 5.2.3.4.3 of timeout recommended in the similar algorithm from <xref target="RFC7450" section
<xref target="RFC7450"/>. This is to provide time for RPF Join propagation in t Format="of" section="5.2.3.4.3"/>. This is to provide time for RPF Join propaga
he tion in the
sending network. Although the timeout values may be administratively sending network. Although the timeout values may be administratively
adjusted to support performance requirements, operators are advised to adjusted to support performance requirements, operators are advised to
consider the possibility of join propagation delays between the sender consider the possibility of join propagation delays between the sender
and the relay when choosing an appropriate timeout value.</t> and the relay when choosing an appropriate timeout value.</t>
<t>Gateways restarting the discovery process because of an absence o
<t>Gateways restarting the discovery process because of an absence of f
traffic MUST use a hold-down timer that removes this relay from traffic <bcp14>MUST</bcp14> use a hold-down timer that removes this relay from
consideration during subsequent rounds of discovery while active. consideration during subsequent rounds of discovery while active.
The hold-down SHOULD last for no less than 3 minutes and no more than The hold-down <bcp14>SHOULD</bcp14> last for no less than 3 minutes and no more than
10 minutes.</t> 10 minutes.</t>
</section>
</section> <section anchor="loss-and-congestion" numbered="true" toc="default">
<section anchor="loss-and-congestion" title="Loss and Congestion"> <name>Loss and Congestion</name>
<t>In some gateway deployments, it is also feasible to monitor the h
<t>In some gateway deployments, it is also feasible to monitor the health of ealth of
traffic flows through the gateway, for example by detecting the rate of traffic flows through the gateway -- for example, by detecting the rate of
packet loss by communicating out of band with receivers, or monitoring the packet loss by communicating out of band with receivers or monitoring the
packets of known protocols with sequence numbers. Where feasible, packets of known protocols with sequence numbers. Where feasible,
its encouraged for gateways to use such traffic health information to it's encouraged for gateways to use such traffic health information to
trigger a restart of the discovery process during event #3 (before trigger a restart of the discovery process during event #3 (before
sending a new Request message).</t> sending a new Request message).</t>
<t>However, if a transient network event that affects the tunneled
<t>However, to avoid synchronized rediscovery by many gateways simultaneously multicast stream -- as opposed to an event that affects the tunnel
after a transient network event upstream of a relay results in connection between the relay and gateway -- occurs, poor health
many receivers detecting poor flow health at the same time, it’s recommended detection could be triggered for many gateways simultaneously. In
to add a random delay before restarting the discovery process in this case.</t> this situation, adding a random delay to avoid synchronized
rediscovery by many gateways is recommended.</t>
<t>The span of the random portion of the delay should be no less than 10 <t>The span of the random portion of the delay should be no less tha
seconds by default, but may be administratively configured n 10
seconds by default but may be administratively configured
to support different performance requirements.</t> to support different performance requirements.</t>
</section>
</section> <section anchor="ancient" numbered="true" toc="default">
<section anchor="ancient" title="Ancient Discovery Information"> <name>Ancient Discovery Information</name>
<t>In most cases, a gateway actively receiving healthy traffic from
<t>In most cases, a gateway actively receiving healthy traffic from a relay a relay
that has not indicated load with the L flag should prefer to remain that has not indicated load with the L flag should prefer to remain
connected to the same relay, as described in <xref target="stability"/>.</t> connected to the same relay, as described in <xref target="stability" format="de
fault"/>.</t>
<t>However, a relay that appears healthy but has been forwarding traffic for <t>However, a relay that appears healthy but has been forwarding tra
ffic for
days or weeks may have an increased chance of becoming unstable. Gateways days or weeks may have an increased chance of becoming unstable. Gateways
may benefit from restarting the discovery process during event #3 (before may benefit from restarting the discovery process during event #3 (before
sending a Request message) after the expiration of a long-term timeout, on sending a Request message) after the expiration of a long-term timeout on
the order of multiple hours, or even days in some deployments.</t> the order of multiple hours or even days in some deployments.</t>
<t>It may be beneficial for such timers to consider the amount of tr
<t>It may be beneficial for such timers to consider the amount of traffic affic
currently being forwarded, and to give a higher probability of restarting currently being forwarded and to give a higher probability of restarting
discovery during periods with an unusually low data rate, to reduce the discovery during periods with an unusually low data rate to reduce the
impact on active traffic while still avoiding relying on the results of a impact on active traffic while still avoiding relying on the results of a
very old discovery.</t> very old discovery.</t>
<t>Other issues may also be worth considering as part of this heuris
<t>Other issues may also be worth considering as part of this heuristic; for tic; for
example, if the DNS expiry time of the record that was used to discover example, if the DNS expiry time of the record that was used to discover
the current relay has not passed, the long term timer might be restarted the current relay has not passed, the long-term timer might be restarted
without restarting the discovery process.</t> without restarting the discovery process.</t>
</section>
</section> </section>
</section> <section anchor="loaded" numbered="true" toc="default">
<section anchor="loaded" title="Relay Loaded or Shutting Down"> <name>Relay Loaded or Shutting Down</name>
<t>The L flag (see <xref target="RFC7450" sectionFormat="of" section="
<t>The L flag (see Section 5.1.4.4 of <xref target="RFC7450"/>) is the preferred 5.1.4.4"/>) is the preferred mechanism for
mechanism for
a relay to signal overloading or a graceful shutdown to gateways.</t> a relay to signal overloading or a graceful shutdown to gateways.</t>
<t>A gateway that supports handling of the L flag should generally res
<t>A gateway that supports handling of the L flag should generally restart the tart the
discovery process when it processes a Membership Query packet with the discovery process when it processes a Membership Query packet with the
L flag set. If an L flag is received while a concurrent Happy Eyeballs L flag set. If an L flag is received while a concurrent Happy Eyeballs
discovery process is under way for multiple candidate relays (<xref target="happ discovery process is underway for multiple candidate relays (<xref target="happy
y"/>), " format="default"/>),
the relay sending the L flag SHOULD NOT be considered for the relay selection.</ the relay sending the L flag <bcp14>SHOULD NOT</bcp14> be considered for the rel
t> ay selection.</t>
<t>It is also <bcp14>RECOMMENDED</bcp14> that gateways avoid choosing
<t>It is also RECOMMENDED that gateways avoid choosing a relay a relay
that has recently sent an L flag, with approximately a 10-minute hold-down. that has recently sent an L flag, with approximately a 10-minute hold-down.
Gateways SHOULD treat this hold-down timer in the same way as the hold-down Gateways <bcp14>SHOULD</bcp14> treat this hold-down timer in the same way as the
in <xref target="trafficabsent"/>, so that the relay is removed from considerati hold-down
on in <xref target="trafficabsent" format="default"/> so that the relay is removed
for short-term subsequent rounds of discovery.</t> from consideration
for subsequent short-term rounds of discovery.</t>
</section> </section>
<section anchor="discoverymessage" title="Relay Discovery Messages vs. Restartin <section anchor="discoverymessage" numbered="true" toc="default">
g Discovery"> <name>Relay Discovery Messages vs. Restarting Discovery</name>
<t>All AMT relays are required by <xref target="RFC7450"
<t>All AMT relays are required by <xref target="RFC7450"/> to support handling o format="default"/> to support handling of
f Relay Discovery messages (e.g., in <xref target="RFC7450" sectionFormat="of" sec
Relay Discovery messages (e.g. in Section 5.3.3.2 of <xref target="RFC7450"/>).< tion="5.3.3.2"/>).</t>
/t> <t>So a gateway with an existing connection to a relay can send a Rela
y
<t>So a gateway with an existing connection to a relay can send a Relay
Discovery message to the unicast address of that AMT relay. Under stable Discovery message to the unicast address of that AMT relay. Under stable
conditions with an unloaded relay, it’s expected that the relay will conditions with an unloaded relay, it's expected that the relay will
return its own unicast address in the Relay Advertisement, in response return its own unicast address in the Relay Advertisement in response
to such a Relay Discovery message. Since this will not result in the to such a Relay Discovery message. Since this will not result in the
gateway changing to another relay unless the relay directs the gateway gateway changing to another relay unless the relay directs the gateway
away, this is a reasonable exception to the advice against handling event #3 away, this is a reasonable exception to the advice against handling event #3
described in <xref target="stability"/>.</t> described in <xref target="stability" format="default"/>.</t>
<t>This behavior is discouraged for gateways that do support the L fla
<t>This behavior is discouraged for gateways that do support the L flag, to g to
avoid sending unnecessary packets over the network.</t> avoid sending unnecessary packets over the network.</t>
<t>However, gateways that do not support the L flag may be able to avo
<t>However, gateways that do not support the L flag may be able to avoid a id a
disruption in the forwarded traffic by sending such Relay Discovery disruption in the forwarded traffic by sending such Relay Discovery
messages regularly. When a relay is under load or has started a graceful messages regularly. When a relay is under load or has started a graceful
shutdown, it may respond with a different relay address, which the gateway shutdown, it may respond with a different relay address, which the gateway
can use to connect to a different relay. This kind of coordinated handoff can use to connect to a different relay. This kind of coordinated handoff
will likely result in a smaller disruption to the traffic than if the relay will likely result in a smaller disruption to the traffic than if the relay
simply stops responding to Request messages, and stops forwarding traffic.</t> simply stops responding to Request messages and stops forwarding traffic.</t>
<t>This style of Relay Discovery message (one sent to the unicast addr
<t>This style of Relay Discovery message (one sent to the unicast address ess
of a relay that’s already forwarding traffic to this gateway) SHOULD NOT be of a relay that's already forwarding traffic to this gateway) <bcp14>SHOULD NOT<
considered a full restart of the relay discovery process. It is RECOMMENDED /bcp14> be
for gateways to support the L flag, but for gateways that do not support the considered a full restart of the relay discovery process. It is <bcp14>RECOMMEN
DED</bcp14>
that gateways support the L flag, but for gateways that do not support the
L flag, sending this message during event #3 may help mitigate service L flag, sending this message during event #3 may help mitigate service
degradation when relays become unstable.</t> degradation when relays become unstable.</t>
</section>
</section> <section anchor="independent-discovery-per-traffic-source" numbered="tru
<section anchor="independent-discovery-per-traffic-source" title="Independent Di e" toc="default">
scovery Per Traffic Source"> <name>Independent Discovery per Traffic Source</name>
<t>Relays discovered via the AMTRELAY RR are source-specific relay add
<t>Relays discovered via the AMTRELAY RR are source-specific relay addresses, an resses and
d
may use different pseudo-interfaces from each other and from relays may use different pseudo-interfaces from each other and from relays
discovered via DNS-SD or a non-source-specific address, as described in discovered via DNS-SD or via a non-source-specific address, as described in
Section 4.1.2.1 of <xref target="RFC7450"/>.</t> <xref target="RFC7450" sectionFormat="of" section="4.1.2.1"/>.</t>
<t>Restarting the discovery process for one pseudo-interface does not
<t>Restarting the discovery process for one pseudo-interface does not require require
restarting the discovery process for other pseudo-interfaces. Gateway restarting the discovery process for other pseudo-interfaces. Gateway
heuristics about restarting the discovery process should operate heuristics about restarting the discovery process should operate
independently for different tunnels to relays, when responding to events independently for different tunnels to relays when responding to events
that are specific to the different tunnels.</t> that are specific to the different tunnels.</t>
</section>
</section> </section>
</section> <section anchor="dns-configuration" numbered="true" toc="default">
<section anchor="dns-configuration" title="DNS Configuration"> <name>DNS Configuration</name>
<t>Often, an AMT gateway will only have access to the source and group I
<t>Often an AMT gateway will only have access to the source and group IP address P addresses
es of the desired traffic and will not know any other name for the source of the
of the desired traffic, and will not know any other name for the source of the traffic. Because of this, typically, the best way of looking up AMTRELAY RRs
traffic. Because of this, typically the best way of looking up AMTRELAY RRs
will be by using the source IP address as an index into one of the reverse will be by using the source IP address as an index into one of the reverse
mapping trees (in-addr.arpa for IPv4, as described in Section 3.5 of mapping trees (in-addr.arpa for IPv4, as described in <xref target="RFC1035" sec
<xref target="RFC1035"/>, or ip6.arpa for IPv6, as described in Section 2.5 of < tionFormat="of" section="3.5"/>, or ip6.arpa for IPv6, as described in <xref tar
xref target="RFC3596"/>).</t> get="RFC3596" sectionFormat="of" section="2.5"/>).</t>
<t>Therefore, it is <bcp14>RECOMMENDED</bcp14> that AMTRELAY RRs be adde
<t>Therefore, it is RECOMMENDED that AMTRELAY RRs be added to reverse IP d to reverse IP
zones as appropriate. AMTRELAY records MAY also appear in other zones, zones as appropriate. AMTRELAY records <bcp14>MAY</bcp14> also appear in other
zones,
since this may be necessary to perform delegation from the reverse zones since this may be necessary to perform delegation from the reverse zones
(see for example Section 5.2 of <xref target="RFC2317"/>), but the use case enab led (see, for example, <xref target="RFC2317" sectionFormat="of" section="5.2"/>), b ut the use case enabled
by this document requires a reverse IP mapping for the source from an by this document requires a reverse IP mapping for the source from an
(S,G) in order to be useful to most AMT gateways. This document does (S,G) in order to be useful to most AMT gateways. This document does
not define semantics for the use of AMTRELAY records obtained in a way not define semantics for the use of AMTRELAY records obtained in a way
other than by a reverse IP lookup.</t> other than by a reverse IP lookup.</t>
<t>When performing the AMTRELAY RR lookup, any CNAMEs or DNAMEs found <b
<t>When performing the AMTRELAY RR lookup, any CNAMEs or DNAMEs found MUST be cp14>MUST</bcp14> be
followed. This is necessary to support zone delegation. Some examples followed. This is necessary to support zone delegation. Some examples
outlining this need are described in <xref target="RFC2317"/>.</t> outlining this need are described in <xref target="RFC2317" format="default"/>.<
/t>
<t>See <xref target="rrdef"/> and <xref target="rpformat"/> for a detailed expla <t>See Sections <xref target="rrdef" format="counter"/> and <xref target
nation of the contents ="rpformat" format="counter"/> for a detailed explanation of the contents
for a DNS Zone file.</t> of a DNS zone file.</t>
</section>
</section> <section anchor="waiting-for-dns-resolution" numbered="true" toc="default"
<section anchor="waiting-for-dns-resolution" title="Waiting for DNS resolution"> >
<name>Waiting for DNS Resolution</name>
<t>The DNS query functionality is expected to follow ordinary standards and best <t>DNS query functionality is expected to follow ordinary standards and
practices for DNS clients. A gateway MAY use an existing DNS client best
implementation that does so, and MAY rely on that client’s retry logic practices for DNS clients. A gateway <bcp14>MAY</bcp14> use an existing DNS cli
ent
implementation that does so and <bcp14>MAY</bcp14> rely on that client's retry l
ogic
to determine the timeouts between retries.</t> to determine the timeouts between retries.</t>
<t>Otherwise, a gateway <bcp14>MAY</bcp14> resend a DNS query if it does
<t>Otherwise, a gateway MAY re-send a DNS query if it does not receive an not receive an
appropriate DNS response within some timeout period. If the gateway retries appropriate DNS response within some timeout period. If the gateway retries
multiple times, the timeout period SHOULD be adjusted to provide a random multiple times, the timeout period <bcp14>SHOULD</bcp14> be adjusted to provide a random
exponential back-off.</t> exponential back-off.</t>
<t>As with the waiting process for the Relay Advertisement message from
<t>As with the waiting process for the Relay Advertisement message from <xref target="RFC7450" sectionFormat="of" section="5.2.3.4.3"/>, the <bcp14>RECO
Section 5.2.3.4.3 of <xref target="RFC7450"/>, the RECOMMENDED timeout is a rand MMENDED</bcp14> timeout is a random value
om value
in the range [initial_timeout, MIN(initial_timeout * 2^retry_count, in the range [initial_timeout, MIN(initial_timeout * 2^retry_count,
maximum_timeout)], with a RECOMMENDED initial_timeout of 1 second and maximum_timeout)], with a <bcp14>RECOMMENDED</bcp14> initial_timeout of 1 second
a RECOMMENDED maximum_timeout of 120 seconds.</t> and
a <bcp14>RECOMMENDED</bcp14> maximum_timeout of 120 seconds.</t>
</section> </section>
</section> </section>
<section anchor="rrdef" title="AMTRELAY Resource Record Definition"> <section anchor="rrdef" numbered="true" toc="default">
<name>AMTRELAY Resource Record Definition</name>
<section anchor="amtrelay-rrtype" title="AMTRELAY RRType"> <section anchor="amtrelay-rrtype" numbered="true" toc="default">
<name>AMTRELAY RRType</name>
<t>The AMTRELAY RRType has the mnemonic AMTRELAY and type code 260 (decimal).</t <t>The AMTRELAY RRType has the mnemonic AMTRELAY and type code 260 (deci
> mal).</t>
<t>The AMTRELAY RR is class independent.</t>
<t>The AMTRELAY RR is class independent.</t> </section>
<section anchor="amtrelay-rdata-format" numbered="true" toc="default">
</section> <name>AMTRELAY RData Format</name>
<section anchor="amtrelay-rdata-format" title="AMTRELAY RData Format"> <t>The AMTRELAY RData consists of an 8-bit precedence field, a 1-bit
"Discovery Optional" field, a 7-bit type field, and a variable
<t>The AMTRELAY RData consists of a 8-bit precedence field, a 1-bit
“Discovery Optional” field, a 7-bit type field, and a variable
length relay field.</t> length relay field.</t>
<artwork name="" type="" align="left" alt=""><![CDATA[
<figure><artwork><![CDATA[
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| precedence |D| type | | | precedence |D| type | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
~ relay ~ ~ relay ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure> ]]></artwork>
<section anchor="rrdef-precedence" numbered="true" toc="default">
<section anchor="rrdef-precedence" title="RData Format - Precedence"> <name>RData Format - Precedence</name>
<t>This is an 8-bit precedence for this record. It is interpreted in
<t>This is an 8-bit precedence for this record. It is interpreted in the same way as the PREFERENCE field described in <xref target="RFC1035" section
the same way as the PREFERENCE field described in Section 3.3.9 of Format="of" section="3.3.9"/>.</t>
<xref target="RFC1035"/>.</t> <t>Relays listed in AMTRELAY records with a lower value for precedence
are to be
<t>Relays listed in AMTRELAY records with a lower value for precedence are to be
attempted first.</t> attempted first.</t>
</section>
</section> <section anchor="rrdef-dbit" numbered="true" toc="default">
<section anchor="rrdef-dbit" title="RData Format - Discovery Optional (D-bit)"> <name>RData Format - Discovery Optional (D-bit)</name>
<t>The D-bit is a "Discovery Optional" flag.</t>
<t>The D bit is a “Discovery Optional” flag.</t> <t>If the D-bit is set to 0, a gateway using this RR <bcp14>MUST</bcp1
4> perform AMT relay
<t>If the D bit is set to 0, a gateway using this RR MUST perform AMT relay discovery as described in <xref target="RFC7450" sectionFormat="of" section="4.2
discovery as described in Section 4.2.1.1 of <xref target="RFC7450"/>, rather th .1.1"/> rather than directly
an directly
sending an AMT Request message to the relay.</t> sending an AMT Request message to the relay.</t>
<t>That is, the gateway <bcp14>MUST</bcp14> receive an AMT Relay Adver
<t>That is, the gateway MUST receive an AMT Relay Advertisement message (Section tisement message (<xref target="RFC7450" sectionFormat="of" section="5.1.2"/>) f
5.1.2 of <xref target="RFC7450"/>) for an address before sending an AMT Request or an address before sending an AMT Request message
message (<xref target="RFC7450" sectionFormat="of" section="5.1.3"/>) to that address. B
(Section 5.1.3 of <xref target="RFC7450"/>) to that address. Before receiving th efore receiving the Relay
e Relay
Advertisement message, this record has only indicated that the address can be Advertisement message, this record has only indicated that the address can be
used for AMT relay discovery, not for a Request message. This is necessary for used for AMT relay discovery, not for a Request message. This is necessary for
devices that are not fully functional AMT relays, but rather load balancers or devices that are not fully functional AMT relays but rather load balancers or
brokers, as mentioned in Section 4.2.1.1 of <xref target="RFC7450"/>.</t> brokers, as mentioned in <xref target="RFC7450" sectionFormat="of" section="4.2.
1.1"/>.</t>
<t>If the D bit is set to 1, the gateway MAY send an AMT Request message directl <t>If the D-bit is set to 1, the gateway <bcp14>MAY</bcp14> send an AM
y T Request message directly
to the discovered relay address without first sending an AMT Discovery message.< /t> to the discovered relay address without first sending an AMT Discovery message.< /t>
<t>This bit should be set according to advice from the AMT relay opera
<t>This bit should be set according to advice from the AMT relay operator. The tor. The
D bit MUST be set to zero when no information is available from the AMT relay D-bit <bcp14>MUST</bcp14> be set to zero when no information is available from t
he AMT relay
operator about its suitability.</t> operator about its suitability.</t>
</section>
</section> <section anchor="rtype" numbered="true" toc="default">
<section anchor="rtype" title="RData Format - Type"> <name>RData Format - Type</name>
<t>The type field indicates the format of the information that
<t>The type field indicates the format of the information that
is stored in the relay field.</t> is stored in the relay field.</t>
<t>The following values are defined:</t>
<t>The following values are defined:</t> <ul spacing="normal">
<li>type = 0:
<t><list style="symbols"> The relay field is empty (0 bytes).</li>
<t>type = 0: <li>type = 1:
The relay field is empty (0 bytes).</t> The relay field contains a 4-octet IPv4 address.</li>
<t>type = 1: <li>type = 2:
The relay field contains a 4-octet IPv4 address.</t> The relay field contains a 16-octet IPv6 address.</li>
<t>type = 2: <li>type = 3:
The relay field contains a 16-octet IPv6 address.</t>
<t>type = 3:
The relay field contains a wire-encoded domain name. The wire-encoded The relay field contains a wire-encoded domain name. The wire-encoded
format is self-describing, so the length is implicit. The domain name format is self-describing, so the length is implicit. The domain name
MUST NOT be compressed. (See Section 3.3 of <xref target="RFC1035"/> and Sectio <bcp14>MUST NOT</bcp14> be compressed (see <xref target="RFC1035" sectionFormat=
n 4 of "of"
<xref target="RFC3597"/>.)</t> section="3.3"/> and <xref target="RFC3597" sectionFormat="of" section="4"/>).</l
</list></t> i>
</ul>
<t>RRs with an undefined value in the Type field SHOULD NOT be considered <t>RRs with an undefined value in the Type field <bcp14>SHOULD NOT</bc
p14> be considered
by receiving gateways for AMT relay discovery.</t> by receiving gateways for AMT relay discovery.</t>
</section>
</section> <section anchor="rdformat" numbered="true" toc="default">
<section anchor="rdformat" title="RData Format - Relay"> <name>RData Format - Relay</name>
<t>The relay field is the address or domain name of the AMT relay. It
<t>The relay field is the address or domain name of the AMT relay. It is is
formatted according to the type field.</t> formatted according to the type field.</t>
<t>When the type field is 0, the length of the relay field is 0, and i
<t>When the type field is 0, the length of the relay field is 0, and it t
indicates that no AMT relay should be used for multicast traffic from this indicates that no AMT relay should be used for multicast traffic from this
source.</t> source.</t>
<t>When the type field is 1, the length of the relay field is 4 octets
<t>When the type field is 1, the length of the relay field is 4 octets, and a , and a
32-bit IPv4 address is present. This is an IPv4 address as described in 32-bit IPv4 address is present. This is an IPv4 address as described in
Section 3.4.1 of <xref target="RFC1035"/>. This is a 32-bit number in network by te <xref target="RFC1035" sectionFormat="of" section="3.4.1"/>. This is a 32-bit nu mber in network byte
order.</t> order.</t>
<t>When the type field is 2, the length of the relay field is 16 octet
<t>When the type field is 2, the length of the relay field is 16 octets, and s, and
a 128-bit IPv6 address is present. This is an IPv6 address as described in a 128-bit IPv6 address is present. This is an IPv6 address as described in
Section 2.2 of <xref target="RFC3596"/>. This is a 128-bit number in network byt <xref target="RFC3596" sectionFormat="of" section="2.2"/>. This is a 128-bit num
e order.</t> ber in network byte order.</t>
<t>When the type field is 3, the relay field is a normal wire-encoded
<t>When the type field is 3, the relay field is a normal wire-encoded domain domain
name, as described in Section 3.3 of <xref target="RFC1035"/>. Compression MUST name, as described in <xref target="RFC1035" sectionFormat="of"
NOT be section="3.3"/>. For the reasons given in <xref target="RFC3597"
used, for the reasons given in Section 4 of <xref target="RFC3597"/>.</t> sectionFormat="of" section="4"/>, compression <bcp14>MUST NOT</bcp14> be
used.</t>
<t>For a type 3 record, the D-bit and preference fields carry over to all <t>For a type 3 record, the D-bit and preference fields carry over to
all
A or AAAA records for the domain name. There is no difference in the A or AAAA records for the domain name. There is no difference in the
result of the discovery process when it’s obtained by type 1 or type 2 result of the discovery process when it's obtained by type 1 or type 2
AMTRELAY records with identical D-bit and preference fields, vs. when AMTRELAY records with identical D-bit and preference fields vs. when
the result is obtained by a type 3 AMTRELAY record that resolves the result is obtained by a type 3 AMTRELAY record that resolves
to the same set of IPv4 and IPv6 addresses via A and AAAA lookups.</t> to the same set of IPv4 and IPv6 addresses via A and AAAA lookups.</t>
</section>
</section> </section>
</section> <section anchor="rpformat" numbered="true" toc="default">
<section anchor="rpformat" title="AMTRELAY Record Presentation Format"> <name>AMTRELAY Record Presentation Format</name>
<section anchor="representation-of-amtrelay-rrs" numbered="true" toc="de
<section anchor="representation-of-amtrelay-rrs" title="Representation of AMTREL fault">
AY RRs"> <name>Representation of AMTRELAY RRs</name>
<t>AMTRELAY RRs may appear in a zone data master file. The precedence,
<t>AMTRELAY RRs may appear in a zone data master file. The precedence, D-bit, D-bit,
relay type, and relay fields are REQUIRED.</t> relay type, and relay fields are <bcp14>REQUIRED</bcp14>.</t>
<t>If the relay type field is 0, the relay field <bcp14>MUST</bcp14> b
<t>If the relay type field is 0, the relay field MUST be “.”.</t> e ".".</t>
<t>The presentation for the record is as follows:</t>
<t>The presentation for the record is as follows:</t> <sourcecode name="" type=""><![CDATA[
<figure><artwork><![CDATA[
IN AMTRELAY precedence D-bit type relay IN AMTRELAY precedence D-bit type relay
]]></artwork></figure> ]]></sourcecode>
</section>
</section> <section anchor="examples" numbered="true" toc="default">
<section anchor="examples" title="Examples"> <name>Examples</name>
<t>In a DNS authoritative nameserver that understands the AMTRELAY typ
<t>In a DNS authoritative nameserver that understands the AMTRELAY type, e,
the zone might contain a set of entries like this:</t> the zone might contain a set of entries like this:</t>
<sourcecode name="" type=""><![CDATA[
<figure><artwork><![CDATA[
$ORIGIN 100.51.198.in-addr.arpa. $ORIGIN 100.51.198.in-addr.arpa.
12 IN AMTRELAY 10 0 1 203.0.113.15 12 IN AMTRELAY 10 0 1 203.0.113.15
12 IN AMTRELAY 10 0 2 2001:db8::15 12 IN AMTRELAY 10 0 2 2001:db8::15
12 IN AMTRELAY 128 1 3 amtrelays.example.com. 12 IN AMTRELAY 128 1 3 amtrelays.example.com.
]]></artwork></figure> ]]></sourcecode>
<t>This configuration advertises an IPv4 discovery address, an IPv6
<t>This configuration advertises an IPv4 discovery address, an IPv6 discovery address, and a domain name for AMT relays that can receive
discovery address, and a domain name for AMT relays which can receive
traffic from the source 198.51.100.12. The IPv4 and IPv6 addresses traffic from the source 198.51.100.12. The IPv4 and IPv6 addresses
are configured with a D-bit of 0 (meaning discovery is mandatory, as are configured with a D-bit of 0 (meaning discovery is mandatory, as
described in <xref target="rrdef-dbit"/>), and a precedence 10 (meaning they’re described in <xref target="rrdef-dbit" format="default"/>) and a precedence 10 ( meaning they're
preferred ahead of the last entry, which has precedence 128).</t> preferred ahead of the last entry, which has precedence 128).</t>
<t>For zone files in name servers that don't support the AMTRELAY RRTy
<t>For zone files in name servers that don’t support the AMTRELAY RRType pe
natively, it’s possible to use the format for unknown RR types, as natively, it's possible to use the format for unknown RR types, as
described in <xref target="RFC3597"/>. This approach would replace the AMTRELAY described in <xref target="RFC3597" format="default"/>. This approach would rep
lace the AMTRELAY
entries in the example above with the entries below:</t> entries in the example above with the entries below:</t>
<sourcecode name="" type=""><![CDATA[
<figure><artwork><![CDATA[
10 IN TYPE260 \# ( 10 IN TYPE260 \# (
6 ; length 6 ; length
0a ; precedence=10 0a ; precedence=10
01 ; D=0, relay type=1, an IPv4 address 01 ; D=0, relay type=1, an IPv4 address
cb00710f ) ; 203.0.113.15 cb00710f ) ; 203.0.113.15
10 IN TYPE260 \# ( 10 IN TYPE260 \# (
18 ; length 18 ; length
0a ; precedence=10 0a ; precedence=10
02 ; D=0, relay type=2, an IPv6 address 02 ; D=0, relay type=2, an IPv6 address
20010db800000000000000000000000f ) ; 2001:db8::15 20010db800000000000000000000000f ) ; 2001:db8::15
10 IN TYPE260 \# ( 10 IN TYPE260 \# (
24 ; length 24 ; length
80 ; precedence=128 80 ; precedence=128
83 ; D=1, relay type=3, a wire-encoded domain name 83 ; D=1, relay type=3, a wire-encoded domain name
09616d7472656c617973076578616d706c6503636f6d ) ; domain name 09616d7472656c617973076578616d706c6503636f6d ) ; domain name
]]></artwork></figure> ]]></sourcecode>
<t>See <xref target="extranslate" format="default"/> for more details.
<t>See <xref target="extranslate"/> for more details.</t> </t>
</section>
</section> </section>
</section> </section>
</section> <section anchor="iana" numbered="true" toc="default">
<section anchor="iana" title="IANA Considerations"> <name>IANA Considerations</name>
<t>This document updates the DNS "Resource Record (RR) TYPEs" registry
<t>This document updates the IANA Registry for DNS Resource Record Types
by assigning type 260 to the AMTRELAY record.</t> by assigning type 260 to the AMTRELAY record.</t>
<t>This document creates a new registry named "AMTRELAY Resource Record
<t>This document creates a new registry named “AMTRELAY Resource Record Parameters" with a subregistry for the "Relay Type Field". The initial
Parameters”, with a sub-registry for the “Relay Type Field”. The initial values in the subregistry are:</t>
values in the sub-registry are:</t> <table align="left">
<name>Initial Contents of the &quot;Relay Type Field&quot; Registry</na
<figure><artwork><![CDATA[ me>
+-------+---------------------------------------+ <thead>
| Value | Description | <tr>
+-------+---------------------------------------+ <th align="left">Value</th>
| 0 | No relay is present. | <th align="left">Description</th>
| 1 | A 4-byte IPv4 address is present | </tr>
| 2 | A 16-byte IPv6 address is present | </thead>
| 3 | A wire-encoded domain name is present | <tbody>
| 4-255 | Unassigned | <tr>
+-------+---------------------------------------+ <td align="left">0</td>
]]></artwork></figure> <td align="left">No relay is present</td>
</tr>
<t>Values 0, 1, 2, and 3 are further explained in <xref target="rtype"/> and <xr <tr>
ef target="rdformat"/>. <td align="left">1</td>
<td align="left">A 4-byte IPv4 address is present</td>
</tr>
<tr>
<td align="left">2</td>
<td align="left">A 16-byte IPv6 address is present</td>
</tr>
<tr>
<td align="left">3</td>
<td align="left">A wire-encoded domain name is present</td>
</tr>
<tr>
<td align="left">4-255</td>
<td align="left">Unassigned</td>
</tr>
</tbody>
</table>
<t>Values 0, 1, 2, and 3 are further explained in Sections <xref target="r
type" format="counter"/> and <xref target="rdformat" format="counter"/>.
Relay type numbers 4 through 255 can be assigned with a policy of Relay type numbers 4 through 255 can be assigned with a policy of
Specification Required (as described in <xref target="RFC8126"/>).</t> Specification Required (as described in <xref target="RFC8126" format="default"/
>).</t>
</section> </section>
<section anchor="security-considerations" title="Security Considerations"> <section anchor="security-considerations" numbered="true" toc="default">
<name>Security Considerations</name>
<section anchor="use-of-amt" title="Use of AMT"> <section anchor="use-of-amt" numbered="true" toc="default">
<name>Use of AMT</name>
<t>This document defines a mechanism that enables a more widespread and <t>This document defines a mechanism that enables a more widespread and
automated use of AMT, even without access to a multicast backbone. automated use of AMT, even without access to a multicast backbone.
Operators of networks and applications that include a DRIAD-capable Operators of networks and applications that include a DRIAD-capable
AMT gateway are advised to carefully consider the security considerations AMT gateway are advised to carefully consider the security considerations
in Section 6 of <xref target="RFC7450"/>.</t> in <xref target="RFC7450" sectionFormat="of" section="6"/>.</t>
<t>AMT gateway operators also are encouraged to take appropriate steps t
<t>AMT gateway operators also are encouraged to take appropriate steps to o
ensure the integrity of the data received via AMT, for example by the ensure the integrity of the data received via AMT, for example, by the
opportunistic use of IPSec <xref target="RFC4301"/> to secure traffic received f opportunistic use of IPsec <xref target="RFC4301" format="default"/> to secure t
rom AMT raffic received from AMT
relays, when IPSECKEY records <xref target="RFC4025"/> are available or when a t relays when IPSECKEY records <xref target="RFC4025" format="default"/> are avail
rust able or when a trust
relationship with the AMT relays can be otherwise established and secured.</t> relationship with the AMT relays can be otherwise established and secured.</t>
<t>Note that AMT does not itself provide any integrity protection for
<t>Note that AMT does not itself provide any integrity protection on Multicast Data packets (<xref target="RFC7450" sectionFormat="of" section="5.1.6
Multicast Data packets (Section 5.1.6 of <xref target="RFC7450"/>), so absent "/>), so absent
protections like those mentioned above, even an off-path attacker who protections like those mentioned above, even an off-path attacker who
discovers the gateway IP, the relay IP, and the relay source port for discovers the gateway IP, the relay IP, and the relay source port for
an active AMT connection can inject multicast data packets for a an active AMT connection can inject multicast data packets for a
joined (S,G) into the data stream if he can get data packets delivered joined (S,G) into the data stream if he can get data packets delivered
to the gateway IP that spoof the relay as the source.</t> to the gateway IP that spoof the relay as the source.</t>
</section>
</section> <section anchor="record-spoofing" numbered="true" toc="default">
<section anchor="record-spoofing" title="Record-spoofing"> <name>Record-Spoofing</name>
<t>The AMTRELAY resource record contains information that <bcp14>SHOULD<
<t>The AMTRELAY resource record contains information that SHOULD be /bcp14> be
communicated to the DNS client without being modified. The communicated to the DNS client without being modified. The
method used to ensure the result was unmodified is up to the client.</t> method used to ensure the result was unmodified is up to the client.</t>
<t>There must be a trust relationship between the end consumer of this
<t>There must be a trust relationship between the end consumer of this
resource record and the DNS server. This relationship may be end-to-end resource record and the DNS server. This relationship may be end-to-end
DNSSEC validation, or a secure connection to a trusted DNS server that DNSSEC validation or a secure connection to a trusted DNS server that
provides end-to-end safety, to prevent record-spoofing of the response provides end-to-end safety to prevent record-spoofing of the response
from the trusted server. The connection to the trusted server can use from the trusted server. The connection to the trusted server can use
any secure channel, such as with a TSIG <xref target="RFC2845"/> or SIG(0) <xref any secure channel, such as with a TSIG <xref target="RFC2845" format="default"/
target="RFC2931"/> > or SIG(0) <xref target="RFC2931" format="default"/>
channel, a secure local channel on the host, DNS over TLS <xref target="RFC7858" channel, a secure local channel on the host, DNS over TLS <xref target="RFC7858"
/>, format="default"/>,
DNS over HTTPS <xref target="RFC8484"/>, or some other mechanism that provides DNS over HTTPS <xref target="RFC8484" format="default"/>, or some other mechanis
m that provides
authentication of the RR.</t> authentication of the RR.</t>
<t>If an AMT gateway accepts a maliciously crafted AMTRELAY record,
<t>If an AMT gateway accepts a maliciously crafted AMTRELAY record, the result could be a Denial of Service or receivers processing
the result could be a Denial of Service, or receivers processing multicast traffic from a source under the attacker's control.</t>
multicast traffic from a source under the attacker’s control.</t> </section>
<section anchor="congestion" numbered="true" toc="default">
</section> <name>Congestion</name>
<section anchor="congestion" title="Congestion"> <t>Multicast traffic, particularly interdomain multicast traffic, carrie
s
<t>Multicast traffic, particularly interdomain multicast traffic, carries some congestion risks, as described in <xref target="RFC8085" sectionFormat="of"
some congestion risks, as described in Section 4 of <xref target="RFC8085"/>.</t section="4"/>.</t>
> <t>Application implementors and network operators that use AMT gateways
are advised to take precautions, including monitoring of application
<t>Application implementors and network operators that use AMT gateways
are advised to take precautions including monitoring of application
traffic behavior, traffic authentication at ingest, rate-limiting of traffic behavior, traffic authentication at ingest, rate-limiting of
multicast traffic, and the use of circuit-breaker techniques such as multicast traffic, and the use of circuit-breaker techniques such as
those described in Section 3.1.10 of <xref target="RFC8085"/> and similar those described in <xref target="RFC8085" sectionFormat="of" section="3.1.10"/>
protections at the network level, in order to ensure network health and similar
protections at the network level in order to ensure network health
in the event of misconfiguration, poorly written applications that in the event of misconfiguration, poorly written applications that
don’t follow UDP congestion control principles, or deliberate attack.</t> don't follow UDP congestion control principles, or a deliberate attack.</t>
<t><xref target="RFC7450" sectionFormat="of" section="4.1.4.2"/> and <xr
<t>Section 4.1.4.2 of <xref target="RFC7450"/> and Section 6.1 of <xref target=" ef target="RFC7450" sectionFormat="of" section="6.1"/>
RFC7450"/>
provide some further considerations and advice about mitigating provide some further considerations and advice about mitigating
congestion risk.</t> congestion risk.</t>
</section>
</section> </section>
</section>
<section anchor="acknowledgements" title="Acknowledgements">
<t>This specification was inspired by the previous work of Doug Nortz,
Robert Sayko, David Segelstein, and Percy Tarapore, presented in
the MBONED working group at IETF 93.</t>
<t>Thanks to Jeff Goldsmith, Toerless Eckert, Mikael Abrahamsson, Lenny
Giuliano, Mark Andrews, Sandy Zheng, Kyle Rose, Ben Kaduk, Bill
Atwood, Tim Chown, Christian Worm Mortensen, Warren Kumari, Dan
Romanescu, Bernard Aboba, Carlos Pignataro, Niclas Comstedt,
Mirja Kühlewind, Henning Rogge, Éric Vyncke, Barry Lieba,
Roman Danyliw, Alissa Cooper, Suresh Krishnan, Adam Roach,
and Daniel Franke for their very helpful reviews and comments.</t>
</section>
</middle> </middle>
<back> <back>
<references>
<references title='Normative References'> <name>References</name>
<references>
<reference anchor="RFC1034" target='https://www.rfc-editor.org/info/rfc1034'> <name>Normative References</name>
<front> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<title>Domain names - concepts and facilities</title> FC.1034.xml"/>
<author initials='P.V.' surname='Mockapetris' fullname='P.V. Mockapetris'><organ <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
ization /></author> FC.1035.xml"/>
<date year='1987' month='November' /> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<abstract><t>This RFC is the revised basic definition of The Domain Name System. FC.2119.xml"/>
It obsoletes RFC-882. This memo describes the domain style names and their us <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
ed for host address look up and electronic mail forwarding. It discusses the cl FC.2181.xml"/>
ients and servers in the domain name system and the protocol used between them.< <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
/t></abstract> FC.2782.xml"/>
</front> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<seriesInfo name='STD' value='13'/> FC.3376.xml"/>
<seriesInfo name='RFC' value='1034'/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<seriesInfo name='DOI' value='10.17487/RFC1034'/> FC.3596.xml"/>
</reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3597.xml"/>
<reference anchor="RFC1035" target='https://www.rfc-editor.org/info/rfc1035'> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<front> FC.3810.xml"/>
<title>Domain names - implementation and specification</title> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author initials='P.V.' surname='Mockapetris' fullname='P.V. Mockapetris'><organ FC.4604.xml"/>
ization /></author> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<date year='1987' month='November' /> FC.4607.xml"/>
<abstract><t>This RFC is the revised specification of the protocol and format us <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
ed in the implementation of the Domain Name System. It obsoletes RFC-883. This FC.6724.xml"/>
memo documents the details of the domain name client - server communication.</t> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
</abstract> FC.6763.xml"/>
</front> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<seriesInfo name='STD' value='13'/> FC.7450.xml"/>
<seriesInfo name='RFC' value='1035'/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<seriesInfo name='DOI' value='10.17487/RFC1035'/> FC.8085.xml"/>
</reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8305.xml"/>
<reference anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<front> FC.8174.xml"/>
<title>Key words for use in RFCs to Indicate Requirement Levels</title> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></ FC.8499.xml"/>
author> </references>
<date year='1997' month='March' /> <references>
<abstract><t>In many standards track documents several words are used to signify <name>Informative References</name>
the requirements in the specification. These words are often capitalized. This <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
document defines these words as they should be interpreted in IETF documents. FC.2317.xml"/>
This document specifies an Internet Best Current Practices for the Internet Comm <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
unity, and requests discussion and suggestions for improvements.</t></abstract> FC.2845.xml"/>
</front> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<seriesInfo name='BCP' value='14'/> FC.2931.xml"/>
<seriesInfo name='RFC' value='2119'/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<seriesInfo name='DOI' value='10.17487/RFC2119'/> FC.3550.xml"/>
</reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4025.xml"/>
<reference anchor="RFC2181" target='https://www.rfc-editor.org/info/rfc2181'> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<front> FC.4301.xml"/>
<title>Clarifications to the DNS Specification</title> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author initials='R.' surname='Elz' fullname='R. Elz'><organization /></author> FC.4787.xml"/>
<author initials='R.' surname='Bush' fullname='R. Bush'><organization /></author <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
> FC.5110.xml"/>
<date year='1997' month='July' /> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<abstract><t>This document considers some areas that have been identified as pro FC.6726.xml"/>
blems with the specification of the Domain Name System, and proposes remedies fo <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
r the defects identified. [STANDARDS-TRACK]</t></abstract> FC.7359.xml"/>
</front> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<seriesInfo name='RFC' value='2181'/> FC.7761.xml"/>
<seriesInfo name='DOI' value='10.17487/RFC2181'/> <xi:include
</reference> href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7858.x
ml"/>
<reference anchor="RFC2782" target='https://www.rfc-editor.org/info/rfc2782'> <xi:include
<front> href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
<title>A DNS RR for specifying the location of services (DNS SRV)</title> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author initials='A.' surname='Gulbrandsen' fullname='A. Gulbrandsen'><organizat FC.8313.xml"/>
ion /></author> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author initials='P.' surname='Vixie' fullname='P. Vixie'><organization /></auth FC.8484.xml"/>
or> </references>
<author initials='L.' surname='Esibov' fullname='L. Esibov'><organization /></au
thor>
<date year='2000' month='February' />
<abstract><t>This document describes a DNS RR which specifies the location of th
e server(s) for a specific protocol and domain. [STANDARDS-TRACK]</t></abstract
>
</front>
<seriesInfo name='RFC' value='2782'/>
<seriesInfo name='DOI' value='10.17487/RFC2782'/>
</reference>
<reference anchor="RFC3376" target='https://www.rfc-editor.org/info/rfc3376'>
<front>
<title>Internet Group Management Protocol, Version 3</title>
<author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author
>
<author initials='S.' surname='Deering' fullname='S. Deering'><organization /></
author>
<author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization />
</author>
<author initials='B.' surname='Fenner' fullname='B. Fenner'><organization /></au
thor>
<author initials='A.' surname='Thyagarajan' fullname='A. Thyagarajan'><organizat
ion /></author>
<date year='2002' month='October' />
</front>
<seriesInfo name='RFC' value='3376'/>
<seriesInfo name='DOI' value='10.17487/RFC3376'/>
</reference>
<reference anchor="RFC3596" target='https://www.rfc-editor.org/info/rfc3596'>
<front>
<title>DNS Extensions to Support IP Version 6</title>
<author initials='S.' surname='Thomson' fullname='S. Thomson'><organization /></
author>
<author initials='C.' surname='Huitema' fullname='C. Huitema'><organization /></
author>
<author initials='V.' surname='Ksinant' fullname='V. Ksinant'><organization /></
author>
<author initials='M.' surname='Souissi' fullname='M. Souissi'><organization /></
author>
<date year='2003' month='October' />
<abstract><t>This document defines the changes that need to be made to the Domai
n Name System (DNS) to support hosts running IP version 6 (IPv6). The changes i
nclude a resource record type to store an IPv6 address, a domain to support look
ups based on an IPv6 address, and updated definitions of existing query types th
at return Internet addresses as part of additional section processing. The exte
nsions are designed to be compatible with existing applications and, in particul
ar, DNS implementations themselves. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='88'/>
<seriesInfo name='RFC' value='3596'/>
<seriesInfo name='DOI' value='10.17487/RFC3596'/>
</reference>
<reference anchor="RFC3597" target='https://www.rfc-editor.org/info/rfc3597'>
<front>
<title>Handling of Unknown DNS Resource Record (RR) Types</title>
<author initials='A.' surname='Gustafsson' fullname='A. Gustafsson'><organizatio
n /></author>
<date year='2003' month='September' />
<abstract><t>Extending the Domain Name System (DNS) with new Resource Record (RR
) types currently requires changes to name server software. This document speci
fies the changes necessary to allow future DNS implementations to handle new RR
types transparently. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3597'/>
<seriesInfo name='DOI' value='10.17487/RFC3597'/>
</reference>
<reference anchor="RFC3810" target='https://www.rfc-editor.org/info/rfc3810'>
<front>
<title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</title>
<author initials='R.' surname='Vida' fullname='R. Vida' role='editor'><organizat
ion /></author>
<author initials='L.' surname='Costa' fullname='L. Costa' role='editor'><organiz
ation /></author>
<date year='2004' month='June' />
<abstract><t>This document updates RFC 2710, and it specifies Version 2 of the u
lticast Listener Discovery Protocol (MLDv2). MLD is used by an IPv6 router to d
iscover the presence of multicast listeners on directly attached links, and to d
iscover which multicast addresses are of interest to those neighboring nodes. M
LDv2 is designed to be interoperable with MLDv1. MLDv2 adds the ability for a n
ode to report interest in listening to packets with a particular multicast addre
ss only from specific source addresses or from all sources except for specific s
ource addresses. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3810'/>
<seriesInfo name='DOI' value='10.17487/RFC3810'/>
</reference>
<reference anchor="RFC4604" target='https://www.rfc-editor.org/info/rfc4604'>
<front>
<title>Using Internet Group Management Protocol Version 3 (IGMPv3) and Multicast
Listener Discovery Protocol Version 2 (MLDv2) for Source-Specific Multicast</ti
tle>
<author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization />
</author>
<author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author
>
<author initials='B.' surname='Haberman' fullname='B. Haberman'><organization />
</author>
<date year='2006' month='August' />
<abstract><t>The Internet Group Management Protocol Version 3 (IGMPv3) and the M
ulticast Listener Discovery Protocol Version 2 (MLDv2) are protocols that allow
a host to inform its neighboring routers of its desire to receive IPv4 and IPv6
multicast transmissions, respectively. Source-specific multicast (SSM) is a form
of multicast in which a receiver is required to specify both the network-layer
address of the source and the multicast destination address in order to receive
the multicast transmission. This document defines the notion of an &quot;SSM-aw
are&quot; router and host, and clarifies and (in some cases) modifies the behavi
or of IGMPv3 and MLDv2 on SSM-aware routers and hosts to accommodate source-spec
ific multicast. This document updates the IGMPv3 and MLDv2 specifications. [ST
ANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4604'/>
<seriesInfo name='DOI' value='10.17487/RFC4604'/>
</reference>
<reference anchor="RFC4607" target='https://www.rfc-editor.org/info/rfc4607'>
<front>
<title>Source-Specific Multicast for IP</title>
<author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization />
</author>
<author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author
>
<date year='2006' month='August' />
<abstract><t>IP version 4 (IPv4) addresses in the 232/8 (232.0.0.0 to 232.255.25
5.255) range are designated as source-specific multicast (SSM) destination addre
sses and are reserved for use by source-specific applications and protocols. Fo
r IP version 6 (IPv6), the address prefix FF3x::/32 is reserved for source-speci
fic multicast use. This document defines an extension to the Internet network s
ervice that applies to datagrams sent to SSM addresses and defines the host and
router requirements to support this extension. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4607'/>
<seriesInfo name='DOI' value='10.17487/RFC4607'/>
</reference>
<reference anchor="RFC6724" target='https://www.rfc-editor.org/info/rfc6724'>
<front>
<title>Default Address Selection for Internet Protocol Version 6 (IPv6)</title>
<author initials='D.' surname='Thaler' fullname='D. Thaler' role='editor'><organ
ization /></author>
<author initials='R.' surname='Draves' fullname='R. Draves'><organization /></au
thor>
<author initials='A.' surname='Matsumoto' fullname='A. Matsumoto'><organization
/></author>
<author initials='T.' surname='Chown' fullname='T. Chown'><organization /></auth
or>
<date year='2012' month='September' />
<abstract><t>This document describes two algorithms, one for source address sele
ction and one for destination address selection. The algorithms specify default
behavior for all Internet Protocol version 6 (IPv6) implementations. They do n
ot override choices made by applications or upper-layer protocols, nor do they p
reclude the development of more advanced mechanisms for address selection. The
two algorithms share a common context, including an optional mechanism for allow
ing administrators to provide policy that can override the default behavior. In
dual-stack implementations, the destination address selection algorithm can con
sider both IPv4 and IPv6 addresses -- depending on the available source addresse
s, the algorithm might prefer IPv6 addresses over IPv4 addresses, or vice versa.
</t><t>Default address selection as defined in this specification applies to all
IPv6 nodes, including both hosts and routers. This document obsoletes RFC 3484
. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6724'/>
<seriesInfo name='DOI' value='10.17487/RFC6724'/>
</reference>
<reference anchor="RFC6763" target='https://www.rfc-editor.org/info/rfc6763'>
<front>
<title>DNS-Based Service Discovery</title>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'><organization />
</author>
<author initials='M.' surname='Krochmal' fullname='M. Krochmal'><organization />
</author>
<date year='2013' month='February' />
<abstract><t>This document specifies how DNS resource records are named and stru
ctured to facilitate service discovery. Given a type of service that a client i
s looking for, and a domain in which the client is looking for that service, thi
s mechanism allows clients to discover a list of named instances of that desired
service, using standard DNS queries. This mechanism is referred to as DNS-based
Service Discovery, or DNS-SD.</t></abstract>
</front>
<seriesInfo name='RFC' value='6763'/>
<seriesInfo name='DOI' value='10.17487/RFC6763'/>
</reference>
<reference anchor="RFC7450" target='https://www.rfc-editor.org/info/rfc7450'>
<front>
<title>Automatic Multicast Tunneling</title>
<author initials='G.' surname='Bumgardner' fullname='G. Bumgardner'><organizatio
n /></author>
<date year='2015' month='February' />
<abstract><t>This document describes Automatic Multicast Tunneling (AMT), a prot
ocol for delivering multicast traffic from sources in a multicast-enabled networ
k to receivers that lack multicast connectivity to the source network. The prot
ocol uses UDP encapsulation and unicast replication to provide this functionalit
y.</t><t>The AMT protocol is specifically designed to support rapid deployment b
y requiring minimal changes to existing network infrastructure.</t></abstract>
</front>
<seriesInfo name='RFC' value='7450'/>
<seriesInfo name='DOI' value='10.17487/RFC7450'/>
</reference>
<reference anchor="RFC8085" target='https://www.rfc-editor.org/info/rfc8085'>
<front>
<title>UDP Usage Guidelines</title>
<author initials='L.' surname='Eggert' fullname='L. Eggert'><organization /></au
thor>
<author initials='G.' surname='Fairhurst' fullname='G. Fairhurst'><organization
/></author>
<author initials='G.' surname='Shepherd' fullname='G. Shepherd'><organization />
</author>
<date year='2017' month='March' />
<abstract><t>The User Datagram Protocol (UDP) provides a minimal message-passing
transport that has no inherent congestion control mechanisms. This document pr
ovides guidelines on the use of UDP for the designers of applications, tunnels,
and other protocols that use UDP. Congestion control guidelines are a primary f
ocus, but the document also provides guidance on other topics, including message
sizes, reliability, checksums, middlebox traversal, the use of Explicit Congest
ion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.<
/t><t>Because congestion control is critical to the stable operation of the Inte
rnet, applications and other protocols that choose to use UDP as an Internet tra
nsport must employ mechanisms to prevent congestion collapse and to establish so
me degree of fairness with concurrent traffic. They may also need to implement
additional mechanisms, depending on how they use UDP.</t><t>Some guidance is als
o applicable to the design of other protocols (e.g., protocols layered directly
on IP or via IP-based tunnels), especially when these protocols do not themselve
s provide congestion control.</t><t>This document obsoletes RFC 5405 and adds gu
idelines for multicast UDP usage.</t></abstract>
</front>
<seriesInfo name='BCP' value='145'/>
<seriesInfo name='RFC' value='8085'/>
<seriesInfo name='DOI' value='10.17487/RFC8085'/>
</reference>
<reference anchor="RFC8305" target='https://www.rfc-editor.org/info/rfc8305'>
<front>
<title>Happy Eyeballs Version 2: Better Connectivity Using Concurrency</title>
<author initials='D.' surname='Schinazi' fullname='D. Schinazi'><organization />
</author>
<author initials='T.' surname='Pauly' fullname='T. Pauly'><organization /></auth
or>
<date year='2017' month='December' />
<abstract><t>Many communication protocols operating over the modern Internet use
hostnames. These often resolve to multiple IP addresses, each of which may hav
e different performance and connectivity characteristics. Since specific addres
ses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optimal on
a network, clients that attempt multiple connections in parallel have a chance
of establishing a connection more quickly. This document specifies requirements
for algorithms that reduce this user-visible delay and provides an example algo
rithm, referred to as &quot;Happy Eyeballs&quot;. This document obsoletes the o
riginal algorithm description in RFC 6555.</t></abstract>
</front>
<seriesInfo name='RFC' value='8305'/>
<seriesInfo name='DOI' value='10.17487/RFC8305'/>
</reference>
<reference anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></auth
or>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol s
pecifications. This document aims to reduce the ambiguity by clarifying that on
ly UPPERCASE usage of the key words have the defined special meanings.</t></abs
tract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>
<reference anchor="RFC8499" target='https://www.rfc-editor.org/info/rfc8499'>
<front>
<title>DNS Terminology</title>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></
author>
<author initials='A.' surname='Sullivan' fullname='A. Sullivan'><organization />
</author>
<author initials='K.' surname='Fujiwara' fullname='K. Fujiwara'><organization />
</author>
<date year='2019' month='January' />
<abstract><t>The Domain Name System (DNS) is defined in literally dozens of diff
erent RFCs. The terminology used by implementers and developers of DNS protocol
s, and by operators of DNS systems, has sometimes changed in the decades since t
he DNS was first defined. This document gives current definitions for many of t
he terms used in the DNS in a single document.</t><t>This document obsoletes RFC
7719 and updates RFC 2308.</t></abstract>
</front>
<seriesInfo name='BCP' value='219'/>
<seriesInfo name='RFC' value='8499'/>
<seriesInfo name='DOI' value='10.17487/RFC8499'/>
</reference>
</references>
<references title='Informative References'>
<reference anchor="RFC2317" target='https://www.rfc-editor.org/info/rfc2317'>
<front>
<title>Classless IN-ADDR.ARPA delegation</title>
<author initials='H.' surname='Eidnes' fullname='H. Eidnes'><organization /></au
thor>
<author initials='G.' surname='de Groot' fullname='G. de Groot'><organization />
</author>
<author initials='P.' surname='Vixie' fullname='P. Vixie'><organization /></auth
or>
<date year='1998' month='March' />
<abstract><t>This document describes a way to do IN-ADDR.ARPA delegation on non-
octet boundaries for address spaces covering fewer than 256 addresses. This doc
ument specifies an Internet Best Current Practices for the Internet Community, a
nd requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='20'/>
<seriesInfo name='RFC' value='2317'/>
<seriesInfo name='DOI' value='10.17487/RFC2317'/>
</reference>
<reference anchor="RFC2845" target='https://www.rfc-editor.org/info/rfc2845'>
<front>
<title>Secret Key Transaction Authentication for DNS (TSIG)</title>
<author initials='P.' surname='Vixie' fullname='P. Vixie'><organization /></auth
or>
<author initials='O.' surname='Gudmundsson' fullname='O. Gudmundsson'><organizat
ion /></author>
<author initials='D.' surname='Eastlake 3rd' fullname='D. Eastlake 3rd'><organiz
ation /></author>
<author initials='B.' surname='Wellington' fullname='B. Wellington'><organizatio
n /></author>
<date year='2000' month='May' />
<abstract><t>This protocol allows for transaction level authentication using sha
red secrets and one way hashing. It can be used to authenticate dynamic updates
as coming from an approved client, or to authenticate responses as coming from
an approved recursive name server. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2845'/>
<seriesInfo name='DOI' value='10.17487/RFC2845'/>
</reference>
<reference anchor="RFC2931" target='https://www.rfc-editor.org/info/rfc2931'>
<front>
<title>DNS Request and Transaction Signatures ( SIG(0)s )</title>
<author initials='D.' surname='Eastlake 3rd' fullname='D. Eastlake 3rd'><organiz
ation /></author>
<date year='2000' month='September' />
<abstract><t>This document describes the minor but non-interoperable changes in
Request and Transaction signature resource records ( SIG(0)s ) that implementati
on experience has deemed necessary. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2931'/>
<seriesInfo name='DOI' value='10.17487/RFC2931'/>
</reference>
<reference anchor="RFC3550" target='https://www.rfc-editor.org/info/rfc3550'>
<front>
<title>RTP: A Transport Protocol for Real-Time Applications</title>
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organizat
ion /></author>
<author initials='S.' surname='Casner' fullname='S. Casner'><organization /></au
thor>
<author initials='R.' surname='Frederick' fullname='R. Frederick'><organization
/></author>
<author initials='V.' surname='Jacobson' fullname='V. Jacobson'><organization />
</author>
<date year='2003' month='July' />
<abstract><t>This memorandum describes RTP, the real-time transport protocol. R
TP provides end-to-end network transport functions suitable for applications tra
nsmitting real-time data, such as audio, video or simulation data, over multicas
t or unicast network services. RTP does not address resource reservation and do
es not guarantee quality-of- service for real-time services. The data transport
is augmented by a control protocol (RTCP) to allow monitoring of the data deliv
ery in a manner scalable to large multicast networks, and to provide minimal con
trol and identification functionality. RTP and RTCP are designed to be independ
ent of the underlying transport and network layers. The protocol supports the u
se of RTP-level translators and mixers. Most of the text in this memorandum is i
dentical to RFC 1889 which it obsoletes. There are no changes in the packet for
mats on the wire, only changes to the rules and algorithms governing how the pro
tocol is used. The biggest change is an enhancement to the scalable timer algori
thm for calculating when to send RTCP packets in order to minimize transmission
in excess of the intended rate when many participants join a session simultaneou
sly. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='64'/>
<seriesInfo name='RFC' value='3550'/>
<seriesInfo name='DOI' value='10.17487/RFC3550'/>
</reference>
<reference anchor="RFC4025" target='https://www.rfc-editor.org/info/rfc4025'>
<front>
<title>A Method for Storing IPsec Keying Material in DNS</title>
<author initials='M.' surname='Richardson' fullname='M. Richardson'><organizatio
n /></author>
<date year='2005' month='March' />
<abstract><t>This document describes a new resource record for the Domain Name S
ystem (DNS). This record may be used to store public keys for use in IP securit
y (IPsec) systems. The record also includes provisions for indicating what syst
em should be contacted when an IPsec tunnel is established with the entity in qu
estion. </t><t> This record replaces the functionality of the sub-type #4 of the
KEY Resource Record, which has been obsoleted by RFC 3445. [STANDARDS-TRACK]</
t></abstract>
</front>
<seriesInfo name='RFC' value='4025'/>
<seriesInfo name='DOI' value='10.17487/RFC4025'/>
</reference>
<reference anchor="RFC4301" target='https://www.rfc-editor.org/info/rfc4301'>
<front>
<title>Security Architecture for the Internet Protocol</title>
<author initials='S.' surname='Kent' fullname='S. Kent'><organization /></author
>
<author initials='K.' surname='Seo' fullname='K. Seo'><organization /></author>
<date year='2005' month='December' />
<abstract><t>This document describes an updated version of the &quot;Security Ar
chitecture for IP&quot;, which is designed to provide security services for traf
fic at the IP layer. This document obsoletes RFC 2401 (November 1998). [STANDA
RDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4301'/>
<seriesInfo name='DOI' value='10.17487/RFC4301'/>
</reference>
<reference anchor="RFC4787" target='https://www.rfc-editor.org/info/rfc4787'>
<front>
<title>Network Address Translation (NAT) Behavioral Requirements for Unicast UDP
</title>
<author initials='F.' surname='Audet' fullname='F. Audet' role='editor'><organiz
ation /></author>
<author initials='C.' surname='Jennings' fullname='C. Jennings'><organization />
</author>
<date year='2007' month='January' />
<abstract><t>This document defines basic terminology for describing different ty
pes of Network Address Translation (NAT) behavior when handling Unicast UDP and
also defines a set of requirements that would allow many applications, such as m
ultimedia communications or online gaming, to work consistently. Developing NAT
s that meet this set of requirements will greatly increase the likelihood that t
hese applications will function properly. This document specifies an Internet B
est Current Practices for the Internet Community, and requests discussion and su
ggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='127'/>
<seriesInfo name='RFC' value='4787'/>
<seriesInfo name='DOI' value='10.17487/RFC4787'/>
</reference>
<reference anchor="RFC5110" target='https://www.rfc-editor.org/info/rfc5110'>
<front>
<title>Overview of the Internet Multicast Routing Architecture</title>
<author initials='P.' surname='Savola' fullname='P. Savola'><organization /></au
thor>
<date year='2008' month='January' />
<abstract><t>This document describes multicast routing architectures that are cu
rrently deployed on the Internet. This document briefly describes those protoco
ls and references their specifications.</t><t>This memo also reclassifies severa
l older RFCs to Historic. These RFCs describe multicast routing protocols that
were never widely deployed or have fallen into disuse. This memo provides infor
mation for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='5110'/>
<seriesInfo name='DOI' value='10.17487/RFC5110'/>
</reference>
<reference anchor="RFC6726" target='https://www.rfc-editor.org/info/rfc6726'>
<front>
<title>FLUTE - File Delivery over Unidirectional Transport</title>
<author initials='T.' surname='Paila' fullname='T. Paila'><organization /></auth
or>
<author initials='R.' surname='Walsh' fullname='R. Walsh'><organization /></auth
or>
<author initials='M.' surname='Luby' fullname='M. Luby'><organization /></author
>
<author initials='V.' surname='Roca' fullname='V. Roca'><organization /></author
>
<author initials='R.' surname='Lehtonen' fullname='R. Lehtonen'><organization />
</author>
<date year='2012' month='November' />
<abstract><t>This document defines File Delivery over Unidirectional Transport (
FLUTE), a protocol for the unidirectional delivery of files over the Internet, w
hich is particularly suited to multicast networks. The specification builds on
Asynchronous Layered Coding, the base protocol designed for massively scalable m
ulticast distribution. This document obsoletes RFC 3926. [STANDARDS-TRACK]</t><
/abstract>
</front>
<seriesInfo name='RFC' value='6726'/>
<seriesInfo name='DOI' value='10.17487/RFC6726'/>
</reference>
<reference anchor="RFC7359" target='https://www.rfc-editor.org/info/rfc7359'>
<front>
<title>Layer 3 Virtual Private Network (VPN) Tunnel Traffic Leakages in Dual-Sta
ck Hosts/Networks</title>
<author initials='F.' surname='Gont' fullname='F. Gont'><organization /></author
>
<date year='2014' month='August' />
<abstract><t>The subtle way in which the IPv6 and IPv4 protocols coexist in typi
cal networks, together with the lack of proper IPv6 support in popular Virtual P
rivate Network (VPN) tunnel products, may inadvertently result in VPN tunnel tra
ffic leakages. That is, traffic meant to be transferred over an encrypted and i
ntegrity- protected VPN tunnel may leak out of such a tunnel and be sent in the
clear on the local network towards the final destination. This document discuss
es some scenarios in which such VPN tunnel traffic leakages may occur as a resul
t of employing IPv6-unaware VPN software. Additionally, this document offers po
ssible mitigations for this issue.</t></abstract>
</front>
<seriesInfo name='RFC' value='7359'/>
<seriesInfo name='DOI' value='10.17487/RFC7359'/>
</reference>
<reference anchor="RFC7761" target='https://www.rfc-editor.org/info/rfc7761'>
<front>
<title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specifica
tion (Revised)</title>
<author initials='B.' surname='Fenner' fullname='B. Fenner'><organization /></au
thor>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></
author>
<author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization />
</author>
<author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization />
</author>
<author initials='R.' surname='Parekh' fullname='R. Parekh'><organization /></au
thor>
<author initials='Z.' surname='Zhang' fullname='Z. Zhang'><organization /></auth
or>
<author initials='L.' surname='Zheng' fullname='L. Zheng'><organization /></auth
or>
<date year='2016' month='March' />
<abstract><t>This document specifies Protocol Independent Multicast - Sparse Mod
e (PIM-SM). PIM-SM is a multicast routing protocol that can use the underlying
unicast routing information base or a separate multicast-capable routing informa
tion base. It builds unidirectional shared trees rooted at a Rendezvous Point (
RP) per group, and it optionally creates shortest-path trees per source.</t><t>T
his document obsoletes RFC 4601 by replacing it, addresses the errata filed agai
nst it, removes the optional (*,*,RP), PIM Multicast Border Router features and
authentication using IPsec that lack sufficient deployment experience (see Appen
dix A), and moves the PIM specification to Internet Standard.</t></abstract>
</front>
<seriesInfo name='STD' value='83'/>
<seriesInfo name='RFC' value='7761'/>
<seriesInfo name='DOI' value='10.17487/RFC7761'/>
</reference>
<reference anchor="RFC7858" target='https://www.rfc-editor.org/info/rfc7858'>
<front>
<title>Specification for DNS over Transport Layer Security (TLS)</title>
<author initials='Z.' surname='Hu' fullname='Z. Hu'><organization /></author>
<author initials='L.' surname='Zhu' fullname='L. Zhu'><organization /></author>
<author initials='J.' surname='Heidemann' fullname='J. Heidemann'><organization
/></author>
<author initials='A.' surname='Mankin' fullname='A. Mankin'><organization /></au
thor>
<author initials='D.' surname='Wessels' fullname='D. Wessels'><organization /></
author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></
author>
<date year='2016' month='May' />
<abstract><t>This document describes the use of Transport Layer Security (TLS) t
o provide privacy for DNS. Encryption provided by TLS eliminates opportunities
for eavesdropping and on-path tampering with DNS queries in the network, such as
discussed in RFC 7626. In addition, this document specifies two usage profiles
for DNS over TLS and provides advice on performance considerations to minimize
overhead from using TCP and TLS with DNS.</t><t>This document focuses on securin
g stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It
does not prevent future applications of the protocol to recursive-to-authoritat
ive traffic.</t></abstract>
</front>
<seriesInfo name='RFC' value='7858'/>
<seriesInfo name='DOI' value='10.17487/RFC7858'/>
</reference>
<reference anchor="RFC8126" target='https://www.rfc-editor.org/info/rfc8126'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></au
thor>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></auth
or>
<author initials='T.' surname='Narten' fullname='T. Narten'><organization /></au
thor>
<date year='2017' month='June' />
<abstract><t>Many protocols make use of points of extensibility that use constan
ts to identify various protocol parameters. To ensure that the values in these
fields do not have conflicting uses and to promote interoperability, their alloc
ations are often coordinated by a central record keeper. For IETF protocols, th
at role is filled by the Internet Assigned Numbers Authority (IANA).</t><t>To ma
ke assignments in a given registry prudently, guidance describing the conditions
under which new values should be assigned, as well as when and how modification
s to existing values can be made, is needed. This document defines a framework
for the documentation of these guidelines by specification authors, in order to
assure that the provided guidance for the IANA Considerations is clear and addre
sses the various issues that are likely in the operation of a registry.</t><t>Th
is is the third edition of this document; it obsoletes RFC 5226.</t></abstract>
</front>
<seriesInfo name='BCP' value='26'/>
<seriesInfo name='RFC' value='8126'/>
<seriesInfo name='DOI' value='10.17487/RFC8126'/>
</reference>
<reference anchor="RFC8313" target='https://www.rfc-editor.org/info/rfc8313'>
<front>
<title>Use of Multicast across Inter-domain Peering Points</title>
<author initials='P.' surname='Tarapore' fullname='P. Tarapore' role='editor'><o
rganization /></author>
<author initials='R.' surname='Sayko' fullname='R. Sayko'><organization /></auth
or>
<author initials='G.' surname='Shepherd' fullname='G. Shepherd'><organization />
</author>
<author initials='T.' surname='Eckert' fullname='T. Eckert' role='editor'><organ
ization /></author>
<author initials='R.' surname='Krishnan' fullname='R. Krishnan'><organization />
</author>
<date year='2018' month='January' />
<abstract><t>This document examines the use of Source-Specific Multicast (SSM) a
cross inter-domain peering points for a specified set of deployment scenarios.
The objectives are to (1) describe the setup process for multicast-based deliver
y across administrative domains for these scenarios and (2) document supporting
functionality to enable this process.</t></abstract>
</front>
<seriesInfo name='BCP' value='213'/>
<seriesInfo name='RFC' value='8313'/>
<seriesInfo name='DOI' value='10.17487/RFC8313'/>
</reference>
<reference anchor="RFC8484" target='https://www.rfc-editor.org/info/rfc8484'>
<front>
<title>DNS Queries over HTTPS (DoH)</title>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></
author>
<author initials='P.' surname='McManus' fullname='P. McManus'><organization /></
author>
<date year='2018' month='October' />
<abstract><t>This document defines a protocol for sending DNS queries and gettin
g DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP
exchange.</t></abstract>
</front>
<seriesInfo name='RFC' value='8484'/>
<seriesInfo name='DOI' value='10.17487/RFC8484'/>
</reference>
</references> </references>
<section anchor="extranslate" numbered="true" toc="default">
<section anchor="extranslate" title="Unknown RRType construction"> <name>Unknown RRType Construction</name>
<t>In a DNS resolver that understands the AMTRELAY type, the zone file mig
<t>In a DNS resolver that understands the AMTRELAY type, the zone file might ht
contain this line:</t> contain this line:</t>
<sourcecode name="" type=""><![CDATA[
<figure><artwork><![CDATA[
IN AMTRELAY 128 0 3 amtrelays.example.com. IN AMTRELAY 128 0 3 amtrelays.example.com.
]]></artwork></figure> ]]></sourcecode>
<t>In order to translate this example to appear as an unknown RRType
<t>In order to translate this example to appear as an unknown RRType as defined in <xref target="RFC3597" format="default"/>, one could run the follo
as defined in <xref target="RFC3597"/>, one could run the following program:</t> wing program:</t>
<sourcecode name="" type="python" markers="true"><![CDATA[
<figure><artwork><![CDATA[
<CODE BEGINS>
$ cat translate.py $ cat translate.py
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys import sys
name=sys.argv[1] name=sys.argv[1]
wire='' wire=''
for dn in name.split('.'): for dn in name.split('.'):
if len(dn) > 0: if len(dn) > 0:
wire += ('%02x' % len(dn)) wire += ('%02x' % len(dn))
wire += (''.join('%02x'%ord(x) for x in dn)) wire += (''.join('%02x'%ord(x) for x in dn))
print(len(wire)//2) + 2 print(len(wire)//2) + 2
print(wire) print(wire)
$ ./translate.py amtrelays.example.com $ ./translate.py amtrelays.example.com
24 24
09616d7472656c617973076578616d706c6503636f6d 09616d7472656c617973076578616d706c6503636f6d
<CODE ENDS> ]]></sourcecode>
]]></artwork></figure> <t>The length of the RData and the hex string for the domain name
"amtrelays.example.com" are the outputs of this program.</t>
<t>The length of the RData and the hex string for the domain name <t>The length of the wire-encoded domain name is 22, so 2 was added to
“amtrelays.example.com” are the outputs of this program.</t>
<t>22 is the length of the wire-encoded domain name, so 2 was added to
that value (1 for the precedence field and 1 for the combined D-bit and that value (1 for the precedence field and 1 for the combined D-bit and
relay type fields) to get the full length 24 of the RData. For the 2 relay type fields) to get the full length 24 of the RData. For the 2
octets ahead of the domain name, we encode the precedence, D-bit, and octets ahead of the domain name, we encode the precedence, D-bit, and
relay type fields, as described in <xref target="rrdef"/>.</t> relay type fields, as described in <xref target="rrdef" format="default"/>.</t>
<t>This results in a zone file entry like this:</t>
<t>This results in a zone file entry like this:</t>
<figure><artwork><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
IN TYPE260 \# ( 24 ; length IN TYPE260 \# ( 24 ; length
80 ; precedence = 128 80 ; precedence = 128
03 ; D-bit=0, relay type=3 (wire-encoded domain name) 03 ; D-bit=0, relay type=3 (wire-encoded domain name)
09616d7472656c617973076578616d706c6503636f6d ) ; domain name 09616d7472656c617973076578616d706c6503636f6d ) ; domain name
]]></artwork></figure> ]]></artwork>
</section>
</section>
<section anchor="acknowledgements" numbered="false" toc="default">
<name>Acknowledgements</name>
<t>This specification was inspired by the previous work of <contact
fullname="Doug Nortz"/>, <contact fullname="Robert Sayko"/>, <contact full
name="David Segelstein"/>, and <contact fullname="Percy Tarapore"/>, presented i
n
the MBONED Working Group at IETF 93.</t>
<t>Thanks to <contact fullname="Jeff Goldsmith"/>, <contact fullname="Toer
less Eckert"/>, <contact fullname="Mikael Abrahamsson"/>, <contact fullname="Len
ny
Giuliano"/>, <contact fullname="Mark Andrews"/>, <contact fullname="Sandy
Zheng"/>, <contact fullname="Kyle Rose"/>, <contact fullname="Ben Kaduk"/>,
<contact fullname="Bill Atwood"/>, <contact fullname="Tim Chown"/>, <conta
ct fullname="Christian Worm Mortensen"/>, <contact fullname="Warren Kumari"/>, <
contact fullname="Dan
Romanescu"/>, <contact fullname="Bernard Aboba"/>, <contact fullname="Carlos
Pignataro"/>, <contact fullname="Niclas Comstedt"/>, <contact fullname="Mirja Kü
hlewind"/>, <contact fullname="Henning Rogge"/>, <contact fullname="Eric Vyncke"
/>, <contact fullname="Barry Lieba"/>,
<contact fullname="Roman Danyliw"/>, <contact fullname="Alissa Cooper"/>,
<contact fullname="Suresh Krishnan"/>, <contact fullname="Adam Roach"/>,
and <contact fullname="Daniel Franke"/> for their very helpful reviews and comme
nts.</t>
</section>
</back> </back>
<!-- ##markdown-source:
H4sIAISyF14AA+19W3fbyJXue/2KOtLMamlM0SR1sayMs47asruVWLYjqZOV
SSdZIAlKiEmAA4CS2bbzfv7TeZs/dva1LgAouZOel7OGPRlTBFCoy659+fal
9vb2TJ3V8/TEnr29spfpXVpWqT1/b08vru3O6aouFkmdTezFag7/JFVtr1d5
ns6z/GbXnmXVpIAn1iYZj8v0Dhq5PD89M9NikicLaHNaJrN6L0vr2d5iXOTp
dG9aZsl0L1nUe1N9eG+4b6ZJDbePBsPne8PR3mhgJvDDTVGuT2xVT43JluWJ
rctVVY8Gg+eDkUnKNDmx75aVuS/KDzdlsVqe2At6h/mQruHH6Yk9z+u0zNN6
7wz7YUxVJ/n0r8kc7jqx67Qyy+zE/qkuJj1bFWVdprMKvq0X+OXPxiSr+rYo
T4zdMxY+WV6d2N/07ffFfA7t0G88zN8kH9Lo56K8ObGnH5JFktnrdHKbF/Pi
Jkuh9fN80qdbKnhdWp/Y4eHAflsWyfQ+WdOFSVbDqF8mi3GZTW/Snr04tYPR
8OCArxarvMZp+SHP6nRqr2qYqMoWM3u6SEtYIborhRfPT+zfoF+33K0+TMP/
vsGf+5NiYcxqiVMOA3p2cDgwJi9KXOe7FEZrL1+/HA72D/zXQ/k6Gg6fu6/H
Q/367HgkX/f3nx3p18Pnwddn+vV4OJCvB0eDA/9Vbzh6NjpwX4/25St2Ur4e
D461O8f7A/d1+EwfOz54Dp00WT5rjGm0P9S3jI4P3Jie7w9dP91bDgYjveFg
f6A3HDw71hYOh24g0GUd6TMYqn59dqSPPTs+PHb9dPce7w/3XZePofdmb2/P
JmMgjGQCxHp9m1UWdtJqkea1lfXCu2nJHtmbPSBB3MK7drw2i2Kazdbwq61v
U1um82Rt3e6zy7KYpFXVt/bU5uk98YEyrYpVOcGbJ7CTiMynBtq7fPXm9I8W
O5bOMthrFibZLlfjeVbd4guQa9ALKrrCrexVy3SSzaCnC+2pmdwm2FV87TV1
yjEefP9PsEOpgcQ/Yqs0n6blNxXelEyn0McKemImRT7LblYldKYu7Aoacf1s
DKPCG5IpvKnO4LYEWqxp57hOm/o2qe0kyfGJFEjHwtbBjtwnMAu+K7BEMxzP
rCwWlp7hzlmcUngGmzQ1LQYM8B1Me2nTj3WaV1mRV9ToZJ6UOCewgvgT9Kxj
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
EBADmWk9qQH1R7sITUQjneqCziKGDhGyTMWx4qJBtDfUkiGTO0TgA6+Um4XR
/vAZ5YaOpSKPK9eqJzdRdl4YoxdUqQ2yb3VpGwTJIGNu2FUcBm37uh7kYaji
iqeqQbi3IlcyuAs4vxdExwJjeyY+z1PIvDXhrqoSqRfIiXi+SY2gQsHBMHAT
rJYuQdUHJDSlBt/Yo/348u3pxSvCHM/424yyJKWgnOSxUL66ev2iJVWB+hMd
gubWFRV8Lr5Ey6fHgDgxi+dncAW4lgOUV9Wlk1BBQVczt1wylqypHAjXJxnG
52LxjiRPQmSccnuQZ/KtyAr/A7uJFRKJOf4h4TxEzYX0uV6M//ysvEv7QN6l
+eq8S7s579L8nLxL28i7RP8451uaKIg48Lt69ybeTWmXG/Iu6TV7Ysj6SQK1
NqtDEazn7JjQCxpmvWk9ujD+SxBUBpTiGAfqlYmDGf4bwhVOg9TGeyGRZgWk
DhvY6Y7kWe1yo9soza3+2qgIE0ZF2H8wKqIZv4BREfbroiKGWgAWFcn47oeD
InCTeb6TClu9ZGg4ym/kXY57MuBT1+tlyhux8SMZizgjizxFL+rE30DwPd4y
KWClR0cDu4MpO2CXibRsnrQ1mSeEbDj1rB/3guobvCam03yeLoWFIxJ7vDcm
DDUulIqbZ4hXzFZ4rBgzlC1/zzN6mrqvv9EWw2wkAnnmaX5DfmRy4OMteiTi
wLY/w47fRh2/7ePjQ7i0bw/soT2yz+yxff5zfjNP9v7J/8znuDqo/XxGJ8TR
ZODnsZNyPz/eh0daeGL+/tBlnvQHP3//BeaB6oQiVhoQnt3Dkt86NbJbwiK7
xqUggeho06AP8JKTvNiyJksH7uMYYdMFGr+/fPX61eWrty9fMbltUm73+88b
6m3fmbA+E6yl3gj/QQ2jlAgwrjsVVYklhctImjJCaZgF0e+apfbusjtnOB27
btam8Je4d0BASNCI7d6X8+TGh9q5uyXkfhCKRDUuUAGXaryq7DrENvBybNLx
D9AeblnEPfQYOq1Pa+Z6tyxbcs28hjDRiFgfnZYXFwynjno5Le1slmyaJGzQ
C9YCxTW7Vq2qZkWmzn6aKPG4KSV3eRiJw6ZcXoePDXDi2HR2uhfSPkkOMnN9
nIADwoM6LHzGjsC2/pCq4Owx1HBYr2wMqFNTJt9+KtXt1YKnJii326uXgWOD
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
mP8HF313I2fxAAA=
</rfc> </rfc>
 End of changes. 99 change blocks. 
2493 lines changed or deleted 1537 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/