| 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" ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse | |||
| <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.12 --> | nsus="true" docName="draft-ietf-mboned-driad-amt-discovery-13" indexInclude="tru | |||
| e" ipr="trust200902" number="8777" prepTime="2020-04-23T09:39:05" scripts="Commo | ||||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | n,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocIn | |||
| ]> | clude="true" updates="7450" xml:lang="en"> | |||
| <link href="https://datatracker.ietf.org/doc/draft-ietf-mboned-driad-amt-disco | ||||
| <?rfc toc="yes"?> | very-13" rel="prev"/> | |||
| <?rfc sortrefs="yes"?> | <link href="https://dx.doi.org/10.17487/rfc8777" rel="alternate"/> | |||
| <?rfc symrefs="yes"?> | <link href="urn:issn:2070-1721" rel="alternate"/> | |||
| <rfc ipr="trust200902" docName="draft-ietf-mboned-driad-amt-discovery-13" catego | ||||
| ry="std" updates="7450"> | ||||
| <front> | <front> | |||
| <title abbrev="DRIAD">DNS Reverse IP AMT (Automatic Multicast Tunneling) Dis | <title abbrev="DRIAD">DNS Reverse IP Automatic Multicast Tunneling (AMT) Dis | |||
| covery</title> | covery</title> | |||
| <seriesInfo name="RFC" value="8777" stream="IETF"/> | ||||
| <author initials="J." surname="Holland" fullname="Jake Holland"> | <author initials="J." surname="Holland" fullname="Jake Holland"> | |||
| <organization>Akamai Technologies, Inc.</organization> | <organization showOnFrontPage="true">Akamai Technologies, Inc.</organizati on> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>150 Broadway</street> | <street>150 Broadway</street> | |||
| <city>Cambridge, MA 02144</city> | <city>Cambridge</city> | |||
| <region>MA</region> | ||||
| <code>02144</code> | ||||
| <country>United States of America</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>jakeholland.net@gmail.com</email> | <email>jakeholland.net@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="04" year="2020"/> | ||||
| <date year="2019" month="December" day="20"/> | ||||
| <area>Ops</area> | <area>Ops</area> | |||
| <workgroup>Mboned</workgroup> | <workgroup>Mboned</workgroup> | |||
| <keyword>Internet-Draft</keyword> | <keyword>example</keyword> | |||
| <abstract pn="section-abstract"> | ||||
| <abstract> | <t pn="section-abstract-1">This document updates RFC 7450, "Automatic Mult | |||
| icast Tunneling" (or AMT), by | ||||
| <t>This document updates RFC 7450 (Automatic Multicast Tunneling, or AMT) by | modifying the relay discovery process. A new DNS resource record named | |||
| modifying the relay discovery process. A new DNS resource record named | AMTRELAY is defined for publishing AMT relays for source-specific multicast | |||
| 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 | |||
| 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 | |||
| 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 | |||
| that can receive and forward multicast traffic from that sender over an AMT | tunnel. Other extensions and clarifications to the relay discovery | |||
| tunnel. Other extensions and clarifications to the relay discovery | process are also defined.</t> | |||
| process are also defined.</t> | ||||
| </abstract> | </abstract> | |||
| <boilerplate> | ||||
| <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | ||||
| "exclude" pn="section-boilerplate.1"> | ||||
| <name slugifiedName="name-status-of-this-memo">Status of This Memo</name | ||||
| > | ||||
| <t pn="section-boilerplate.1-1"> | ||||
| This is an Internet Standards Track document. | ||||
| </t> | ||||
| <t pn="section-boilerplate.1-2"> | ||||
| This document is a product of the Internet Engineering Task Force | ||||
| (IETF). It represents the consensus of the IETF community. It has | ||||
| received public review and has been approved for publication by | ||||
| the Internet Engineering Steering Group (IESG). Further | ||||
| information on Internet Standards is available in Section 2 of | ||||
| RFC 7841. | ||||
| </t> | ||||
| <t pn="section-boilerplate.1-3"> | ||||
| Information about the current status of this document, any | ||||
| errata, and how to provide feedback on it may be obtained at | ||||
| <eref target="https://www.rfc-editor.org/info/rfc8777" brackets="non | ||||
| e"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="copyright" numbered="false" removeInRFC="false" toc="excl | ||||
| ude" pn="section-boilerplate.2"> | ||||
| <name slugifiedName="name-copyright-notice">Copyright Notice</name> | ||||
| <t pn="section-boilerplate.2-1"> | ||||
| Copyright (c) 2020 IETF Trust and the persons identified as the | ||||
| document authors. All rights reserved. | ||||
| </t> | ||||
| <t pn="section-boilerplate.2-2"> | ||||
| This document is subject to BCP 78 and the IETF Trust's Legal | ||||
| Provisions Relating to IETF Documents | ||||
| (<eref target="https://trustee.ietf.org/license-info" brackets="none | ||||
| "/>) in effect on the date of | ||||
| publication of this document. Please review these documents | ||||
| carefully, as they describe your rights and restrictions with | ||||
| respect to this document. Code Components extracted from this | ||||
| document must include Simplified BSD License text as described in | ||||
| Section 4.e of the Trust Legal Provisions and are provided without | ||||
| warranty as described in the Simplified BSD License. | ||||
| </t> | ||||
| </section> | ||||
| </boilerplate> | ||||
| <toc> | ||||
| <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p | ||||
| n="section-toc.1"> | ||||
| <name slugifiedName="name-table-of-contents">Table of Contents</name> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to | ||||
| c.1-1"> | ||||
| <li pn="section-toc.1-1.1"> | ||||
| <t pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter | ||||
| " sectionFormat="of" target="section-1"/>. <xref derivedContent="" format="titl | ||||
| e" sectionFormat="of" target="name-introduction">Introduction</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.1.2"> | ||||
| <li pn="section-toc.1-1.1.2.1"> | ||||
| <t keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derive | ||||
| dContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>. <xre | ||||
| f derivedContent="" format="title" sectionFormat="of" target="name-background">B | ||||
| ackground</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.1.2.2"> | ||||
| <t pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" forma | ||||
| t="counter" sectionFormat="of" target="section-1.2"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-terminology">Terminology</xref></ | ||||
| t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
| ction-toc.1-1.1.2.2.2"> | ||||
| <li pn="section-toc.1-1.1.2.2.2.1"> | ||||
| <t keepWithNext="true" pn="section-toc.1-1.1.2.2.2.1.1"><xre | ||||
| f derivedContent="1.2.1" format="counter" sectionFormat="of" target="section-1.2 | ||||
| .1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-r | ||||
| elays-and-gateways">Relays and Gateways</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.1.2.2.2.2"> | ||||
| <t keepWithNext="true" pn="section-toc.1-1.1.2.2.2.2.1"><xre | ||||
| f derivedContent="1.2.2" format="counter" sectionFormat="of" target="section-1.2 | ||||
| .2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-d | ||||
| efinitions">Definitions</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.1.2.2.2.3"> | ||||
| <t pn="section-toc.1-1.1.2.2.2.3.1"><xref derivedContent="1. | ||||
| 2.3" format="counter" sectionFormat="of" target="section-1.2.3"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-requirements-language | ||||
| ">Requirements Language</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.2"> | ||||
| <t pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter | ||||
| " sectionFormat="of" target="section-2"/>. <xref derivedContent="" format="titl | ||||
| e" sectionFormat="of" target="name-relay-discovery-overview">Relay Discovery Ove | ||||
| rview</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.2.2"> | ||||
| <li pn="section-toc.1-1.2.2.1"> | ||||
| <t pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" forma | ||||
| t="counter" sectionFormat="of" target="section-2.1"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-basic-mechanics">Basic Mechanics< | ||||
| /xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.2.2.2"> | ||||
| <t pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" forma | ||||
| t="counter" sectionFormat="of" target="section-2.2"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-signaling-and-discovery">Signalin | ||||
| g and Discovery</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.2.2.3"> | ||||
| <t pn="section-toc.1-1.2.2.3.1"><xref derivedContent="2.3" forma | ||||
| t="counter" sectionFormat="of" target="section-2.3"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-example-deployments">Example Depl | ||||
| oyments</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
| ction-toc.1-1.2.2.3.2"> | ||||
| <li pn="section-toc.1-1.2.2.3.2.1"> | ||||
| <t pn="section-toc.1-1.2.2.3.2.1.1"><xref derivedContent="2. | ||||
| 3.1" format="counter" sectionFormat="of" target="section-2.3.1"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-example-receiving-net | ||||
| works">Example Receiving Networks</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.2.2.3.2.2"> | ||||
| <t pn="section-toc.1-1.2.2.3.2.2.1"><xref derivedContent="2. | ||||
| 3.2" format="counter" sectionFormat="of" target="section-2.3.2"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-example-sending-netwo | ||||
| rks">Example Sending Networks</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3"> | ||||
| <t pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter | ||||
| " sectionFormat="of" target="section-3"/>. <xref derivedContent="" format="titl | ||||
| e" sectionFormat="of" target="name-relay-discovery-operation">Relay Discovery Op | ||||
| eration</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.3.2"> | ||||
| <li pn="section-toc.1-1.3.2.1"> | ||||
| <t pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" forma | ||||
| t="counter" sectionFormat="of" target="section-3.1"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-optimal-relay-selection">Optimal | ||||
| Relay Selection</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
| ction-toc.1-1.3.2.1.2"> | ||||
| <li pn="section-toc.1-1.3.2.1.2.1"> | ||||
| <t pn="section-toc.1-1.3.2.1.2.1.1"><xref derivedContent="3. | ||||
| 1.1" format="counter" sectionFormat="of" target="section-3.1.1"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-overview">Overview</x | ||||
| ref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.1.2.2"> | ||||
| <t pn="section-toc.1-1.3.2.1.2.2.1"><xref derivedContent="3. | ||||
| 1.2" format="counter" sectionFormat="of" target="section-3.1.2"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-preference-ordering"> | ||||
| Preference Ordering</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.1.2.3"> | ||||
| <t pn="section-toc.1-1.3.2.1.2.3.1"><xref derivedContent="3. | ||||
| 1.3" format="counter" sectionFormat="of" target="section-3.1.3"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-connecting-to-multipl | ||||
| e-rela">Connecting to Multiple Relays</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.2"> | ||||
| <t pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" forma | ||||
| t="counter" sectionFormat="of" target="section-3.2"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-happy-eyeballs">Happy Eyeballs</x | ||||
| ref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
| ction-toc.1-1.3.2.2.2"> | ||||
| <li pn="section-toc.1-1.3.2.2.2.1"> | ||||
| <t pn="section-toc.1-1.3.2.2.2.1.1"><xref derivedContent="3. | ||||
| 2.1" format="counter" sectionFormat="of" target="section-3.2.1"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-overview-2">Overview< | ||||
| /xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.2.2.2"> | ||||
| <t pn="section-toc.1-1.3.2.2.2.2.1"><xref derivedContent="3. | ||||
| 2.2" format="counter" sectionFormat="of" target="section-3.2.2"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-algorithm-guidelines" | ||||
| >Algorithm Guidelines</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.2.2.3"> | ||||
| <t pn="section-toc.1-1.3.2.2.2.3.1"><xref derivedContent="3. | ||||
| 2.3" format="counter" sectionFormat="of" target="section-3.2.3"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-connection-definition | ||||
| ">Connection Definition</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.3"> | ||||
| <t pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" forma | ||||
| t="counter" sectionFormat="of" target="section-3.3"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-guidelines-for-restarting-d">Guid | ||||
| elines for Restarting Discovery</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
| ction-toc.1-1.3.2.3.2"> | ||||
| <li pn="section-toc.1-1.3.2.3.2.1"> | ||||
| <t pn="section-toc.1-1.3.2.3.2.1.1"><xref derivedContent="3. | ||||
| 3.1" format="counter" sectionFormat="of" target="section-3.3.1"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-overview-3">Overview< | ||||
| /xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.3.2.2"> | ||||
| <t pn="section-toc.1-1.3.2.3.2.2.1"><xref derivedContent="3. | ||||
| 3.2" format="counter" sectionFormat="of" target="section-3.3.2"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-updates-to-restarting | ||||
| -event">Updates to Restarting Events</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.3.2.3"> | ||||
| <t pn="section-toc.1-1.3.2.3.2.3.1"><xref derivedContent="3. | ||||
| 3.3" format="counter" sectionFormat="of" target="section-3.3.3"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-tunnel-stability">Tun | ||||
| nel Stability</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.3.2.4"> | ||||
| <t pn="section-toc.1-1.3.2.3.2.4.1"><xref derivedContent="3. | ||||
| 3.4" format="counter" sectionFormat="of" target="section-3.3.4"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-traffic-health">Traff | ||||
| ic Health</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.3.2.5"> | ||||
| <t pn="section-toc.1-1.3.2.3.2.5.1"><xref derivedContent="3. | ||||
| 3.5" format="counter" sectionFormat="of" target="section-3.3.5"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-relay-loaded-or-shutt | ||||
| ing-do">Relay Loaded or Shutting Down</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.3.2.6"> | ||||
| <t pn="section-toc.1-1.3.2.3.2.6.1"><xref derivedContent="3. | ||||
| 3.6" format="counter" sectionFormat="of" target="section-3.3.6"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-relay-discovery-messa | ||||
| ges-vs">Relay Discovery Messages vs. Restarting Discovery</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.3.2.7"> | ||||
| <t pn="section-toc.1-1.3.2.3.2.7.1"><xref derivedContent="3. | ||||
| 3.7" format="counter" sectionFormat="of" target="section-3.3.7"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-independent-discovery | ||||
| -per-t">Independent Discovery per Traffic Source</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.4"> | ||||
| <t pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" forma | ||||
| t="counter" sectionFormat="of" target="section-3.4"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-dns-configuration">DNS Configurat | ||||
| ion</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.3.2.5"> | ||||
| <t pn="section-toc.1-1.3.2.5.1"><xref derivedContent="3.5" forma | ||||
| t="counter" sectionFormat="of" target="section-3.5"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-waiting-for-dns-resolution">Waiti | ||||
| ng for DNS Resolution</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4"> | ||||
| <t pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter | ||||
| " sectionFormat="of" target="section-4"/>. <xref derivedContent="" format="titl | ||||
| e" sectionFormat="of" target="name-amtrelay-resource-record-de">AMTRELAY Resourc | ||||
| e Record Definition</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.4.2"> | ||||
| <li pn="section-toc.1-1.4.2.1"> | ||||
| <t pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" forma | ||||
| t="counter" sectionFormat="of" target="section-4.1"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-amtrelay-rrtype">AMTRELAY RRType< | ||||
| /xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4.2.2"> | ||||
| <t pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" forma | ||||
| t="counter" sectionFormat="of" target="section-4.2"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-amtrelay-rdata-format">AMTRELAY R | ||||
| Data Format</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
| ction-toc.1-1.4.2.2.2"> | ||||
| <li pn="section-toc.1-1.4.2.2.2.1"> | ||||
| <t pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4. | ||||
| 2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-rdata-format-preceden | ||||
| ce">RData Format - Precedence</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4.2.2.2.2"> | ||||
| <t pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4. | ||||
| 2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-rdata-format-discover | ||||
| y-opti">RData Format - Discovery Optional (D-bit)</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4.2.2.2.3"> | ||||
| <t pn="section-toc.1-1.4.2.2.2.3.1"><xref derivedContent="4. | ||||
| 2.3" format="counter" sectionFormat="of" target="section-4.2.3"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-rdata-format-type">RD | ||||
| ata Format - Type</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4.2.2.2.4"> | ||||
| <t pn="section-toc.1-1.4.2.2.2.4.1"><xref derivedContent="4. | ||||
| 2.4" format="counter" sectionFormat="of" target="section-4.2.4"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-rdata-format-relay">R | ||||
| Data Format - Relay</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4.2.3"> | ||||
| <t pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" forma | ||||
| t="counter" sectionFormat="of" target="section-4.3"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-amtrelay-record-presentatio">AMTR | ||||
| ELAY Record Presentation Format</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
| ction-toc.1-1.4.2.3.2"> | ||||
| <li pn="section-toc.1-1.4.2.3.2.1"> | ||||
| <t pn="section-toc.1-1.4.2.3.2.1.1"><xref derivedContent="4. | ||||
| 3.1" format="counter" sectionFormat="of" target="section-4.3.1"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-representation-of-amt | ||||
| relay-">Representation of AMTRELAY RRs</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.4.2.3.2.2"> | ||||
| <t pn="section-toc.1-1.4.2.3.2.2.1"><xref derivedContent="4. | ||||
| 3.2" format="counter" sectionFormat="of" target="section-4.3.2"/>. <xref derive | ||||
| dContent="" format="title" sectionFormat="of" target="name-examples">Examples</x | ||||
| ref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.5"> | ||||
| <t pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter | ||||
| " sectionFormat="of" target="section-5"/>. <xref derivedContent="" format="titl | ||||
| e" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xre | ||||
| f></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.6"> | ||||
| <t pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter | ||||
| " sectionFormat="of" target="section-6"/>. <xref derivedContent="" format="titl | ||||
| e" sectionFormat="of" target="name-security-considerations">Security Considerati | ||||
| ons</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.6.2"> | ||||
| <li pn="section-toc.1-1.6.2.1"> | ||||
| <t pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" forma | ||||
| t="counter" sectionFormat="of" target="section-6.1"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-use-of-amt">Use of AMT</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.6.2.2"> | ||||
| <t pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" forma | ||||
| t="counter" sectionFormat="of" target="section-6.2"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-record-spoofing">Record-Spoofing< | ||||
| /xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.6.2.3"> | ||||
| <t pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" forma | ||||
| t="counter" sectionFormat="of" target="section-6.3"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-congestion">Congestion</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.7"> | ||||
| <t pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter | ||||
| " sectionFormat="of" target="section-7"/>. <xref derivedContent="" format="titl | ||||
| e" sectionFormat="of" target="name-references">References</xref></t> | ||||
| <ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
| n-toc.1-1.7.2"> | ||||
| <li pn="section-toc.1-1.7.2.1"> | ||||
| <t pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" forma | ||||
| t="counter" sectionFormat="of" target="section-7.1"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-normative-references">Normative R | ||||
| eferences</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.7.2.2"> | ||||
| <t pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" forma | ||||
| t="counter" sectionFormat="of" target="section-7.2"/>. <xref derivedContent="" | ||||
| format="title" sectionFormat="of" target="name-informative-references">Informati | ||||
| ve References</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.8"> | ||||
| <t pn="section-toc.1-1.8.1"><xref derivedContent="Appendix A" format | ||||
| ="default" sectionFormat="of" target="section-appendix.a"/>. <xref derivedConte | ||||
| nt="" format="title" sectionFormat="of" target="name-unknown-rrtype-construction | ||||
| ">Unknown RRType Construction</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.9"> | ||||
| <t pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" se | ||||
| ctionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="ti | ||||
| tle" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></ | ||||
| t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.10"> | ||||
| <t pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" s | ||||
| ectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="t | ||||
| itle" sectionFormat="of" target="name-authors-address">Author's Address</xref></ | ||||
| t> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </toc> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="intro" numbered="true" toc="include" removeInRFC="false" pn | ||||
| ="section-1"> | ||||
| <name slugifiedName="name-introduction">Introduction</name> | ||||
| <t pn="section-1-1">This document defines DNS Reverse IP AMT Discovery (DR | ||||
| IAD), a mechanism for | ||||
| AMT gateways to discover AMT relays that are capable of forwarding multicast | ||||
| traffic from a known source IP address.</t> | ||||
| <t pn="section-1-2">AMT (Automatic Multicast Tunneling) is defined in <xre | ||||
| f target="RFC7450" format="default" sectionFormat="of" derivedContent="RFC7450"/ | ||||
| > 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 pn="section-1-3"><xref target="RFC7450" sectionFormat="of" section="4.1 | ||||
| .5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-4.1 | ||||
| .5" derivedContent="RFC7450"/> explains that 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 pn="section-1-4"><xref target="RFC7450" sectionFormat="of" section="4.1 | ||||
| .5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-4.1 | ||||
| .5" derivedContent="RFC7450"/> 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" format="default" deri | ||||
| vedLink="https://rfc-editor.org/rfc/rfc8313#section-3.3" derivedContent="RFC8313 | ||||
| "/> and | ||||
| <xref target="RFC8313" sectionFormat="bare" section="3.4" format="default" deri | ||||
| vedLink="https://rfc-editor.org/rfc/rfc8313#section-3.4" derivedContent="RFC8313 | ||||
| "/> of <xref target="RFC8313" format="default" sectionFormat="of" derivedContent | ||||
| ="RFC8313"/>.</t> | ||||
| <t pn="section-1-5">The goal for DRIAD is to enable multicast connectivity | ||||
| between separate | ||||
| 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 pn="section-1-6">This document extends the relay discovery procedure de | ||||
| scribed in <xref target="RFC7450" sectionFormat="of" section="5.2.3.4" format="d | ||||
| efault" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-5.2.3.4" derived | ||||
| Content="RFC7450"/>.</t> | ||||
| <section anchor="background" numbered="true" toc="include" removeInRFC="fa | ||||
| lse" pn="section-1.1"> | ||||
| <name slugifiedName="name-background">Background</name> | ||||
| <t pn="section-1.1-1">The reader is assumed to be familiar with the basi | ||||
| c DNS concepts | ||||
| described in <xref target="RFC1034" format="default" sectionFormat="of" derived | ||||
| Content="RFC1034"/>, <xref target="RFC1035" format="default" sectionFormat="of" | ||||
| derivedContent="RFC1035"/>, and the subsequent documents that update them, parti | ||||
| cularly <xref target="RFC2181" format="default" sectionFormat="of" derivedConten | ||||
| t="RFC2181"/>.</t> | ||||
| <t pn="section-1.1-2">The reader is also assumed to be familiar with the | ||||
| concepts and terminology | ||||
| regarding source-specific multicast as described in <xref target="RFC4607" form | ||||
| at="default" sectionFormat="of" derivedContent="RFC4607"/> and the | ||||
| use of Internet Group Management Protocol Version 3 (IGMPv3) <xref target="RFC3 | ||||
| 376" format="default" sectionFormat="of" derivedContent="RFC3376"/> and Multicas | ||||
| t Listener Discovery Version 2 | ||||
| (MLDv2) <xref target="RFC3810" format="default" sectionFormat="of" derivedConte | ||||
| nt="RFC3810"/> for group management of | ||||
| source-specific multicast channels, as described in <xref target="RFC4604" form | ||||
| at="default" sectionFormat="of" derivedContent="RFC4604"/>.</t> | ||||
| <t pn="section-1.1-3">The reader should also be familiar with AMT, parti | ||||
| cularly the terminology | ||||
| listed in Sections <xref target="RFC7450" sectionFormat="bare" section="3.2" fo | ||||
| rmat="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-3.2" deri | ||||
| vedContent="RFC7450"/> | ||||
| and <xref target="RFC7450" sectionFormat="bare" section="3.3" format="de | ||||
| fault" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-3.3" derivedConte | ||||
| nt="RFC7450"/> of <xref target="RFC7450" format="default" sectionFormat="of" der | ||||
| ivedContent="RFC7450"/>.</t> | ||||
| </section> | ||||
| <section anchor="terminology" numbered="true" toc="include" removeInRFC="f | ||||
| alse" pn="section-1.2"> | ||||
| <name slugifiedName="name-terminology">Terminology</name> | ||||
| <section anchor="relays-and-gateways" numbered="true" toc="include" remo | ||||
| veInRFC="false" pn="section-1.2.1"> | ||||
| <name slugifiedName="name-relays-and-gateways">Relays and Gateways</na | ||||
| me> | ||||
| <t pn="section-1.2.1-1">When reading this document, it's especially he | ||||
| lpful 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" sectionFormat="of" derivedContent="Figure 1"/>.</t> | ||||
| <figure anchor="figtunnel" align="left" suppress-title="false" pn="fig | ||||
| ure-1"> | ||||
| <name slugifiedName="name-amt-tunnel-illustration">AMT Tunnel Illust | ||||
| ration</name> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-1.2.1-2.1"> | ||||
| <section anchor="intro" title="Introduction"> | Multicast +-----------+ Unicast +-------------+ Multicast | |||
| >---------> | AMT relay | >=======> | AMT gateway | >---------&g | ||||
| <t>This document defines DNS Reverse IP AMT Discovery (DRIAD), a mechanism for | t; | |||
| AMT gateways to discover AMT relays that are capable of forwarding multicast | +-----------+ +-------------+ | |||
| traffic from a known source IP address.</t> | </artwork> | |||
| </figure> | ||||
| <t>AMT (Automatic Multicast Tunneling) is defined in <xref target="RFC7450"/>, a | </section> | |||
| nd provides | <section anchor="definitions" numbered="true" toc="include" removeInRFC= | |||
| a method to transport multicast traffic over a unicast tunnel, in order to | "false" pn="section-1.2.2"> | |||
| traverse non-multicast-capable network segments.</t> | <name slugifiedName="name-definitions">Definitions</name> | |||
| <table align="center" pn="table-1"> | ||||
| <t>Section 4.1.5 of <xref target="RFC7450"/> explains that the relay selection p | <name slugifiedName="name-definitions-2">Definitions</name> | |||
| rocess | <thead> | |||
| for AMT is intended to be more flexible than the particular discovery method | <tr> | |||
| described in that document, and further explains that the selection process | <th align="right" colspan="1" rowspan="1">Term</th> | |||
| might need to depend on the source of the multicast traffic in some | <th align="left" colspan="1" rowspan="1">Definition</th> | |||
| deployments, since a relay must be able to receive multicast traffic from the | </tr> | |||
| desired source in order to forward it.</t> | </thead> | |||
| <tbody> | ||||
| <t>That section goes on to suggest DNS-based queries as a possible solution. | <tr> | |||
| DRIAD is a DNS-based solution, as suggested there. This solution also | <td align="right" colspan="1" rowspan="1">(S,G)</td> | |||
| addresses the relay discovery issues in the “Disadvantages” lists in Section | <td align="left" colspan="1" rowspan="1">A source-specific multi | |||
| 3.3 of <xref target="RFC8313"/> and Section 3.4 of <xref target="RFC8313"/>.</t> | cast channel, as described in <xref target="RFC4607" format="default" sectionFor | |||
| mat="of" derivedContent="RFC4607"/>. A pair of IP addresses with a source host I | ||||
| <t>The goal for DRIAD is to enable multicast connectivity between separate | P and destination group IP.</td> | |||
| multicast-enabled networks when neither the sending nor the receiving network | </tr> | |||
| is connected to a multicast-enabled backbone, without pre-configuring any | <tr> | |||
| peering arrangement between the networks.</t> | <td align="right" colspan="1" rowspan="1">CMTS</td> | |||
| <td align="left" colspan="1" rowspan="1">Cable Modem Termination | ||||
| <t>This document extends the relay discovery procedure described in Section | System</td> | |||
| 5.2.3.4 of <xref target="RFC7450"/>.</t> | </tr> | |||
| <tr> | ||||
| <section anchor="background" title="Background"> | <td align="right" colspan="1" rowspan="1">discovery broker</td> | |||
| <td align="left" colspan="1" rowspan="1">A broker or load balanc | ||||
| <t>The reader is assumed to be familiar with the basic DNS concepts | er for AMT relay | |||
| described in <xref target="RFC1034"/>, <xref target="RFC1035"/>, and the subsequ | discovery, as mentioned in <xref target="RFC7450" sectionFormat= | |||
| ent documents that | "of" section="4.2.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/ | |||
| update them, particularly <xref target="RFC2181"/>.</t> | rfc7450#section-4.2.1.1" derivedContent="RFC7450"/>.</td> | |||
| </tr> | ||||
| <t>The reader is also assumed to be familiar with the concepts and terminology | <tr> | |||
| regarding source-specific multicast as described in <xref target="RFC4607"/> and | <td align="right" colspan="1" rowspan="1">downstream</td> | |||
| the | <td align="left" colspan="1" rowspan="1">Further from the source | |||
| use of IGMPv3 <xref target="RFC3376"/> and MLDv2 <xref target="RFC3810"/> for gr | of traffic, as described in <xref target="RFC7450" format="default" sectionForm | |||
| oup management of | at="of" derivedContent="RFC7450"/>.</td> | |||
| source-specific multicast channels, as described in <xref target="RFC4604"/>.</t | </tr> | |||
| > | <tr> | |||
| <td align="right" colspan="1" rowspan="1">FQDN</td> | ||||
| <t>The reader should also be familiar with AMT, particularly the terminology | <td align="left" colspan="1" rowspan="1">Fully Qualified Domain | |||
| listed in Section 3.2 of <xref target="RFC7450"/> and Section 3.3 of <xref targe | Name, as described in <xref target="RFC8499" format="default" sectionFormat="of" | |||
| t="RFC7450"/>.</t> | derivedContent="RFC8499"/>.</td> | |||
| </tr> | ||||
| </section> | <tr> | |||
| <section anchor="terminology" title="Terminology"> | <td align="right" colspan="1" rowspan="1">gateway</td> | |||
| <td align="left" colspan="1" rowspan="1">An AMT gateway, as desc | ||||
| <section anchor="relays-and-gateways" title="Relays and Gateways"> | ribed in <xref target="RFC7450" format="default" sectionFormat="of" derivedConte | |||
| nt="RFC7450"/>.</td> | ||||
| <t>When reading this document, it’s especially helpful to recall that once | </tr> | |||
| an AMT tunnel is established, the relay receives native multicast traffic | <tr> | |||
| and sends unicast tunnel-encapsulated traffic to the gateway, and the gateway | <td align="right" colspan="1" rowspan="1">L flag</td> | |||
| receives the tunnel-encapsulated packets, decapsulates them, and forwards | <td align="left" colspan="1" rowspan="1">The "Limit" flag descri | |||
| them as native multicast packets, as illustrated in <xref target="figtunnel"/>.< | bed in <xref target="RFC7450" sectionFormat="of" section="5.1.4.4" format="defau | |||
| /t> | lt" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-5.1.4.4" derivedCont | |||
| ent="RFC7450"/>.</td> | ||||
| <figure title="AMT Tunnel Illustration" anchor="figtunnel"><artwork><![CDATA[ | </tr> | |||
| <tr> | ||||
| Multicast +-----------+ Unicast +-------------+ Multicast | <td align="right" colspan="1" rowspan="1">OLT</td> | |||
| >---------> | AMT relay | >=======> | AMT gateway | >---------> | <td align="left" colspan="1" rowspan="1">Optical Line Terminal</ | |||
| +-----------+ +-------------+ | td> | |||
| ]]></artwork></figure> | </tr> | |||
| <tr> | ||||
| </section> | <td align="right" colspan="1" rowspan="1">relay</td> | |||
| <section anchor="definitions" title="Definitions"> | <td align="left" colspan="1" rowspan="1">An AMT relay, as descri | |||
| bed in <xref target="RFC7450" format="default" sectionFormat="of" derivedContent | ||||
| <texttable> | ="RFC7450"/>.</td> | |||
| <ttcol align='right'>Term</ttcol> | </tr> | |||
| <ttcol align='left'>Definition</ttcol> | <tr> | |||
| <c>(S,G)</c> | <td align="right" colspan="1" rowspan="1">RPF</td> | |||
| <c>A source-specific multicast channel, as described in <xref target="RFC4 | <td align="left" colspan="1" rowspan="1">Reverse Path Forwarding | |||
| 607"/>. A pair of IP addresses with a source host IP and destination group IP.</ | , as described in <xref target="RFC5110" format="default" sectionFormat="of" der | |||
| c> | ivedContent="RFC5110"/>.</td> | |||
| <c>discovery broker</c> | </tr> | |||
| <c>A broker or load balancer for AMT relay discovery, as mentioned in sect | <tr> | |||
| ion 4.2.1.1 of <xref target="RFC7450"/>.</c> | <td align="right" colspan="1" rowspan="1">RR</td> | |||
| <c>downstream</c> | <td align="left" colspan="1" rowspan="1">A DNS Resource Record, | |||
| <c>Further from the source of traffic, as described in <xref target="RFC74 | as described in <xref target="RFC1034" format="default" sectionFormat="of" deriv | |||
| 50"/>.</c> | edContent="RFC1034"/>.</td> | |||
| <c>FQDN</c> | </tr> | |||
| <c>Fully Qualified Domain Name, as described in <xref target="RFC8499"/></ | <tr> | |||
| c> | <td align="right" colspan="1" rowspan="1">RRType</td> | |||
| <c>gateway</c> | <td align="left" colspan="1" rowspan="1">A DNS Resource Record T | |||
| <c>An AMT gateway, as described in <xref target="RFC7450"/></c> | ype, as described in <xref target="RFC1034" format="default" sectionFormat="of" | |||
| <c>L flag</c> | derivedContent="RFC1034"/>.</td> | |||
| <c>The “Limit” flag described in Section 5.1.4.4 of <xref target="RFC7450" | </tr> | |||
| /></c> | <tr> | |||
| <c>relay</c> | <td align="right" colspan="1" rowspan="1">SSM</td> | |||
| <c>An AMT relay, as described in <xref target="RFC7450"/></c> | <td align="left" colspan="1" rowspan="1">Source-specific multica | |||
| <c>RPF</c> | st, as described in <xref target="RFC4607" format="default" sectionFormat="of" d | |||
| <c>Reverse Path Forwarding, as described in <xref target="RFC5110"/></c> | erivedContent="RFC4607"/>.</td> | |||
| <c>RR</c> | </tr> | |||
| <c>A DNS Resource Record, as described in <xref target="RFC1034"/></c> | <tr> | |||
| <c>RRType</c> | <td align="right" colspan="1" rowspan="1">upstream</td> | |||
| <c>A DNS Resource Record Type, as described in <xref target="RFC1034"/></c | <td align="left" colspan="1" rowspan="1">Closer to the source of | |||
| > | traffic, as described in <xref target="RFC7450" format="default" sectionFormat= | |||
| <c>SSM</c> | "of" derivedContent="RFC7450"/>.</td> | |||
| <c>Source-specific multicast, as described in <xref target="RFC4607"/></c> | </tr> | |||
| <c>upstream</c> | </tbody> | |||
| <c>Closer to the source of traffic, as described in <xref target="RFC7450" | </table> | |||
| />.</c> | </section> | |||
| <c>CMTS</c> | <section anchor="reqs" numbered="true" toc="include" removeInRFC="false" | |||
| <c>Cable Modem Termination System</c> | pn="section-1.2.3"> | |||
| <c>OLT</c> | <name slugifiedName="name-requirements-language">Requirements Language | |||
| <c>Optical Line Terminal</c> | </name> | |||
| </texttable> | <t pn="section-1.2.3-1"> | |||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQ | ||||
| <t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL | UIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOU | |||
| NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, | LD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14> | |||
| “MAY”, and “OPTIONAL” in this document are to be interpreted as | NOT RECOMMENDED</bcp14>", | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| only when, they | be interpreted as | |||
| appear in all capitals, as shown here.</t> | described in BCP 14 <xref target="RFC2119" format="default" sectionFormat=" | |||
| of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFo | ||||
| </section> | rmat="of" derivedContent="RFC8174"/> | |||
| </section> | when, and only when, they appear in all capitals, as shown here. | |||
| </section> | </t> | |||
| <section anchor="relay-discovery-overview" title="Relay Discovery Overview"> | </section> | |||
| </section> | ||||
| <section anchor="basic-mechanics" title="Basic Mechanics"> | </section> | |||
| <section anchor="relay-discovery-overview" numbered="true" toc="include" rem | ||||
| <t>The AMTRELAY resource record (RR) defined in this document is used to | oveInRFC="false" pn="section-2"> | |||
| publish the IP address or domain name of a set of AMT relays or discovery | <name slugifiedName="name-relay-discovery-overview">Relay Discovery Overvi | |||
| brokers that can receive, encapsulate, and forward multicast traffic from | ew</name> | |||
| a particular sender.</t> | <section anchor="basic-mechanics" numbered="true" toc="include" removeInRF | |||
| C="false" pn="section-2.1"> | ||||
| <t>The sender is the owner of the RR, and configures the zone so that it | <name slugifiedName="name-basic-mechanics">Basic Mechanics</name> | |||
| contains a set of RRs that provide the addresses or domain names of AMT | <t pn="section-2.1-1">The AMTRELAY resource record (RR) defined in this | |||
| relays (or discovery brokers that advertise relays) that can receive | document is used to | |||
| multicast IP traffic from that sender.</t> | 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 | ||||
| <t>This enables AMT gateways in remote networks to discover an AMT relay that | a particular sender.</t> | |||
| is capable of forwarding traffic from the sender. This in turn enables those | <t pn="section-2.1-2">The sender is the owner of the RR and configures t | |||
| AMT gateways to receive the multicast traffic tunneled over a unicast AMT | he zone so that it | |||
| tunnel from those relays, and then to pass the multicast packets into | contains a set of RRs that provide the addresses or domain names of AMT | |||
| networks or applications that are using the gateway to subscribe to traffic | relays (or discovery brokers that advertise relays) that can receive | |||
| from that sender.</t> | multicast IP traffic from that sender.</t> | |||
| <t pn="section-2.1-3">This enables AMT gateways in remote networks to di | ||||
| <t>This mechanism only works for source-specific multicast (SSM) channels. The | scover an AMT relay that | |||
| source address of the (S,G) is reversed and used as an index into one of the | is capable of forwarding traffic from the sender. This, in turn, enables those | |||
| reverse mapping trees (in-addr.arpa for IPv4, as described in Section 3.5 of | AMT gateways to receive the multicast traffic tunneled over a unicast AMT | |||
| <xref target="RFC1035"/>, or ip6.arpa for IPv6, as described in Section 2.5 of < | tunnel from those relays and then pass the multicast packets into | |||
| xref target="RFC3596"/>).</t> | networks or applications that are using the gateway to subscribe to traffic | |||
| from that sender.</t> | ||||
| <t>This mechanism should be treated as an extension of the AMT relay discovery | <t pn="section-2.1-4">This mechanism only works for source-specific mult | |||
| procedure described in Section 5.2.3.4 of <xref target="RFC7450"/>. A gateway t | icast (SSM) channels. The | |||
| hat | source address of the (S,G) is reversed and used as an index into one of the | |||
| supports this method of AMT relay discovery SHOULD use this method | reverse mapping trees (in-addr.arpa for IPv4, as described in <xref target="RFC | |||
| whenever it’s performing the relay discovery procedure, and the source IP | 1035" sectionFormat="of" section="3.5" format="default" derivedLink="https://rfc | |||
| addresses for desired (S,G)s are known to the gateway, and conditions match | -editor.org/rfc/rfc1035#section-3.5" derivedContent="RFC1035"/>, or ip6.arpa for | |||
| the requirements outlined in <xref target="priority"/>.</t> | IPv6, as | |||
| described in <xref target="RFC3596" sectionFormat="of" section="2.5" for | ||||
| <t>Some detailed example use cases are provided in <xref target="exampledeployme | mat="default" derivedLink="https://rfc-editor.org/rfc/rfc3596#section-2.5" deriv | |||
| nts"/>, and | edContent="RFC3596"/>).</t> | |||
| other applicable example topologies appear in Section 3.3 of <xref target="RFC83 | <t pn="section-2.1-5">This mechanism should be treated as an extension o | |||
| 13"/>, | f the AMT relay discovery | |||
| Section 3.4 of <xref target="RFC8313"/>, and Section 3.5 of <xref target="RFC831 | procedure described in <xref target="RFC7450" sectionFormat="of" section="5.2.3 | |||
| 3"/>.</t> | .4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-5.2 | |||
| .3.4" derivedContent="RFC7450"/>. A gateway that | ||||
| </section> | supports this method of AMT relay discovery <bcp14>SHOULD</bcp14> use this meth | |||
| <section anchor="signaling-and-discovery" title="Signaling and Discovery"> | od | |||
| whenever it's performing the relay discovery procedure, the source IP | ||||
| <t>This section describes a typical example of the end-to-end process for | addresses for desired (S,G)s are known to the gateway, and conditions match | |||
| signaling a receiver’s join of an SSM channel that relies on an AMTRELAY | the requirements outlined in <xref target="priority" format="default" sectionFo | |||
| RR.</t> | rmat="of" derivedContent="Section 3.1"/>.</t> | |||
| <t pn="section-2.1-6">Some detailed example use cases are provided in <x | ||||
| <t>The example in <xref target="figmessaging"/> contains 2 multicast-enabled | ref target="exampledeployments" format="default" sectionFormat="of" derivedConte | |||
| networks that are both connected to the internet with non-multicast-capable | nt="Section 2.3"/>, and | |||
| links, and which have no direct association with each other.</t> | other applicable example topologies appear in Sections <xref target="RFC8313" s | |||
| ectionFormat="bare" section="3.3" format="default" derivedLink="https://rfc-edit | ||||
| <t>A content provider operates a sender, which is a source of multicast traffic | or.org/rfc/rfc8313#section-3.3" derivedContent="RFC8313"/>, | |||
| inside a multicast-capable network.</t> | <xref target="RFC8313" sectionFormat="bare" section="3.4" format="default" deri | |||
| vedLink="https://rfc-editor.org/rfc/rfc8313#section-3.4" derivedContent="RFC8313 | ||||
| <t>An end user who is a customer of the content provider has a multicast-capable | "/>, and <xref target="RFC8313" sectionFormat="bare" section="3.5" format="defau | |||
| internet service provider, which operates a receiving network that uses an | lt" derivedLink="https://rfc-editor.org/rfc/rfc8313#section-3.5" derivedContent= | |||
| AMT gateway. The AMT gateway is DRIAD-capable.</t> | "RFC8313"/> of <xref target="RFC8313" format="default" sectionFormat="of" derive | |||
| dContent="RFC8313"/>.</t> | ||||
| <t>The content provider provides the user with a receiving application that | </section> | |||
| tries to subscribe to at least one (S,G). This receiving application could | <section anchor="signaling-and-discovery" numbered="true" toc="include" re | |||
| for example be a file transfer system using FLUTE <xref target="RFC6726"/> or a | moveInRFC="false" pn="section-2.2"> | |||
| live | <name slugifiedName="name-signaling-and-discovery">Signaling and Discove | |||
| video stream using RTP <xref target="RFC3550"/>, or any other application that m | ry</name> | |||
| ight | <t pn="section-2.2-1">This section describes a typical example of the en | |||
| subscribe to an SSM channel.</t> | d-to-end process for | |||
| signaling a receiver's join of an SSM channel that relies on an AMTRELAY | ||||
| <figure title="DRIAD Messaging" anchor="figmessaging"><artwork><![CDATA[ | RR.</t> | |||
| +---------------+ | <t pn="section-2.2-2">The example in <xref target="figmessaging" format= | |||
| | Sender | | "default" sectionFormat="of" derivedContent="Figure 2"/> contains two multicast- | |||
| | | | 2001:db8::a | | enabled | |||
| | | +---------------+ | networks that are both connected to the internet with non-multicast-capable | |||
| |Data| | | links and which have no direct association with each other.</t> | |||
| |Flow| Multicast | | <t pn="section-2.2-3">A content provider operates a sender, which is a s | |||
| \| |/ Network | | ource of multicast traffic | |||
| \ / | 5: Propagate RPF for Join(S,G) | inside a multicast-capable network.</t> | |||
| \ / +---------------+ | <t pn="section-2.2-4">An end user who is a customer of the content provi | |||
| \/ | AMT Relay | | der has a multicast-capable | |||
| | 2001:db8:c::f | | Internet Service Provider (ISP), which operates a receiving network that uses a | |||
| +---------------+ | n | |||
| | 4: Gateway connects to Relay, | AMT gateway. The AMT gateway is DRIAD capable.</t> | |||
| sends Join(S,G) over tunnel | <t pn="section-2.2-5">The content provider provides the user with a rece | |||
| | | iving application that | |||
| Unicast | tries to subscribe to at least one (S,G). This receiving application could, | |||
| Tunnel | 3: --> DNS Query: type=AMTRELAY, | for example, be a file transfer system using File Delivery over Unidirectional | |||
| / a.0.0.0.0.0.0.0.0.0.0.0. | Transport (FLUTE) <xref target="RFC6726" format="default" sectionFormat="of" de | |||
| ^ | / 0.0.0.0.0.0.0.0.0.0.0.0. | rivedContent="RFC6726"/>, a live | |||
| | / 8.b.d.0.1.0.0.2.ip6.arpa | video stream using RTP <xref target="RFC3550" format="default" sectionFormat="o | |||
| | | / <-- Response: | f" derivedContent="RFC3550"/>, or any other application that might | |||
| Join/Leave +-------------+ AMTRELAY=2001:db8:c::f | subscribe to an SSM channel.</t> | |||
| Signals | AMT gateway | | <figure anchor="figmessaging" align="left" suppress-title="false" pn="fi | |||
| | +-------------+ | gure-2"> | |||
| | | 2: Propagate RPF for Join(S,G) | <name slugifiedName="name-driad-messaging">DRIAD Messaging</name> | |||
| | Multicast | | <artwork name="" type="" align="left" alt="" pn="section-2.2-6.1"> | |||
| Network | | +---------------+ | |||
| | 1: Join(S=2001:db8::a,G=ff3e::8000:d) | | Sender | | |||
| +-------------+ | | | | 2001:db8::a | | |||
| | Receiver | | | | +---------------+ | |||
| | (end user) | | |Data| | | |||
| +-------------+ | |Flow| Multicast | | |||
| ]]></artwork></figure> | \| |/ Network | | |||
| \ / | 5: Propagate RPF for Join(S,G) | ||||
| <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 | \/ | AMT relay | | |||
| 2001:db8::c:f.</t> | | 2001:db8:c::f | | |||
| +---------------+ | ||||
| <t>The content provider has previously configured the DNS zone that | | 4: Gateway connects to Relay, | |||
| contains the reverse IP domain name for the sender’s IP address | sends Join(S,G) over tunnel | |||
| 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 | Unicast | |||
| semantics.) As described in Section 2.5 of <xref target="RFC3596"/>, the | Tunnel | 3: --> DNS Query: type=AMTRELAY, | |||
| reverse IP FQDN of the sender’s address “2001:db8::a” is:</t> | / a.0.0.0.0.0.0.0.0.0.0.0. | |||
| ^ | / 0.0.0.0.0.0.0.0.0.0.0.0. | ||||
| <figure><artwork><![CDATA[ | | / 8.b.d.0.1.0.0.2.ip6.arpa | |||
| 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. | | | / <-- Response: | |||
| arpa. | Join/Leave +-------------+ AMTRELAY=2001:db8:c::f | |||
| ]]></artwork></figure> | Signals | AMT gateway | | |||
| | +-------------+ | ||||
| <t>The sequence of events depicted in <xref target="figmessaging"/> is as follow | | | 2: Propagate RPF for Join(S,G) | |||
| s:</t> | | Multicast | | |||
| Network | | ||||
| <t><list style="numbers"> | | 1: Join(S=2001:db8::a,G=ff3e::8000:d) | |||
| <t>The end user starts the app, which issues a join to the (S,G): | +-------------+ | |||
| (2001:db8::a, ff3e::8000:d).</t> | | Receiver | | |||
| <t>The join propagates with RPF through the receiver’s multicast-enabled | | (end user) | | |||
| network with PIM <xref target="RFC7761"/> or another multicast routing mechanism | +-------------+ | |||
| , | </artwork> | |||
| until the AMT gateway receives a signal to join the (S,G).</t> | </figure> | |||
| <t>The AMT gateway performs a reverse DNS lookup for the AMTRELAY RRType, | <t pn="section-2.2-7">In this simple example, the sender IP is 2001:db8: | |||
| by sending an AMTRELAY RRType query for the reverse IP domain name | :a, which is sending | |||
| for the sender’s source IP address (the S from the (S,G)). <vspace blankLines=' | traffic to the group address ff3e::8000:d, and the relay IP is | |||
| 1'/> | 2001:db8::c:f.</t> | |||
| The DNS resolver for the AMT gateway uses ordinary DNS recursive | <t pn="section-2.2-8">The content provider has previously configured the | |||
| resolution until it has the authoritative result that the content | DNS zone that | |||
| provider configured, which informs the AMT gateway that the relay address | contains the reverse IP domain name for the sender's IP address | |||
| is 2001:db8::c:f.</t> | so that it provides an AMTRELAY RR with the relay's IP address | |||
| <t>The AMT gateway performs AMT handshakes with the AMT relay as described | (see <xref target="rpformat" format="default" sectionFormat="of" derivedContent | |||
| in Section 4 of <xref target="RFC7450"/>, then forwards a Membership report to t | ="Section 4.3"/> for details about the AMTRELAY RR format and | |||
| he | semantics). As described in <xref target="RFC3596" sectionFormat="of" section= | |||
| relay indicating subscription to the (S,G).</t> | "2.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3596#section-2 | |||
| <t>The relay propagates the join through its network toward the sender, | .5" derivedContent="RFC3596"/>, the | |||
| then forwards the appropriate AMT-encapsulated traffic to the | reverse IP FQDN of the sender's address "2001:db8::a" is:</t> | |||
| gateway, which decapsulates and forwards it as native multicast through | <sourcecode name="" type="" markers="false" pn="section-2.2-9"> | |||
| its downstream network to the end user.</t> | 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. | |||
| </list></t> | arpa. | |||
| </sourcecode> | ||||
| <t>In the case of an IPv4 (S,G), the only difference in the AMT relay | <t pn="section-2.2-10">The sequence of events depicted in <xref target=" | |||
| discovery process is the use of the in-addr.arpa reverse IP domain name, | figmessaging" format="default" sectionFormat="of" derivedContent="Figure 2"/> is | |||
| as described in Section 3.5 of <xref target="RFC1035"/>, instead of the in6.arpa | as follows:</t> | |||
| domain name. For example, if the (S,G) is (198.51.100.12, 232.252.0.2), | <ol spacing="normal" type="1" start="1" pn="section-2.2-11"> | |||
| the reverse IP FQDN for the AMTRELAY query would be | <li pn="section-2.2-11.1" derivedCounter="1.">The end user starts the | |||
| “12.100.51.198.in-addr.arpa.”.</t> | app, which issues a join to the (S,G): | |||
| (2001:db8::a, ff3e::8000:d).</li> | ||||
| <t>Note that the address family of the AMT tunnel is independent of the | <li pn="section-2.2-11.2" derivedCounter="2.">The join propagates with | |||
| address family for the multicast traffic.</t> | RPF through the receiver's multicast-enabled | |||
| network with PIM <xref target="RFC7761" format="default" sectionFormat="of" der | ||||
| </section> | ivedContent="RFC7761"/> or another | |||
| <section anchor="exampledeployments" title="Example Deployments"> | multicast routing mechanism until the AMT gateway receives a signal to | |||
| join the (S,G).</li> | ||||
| <section anchor="exrx" title="Example Receiving Networks"> | <li pn="section-2.2-11.3" derivedCounter="3."> | |||
| <t pn="section-2.2-11.3.1">The AMT gateway performs a reverse DNS lo | ||||
| <section anchor="exrxisp" title="Internet Service Provider"> | okup for the AMTRELAY | |||
| RRType by sending an AMTRELAY RRType query for the reverse IP domain | ||||
| <t>One example of a receiving network is an Internet Service Provider (ISP) | name | |||
| that offers multicast ingest services to its subscribers, illustrated in | for the sender's source IP address (the S from the (S,G)). </t> | |||
| <xref target="figrxisp"/>.</t> | <t pn="section-2.2-11.3.2"> | |||
| The DNS resolver for the AMT gateway uses ordinary DNS recursive | ||||
| <t>In the example network below, subscribers can join (S,G)s with MLDv2 or | resolution until it has the authoritative result that the content | |||
| IGMPv3 as described in <xref target="RFC4604"/>, and the AMT gateway in this | provider configured, which informs the AMT gateway that the relay address | |||
| ISP can receive and forward multicast traffic from one of the example sending | is 2001:db8::c:f.</t> | |||
| networks in <xref target="extx"/> by discovering the appropriate AMT relays with | </li> | |||
| a DNS | <li pn="section-2.2-11.4" derivedCounter="4.">The AMT gateway performs | |||
| lookup for the AMTRELAY RR with the reverse IP of the source in the (S,G).</t> | AMT handshakes with the AMT relay as described | |||
| in <xref target="RFC7450" section="4" sectionFormat="of" format="default" deriv | ||||
| <figure title="Receiving ISP Example" anchor="figrxisp"><artwork><![CDATA[ | edLink="https://rfc-editor.org/rfc/rfc7450#section-4" derivedContent="RFC7450"/> | |||
| Internet | , then forwards a membership report to the | |||
| ^ ^ Multicast-enabled | relay, indicating subscription to the (S,G).</li> | |||
| | | Receiving Network | <li pn="section-2.2-11.5" derivedCounter="5.">The relay propagates the | |||
| +------|------------|-------------------------+ | join through its network toward the | |||
| | | | | | sender and then forwards the appropriate AMT-encapsulated traffic to t | |||
| | +--------+ +--------+ +=========+ | | he | |||
| | | Border |---| Border | | AMT | | | gateway, which decapsulates and forwards it as a native multicast through | |||
| | | Router | | Router | | gateway | | | its downstream network to the end user.</li> | |||
| | +--------+ +--------+ +=========+ | | </ol> | |||
| | | | | | | <t pn="section-2.2-12">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" format= | |||
| | | Agg Routers | .. | Agg Routers | | | "default" derivedLink="https://rfc-editor.org/rfc/rfc1035#section-3.5" derivedCo | |||
| | +-------------+ +-------------+ | | ntent="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 | |||
| | |Access Systems | ....... |Access Systems | | | "12.100.51.198.in-addr.arpa.".</t> | |||
| | |(CMTS/OLT/etc.)| |(CMTS/OLT/etc.)| | | <t pn="section-2.2-13">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="include" removeI | |||
| +---+-+-+---+---+ +---+-+-+---+---+ | nRFC="false" pn="section-2.3"> | |||
| | | | | | | | | | | | <name slugifiedName="name-example-deployments">Example Deployments</name | |||
| /-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\ /-\ | > | |||
| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| | <section anchor="exrx" numbered="true" toc="include" removeInRFC="false" | |||
| pn="section-2.3.1"> | ||||
| Subscribers | <name slugifiedName="name-example-receiving-networks">Example Receivin | |||
| ]]></artwork></figure> | g Networks</name> | |||
| <section anchor="exrxisp" numbered="true" toc="exclude" removeInRFC="f | ||||
| </section> | alse" pn="section-2.3.1.1"> | |||
| <section anchor="exoffice" title="Small Office"> | <name slugifiedName="name-internet-service-provider">Internet Servic | |||
| e Provider</name> | ||||
| <t>Another example receiving network is a small branch office that regularly | <t pn="section-2.3.1.1-1">One example of a receiving network is an I | |||
| accesses some multicast content, illustrated in <xref target="figrxofficenm"/>.< | nternet Service Provider (ISP) | |||
| /t> | that offers multicast ingest services to its subscribers, illustrated in | |||
| <xref target="figrxisp" format="default" sectionFormat="of" derivedContent="Fig | ||||
| <t>This office has desktop devices that need to receive some multicast traffic, | ure 3"/>.</t> | |||
| so an AMT gateway runs on a LAN with these devices, to pull traffic in | <t pn="section-2.3.1.1-2">In the example network below, subscribers | |||
| through a non-multicast next-hop.</t> | can join (S,G)s with MLDv2 or | |||
| IGMPv3 as described in <xref target="RFC4604" format="default" sectionFormat="o | ||||
| <t>The office also hosts some mobile devices that have AMT gateway instances | f" derivedContent="RFC4604"/>, and the AMT gateway in this | |||
| embedded inside apps, in order to receive multicast traffic over their | ISP can receive and forward multicast traffic from one of the example sending | |||
| non-multicast wireless LAN. (Note that the “Legacy Router” is a | networks in <xref target="extx" format="default" sectionFormat="of" derivedCont | |||
| simplification that’s meant to describe a variety of possible conditions; | ent="Section 2.3.2"/> by discovering the appropriate AMT relays with a DNS | |||
| for example it could be a device providing a split-tunnel VPN as described | lookup for the AMTRELAY RR with the reverse IP of the source in the (S,G).</t> | |||
| in <xref target="RFC7359"/>, deliberately excluding multicast traffic for a VPN | <figure anchor="figrxisp" align="left" suppress-title="false" pn="fi | |||
| tunnel, rather than a device which is incapable of multicast forwarding.)</t> | gure-3"> | |||
| <name slugifiedName="name-receiving-isp-example">Receiving ISP Exa | ||||
| <figure title="Small Office (no multicast up)" anchor="figrxofficenm"><artwork>< | mple</name> | |||
| ![CDATA[ | <artwork name="" type="" align="left" alt="" pn="section-2.3.1.1-3 | |||
| Internet | .1"> | |||
| (non-multicast) | Internet | |||
| ^ | ^ ^ Multicast-enabled | |||
| | Office Network | | | Receiving Network | |||
| +----------|----------------------------------+ | +------|------------|-------------------------+ | |||
| | | | | | | | | | |||
| | +---------------+ (Wifi) Mobile apps | | | +--------+ +--------+ +=========+ | | |||
| | | Modem+ | Wifi | - - - - w/ embedded | | | | Border |---| Border | | AMT | | | |||
| | | Router | AP | AMT gateways | | | | Router | | Router | | gateway | | | |||
| | +---------------+ | | | +--------+ +--------+ +=========+ | | |||
| | | | | | | | | | | |||
| | | | | | +-----+------+-----------+--+ | | |||
| | +----------------+ | | | | | | | |||
| | | Legacy Router | | | | +-------------+ +-------------+ | | |||
| | | (unicast) | | | | | Agg Routers | .. | Agg Routers | | | |||
| | +----------------+ | | | +-------------+ +-------------+ | | |||
| | / | \ | | | / \ \ / \ | | |||
| | / | \ | | | +---------------+ +---------------+ | | |||
| | +--------+ +--------+ +--------+=========+ | | | |Access Systems | ....... |Access Systems | | | |||
| | | Phones | | ConfRm | | Desks | AMT | | | | |(CMTS/OLT/etc.)| |(CMTS/OLT/etc.)| | | |||
| | | 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.<domain> (with <domain> 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"> | ||||
| <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 likely | ||||
| 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 guidelines 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" title="Updates to Restarting Even | ||||
| ts"> | ||||
| <t>Section 5.2.3.4.1 of <xref target="RFC7450"/> lists several events that may c | ||||
| ause a | ||||
| gateway to start or restart the discovery procedure.</t> | ||||
| <t>This document provides some updates and recommendations regarding the | ||||
| handling of these and similar events. The first 5 events are copied | ||||
| here and numbered for easier reference, and the remaining 4 events are | ||||
| newly added for consideration in this document:</t> | ||||
| <t><list style="numbers"> | Subscribers | |||
| <t>When a gateway pseudo-interface is started (enabled).</t> | </artwork> | |||
| <t>When the gateway wishes to report a group subscription when none | </figure> | |||
| currently exist.</t> | </section> | |||
| <t>Before sending the next Request message in a membership update | <section anchor="exoffice" numbered="true" toc="exclude" removeInRFC=" | |||
| cycle.</t> | false" pn="section-2.3.1.2"> | |||
| <t>After the gateway fails to receive a response to a Request | <name slugifiedName="name-small-office">Small Office</name> | |||
| message.</t> | <t pn="section-2.3.1.2-1">Another example receiving network is a sma | |||
| <t>After the gateway receives a Membership Query message with the | ll branch office that regularly | |||
| L flag set to 1.</t> | accesses some multicast content, illustrated in <xref target="figrxofficenm" fo | |||
| <t>When the gateway wishes to report an (S,G) subscription with a source | rmat="default" sectionFormat="of" derivedContent="Figure 4"/>.</t> | |||
| address that does not currently have other group subscriptions.</t> | <t pn="section-2.3.1.2-2">This office has desktop devices that need | |||
| <t>When there is a network change detected, for example when a gateway is | to receive some multicast traffic, | |||
| operating inside an end user device or application, and the device | so an AMT gateway runs on a LAN with these devices to pull traffic in | |||
| joins a different network, or when the domain portion of a DNS-SD | through a non-multicast next hop.</t> | |||
| <t pn="section-2.3.1.2-3">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" format="default" sectionFormat="of" derivedContent="R | ||||
| FC7359"/>, deliberately excluding multicast traffic for a VPN | ||||
| tunnel, rather than a device that is incapable of multicast forwarding.)</t> | ||||
| <figure anchor="figrxofficenm" align="left" suppress-title="false" p | ||||
| n="figure-4"> | ||||
| <name slugifiedName="name-small-office-no-multicast-u">Small Offic | ||||
| e (No Multicast Up)</name> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-2.3.1.2-4 | ||||
| .1"> | ||||
| 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 pn="section-2.3.1.2-5">By adding an AMT relay to this office netw | ||||
| ork as in <xref target="figrxoffice" format="default" sectionFormat="of" derived | ||||
| Content="Figure 5"/>, it's | ||||
| possible to make use of multicast services from the example multicast-capable | ||||
| ISP in <xref target="exrxisp" format="default" sectionFormat="of" derivedConten | ||||
| t="Section 2.3.1.1"/>.</t> | ||||
| <figure anchor="figrxoffice" align="left" suppress-title="false" pn= | ||||
| "figure-5"> | ||||
| <name slugifiedName="name-small-office-example">Small Office Examp | ||||
| le</name> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-2.3.1.2-6 | ||||
| .1"> | ||||
| 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 pn="section-2.3.1.2-7">When multicast-capable networks are chaine | ||||
| d like this, with a network like | ||||
| the one in <xref target="figrxoffice" format="default" sectionFormat="of" deriv | ||||
| edContent="Figure 5"/> receiving Internet services from a | ||||
| multicast-capable network like the one in <xref target="figrxisp" format="defau | ||||
| lt" sectionFormat="of" derivedContent="Figure 3"/>, 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" sectionFormat="of" derivedC | ||||
| ontent="Figure 3"/>.</t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="extx" numbered="true" toc="include" removeInRFC="false" | ||||
| pn="section-2.3.2"> | ||||
| <name slugifiedName="name-example-sending-networks">Example Sending Ne | ||||
| tworks</name> | ||||
| <section anchor="extxsnd" numbered="true" toc="exclude" removeInRFC="f | ||||
| alse" pn="section-2.3.2.1"> | ||||
| <name slugifiedName="name-sender-controlled-relays">Sender-Controlle | ||||
| d Relays</name> | ||||
| <t pn="section-2.3.2.1-1">When a sender network is also operating AM | ||||
| T relays to distribute multicast | ||||
| traffic, as in <xref target="figtxrelay" format="default" sectionFormat="of" de | ||||
| rivedContent="Figure 6"/>, 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" align="left" suppress-title="false" pn=" | ||||
| figure-6"> | ||||
| <name slugifiedName="name-small-office-example-2">Small Office Exa | ||||
| mple</name> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-2.3.2.1-2 | ||||
| .1"> | ||||
| Sender Network | ||||
| +-----------------------------------+ | ||||
| | | | ||||
| | +--------+ +=======+ +=======+ | | ||||
| | | Sender | | AMT | | AMT | | | ||||
| | +--------+ | relay | | relay | | | ||||
| | | +=======+ +=======+ | | ||||
| | | | | | | ||||
| | +-----+------+----------+ | | ||||
| | | | | ||||
| +-----------|-----------------------+ | ||||
| v | ||||
| Internet | ||||
| (non-multicast) | ||||
| </artwork> | ||||
| </figure> | ||||
| </section> | ||||
| <section anchor="extxprv" numbered="true" toc="exclude" removeInRFC="f | ||||
| alse" pn="section-2.3.2.2"> | ||||
| <name slugifiedName="name-provider-controlled-relays">Provider-Contr | ||||
| olled Relays</name> | ||||
| <t pn="section-2.3.2.2-1">When an ISP offers a service to transmit o | ||||
| utbound 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" format="default" sectionFormat="of" derivedContent="Fig | ||||
| ure 7"/>. 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 pn="section-2.3.2.2-2">When the sender wishes to use the relays p | ||||
| rovided 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" align="left" suppress-title="false" pn="fi | ||||
| gure-7"> | ||||
| <name slugifiedName="name-sending-isp-example">Sending ISP Example | ||||
| </name> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-2.3.2.2-3 | ||||
| .1"> | ||||
| +--------+ | ||||
| | 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="include" re | ||||
| moveInRFC="false" pn="section-3"> | ||||
| <name slugifiedName="name-relay-discovery-operation">Relay Discovery Opera | ||||
| tion</name> | ||||
| <section anchor="priority" numbered="true" toc="include" removeInRFC="fals | ||||
| e" pn="section-3.1"> | ||||
| <name slugifiedName="name-optimal-relay-selection">Optimal Relay Selecti | ||||
| on</name> | ||||
| <section anchor="overview" numbered="true" toc="include" removeInRFC="fa | ||||
| lse" pn="section-3.1.1"> | ||||
| <name slugifiedName="name-overview">Overview</name> | ||||
| <t pn="section-3.1.1-1">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 pn="section-3.1.1-2">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 pn="section-3.1.1-3">If there is an upstream relay in a network tha | ||||
| t is topologically closer 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" sectionFormat="of" deri | ||||
| vedContent="Figure 5"/> from <xref target="exoffice" format="default" sectionFor | ||||
| mat="of" derivedContent="Section 2.3.1.2"/>.</t> | ||||
| <t pn="section-3.1.1-4">It's only appropriate for an AMT gateway to di | ||||
| scover an AMT relay by querying | ||||
| an AMTRELAY RR owned by a sender when all of these conditions are met:</t> | ||||
| <ol spacing="normal" type="1" start="1" pn="section-3.1.1-5"> | ||||
| <li pn="section-3.1.1-5.1" derivedCounter="1.">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);</li> | ||||
| <li pn="section-3.1.1-5.2" derivedCounter="2.">The gateway is not al | ||||
| ready connected to a relay that forwards multicast | ||||
| traffic from the source of the (S,G);</li> | ||||
| <li pn="section-3.1.1-5.3" derivedCounter="3.">The gateway is not co | ||||
| nfigured 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 pn="section-3.1.1-5.4" derivedCounter="4.">The gateway is not ab | ||||
| le to find an upstream AMT relay with | ||||
| DNS-based Service Discovery (DNS-SD) | ||||
| <xref target="RFC6763" format="default" sectionFormat="of" derivedContent="RFC6 | ||||
| 763"/> using "_amt._udp" as the Service section 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" sectio | ||||
| nFormat="of" derivedContent="Section 3.3.4.1"/> and <xref target="loaded" format | ||||
| ="counter" sectionFormat="of" derivedContent="3.3.5"/>); and</li> | ||||
| <li pn="section-3.1.1-5.5" derivedCounter="5.">The gateway is not ab | ||||
| le to find an upstream AMT relay with the well-known | ||||
| anycast addresses from <xref target="RFC7450" sectionFormat="of" section="7" fo | ||||
| rmat="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-7" derive | ||||
| dContent="RFC7450"/>.</li> | ||||
| </ol> | ||||
| <t pn="section-3.1.1-6">When all of 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 pn="section-3.1.1-7">In this situation, the best way to find a rela | ||||
| y 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 pn="section-3.1.1-8">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" f | ||||
| ormat="default" sectionFormat="of" derivedContent="Figure 5"/> connected as one | ||||
| of the customers to the network in <xref target="figrxisp" format="def | ||||
| ault" sectionFormat="of" derivedContent="Figure 3"/>.</t> | ||||
| </section> | ||||
| <section anchor="ordering" numbered="true" toc="include" removeInRFC="fa | ||||
| lse" pn="section-3.1.2"> | ||||
| <name slugifiedName="name-preference-ordering">Preference Ordering</na | ||||
| me> | ||||
| <t pn="section-3.1.2-1">This section defines a preference ordering for | ||||
| relay addresses during | ||||
| the relay discovery process. Gateways are encouraged to implement a | ||||
| Happy Eyeballs <xref target="RFC8305" format="default" sectionFormat="of" deriv | ||||
| edContent="RFC8305"/> algorithm to try candidate relays | ||||
| concurrently (see <xref target="happy" format="default" sectionFormat="of" deri | ||||
| vedContent="Section 3.2"/>), but even | ||||
| gateways that do not implement a Happy Eyeballs algorithm <bcp14>SHOULD</bcp14> | ||||
| use | ||||
| this ordering, except as noted.</t> | ||||
| <t pn="section-3.1.2-2">When establishing an AMT tunnel to forward mul | ||||
| ticast 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 pn="section-3.1.2-3">The intent of the advice and requirements in t | ||||
| his 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 pn="section-3.1.2-4"><xref target="RFC8305" sectionFormat="of" sect | ||||
| ion="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8305#section | ||||
| -4" derivedContent="RFC8305"/> requires a Happy Eyeballs algorithm to sort | ||||
| the addresses with the Destination Address Selection defined in <xref target="R | ||||
| FC6724" sectionFormat="of" section="6" format="default" derivedLink="https://rfc | ||||
| -editor.org/rfc/rfc6724#section-6" derivedContent="RFC6724"/>, but for the above | ||||
| reasons, that requirement is superseded | ||||
| in the AMT discovery use case by the following considerations:</t> | ||||
| <ul spacing="normal" bare="false" empty="false" pn="section-3.1.2-5"> | ||||
| <li pn="section-3.1.2-5.1"> | ||||
| <t pn="section-3.1.2-5.1.1">Prefer Local Relays </t> | ||||
| <t pn="section-3.1.2-5.1.2"><xref target="figrxoffice" format="def | ||||
| ault" sectionFormat="of" derivedContent="Figure 5"/> and <xref target="exoffice" | ||||
| format="default" sectionFormat="of" derivedContent="Section 2.3.1.2"/> provide | ||||
| a motivating example to prefer | ||||
| DNS-SD <xref target="RFC6763" format="default" sectionFormat="of" derivedConte | ||||
| nt="RFC6763"/> for discovery strictly ahead of using the AMTRELAY RR | ||||
| controlled by the sender for AMT discovery.</t> | ||||
| <t pn="section-3.1.2-5.1.3"> | ||||
| 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" sectionFormat="of" derivedContent="RFC6763"/> for | ||||
| _amt._udp.<domain> (with <domain> chosen as described in <xref tar | ||||
| get="RFC6763" sectionFormat="of" section="11" format="default" derivedLink="http | ||||
| s://rfc-editor.org/rfc/rfc6763#section-11" derivedContent="RFC6763"/>) and use t | ||||
| he AMT relays discovered that way in preference to | ||||
| AMT relays discoverable via the mechanism defined in this document | ||||
| (DRIAD).</t> | ||||
| </li> | ||||
| <li pn="section-3.1.2-5.2"> | ||||
| <t pn="section-3.1.2-5.2.1">Prefer Relays Managed by the Containin | ||||
| g Network </t> | ||||
| <t pn="section-3.1.2-5.2.2"> | ||||
| 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 pn="section-3.1.2-5.2.3"> | ||||
| 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" sectionFormat="of" der | ||||
| ivedLink="https://rfc-editor.org/rfc/rfc7450#section-7" derivedContent="RFC7450" | ||||
| /> to route discovery traffic to the relay most | ||||
| appropriate to the receiver's gateway.</t> | ||||
| <t pn="section-3.1.2-5.2.4"> | ||||
| 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 pn="section-3.1.2-5.3"> | ||||
| <t pn="section-3.1.2-5.3.1">Let Sender Manage Relay Provisioning | ||||
| </t> | ||||
| <t pn="section-3.1.2-5.3.2"> | ||||
| 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" sectionFormat="of" derivedCont | ||||
| ent="Figure 6"/> in <xref target="extxsnd" format="default" sectionFormat="of" d | ||||
| erivedContent="Section 2.3.2.1"/> and by relays in a | ||||
| provider-controlled network like <xref target="figtxisp" format="default" sect | ||||
| ionFormat="of" derivedContent="Figure 7"/> in <xref target="extxprv" format="def | ||||
| ault" sectionFormat="of" derivedContent="Section 2.3.2.2"/>, with | ||||
| different cost and scalability profiles for the different options. </t> | ||||
| <t pn="section-3.1.2-5.3.3"> | ||||
| In this example about the sending-side network, the precedence field | ||||
| described in <xref target="rrdef-precedence" format="default" sectionFormat="o | ||||
| f" derivedContent="Section 4.2.1"/> 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 pn="section-3.1.2-5.3.4"> | ||||
| 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" format="default" de | ||||
| rivedLink="https://rfc-editor.org/rfc/rfc6724#section-6" derivedContent="RFC6724 | ||||
| "/> so that only relay IPs with the same | ||||
| precedence are directly compared according to the Destination Address | ||||
| Selection ordering.</t> | ||||
| </li> | ||||
| </ul> | ||||
| <t pn="section-3.1.2-6">Accordingly, AMT gateways <bcp14>SHOULD</bcp14 | ||||
| > by default prefer relays in this | ||||
| order:</t> | ||||
| <ol spacing="normal" start="1" type="1" pn="section-3.1.2-7"> | ||||
| <li pn="section-3.1.2-7.1" derivedCounter="1.">DNS-SD</li> | ||||
| <li pn="section-3.1.2-7.2" derivedCounter="2.">Anycast addresses fro | ||||
| m <xref target="RFC7450" sectionFormat="of" section="7" format="default" derived | ||||
| Link="https://rfc-editor.org/rfc/rfc7450#section-7" derivedContent="RFC7450"/></ | ||||
| li> | ||||
| <li pn="section-3.1.2-7.3" derivedCounter="3.">DRIAD</li> | ||||
| </ol> | ||||
| <t pn="section-3.1.2-8">This default behavior <bcp14>MAY</bcp14> be ov | ||||
| erridden by administrative configuration where | ||||
| other behavior is more appropriate for the gateway within its network.</t> | ||||
| <t pn="section-3.1.2-9">Among relay addresses that have an equivalent | ||||
| preference as described 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" format="defaul | ||||
| t" derivedLink="https://rfc-editor.org/rfc/rfc6724#section-6" derivedContent="RF | ||||
| C6724"/>.</t> | ||||
| <t pn="section-3.1.2-10">Among relay addresses that still have an equi | ||||
| valent preference after 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 pn="section-3.1.2-11">The gateway <bcp14>MAY</bcp14> introduce a bi | ||||
| as in the non-deterministic 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 pn="section-3.1.2-12">Within the above constraints, gateways <bcp14 | ||||
| >MAY</bcp14> make use of other considerations | ||||
| from <xref target="RFC8305" sectionFormat="of" section="4" format="default" der | ||||
| ivedLink="https://rfc-editor.org/rfc/rfc8305#section-4" derivedContent="RFC8305" | ||||
| />, such as the address family interleaving | ||||
| strategies, to produce a final ordering of candidate relay addresses.</t> | ||||
| <t pn="section-3.1.2-13">Note also that certain relay addresses might | ||||
| be excluded from consideration | ||||
| by the hold-down timers described in <xref target="trafficabsent" format="defau | ||||
| lt" sectionFormat="of" derivedContent="Section 3.3.4.1"/> or <xref target="loade | ||||
| d" format="counter" sectionFormat="of" derivedContent="3.3.5"/>. 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 pn="section-3.1.2-14">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" sectionF | ||||
| ormat="of" section="5" format="default" derivedLink="https://rfc-editor.org/rfc/ | ||||
| rfc8305#section-5" derivedContent="RFC8305"/> | ||||
| for successively launched concurrent connection attempts.</t> | ||||
| </section> | ||||
| <section anchor="connecting-to-multiple-relays" numbered="true" toc="inc | ||||
| lude" removeInRFC="false" pn="section-3.1.3"> | ||||
| <name slugifiedName="name-connecting-to-multiple-rela">Connecting to M | ||||
| ultiple Relays</name> | ||||
| <t pn="section-3.1.3-1">In some deployments, it may be useful for a ga | ||||
| teway 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 pn="section-3.1.3-2">A gateway configured to do this <bcp14>SHOULD< | ||||
| /bcp14> still use the same preference-ordering logic from <xref target="ordering | ||||
| " format="default" sectionFormat="of" derivedContent="Section 3.1.2"/> 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="include" removeInRFC="false" | ||||
| pn="section-3.2"> | ||||
| <name slugifiedName="name-happy-eyeballs">Happy Eyeballs</name> | ||||
| <section anchor="overview-1" numbered="true" toc="include" removeInRFC=" | ||||
| false" pn="section-3.2.1"> | ||||
| <name slugifiedName="name-overview-2">Overview</name> | ||||
| <t pn="section-3.2.1-1">Often, multiple choices of relay will exist fo | ||||
| r a gateway using DRIAD | ||||
| for relay discovery. Happy Eyeballs <xref target="RFC8305" format="default" se | ||||
| ctionFormat="of" derivedContent="RFC8305"/> 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 pn="section-3.2.1-2">The parallel discovery logic of a Happy Eyebal | ||||
| ls 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" format | ||||
| ="default" sectionFormat="of" derivedContent="Section 3.1.2"/> together provide | ||||
| guidance on use of a Happy Eyeballs algorithm for the | ||||
| case of establishing AMT connections.</t> | ||||
| <t pn="section-3.2.1-3">Note that according to the definition in <xref | ||||
| target="connection-def" format="default" sectionFormat="of" derivedContent="Sec | ||||
| tion 3.2.3"/> of this | ||||
| document, establishing the connection occurs before sending a membership | ||||
| report. As described in <xref target="RFC8305" sectionFormat="of" section="5" | ||||
| format="default" derivedLink="https://rfc-editor.org/rfc/rfc8305#section-5" deri | ||||
| vedContent="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" numbered="true" toc="include" rem | ||||
| oveInRFC="false" pn="section-3.2.2"> | ||||
| <name slugifiedName="name-algorithm-guidelines">Algorithm Guidelines</ | ||||
| name> | ||||
| <t pn="section-3.2.2-1">During the "Initiation of asynchronous DNS que | ||||
| ries" phase | ||||
| described in <xref target="RFC8305" sectionFormat="of" section="3" for | ||||
| mat="default" derivedLink="https://rfc-editor.org/rfc/rfc8305#section-3" derived | ||||
| Content="RFC8305"/>, a gateway attempts to resolve the domain names | ||||
| listed in <xref target="priority" format="default" sectionFormat="of" derivedCo | ||||
| ntent="Section 3.1"/>. 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 pn="section-3.2.2-2">Each of the SRV and AMTRELAY responses might c | ||||
| ontain:</t> | ||||
| <ul spacing="normal" bare="false" empty="false" pn="section-3.2.2-3"> | ||||
| <li pn="section-3.2.2-3.1">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" format="default" sectionFormat="of" | ||||
| derivedContent="RFC2782"/>), | ||||
| or</li> | ||||
| <li pn="section-3.2.2-3.2"> | ||||
| only domain names (as with type 3 | ||||
| responses from <xref target="rtype" format="default" sectionFormat="of | ||||
| " derivedContent="Section 4.2.3"/> or | ||||
| an SRV response without an additional data section).</li> | ||||
| </ul> | ||||
| <t pn="section-3.2.2-4">When present, IP addresses in the initial resp | ||||
| onse provide resolved | ||||
| destination address candidates for the "Sorting of resolved | ||||
| destination addresses" phase described in <xref target="RFC8305" sectionFormat= | ||||
| "of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc830 | ||||
| 5#section-4" derivedContent="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 pn="section-3.2.2-5">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 pn="section-3.2.2-6">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" sectionFormat="of" derivedContent="Sec | ||||
| tion 3.1.2"/> and attempts connections with the corresponding relays | ||||
| under the algorithm restrictions and guidelines given in <xref target="RFC8305" | ||||
| format="default" sectionFormat="of" derivedContent="RFC8305"/> for | ||||
| the "Establishment of one connection, which cancels all other attempts" | ||||
| phase. As described in <xref target="RFC8305" sectionFormat="of" section="3" f | ||||
| ormat="default" derivedLink="https://rfc-editor.org/rfc/rfc8305#section-3" deriv | ||||
| edContent="RFC8305"/>, 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="include" removeInR | ||||
| FC="false" pn="section-3.2.3"> | ||||
| <name slugifiedName="name-connection-definition">Connection Definition | ||||
| </name> | ||||
| <t pn="section-3.2.3-1"><xref target="RFC8305" sectionFormat="of" sect | ||||
| ion="5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8305#section | ||||
| -5" derivedContent="RFC8305"/> | ||||
| non-normatively describes a successful connection attempt as "generall | ||||
| y when the TCP handshake completes".</t> | ||||
| <t pn="section-3.2.3-2">There is no normative definition of a connecti | ||||
| on in the AMT specification | ||||
| <xref target="RFC7450" format="default" sectionFormat="of" derivedContent="RFC7 | ||||
| 450"/>, and there is no TCP connection involved in an AMT tunnel.</t> | ||||
| <t pn="section-3.2.3-3">However, the concept of an AMT connection in t | ||||
| he context of a Happy | ||||
| Eyeballs algorithm is a useful one, and so this section provides the | ||||
| following normative definition:</t> | ||||
| <ul spacing="normal" bare="false" empty="false" pn="section-3.2.3-4"> | ||||
| <li pn="section-3.2.3-4.1">An AMT connection is established successf | ||||
| ully when the gateway receives | ||||
| from a newly discovered relay a valid Membership Query message | ||||
| (<xref target="RFC7450" sectionFormat="of" section="5.1.4" format="default" der | ||||
| ivedLink="https://rfc-editor.org/rfc/rfc7450#section-5.1.4" derivedContent="RFC7 | ||||
| 450"/>) that does not have the L flag set.</li> | ||||
| </ul> | ||||
| <t pn="section-3.2.3-5">See <xref target="loaded" format="default" sec | ||||
| tionFormat="of" derivedContent="Section 3.3.5"/> of this document for further in | ||||
| formation about the | ||||
| relevance of the L flag to the establishment of a Happy Eyeballs | ||||
| connection. See <xref target="flowhealth" format="default" sectionFormat="of" | ||||
| derivedContent="Section 3.3.4"/> for an overview of how to respond | ||||
| if the connection does not provide multicast connectivity to the | ||||
| source.</t> | ||||
| <t pn="section-3.2.3-6">To "cancel" this kind of AMT connection for th | ||||
| e 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" numbered="true" toc= | ||||
| "include" removeInRFC="false" pn="section-3.3"> | ||||
| <name slugifiedName="name-guidelines-for-restarting-d">Guidelines for Re | ||||
| starting Discovery</name> | ||||
| <section anchor="overview-2" numbered="true" toc="include" removeInRFC=" | ||||
| false" pn="section-3.3.1"> | ||||
| <name slugifiedName="name-overview-3">Overview</name> | ||||
| <t pn="section-3.3.1-1">It's expected that gateways deployed in differ | ||||
| ent 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 pn="section-3.3.1-2">In general, restarting the discovery process i | ||||
| s 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 pn="section-3.3.1-3">The degree of impact on the traffic from choos | ||||
| ing 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 pn="section-3.3.1-4">Balancing the expected impact on the tunneled | ||||
| traffic against likely | ||||
| 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 pn="section-3.3.1-5">The non-normative advice in this section shoul | ||||
| d be treated as guidelines 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="incl | ||||
| ude" removeInRFC="false" pn="section-3.3.2"> | ||||
| <name slugifiedName="name-updates-to-restarting-event">Updates to Rest | ||||
| arting Events</name> | ||||
| <t pn="section-3.3.2-1"><xref target="RFC7450" sectionFormat="of" sect | ||||
| ion="5.2.3.4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450 | ||||
| #section-5.2.3.4.1" derivedContent="RFC7450"/> lists several events that may cau | ||||
| se a | ||||
| gateway to start or restart the discovery procedure.</t> | ||||
| <t pn="section-3.3.2-2">This document provides some updates and recomm | ||||
| endations regarding the | ||||
| 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" start="1" pn="section-3.3.2-3"> | ||||
| <li pn="section-3.3.2-3.1" derivedCounter="1.">When a gateway pseudo | ||||
| -interface is started (enabled).</li> | ||||
| <li pn="section-3.3.2-3.2" derivedCounter="2.">When the gateway wish | ||||
| es to report a group subscription when none | ||||
| currently exists.</li> | ||||
| <li pn="section-3.3.2-3.3" derivedCounter="3.">Before sending the ne | ||||
| xt Request message in a membership update | ||||
| cycle.</li> | ||||
| <li pn="section-3.3.2-3.4" derivedCounter="4.">After the gateway fai | ||||
| ls to receive a response to a Request | ||||
| message.</li> | ||||
| <li pn="section-3.3.2-3.5" derivedCounter="5.">After the gateway rec | ||||
| eives a Membership Query message with the | ||||
| L flag set to 1.</li> | ||||
| <li pn="section-3.3.2-3.6" derivedCounter="6.">When the gateway wish | ||||
| es to report an (S,G) subscription with a source | ||||
| address that does not currently have other group subscriptions.</li> | ||||
| <li pn="section-3.3.2-3.7" derivedCounter="7.">When there is a netwo | ||||
| rk change detected; for example, when a gateway 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 pn="section-3.3.2-3.8" derivedCounter="8.">When substantial loss | |||
| detected in the stream of AMT packets from a relay.</t> | , persistent congestion, or network overload 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 pn="section-3.3.2-3.9" derivedCounter="9.">When the gateway has | |||
| <xref target="trafficabsent"/>).</t> | reported one or more (S,G) subscriptions but | |||
| </list></t> | no traffic is received from the source for some timeout (see | |||
| <xref target="trafficabsent" format="default" sectionFormat="of" derivedContent= | ||||
| <t>This list is not exhaustive, nor are any of the listed events strictly | "Section 3.3.4.1"/>).</li> | |||
| </ol> | ||||
| <t pn="section-3.3.2-4">This list is not exhaustive, nor are any of th | ||||
| e listed events strictly | ||||
| required to always force a restart of the discovery process.</t> | required to always force a restart of the discovery process.</t> | |||
| <t pn="section-3.3.2-5">Note that during event #1, a gateway may use D | ||||
| <t>Note that during event #1, a gateway may use DNS-SD, but does not | NS-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="include" removeInRFC="f | |||
| <section anchor="stability" title="Tunnel Stability"> | alse" pn="section-3.3.3"> | |||
| <name slugifiedName="name-tunnel-stability">Tunnel Stability</name> | ||||
| <t>In general, subscribers to active traffic flows that are being forwarded | <t pn="section-3.3.3-1">In general, subscribers to active traffic flow | |||
| s that are being forwarded | ||||
| 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 pn="section-3.3.3-2">Therefore, gateways <bcp14>SHOULD</bcp14> avoi | ||||
| <t>Therefore, gateways SHOULD avoid performing a full restart of the discovery | d performing a full restart 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 pn="section-3.3.3-3">However, see Sections <xref target="flowhealth | ||||
| <t>However, see <xref target="flowhealth"/>, <xref target="discoverymessage"/>, | " format="counter" sectionFormat="of" derivedContent="3.3.4"/>, <xref target="di | |||
| and <xref target="ancient"/> for more | scoverymessage" format="counter" sectionFormat="of" derivedContent="3.3.6"/>, an | |||
| d <xref target="ancient" format="counter" sectionFormat="of" derivedContent="3.3 | ||||
| .4.3"/> 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="include" removeInRFC=" | |||
| <section anchor="flowhealth" title="Traffic Health"> | false" pn="section-3.3.4"> | |||
| <name slugifiedName="name-traffic-health">Traffic Health</name> | ||||
| <section anchor="trafficabsent" title="Absence of Traffic"> | <section anchor="trafficabsent" numbered="true" toc="exclude" removeIn | |||
| RFC="false" pn="section-3.3.4.1"> | ||||
| <t>If a gateway indicates one or more (S,G) subscriptions in a Membership | <name slugifiedName="name-absence-of-traffic">Absence of Traffic</na | |||
| Update message, but no traffic for any of the (S,G)s is received in a | me> | |||
| reasonable time, it’s appropriate for the gateway to restart the | <t pn="section-3.3.4.1-1">If a gateway indicates one or more (S,G) s | |||
| ubscriptions in a Membership | ||||
| 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 | ||||
| discovery process.</t> | discovery process.</t> | |||
| <t pn="section-3.3.4.1-2">If the gateway restarts the discovery proc | ||||
| <t>If the gateway restarts the discovery process multiple times consecutively | ess multiple times consecutively | |||
| 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 pn="section-3.3.4.1-3">The <bcp14>RECOMMENDED</bcp14> timeout is | ||||
| <t>The RECOMMENDED timeout is a random value in the range | a random value in the range | |||
| [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" sectionForm | |||
| at="of" derivedContent="RFC4787"/>).</t> | ||||
| <t>Note that the recommended initial_timeout is larger than the initial | <t pn="section-3.3.4.1-4">Note that the recommended initial_timeout | |||
| timout recommended in the similar algorithm from Section 5.2.3.4.3 of | is larger than the initial | |||
| <xref target="RFC7450"/>. This is to provide time for RPF Join propagation in t | timeout recommended in the similar algorithm from <xref target="RFC7450" section | |||
| he | Format="of" section="5.2.3.4.3" format="default" derivedLink="https://rfc-editor | |||
| .org/rfc/rfc7450#section-5.2.3.4.3" derivedContent="RFC7450"/>. This is to prov | ||||
| ide time for RPF Join propagation 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 pn="section-3.3.4.1-5">Gateways restarting the discovery process | ||||
| <t>Gateways restarting the discovery process because of an absence of | because of an absence of | |||
| 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="exclude" re | |||
| <section anchor="loss-and-congestion" title="Loss and Congestion"> | moveInRFC="false" pn="section-3.3.4.2"> | |||
| <name slugifiedName="name-loss-and-congestion">Loss and Congestion</ | ||||
| <t>In some gateway deployments, it is also feasible to monitor the health of | name> | |||
| traffic flows through the gateway, for example by detecting the rate of | <t pn="section-3.3.4.2-1">In some gateway deployments, it is also fe | |||
| packet loss by communicating out of band with receivers, or monitoring the | asible to monitor the health 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 | ||||
| packets of known protocols with sequence numbers. Where feasible, | packets of known protocols with sequence numbers. Where feasible, | |||
| it’s 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 pn="section-3.3.4.2-2">However, if a transient network event that | ||||
| <t>However, to avoid synchronized rediscovery by many gateways simultaneously | affects the tunneled | |||
| after a transient network event upstream of a relay results in | multicast stream -- as opposed to an event that affects the tunnel | |||
| many receivers detecting poor flow health at the same time, it’s recommended | connection between the relay and gateway -- occurs, poor health | |||
| to add a random delay before restarting the discovery process in this case.</t> | detection could be triggered for many gateways simultaneously. In | |||
| this situation, adding a random delay to avoid synchronized | ||||
| <t>The span of the random portion of the delay should be no less than 10 | rediscovery by many gateways is recommended.</t> | |||
| seconds by default, but may be administratively configured | <t pn="section-3.3.4.2-3">The span of the random portion of the dela | |||
| y should be no less than 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="exclude" removeInRFC="f | |||
| <section anchor="ancient" title="Ancient Discovery Information"> | alse" pn="section-3.3.4.3"> | |||
| <name slugifiedName="name-ancient-discovery-informati">Ancient Disco | ||||
| <t>In most cases, a gateway actively receiving healthy traffic from a relay | very Information</name> | |||
| <t pn="section-3.3.4.3-1">In most cases, a gateway actively receivin | ||||
| g healthy traffic from 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" sectionFormat="of" derivedContent="Section 3.3.3"/>.</t> | ||||
| <t>However, a relay that appears healthy but has been forwarding traffic for | <t pn="section-3.3.4.3-2">However, a relay that appears healthy but | |||
| has been forwarding traffic 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 pn="section-3.3.4.3-3">It may be beneficial for such timers to co | ||||
| <t>It may be beneficial for such timers to consider the amount of traffic | nsider the amount of traffic | |||
| 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 pn="section-3.3.4.3-4">Other issues may also be worth considering | ||||
| <t>Other issues may also be worth considering as part of this heuristic; for | as part of this heuristic; 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="include" removeInRFC="fals | |||
| <section anchor="loaded" title="Relay Loaded or Shutting Down"> | e" pn="section-3.3.5"> | |||
| <name slugifiedName="name-relay-loaded-or-shutting-do">Relay Loaded or | ||||
| <t>The L flag (see Section 5.1.4.4 of <xref target="RFC7450"/>) is the preferred | Shutting Down</name> | |||
| mechanism for | <t pn="section-3.3.5-1">The L flag (see <xref target="RFC7450" section | |||
| Format="of" section="5.1.4.4" format="default" derivedLink="https://rfc-editor.o | ||||
| rg/rfc/rfc7450#section-5.1.4.4" derivedContent="RFC7450"/>) is the preferred mec | ||||
| hanism 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 pn="section-3.3.5-2">A gateway that supports handling of the L flag | ||||
| <t>A gateway that supports handling of the L flag should generally restart the | should generally restart 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" sectionFormat="of" derivedContent="Section 3.2"/>), | |||
| 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 pn="section-3.3.5-3">It is also <bcp14>RECOMMENDED</bcp14> that gat | ||||
| <t>It is also RECOMMENDED that gateways avoid choosing a relay | eways avoid choosing 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" sectionFormat="of" derivedConte | |||
| for short-term subsequent rounds of discovery.</t> | nt="Section 3.3.4.1"/> so that the relay is removed 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="include" removeI | |||
| g Discovery"> | nRFC="false" pn="section-3.3.6"> | |||
| <name slugifiedName="name-relay-discovery-messages-vs">Relay Discovery | ||||
| <t>All AMT relays are required by <xref target="RFC7450"/> to support handling o | Messages vs. Restarting Discovery</name> | |||
| f | <t pn="section-3.3.6-1">All AMT relays are required by <xref target="R | |||
| Relay Discovery messages (e.g. in Section 5.3.3.2 of <xref target="RFC7450"/>).< | FC7450" format="default" sectionFormat="of" derivedContent="RFC7450"/> to suppor | |||
| /t> | t handling of | |||
| Relay Discovery messages (e.g., in <xref target="RFC7450" sectionFormat="of" sec | ||||
| <t>So a gateway with an existing connection to a relay can send a Relay | tion="5.3.3.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450# | |||
| section-5.3.3.2" derivedContent="RFC7450"/>).</t> | ||||
| <t pn="section-3.3.6-2">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" sectionFormat="of" derive | |||
| dContent="Section 3.3.3"/>.</t> | ||||
| <t>This behavior is discouraged for gateways that do support the L flag, to | <t pn="section-3.3.6-3">This behavior is discouraged for gateways that | |||
| do support the L flag to | ||||
| avoid sending unnecessary packets over the network.</t> | avoid sending unnecessary packets over the network.</t> | |||
| <t pn="section-3.3.6-4">However, gateways that do not support the L fl | ||||
| <t>However, gateways that do not support the L flag may be able to avoid a | ag may be able to avoid 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 pn="section-3.3.6-5">This style of Relay Discovery message (one sen | ||||
| <t>This style of Relay Discovery message (one sent to the unicast address | t to the unicast address | |||
| 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="include" removeInRFC="false" pn="section-3.3.7"> | |||
| scovery Per Traffic Source"> | <name slugifiedName="name-independent-discovery-per-t">Independent Dis | |||
| covery per Traffic Source</name> | ||||
| <t>Relays discovered via the AMTRELAY RR are source-specific relay addresses, an | <t pn="section-3.3.7-1">Relays discovered via the AMTRELAY RR are sour | |||
| d | ce-specific relay addresses and | |||
| 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" format="default" der | |||
| ivedLink="https://rfc-editor.org/rfc/rfc7450#section-4.1.2.1" derivedContent="RF | ||||
| <t>Restarting the discovery process for one pseudo-interface does not require | C7450"/>.</t> | |||
| <t pn="section-3.3.7-2">Restarting the discovery process for one pseud | ||||
| o-interface does not 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="include" removeIn | |||
| <section anchor="dns-configuration" title="DNS Configuration"> | RFC="false" pn="section-3.4"> | |||
| <name slugifiedName="name-dns-configuration">DNS Configuration</name> | ||||
| <t>Often an AMT gateway will only have access to the source and group IP address | <t pn="section-3.4-1">Often, an AMT gateway will only have access to the | |||
| es | source and group IP addresses | |||
| 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" format="default" derivedLink="https://rfc-editor.o | |||
| xref target="RFC3596"/>).</t> | rg/rfc/rfc1035#section-3.5" derivedContent="RFC1035"/>, or ip6.arpa for IPv6, as | |||
| described in <xref target="RFC3596" sectionFormat="of" section="2.5" format="de | ||||
| <t>Therefore, it is RECOMMENDED that AMTRELAY RRs be added to reverse IP | fault" derivedLink="https://rfc-editor.org/rfc/rfc3596#section-2.5" derivedConte | |||
| zones as appropriate. AMTRELAY records MAY also appear in other zones, | nt="RFC3596"/>).</t> | |||
| <t pn="section-3.4-2">Therefore, it is <bcp14>RECOMMENDED</bcp14> that A | ||||
| MTRELAY RRs be added to reverse IP | ||||
| 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" forma t="default" derivedLink="https://rfc-editor.org/rfc/rfc2317#section-5.2" derived Content="RFC2317"/>), but 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 pn="section-3.4-3">When performing the AMTRELAY RR lookup, any CNAMEs | ||||
| <t>When performing the AMTRELAY RR lookup, any CNAMEs or DNAMEs found MUST be | or DNAMEs found <bcp14>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" sec | |||
| tionFormat="of" derivedContent="RFC2317"/>.</t> | ||||
| <t>See <xref target="rrdef"/> and <xref target="rpformat"/> for a detailed expla | <t pn="section-3.4-4">See Sections <xref target="rrdef" format="counter" | |||
| nation of the contents | sectionFormat="of" derivedContent="4"/> and <xref target="rpformat" format="cou | |||
| for a DNS Zone file.</t> | nter" sectionFormat="of" derivedContent="4.3"/> for a detailed explanation of th | |||
| e contents | ||||
| </section> | of a DNS zone file.</t> | |||
| <section anchor="waiting-for-dns-resolution" title="Waiting for DNS resolution"> | </section> | |||
| <section anchor="waiting-for-dns-resolution" numbered="true" toc="include" | ||||
| <t>The DNS query functionality is expected to follow ordinary standards and best | removeInRFC="false" pn="section-3.5"> | |||
| practices for DNS clients. A gateway MAY use an existing DNS client | <name slugifiedName="name-waiting-for-dns-resolution">Waiting for DNS Re | |||
| implementation that does so, and MAY rely on that client’s retry logic | solution</name> | |||
| <t pn="section-3.5-1">DNS query functionality is expected to follow ordi | ||||
| nary standards and best | ||||
| 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 pn="section-3.5-2">Otherwise, a gateway <bcp14>MAY</bcp14> resend a D | ||||
| <t>Otherwise, a gateway MAY re-send a DNS query if it does not receive an | NS query if it does 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 pn="section-3.5-3">As with the waiting process for the Relay Advertis | ||||
| <t>As with the waiting process for the Relay Advertisement message from | ement message from | |||
| Section 5.2.3.4.3 of <xref target="RFC7450"/>, the RECOMMENDED timeout is a rand | <xref target="RFC7450" sectionFormat="of" section="5.2.3.4.3" format="default" d | |||
| om value | erivedLink="https://rfc-editor.org/rfc/rfc7450#section-5.2.3.4.3" derivedContent | |||
| ="RFC7450"/>, the <bcp14>RECOMMENDED</bcp14> timeout is a random 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="include" removeInRFC="false" pn | |||
| ="section-4"> | ||||
| <section anchor="amtrelay-rrtype" title="AMTRELAY RRType"> | <name slugifiedName="name-amtrelay-resource-record-de">AMTRELAY Resource R | |||
| ecord Definition</name> | ||||
| <t>The AMTRELAY RRType has the mnemonic AMTRELAY and type code 260 (decimal).</t | <section anchor="amtrelay-rrtype" numbered="true" toc="include" removeInRF | |||
| > | C="false" pn="section-4.1"> | |||
| <name slugifiedName="name-amtrelay-rrtype">AMTRELAY RRType</name> | ||||
| <t>The AMTRELAY RR is class independent.</t> | <t pn="section-4.1-1">The AMTRELAY RRType has the mnemonic AMTRELAY and | |||
| type code 260 (decimal).</t> | ||||
| </section> | <t pn="section-4.1-2">The AMTRELAY RR is class independent.</t> | |||
| <section anchor="amtrelay-rdata-format" title="AMTRELAY RData Format"> | </section> | |||
| <section anchor="amtrelay-rdata-format" numbered="true" toc="include" remo | ||||
| <t>The AMTRELAY RData consists of a 8-bit precedence field, a 1-bit | veInRFC="false" pn="section-4.2"> | |||
| “Discovery Optional” field, a 7-bit type field, and a variable | <name slugifiedName="name-amtrelay-rdata-format">AMTRELAY RData Format</ | |||
| name> | ||||
| <t pn="section-4.2-1">The AMTRELAY RData consists of an 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="" pn="section-4.2-2"> | ||||
| <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="include" removeI | ||||
| <section anchor="rrdef-precedence" title="RData Format - Precedence"> | nRFC="false" pn="section-4.2.1"> | |||
| <name slugifiedName="name-rdata-format-precedence">RData Format - Prec | ||||
| <t>This is an 8-bit precedence for this record. It is interpreted in | edence</name> | |||
| the same way as the PREFERENCE field described in Section 3.3.9 of | <t pn="section-4.2.1-1">This is an 8-bit precedence for this record. | |||
| <xref target="RFC1035"/>.</t> | It is interpreted in | |||
| the same way as the PREFERENCE field described in <xref target="RFC1035" section | ||||
| <t>Relays listed in AMTRELAY records with a lower value for precedence are to be | Format="of" section="3.3.9" format="default" derivedLink="https://rfc-editor.org | |||
| /rfc/rfc1035#section-3.3.9" derivedContent="RFC1035"/>.</t> | ||||
| <t pn="section-4.2.1-2">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="include" removeInRFC=" | |||
| <section anchor="rrdef-dbit" title="RData Format - Discovery Optional (D-bit)"> | false" pn="section-4.2.2"> | |||
| <name slugifiedName="name-rdata-format-discovery-opti">RData Format - | ||||
| <t>The D bit is a “Discovery Optional” flag.</t> | Discovery Optional (D-bit)</name> | |||
| <t pn="section-4.2.2-1">The D-bit is a "Discovery Optional" flag.</t> | ||||
| <t>If the D bit is set to 0, a gateway using this RR MUST perform AMT relay | <t pn="section-4.2.2-2">If the D-bit is set to 0, a gateway using this | |||
| discovery as described in Section 4.2.1.1 of <xref target="RFC7450"/>, rather th | RR <bcp14>MUST</bcp14> perform AMT relay | |||
| an directly | discovery as described in <xref target="RFC7450" sectionFormat="of" section="4.2 | |||
| .1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-4 | ||||
| .2.1.1" derivedContent="RFC7450"/> rather than directly | ||||
| sending an AMT Request message to the relay.</t> | sending an AMT Request message to the relay.</t> | |||
| <t pn="section-4.2.2-3">That is, the gateway <bcp14>MUST</bcp14> recei | ||||
| <t>That is, the gateway MUST receive an AMT Relay Advertisement message (Section | ve an AMT Relay Advertisement message (<xref target="RFC7450" sectionFormat="of" | |||
| 5.1.2 of <xref target="RFC7450"/>) for an address before sending an AMT Request | section="5.1.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc745 | |||
| message | 0#section-5.1.2" derivedContent="RFC7450"/>) for an address before sending an AM | |||
| (Section 5.1.3 of <xref target="RFC7450"/>) to that address. Before receiving th | T Request message | |||
| e Relay | (<xref target="RFC7450" sectionFormat="of" section="5.1.3" format="default" deri | |||
| vedLink="https://rfc-editor.org/rfc/rfc7450#section-5.1.3" derivedContent="RFC74 | ||||
| 50"/>) to that address. Before receiving the 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" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-4. | ||||
| <t>If the D bit is set to 1, the gateway MAY send an AMT Request message directl | 2.1.1" derivedContent="RFC7450"/>.</t> | |||
| y | <t pn="section-4.2.2-4">If the D-bit is set to 1, the gateway <bcp14>M | |||
| AY</bcp14> send an AMT 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 pn="section-4.2.2-5">This bit should be set according to advice fro | ||||
| <t>This bit should be set according to advice from the AMT relay operator. The | m the AMT relay operator. 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="include" removeInRFC="false | |||
| <section anchor="rtype" title="RData Format - Type"> | " pn="section-4.2.3"> | |||
| <name slugifiedName="name-rdata-format-type">RData Format - Type</name | ||||
| <t>The type field indicates the format of the information that | > | |||
| <t pn="section-4.2.3-1">The type field indicates the format of the inf | ||||
| ormation that | ||||
| is stored in the relay field.</t> | is stored in the relay field.</t> | |||
| <t pn="section-4.2.3-2">The following values are defined:</t> | ||||
| <t>The following values are defined:</t> | <ul spacing="normal" bare="false" empty="false" pn="section-4.2.3-3"> | |||
| <li pn="section-4.2.3-3.1">type = 0: | ||||
| <t><list style="symbols"> | The relay field is empty (0 bytes).</li> | |||
| <t>type = 0: | <li pn="section-4.2.3-3.2">type = 1: | |||
| The relay field is empty (0 bytes).</t> | The relay field contains a 4-octet IPv4 address.</li> | |||
| <t>type = 1: | <li pn="section-4.2.3-3.3">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 pn="section-4.2.3-3.4">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" section="3.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc1 | |||
| <xref target="RFC3597"/>.)</t> | 035#section-3.3" derivedContent="RFC1035"/> and <xref target="RFC3597" sectionFo | |||
| </list></t> | rmat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/r | |||
| fc3597#section-4" derivedContent="RFC3597"/>).</li> | ||||
| <t>RRs with an undefined value in the Type field SHOULD NOT be considered | </ul> | |||
| <t pn="section-4.2.3-4">RRs with an undefined value in the Type field | ||||
| <bcp14>SHOULD NOT</bcp14> 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="include" removeInRFC="fa | |||
| <section anchor="rdformat" title="RData Format - Relay"> | lse" pn="section-4.2.4"> | |||
| <name slugifiedName="name-rdata-format-relay">RData Format - Relay</na | ||||
| <t>The relay field is the address or domain name of the AMT relay. It is | me> | |||
| <t pn="section-4.2.4-1">The relay field is the address or domain name | ||||
| of the AMT relay. It is | ||||
| formatted according to the type field.</t> | formatted according to the type field.</t> | |||
| <t pn="section-4.2.4-2">When the type field is 0, the length of the re | ||||
| <t>When the type field is 0, the length of the relay field is 0, and it | lay field is 0, and it | |||
| 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 pn="section-4.2.4-3">When the type field is 1, the length of the re | ||||
| <t>When the type field is 1, the length of the relay field is 4 octets, and a | lay field is 4 octets, 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" format="default" deriv edLink="https://rfc-editor.org/rfc/rfc1035#section-3.4.1" derivedContent="RFC103 5"/>. This is a 32-bit number in network byte | |||
| order.</t> | order.</t> | |||
| <t pn="section-4.2.4-4">When the type field is 2, the length of the re | ||||
| <t>When the type field is 2, the length of the relay field is 16 octets, and | lay field is 16 octets, 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" format="default" derived | |||
| e order.</t> | Link="https://rfc-editor.org/rfc/rfc3596#section-2.2" derivedContent="RFC3596"/> | |||
| . This is a 128-bit number in network byte order.</t> | ||||
| <t>When the type field is 3, the relay field is a normal wire-encoded domain | <t pn="section-4.2.4-5">When the type field is 3, the relay field is a | |||
| name, as described in Section 3.3 of <xref target="RFC1035"/>. Compression MUST | normal wire-encoded domain | |||
| NOT be | name, as described in <xref target="RFC1035" sectionFormat="of" section="3.3" fo | |||
| used, for the reasons given in Section 4 of <xref target="RFC3597"/>.</t> | rmat="default" derivedLink="https://rfc-editor.org/rfc/rfc1035#section-3.3" deri | |||
| vedContent="RFC1035"/>. For the reasons given in <xref target="RFC3597" sectionF | ||||
| <t>For a type 3 record, the D-bit and preference fields carry over to all | ormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/ | |||
| rfc3597#section-4" derivedContent="RFC3597"/>, compression <bcp14>MUST NOT</bcp1 | ||||
| 4> be | ||||
| used.</t> | ||||
| <t pn="section-4.2.4-6">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="include" removeInRFC="fals | |||
| <section anchor="rpformat" title="AMTRELAY Record Presentation Format"> | e" pn="section-4.3"> | |||
| <name slugifiedName="name-amtrelay-record-presentatio">AMTRELAY Record P | ||||
| <section anchor="representation-of-amtrelay-rrs" title="Representation of AMTREL | resentation Format</name> | |||
| AY RRs"> | <section anchor="representation-of-amtrelay-rrs" numbered="true" toc="in | |||
| clude" removeInRFC="false" pn="section-4.3.1"> | ||||
| <t>AMTRELAY RRs may appear in a zone data master file. The precedence, D-bit, | <name slugifiedName="name-representation-of-amtrelay-">Representation | |||
| relay type, and relay fields are REQUIRED.</t> | of AMTRELAY RRs</name> | |||
| <t pn="section-4.3.1-1">AMTRELAY RRs may appear in a zone data master | ||||
| <t>If the relay type field is 0, the relay field MUST be “.”.</t> | file. The precedence, D-bit, | |||
| relay type, and relay fields are <bcp14>REQUIRED</bcp14>.</t> | ||||
| <t>The presentation for the record is as follows:</t> | <t pn="section-4.3.1-2">If the relay type field is 0, the relay field | |||
| <bcp14>MUST</bcp14> be ".".</t> | ||||
| <figure><artwork><![CDATA[ | <t pn="section-4.3.1-3">The presentation for the record is as follows: | |||
| </t> | ||||
| <sourcecode name="" type="" markers="false" pn="section-4.3.1-4"> | ||||
| 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="include" removeInRFC="fa | |||
| <section anchor="examples" title="Examples"> | lse" pn="section-4.3.2"> | |||
| <name slugifiedName="name-examples">Examples</name> | ||||
| <t>In a DNS authoritative nameserver that understands the AMTRELAY type, | <t pn="section-4.3.2-1">In a DNS authoritative nameserver that underst | |||
| ands the AMTRELAY type, | ||||
| 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="" markers="false" pn="section-4.3.2-2"> | ||||
| <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 pn="section-4.3.2-3">This configuration advertises an IPv4 discover | ||||
| <t>This configuration advertises an IPv4 discovery address, an IPv6 | y address, an IPv6 | |||
| discovery address, and a domain name for AMT relays which can receive | discovery address, and a domain name for AMT relays that 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" sectionFormat="of" deriv edContent="Section 4.2.2"/>) 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 pn="section-4.3.2-4">For zone files in name servers that don't supp | ||||
| <t>For zone files in name servers that don’t support the AMTRELAY RRType | ort the AMTRELAY RRType | |||
| 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" sectionFormat="of" derivedC | |||
| ontent="RFC3597"/>. This approach would replace 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="" markers="false" pn="section-4.3.2-5"> | ||||
| <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 pn="section-4.3.2-6">See <xref target="extranslate" format="default | ||||
| <t>See <xref target="extranslate"/> for more details.</t> | " sectionFormat="of" derivedContent="Appendix A"/> for more details.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | <section anchor="iana" numbered="true" toc="include" removeInRFC="false" pn= | |||
| <section anchor="iana" title="IANA Considerations"> | "section-5"> | |||
| <name slugifiedName="name-iana-considerations">IANA Considerations</name> | ||||
| <t>This document updates the IANA Registry for DNS Resource Record Types | <t pn="section-5-1">This document updates the DNS "Resource Record (RR) TY | |||
| PEs" registry | ||||
| by assigning type 260 to the AMTRELAY record.</t> | by assigning type 260 to the AMTRELAY record.</t> | |||
| <t pn="section-5-2">This document creates a new registry named "AMTRELAY R | ||||
| <t>This document creates a new registry named “AMTRELAY Resource Record | esource Record | |||
| Parameters”, with a sub-registry for the “Relay Type Field”. The initial | Parameters" with a subregistry for the "Relay Type Field". The initial | |||
| values in the sub-registry are:</t> | values in the subregistry are:</t> | |||
| <table align="left" pn="table-2"> | ||||
| <figure><artwork><![CDATA[ | <name slugifiedName="name-initial-contents-of-the-rel">Initial Contents | |||
| +-------+---------------------------------------+ | of the "Relay Type Field" Registry</name> | |||
| | Value | Description | | <thead> | |||
| +-------+---------------------------------------+ | <tr> | |||
| | 0 | No relay is present. | | <th align="left" colspan="1" rowspan="1">Value</th> | |||
| | 1 | A 4-byte IPv4 address is present | | <th align="left" colspan="1" rowspan="1">Description</th> | |||
| | 2 | A 16-byte IPv6 address is present | | </tr> | |||
| | 3 | A wire-encoded domain name is present | | </thead> | |||
| | 4-255 | Unassigned | | <tbody> | |||
| +-------+---------------------------------------+ | <tr> | |||
| ]]></artwork></figure> | <td align="left" colspan="1" rowspan="1">0</td> | |||
| <td align="left" colspan="1" rowspan="1">No relay is present</td> | ||||
| <t>Values 0, 1, 2, and 3 are further explained in <xref target="rtype"/> and <xr | </tr> | |||
| ef target="rdformat"/>. | <tr> | |||
| <td align="left" colspan="1" rowspan="1">1</td> | ||||
| <td align="left" colspan="1" rowspan="1">A 4-byte IPv4 address is pr | ||||
| esent</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left" colspan="1" rowspan="1">2</td> | ||||
| <td align="left" colspan="1" rowspan="1">A 16-byte IPv6 address is p | ||||
| resent</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left" colspan="1" rowspan="1">3</td> | ||||
| <td align="left" colspan="1" rowspan="1">A wire-encoded domain name | ||||
| is present</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left" colspan="1" rowspan="1">4-255</td> | ||||
| <td align="left" colspan="1" rowspan="1">Unassigned</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t pn="section-5-4">Values 0, 1, 2, and 3 are further explained in Section | ||||
| s <xref target="rtype" format="counter" sectionFormat="of" derivedContent="4.2.3 | ||||
| "/> and <xref target="rdformat" format="counter" sectionFormat="of" derivedConte | ||||
| nt="4.2.4"/>. | ||||
| 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" | |||
| sectionFormat="of" derivedContent="RFC8126"/>).</t> | ||||
| </section> | </section> | |||
| <section anchor="security-considerations" title="Security Considerations"> | <section anchor="security-considerations" numbered="true" toc="include" remo | |||
| veInRFC="false" pn="section-6"> | ||||
| <section anchor="use-of-amt" title="Use of AMT"> | <name slugifiedName="name-security-considerations">Security Considerations | |||
| </name> | ||||
| <t>This document defines a mechanism that enables a more widespread and | <section anchor="use-of-amt" numbered="true" toc="include" removeInRFC="fa | |||
| lse" pn="section-6.1"> | ||||
| <name slugifiedName="name-use-of-amt">Use of AMT</name> | ||||
| <t pn="section-6.1-1">This document defines a mechanism that enables a m | ||||
| ore 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" format="default" derive | |||
| dLink="https://rfc-editor.org/rfc/rfc7450#section-6" derivedContent="RFC7450"/>. | ||||
| <t>AMT gateway operators also are encouraged to take appropriate steps to | </t> | |||
| ensure the integrity of the data received via AMT, for example by the | <t pn="section-6.1-2">AMT gateway operators also are encouraged to take | |||
| opportunistic use of IPSec <xref target="RFC4301"/> to secure traffic received f | appropriate steps to | |||
| rom AMT | ensure the integrity of the data received via AMT, for example, by the | |||
| relays, when IPSECKEY records <xref target="RFC4025"/> are available or when a t | opportunistic use of IPsec <xref target="RFC4301" format="default" sectionFormat | |||
| rust | ="of" derivedContent="RFC4301"/> to secure traffic received from AMT | |||
| relays when IPSECKEY records <xref target="RFC4025" format="default" sectionForm | ||||
| at="of" derivedContent="RFC4025"/> are available 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 pn="section-6.1-3">Note that AMT does not itself provide any integrit | ||||
| <t>Note that AMT does not itself provide any integrity protection on | y protection for | |||
| Multicast Data packets (Section 5.1.6 of <xref target="RFC7450"/>), so absent | Multicast Data packets (<xref target="RFC7450" sectionFormat="of" section="5.1.6 | |||
| " format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#section-5.1.6 | ||||
| " derivedContent="RFC7450"/>), 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="include" removeInRF | |||
| <section anchor="record-spoofing" title="Record-spoofing"> | C="false" pn="section-6.2"> | |||
| <name slugifiedName="name-record-spoofing">Record-Spoofing</name> | ||||
| <t>The AMTRELAY resource record contains information that SHOULD be | <t pn="section-6.2-1">The AMTRELAY resource record contains information | |||
| that <bcp14>SHOULD</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 pn="section-6.2-2">There must be a trust relationship between the end | ||||
| <t>There must be a trust relationship between the end consumer of this | 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"/> | sectionFormat="of" derivedContent="RFC2845"/> or SIG(0) <xref target="RFC2931" f | |||
| channel, a secure local channel on the host, DNS over TLS <xref target="RFC7858" | ormat="default" sectionFormat="of" derivedContent="RFC2931"/> | |||
| />, | channel, a secure local channel on the host, DNS over TLS <xref target="RFC7858" | |||
| DNS over HTTPS <xref target="RFC8484"/>, or some other mechanism that provides | format="default" sectionFormat="of" derivedContent="RFC7858"/>, | |||
| DNS over HTTPS <xref target="RFC8484" format="default" sectionFormat="of" derive | ||||
| dContent="RFC8484"/>, or some other mechanism that provides | ||||
| authentication of the RR.</t> | authentication of the RR.</t> | |||
| <t pn="section-6.2-3">If an AMT gateway accepts a maliciously crafted AM | ||||
| <t>If an AMT gateway accepts a maliciously crafted AMTRELAY record, | TRELAY 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> | <section anchor="congestion" numbered="true" toc="include" removeInRFC="fa | |||
| <section anchor="congestion" title="Congestion"> | lse" pn="section-6.3"> | |||
| <name slugifiedName="name-congestion">Congestion</name> | ||||
| <t>Multicast traffic, particularly interdomain multicast traffic, carries | <t pn="section-6.3-1">Multicast traffic, particularly interdomain multic | |||
| some congestion risks, as described in Section 4 of <xref target="RFC8085"/>.</t | ast traffic, carries | |||
| > | some congestion risks, as described in <xref target="RFC8085" sectionFormat="of" | |||
| section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8085#se | ||||
| <t>Application implementors and network operators that use AMT gateways | ction-4" derivedContent="RFC8085"/>.</t> | |||
| are advised to take precautions including monitoring of application | <t pn="section-6.3-2">Application implementors and network operators tha | |||
| t 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" fo | |||
| protections at the network level, in order to ensure network health | rmat="default" derivedLink="https://rfc-editor.org/rfc/rfc8085#section-3.1.10" d | |||
| erivedContent="RFC8085"/> 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 pn="section-6.3-3"><xref target="RFC7450" sectionFormat="of" section= | ||||
| <t>Section 4.1.4.2 of <xref target="RFC7450"/> and Section 6.1 of <xref target=" | "4.1.4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7450#secti | |||
| RFC7450"/> | on-4.1.4.2" derivedContent="RFC7450"/> and <xref target="RFC7450" sectionFormat= | |||
| "of" section="6.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7 | ||||
| 450#section-6.1" derivedContent="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 pn="section-7"> | ||||
| <references title='Normative References'> | <name slugifiedName="name-references">References</name> | |||
| <references pn="section-7.1"> | ||||
| <reference anchor="RFC1034" target='https://www.rfc-editor.org/info/rfc1034'> | <name slugifiedName="name-normative-references">Normative References</na | |||
| <front> | me> | |||
| <title>Domain names - concepts and facilities</title> | <reference anchor="RFC1034" target="https://www.rfc-editor.org/info/rfc1 | |||
| <author initials='P.V.' surname='Mockapetris' fullname='P.V. Mockapetris'><organ | 034" quoteTitle="true" derivedAnchor="RFC1034"> | |||
| ization /></author> | <front> | |||
| <date year='1987' month='November' /> | <title>Domain names - concepts and facilities</title> | |||
| <abstract><t>This RFC is the revised basic definition of The Domain Name System. | <author initials="P.V." surname="Mockapetris" fullname="P.V. Mockape | |||
| It obsoletes RFC-882. This memo describes the domain style names and their us | tris"> | |||
| ed for host address look up and electronic mail forwarding. It discusses the cl | <organization showOnFrontPage="true"/> | |||
| ients and servers in the domain name system and the protocol used between them.< | </author> | |||
| /t></abstract> | <date year="1987" month="November"/> | |||
| </front> | <abstract> | |||
| <seriesInfo name='STD' value='13'/> | <t>This RFC is the revised basic definition of The Domain Name Sys | |||
| <seriesInfo name='RFC' value='1034'/> | tem. It obsoletes RFC-882. This memo describes the domain style names and thei | |||
| <seriesInfo name='DOI' value='10.17487/RFC1034'/> | r used for host address look up and electronic mail forwarding. It discusses th | |||
| </reference> | e clients and servers in the domain name system and the protocol used between th | |||
| em.</t> | ||||
| <reference anchor="RFC1035" target='https://www.rfc-editor.org/info/rfc1035'> | </abstract> | |||
| <front> | </front> | |||
| <title>Domain names - implementation and specification</title> | <seriesInfo name="STD" value="13"/> | |||
| <author initials='P.V.' surname='Mockapetris' fullname='P.V. Mockapetris'><organ | <seriesInfo name="RFC" value="1034"/> | |||
| ization /></author> | <seriesInfo name="DOI" value="10.17487/RFC1034"/> | |||
| <date year='1987' month='November' /> | </reference> | |||
| <abstract><t>This RFC is the revised specification of the protocol and format us | <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1 | |||
| ed in the implementation of the Domain Name System. It obsoletes RFC-883. This | 035" quoteTitle="true" derivedAnchor="RFC1035"> | |||
| memo documents the details of the domain name client - server communication.</t> | <front> | |||
| </abstract> | <title>Domain names - implementation and specification</title> | |||
| </front> | <author initials="P.V." surname="Mockapetris" fullname="P.V. Mockape | |||
| <seriesInfo name='STD' value='13'/> | tris"> | |||
| <seriesInfo name='RFC' value='1035'/> | <organization showOnFrontPage="true"/> | |||
| <seriesInfo name='DOI' value='10.17487/RFC1035'/> | </author> | |||
| </reference> | <date year="1987" month="November"/> | |||
| <abstract> | ||||
| <reference anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'> | <t>This RFC is the revised specification of the protocol and forma | |||
| <front> | t used in the implementation of the Domain Name System. It obsoletes RFC-883. T | |||
| <title>Key words for use in RFCs to Indicate Requirement Levels</title> | his memo documents the details of the domain name client - server communication. | |||
| <author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></ | </t> | |||
| author> | </abstract> | |||
| <date year='1997' month='March' /> | </front> | |||
| <abstract><t>In many standards track documents several words are used to signify | <seriesInfo name="STD" value="13"/> | |||
| the requirements in the specification. These words are often capitalized. This | <seriesInfo name="RFC" value="1035"/> | |||
| document defines these words as they should be interpreted in IETF documents. | <seriesInfo name="DOI" value="10.17487/RFC1035"/> | |||
| This document specifies an Internet Best Current Practices for the Internet Comm | </reference> | |||
| unity, and requests discussion and suggestions for improvements.</t></abstract> | <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | |||
| </front> | 119" quoteTitle="true" derivedAnchor="RFC2119"> | |||
| <seriesInfo name='BCP' value='14'/> | <front> | |||
| <seriesInfo name='RFC' value='2119'/> | <title>Key words for use in RFCs to Indicate Requirement Levels</tit | |||
| <seriesInfo name='DOI' value='10.17487/RFC2119'/> | le> | |||
| </reference> | <author initials="S." surname="Bradner" fullname="S. Bradner"> | |||
| <organization showOnFrontPage="true"/> | ||||
| <reference anchor="RFC2181" target='https://www.rfc-editor.org/info/rfc2181'> | </author> | |||
| <front> | <date year="1997" month="March"/> | |||
| <title>Clarifications to the DNS Specification</title> | <abstract> | |||
| <author initials='R.' surname='Elz' fullname='R. Elz'><organization /></author> | <t>In many standards track documents several words are used to sig | |||
| <author initials='R.' surname='Bush' fullname='R. Bush'><organization /></author | nify the requirements in the specification. These words are often capitalized. | |||
| > | This document defines these words as they should be interpreted in IETF document | |||
| <date year='1997' month='July' /> | s. This document specifies an Internet Best Current Practices for the Internet | |||
| <abstract><t>This document considers some areas that have been identified as pro | Community, and requests discussion and suggestions for improvements.</t> | |||
| blems with the specification of the Domain Name System, and proposes remedies fo | </abstract> | |||
| r the defects identified. [STANDARDS-TRACK]</t></abstract> | </front> | |||
| </front> | <seriesInfo name="BCP" value="14"/> | |||
| <seriesInfo name='RFC' value='2181'/> | <seriesInfo name="RFC" value="2119"/> | |||
| <seriesInfo name='DOI' value='10.17487/RFC2181'/> | <seriesInfo name="DOI" value="10.17487/RFC2119"/> | |||
| </reference> | </reference> | |||
| <reference anchor="RFC2181" target="https://www.rfc-editor.org/info/rfc2 | ||||
| <reference anchor="RFC2782" target='https://www.rfc-editor.org/info/rfc2782'> | 181" quoteTitle="true" derivedAnchor="RFC2181"> | |||
| <front> | <front> | |||
| <title>A DNS RR for specifying the location of services (DNS SRV)</title> | <title>Clarifications to the DNS Specification</title> | |||
| <author initials='A.' surname='Gulbrandsen' fullname='A. Gulbrandsen'><organizat | <author initials="R." surname="Elz" fullname="R. Elz"> | |||
| ion /></author> | <organization showOnFrontPage="true"/> | |||
| <author initials='P.' surname='Vixie' fullname='P. Vixie'><organization /></auth | </author> | |||
| or> | <author initials="R." surname="Bush" fullname="R. Bush"> | |||
| <author initials='L.' surname='Esibov' fullname='L. Esibov'><organization /></au | <organization showOnFrontPage="true"/> | |||
| thor> | </author> | |||
| <date year='2000' month='February' /> | <date year="1997" month="July"/> | |||
| <abstract><t>This document describes a DNS RR which specifies the location of th | <abstract> | |||
| e server(s) for a specific protocol and domain. [STANDARDS-TRACK]</t></abstract | <t>This document considers some areas that have been identified as | |||
| > | problems with the specification of the Domain Name System, and proposes remedie | |||
| </front> | s for the defects identified. [STANDARDS-TRACK]</t> | |||
| <seriesInfo name='RFC' value='2782'/> | </abstract> | |||
| <seriesInfo name='DOI' value='10.17487/RFC2782'/> | </front> | |||
| </reference> | <seriesInfo name="RFC" value="2181"/> | |||
| <seriesInfo name="DOI" value="10.17487/RFC2181"/> | ||||
| <reference anchor="RFC3376" target='https://www.rfc-editor.org/info/rfc3376'> | </reference> | |||
| <front> | <reference anchor="RFC2782" target="https://www.rfc-editor.org/info/rfc2 | |||
| <title>Internet Group Management Protocol, Version 3</title> | 782" quoteTitle="true" derivedAnchor="RFC2782"> | |||
| <author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author | <front> | |||
| > | <title>A DNS RR for specifying the location of services (DNS SRV)</t | |||
| <author initials='S.' surname='Deering' fullname='S. Deering'><organization /></ | itle> | |||
| author> | <author initials="A." surname="Gulbrandsen" fullname="A. Gulbrandsen | |||
| <author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization /> | "> | |||
| </author> | <organization showOnFrontPage="true"/> | |||
| <author initials='B.' surname='Fenner' fullname='B. Fenner'><organization /></au | </author> | |||
| thor> | <author initials="P." surname="Vixie" fullname="P. Vixie"> | |||
| <author initials='A.' surname='Thyagarajan' fullname='A. Thyagarajan'><organizat | <organization showOnFrontPage="true"/> | |||
| ion /></author> | </author> | |||
| <date year='2002' month='October' /> | <author initials="L." surname="Esibov" fullname="L. Esibov"> | |||
| </front> | <organization showOnFrontPage="true"/> | |||
| <seriesInfo name='RFC' value='3376'/> | </author> | |||
| <seriesInfo name='DOI' value='10.17487/RFC3376'/> | <date year="2000" month="February"/> | |||
| </reference> | <abstract> | |||
| <t>This document describes a DNS RR which specifies the location o | ||||
| <reference anchor="RFC3596" target='https://www.rfc-editor.org/info/rfc3596'> | f the server(s) for a specific protocol and domain. [STANDARDS-TRACK]</t> | |||
| <front> | </abstract> | |||
| <title>DNS Extensions to Support IP Version 6</title> | </front> | |||
| <author initials='S.' surname='Thomson' fullname='S. Thomson'><organization /></ | <seriesInfo name="RFC" value="2782"/> | |||
| author> | <seriesInfo name="DOI" value="10.17487/RFC2782"/> | |||
| <author initials='C.' surname='Huitema' fullname='C. Huitema'><organization /></ | </reference> | |||
| author> | <reference anchor="RFC3376" target="https://www.rfc-editor.org/info/rfc3 | |||
| <author initials='V.' surname='Ksinant' fullname='V. Ksinant'><organization /></ | 376" quoteTitle="true" derivedAnchor="RFC3376"> | |||
| author> | <front> | |||
| <author initials='M.' surname='Souissi' fullname='M. Souissi'><organization /></ | <title>Internet Group Management Protocol, Version 3</title> | |||
| author> | <author initials="B." surname="Cain" fullname="B. Cain"> | |||
| <date year='2003' month='October' /> | <organization showOnFrontPage="true"/> | |||
| <abstract><t>This document defines the changes that need to be made to the Domai | </author> | |||
| n Name System (DNS) to support hosts running IP version 6 (IPv6). The changes i | <author initials="S." surname="Deering" fullname="S. Deering"> | |||
| nclude a resource record type to store an IPv6 address, a domain to support look | <organization showOnFrontPage="true"/> | |||
| ups based on an IPv6 address, and updated definitions of existing query types th | </author> | |||
| at return Internet addresses as part of additional section processing. The exte | <author initials="I." surname="Kouvelas" fullname="I. Kouvelas"> | |||
| nsions are designed to be compatible with existing applications and, in particul | <organization showOnFrontPage="true"/> | |||
| ar, DNS implementations themselves. [STANDARDS-TRACK]</t></abstract> | </author> | |||
| </front> | <author initials="B." surname="Fenner" fullname="B. Fenner"> | |||
| <seriesInfo name='STD' value='88'/> | <organization showOnFrontPage="true"/> | |||
| <seriesInfo name='RFC' value='3596'/> | </author> | |||
| <seriesInfo name='DOI' value='10.17487/RFC3596'/> | <author initials="A." surname="Thyagarajan" fullname="A. Thyagarajan | |||
| </reference> | "> | |||
| <organization showOnFrontPage="true"/> | ||||
| <reference anchor="RFC3597" target='https://www.rfc-editor.org/info/rfc3597'> | </author> | |||
| <front> | <date year="2002" month="October"/> | |||
| <title>Handling of Unknown DNS Resource Record (RR) Types</title> | </front> | |||
| <author initials='A.' surname='Gustafsson' fullname='A. Gustafsson'><organizatio | <seriesInfo name="RFC" value="3376"/> | |||
| n /></author> | <seriesInfo name="DOI" value="10.17487/RFC3376"/> | |||
| <date year='2003' month='September' /> | </reference> | |||
| <abstract><t>Extending the Domain Name System (DNS) with new Resource Record (RR | <reference anchor="RFC3596" target="https://www.rfc-editor.org/info/rfc3 | |||
| ) types currently requires changes to name server software. This document speci | 596" quoteTitle="true" derivedAnchor="RFC3596"> | |||
| fies the changes necessary to allow future DNS implementations to handle new RR | <front> | |||
| types transparently. [STANDARDS-TRACK]</t></abstract> | <title>DNS Extensions to Support IP Version 6</title> | |||
| </front> | <author initials="S." surname="Thomson" fullname="S. Thomson"> | |||
| <seriesInfo name='RFC' value='3597'/> | <organization showOnFrontPage="true"/> | |||
| <seriesInfo name='DOI' value='10.17487/RFC3597'/> | </author> | |||
| </reference> | <author initials="C." surname="Huitema" fullname="C. Huitema"> | |||
| <organization showOnFrontPage="true"/> | ||||
| <reference anchor="RFC3810" target='https://www.rfc-editor.org/info/rfc3810'> | </author> | |||
| <front> | <author initials="V." surname="Ksinant" fullname="V. Ksinant"> | |||
| <title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</title> | <organization showOnFrontPage="true"/> | |||
| <author initials='R.' surname='Vida' fullname='R. Vida' role='editor'><organizat | </author> | |||
| ion /></author> | <author initials="M." surname="Souissi" fullname="M. Souissi"> | |||
| <author initials='L.' surname='Costa' fullname='L. Costa' role='editor'><organiz | <organization showOnFrontPage="true"/> | |||
| ation /></author> | </author> | |||
| <date year='2004' month='June' /> | <date year="2003" month="October"/> | |||
| <abstract><t>This document updates RFC 2710, and it specifies Version 2 of the u | <abstract> | |||
| lticast Listener Discovery Protocol (MLDv2). MLD is used by an IPv6 router to d | <t>This document defines the changes that need to be made to the D | |||
| iscover the presence of multicast listeners on directly attached links, and to d | omain Name System (DNS) to support hosts running IP version 6 (IPv6). The chang | |||
| iscover which multicast addresses are of interest to those neighboring nodes. M | es include a resource record type to store an IPv6 address, a domain to support | |||
| LDv2 is designed to be interoperable with MLDv1. MLDv2 adds the ability for a n | lookups based on an IPv6 address, and updated definitions of existing query type | |||
| ode to report interest in listening to packets with a particular multicast addre | s that return Internet addresses as part of additional section processing. The | |||
| ss only from specific source addresses or from all sources except for specific s | extensions are designed to be compatible with existing applications and, in part | |||
| ource addresses. [STANDARDS-TRACK]</t></abstract> | icular, DNS implementations themselves. [STANDARDS-TRACK]</t> | |||
| </front> | </abstract> | |||
| <seriesInfo name='RFC' value='3810'/> | </front> | |||
| <seriesInfo name='DOI' value='10.17487/RFC3810'/> | <seriesInfo name="STD" value="88"/> | |||
| </reference> | <seriesInfo name="RFC" value="3596"/> | |||
| <seriesInfo name="DOI" value="10.17487/RFC3596"/> | ||||
| <reference anchor="RFC4604" target='https://www.rfc-editor.org/info/rfc4604'> | </reference> | |||
| <front> | <reference anchor="RFC3597" target="https://www.rfc-editor.org/info/rfc3 | |||
| <title>Using Internet Group Management Protocol Version 3 (IGMPv3) and Multicast | 597" quoteTitle="true" derivedAnchor="RFC3597"> | |||
| Listener Discovery Protocol Version 2 (MLDv2) for Source-Specific Multicast</ti | <front> | |||
| tle> | <title>Handling of Unknown DNS Resource Record (RR) Types</title> | |||
| <author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization /> | <author initials="A." surname="Gustafsson" fullname="A. Gustafsson"> | |||
| </author> | <organization showOnFrontPage="true"/> | |||
| <author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author | </author> | |||
| > | <date year="2003" month="September"/> | |||
| <author initials='B.' surname='Haberman' fullname='B. Haberman'><organization /> | <abstract> | |||
| </author> | <t>Extending the Domain Name System (DNS) with new Resource Record | |||
| <date year='2006' month='August' /> | (RR) types currently requires changes to name server software. This document s | |||
| <abstract><t>The Internet Group Management Protocol Version 3 (IGMPv3) and the M | pecifies the changes necessary to allow future DNS implementations to handle new | |||
| ulticast Listener Discovery Protocol Version 2 (MLDv2) are protocols that allow | RR types transparently. [STANDARDS-TRACK]</t> | |||
| a host to inform its neighboring routers of its desire to receive IPv4 and IPv6 | </abstract> | |||
| multicast transmissions, respectively. Source-specific multicast (SSM) is a form | </front> | |||
| of multicast in which a receiver is required to specify both the network-layer | <seriesInfo name="RFC" value="3597"/> | |||
| address of the source and the multicast destination address in order to receive | <seriesInfo name="DOI" value="10.17487/RFC3597"/> | |||
| the multicast transmission. This document defines the notion of an "SSM-aw | </reference> | |||
| are" router and host, and clarifies and (in some cases) modifies the behavi | <reference anchor="RFC3810" target="https://www.rfc-editor.org/info/rfc3 | |||
| or of IGMPv3 and MLDv2 on SSM-aware routers and hosts to accommodate source-spec | 810" quoteTitle="true" derivedAnchor="RFC3810"> | |||
| ific multicast. This document updates the IGMPv3 and MLDv2 specifications. [ST | <front> | |||
| ANDARDS-TRACK]</t></abstract> | <title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</titl | |||
| </front> | e> | |||
| <seriesInfo name='RFC' value='4604'/> | <author initials="R." surname="Vida" fullname="R. Vida" role="editor | |||
| <seriesInfo name='DOI' value='10.17487/RFC4604'/> | "> | |||
| </reference> | <organization showOnFrontPage="true"/> | |||
| </author> | ||||
| <reference anchor="RFC4607" target='https://www.rfc-editor.org/info/rfc4607'> | <author initials="L." surname="Costa" fullname="L. Costa" role="edit | |||
| <front> | or"> | |||
| <title>Source-Specific Multicast for IP</title> | <organization showOnFrontPage="true"/> | |||
| <author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization /> | </author> | |||
| </author> | <date year="2004" month="June"/> | |||
| <author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author | <abstract> | |||
| > | <t>This document updates RFC 2710, and it specifies Version 2 of t | |||
| <date year='2006' month='August' /> | he ulticast Listener Discovery Protocol (MLDv2). MLD is used by an IPv6 router | |||
| <abstract><t>IP version 4 (IPv4) addresses in the 232/8 (232.0.0.0 to 232.255.25 | to discover the presence of multicast listeners on directly attached links, and | |||
| 5.255) range are designated as source-specific multicast (SSM) destination addre | to discover which multicast addresses are of interest to those neighboring nodes | |||
| sses and are reserved for use by source-specific applications and protocols. Fo | . MLDv2 is designed to be interoperable with MLDv1. MLDv2 adds the ability for | |||
| r IP version 6 (IPv6), the address prefix FF3x::/32 is reserved for source-speci | a node to report interest in listening to packets with a particular multicast a | |||
| fic multicast use. This document defines an extension to the Internet network s | ddress only from specific source addresses or from all sources except for specif | |||
| ervice that applies to datagrams sent to SSM addresses and defines the host and | ic source addresses. [STANDARDS-TRACK]</t> | |||
| router requirements to support this extension. [STANDARDS-TRACK]</t></abstract> | </abstract> | |||
| </front> | </front> | |||
| <seriesInfo name='RFC' value='4607'/> | <seriesInfo name="RFC" value="3810"/> | |||
| <seriesInfo name='DOI' value='10.17487/RFC4607'/> | <seriesInfo name="DOI" value="10.17487/RFC3810"/> | |||
| </reference> | </reference> | |||
| <reference anchor="RFC4604" target="https://www.rfc-editor.org/info/rfc4 | ||||
| <reference anchor="RFC6724" target='https://www.rfc-editor.org/info/rfc6724'> | 604" quoteTitle="true" derivedAnchor="RFC4604"> | |||
| <front> | <front> | |||
| <title>Default Address Selection for Internet Protocol Version 6 (IPv6)</title> | <title>Using Internet Group Management Protocol Version 3 (IGMPv3) a | |||
| <author initials='D.' surname='Thaler' fullname='D. Thaler' role='editor'><organ | nd Multicast Listener Discovery Protocol Version 2 (MLDv2) for Source-Specific M | |||
| ization /></author> | ulticast</title> | |||
| <author initials='R.' surname='Draves' fullname='R. Draves'><organization /></au | <author initials="H." surname="Holbrook" fullname="H. Holbrook"> | |||
| thor> | <organization showOnFrontPage="true"/> | |||
| <author initials='A.' surname='Matsumoto' fullname='A. Matsumoto'><organization | </author> | |||
| /></author> | <author initials="B." surname="Cain" fullname="B. Cain"> | |||
| <author initials='T.' surname='Chown' fullname='T. Chown'><organization /></auth | <organization showOnFrontPage="true"/> | |||
| or> | </author> | |||
| <date year='2012' month='September' /> | <author initials="B." surname="Haberman" fullname="B. Haberman"> | |||
| <abstract><t>This document describes two algorithms, one for source address sele | <organization showOnFrontPage="true"/> | |||
| ction and one for destination address selection. The algorithms specify default | </author> | |||
| behavior for all Internet Protocol version 6 (IPv6) implementations. They do n | <date year="2006" month="August"/> | |||
| ot override choices made by applications or upper-layer protocols, nor do they p | <abstract> | |||
| reclude the development of more advanced mechanisms for address selection. The | <t>The Internet Group Management Protocol Version 3 (IGMPv3) and t | |||
| two algorithms share a common context, including an optional mechanism for allow | he Multicast Listener Discovery Protocol Version 2 (MLDv2) are protocols that al | |||
| ing administrators to provide policy that can override the default behavior. In | low a host to inform its neighboring routers of its desire to receive IPv4 and I | |||
| dual-stack implementations, the destination address selection algorithm can con | Pv6 multicast transmissions, respectively. Source-specific multicast (SSM) is a | |||
| sider both IPv4 and IPv6 addresses -- depending on the available source addresse | form of multicast in which a receiver is required to specify both the network-la | |||
| s, the algorithm might prefer IPv6 addresses over IPv4 addresses, or vice versa. | yer address of the source and the multicast destination address in order to rece | |||
| </t><t>Default address selection as defined in this specification applies to all | ive the multicast transmission. This document defines the notion of an "SSM-awa | |||
| IPv6 nodes, including both hosts and routers. This document obsoletes RFC 3484 | re" router and host, and clarifies and (in some cases) modifies the behavior of | |||
| . [STANDARDS-TRACK]</t></abstract> | IGMPv3 and MLDv2 on SSM-aware routers and hosts to accommodate source-specific m | |||
| </front> | ulticast. This document updates the IGMPv3 and MLDv2 specifications. [STANDARD | |||
| <seriesInfo name='RFC' value='6724'/> | S-TRACK]</t> | |||
| <seriesInfo name='DOI' value='10.17487/RFC6724'/> | </abstract> | |||
| </reference> | </front> | |||
| <seriesInfo name="RFC" value="4604"/> | ||||
| <reference anchor="RFC6763" target='https://www.rfc-editor.org/info/rfc6763'> | <seriesInfo name="DOI" value="10.17487/RFC4604"/> | |||
| <front> | </reference> | |||
| <title>DNS-Based Service Discovery</title> | <reference anchor="RFC4607" target="https://www.rfc-editor.org/info/rfc4 | |||
| <author initials='S.' surname='Cheshire' fullname='S. Cheshire'><organization /> | 607" quoteTitle="true" derivedAnchor="RFC4607"> | |||
| </author> | <front> | |||
| <author initials='M.' surname='Krochmal' fullname='M. Krochmal'><organization /> | <title>Source-Specific Multicast for IP</title> | |||
| </author> | <author initials="H." surname="Holbrook" fullname="H. Holbrook"> | |||
| <date year='2013' month='February' /> | <organization showOnFrontPage="true"/> | |||
| <abstract><t>This document specifies how DNS resource records are named and stru | </author> | |||
| ctured to facilitate service discovery. Given a type of service that a client i | <author initials="B." surname="Cain" fullname="B. Cain"> | |||
| s looking for, and a domain in which the client is looking for that service, thi | <organization showOnFrontPage="true"/> | |||
| s mechanism allows clients to discover a list of named instances of that desired | </author> | |||
| service, using standard DNS queries. This mechanism is referred to as DNS-based | <date year="2006" month="August"/> | |||
| Service Discovery, or DNS-SD.</t></abstract> | <abstract> | |||
| </front> | <t>IP version 4 (IPv4) addresses in the 232/8 (232.0.0.0 to 232.25 | |||
| <seriesInfo name='RFC' value='6763'/> | 5.255.255) range are designated as source-specific multicast (SSM) destination a | |||
| <seriesInfo name='DOI' value='10.17487/RFC6763'/> | ddresses and are reserved for use by source-specific applications and protocols. | |||
| </reference> | For IP version 6 (IPv6), the address prefix FF3x::/32 is reserved for source-s | |||
| pecific multicast use. This document defines an extension to the Internet netwo | ||||
| <reference anchor="RFC7450" target='https://www.rfc-editor.org/info/rfc7450'> | rk service that applies to datagrams sent to SSM addresses and defines the host | |||
| <front> | and router requirements to support this extension. [STANDARDS-TRACK]</t> | |||
| <title>Automatic Multicast Tunneling</title> | </abstract> | |||
| <author initials='G.' surname='Bumgardner' fullname='G. Bumgardner'><organizatio | </front> | |||
| n /></author> | <seriesInfo name="RFC" value="4607"/> | |||
| <date year='2015' month='February' /> | <seriesInfo name="DOI" value="10.17487/RFC4607"/> | |||
| <abstract><t>This document describes Automatic Multicast Tunneling (AMT), a prot | </reference> | |||
| ocol for delivering multicast traffic from sources in a multicast-enabled networ | <reference anchor="RFC6724" target="https://www.rfc-editor.org/info/rfc6 | |||
| k to receivers that lack multicast connectivity to the source network. The prot | 724" quoteTitle="true" derivedAnchor="RFC6724"> | |||
| ocol uses UDP encapsulation and unicast replication to provide this functionalit | <front> | |||
| y.</t><t>The AMT protocol is specifically designed to support rapid deployment b | <title>Default Address Selection for Internet Protocol Version 6 (IP | |||
| y requiring minimal changes to existing network infrastructure.</t></abstract> | v6)</title> | |||
| </front> | <author initials="D." surname="Thaler" fullname="D. Thaler" role="ed | |||
| <seriesInfo name='RFC' value='7450'/> | itor"> | |||
| <seriesInfo name='DOI' value='10.17487/RFC7450'/> | <organization showOnFrontPage="true"/> | |||
| </reference> | </author> | |||
| <author initials="R." surname="Draves" fullname="R. Draves"> | ||||
| <reference anchor="RFC8085" target='https://www.rfc-editor.org/info/rfc8085'> | <organization showOnFrontPage="true"/> | |||
| <front> | </author> | |||
| <title>UDP Usage Guidelines</title> | <author initials="A." surname="Matsumoto" fullname="A. Matsumoto"> | |||
| <author initials='L.' surname='Eggert' fullname='L. Eggert'><organization /></au | <organization showOnFrontPage="true"/> | |||
| thor> | </author> | |||
| <author initials='G.' surname='Fairhurst' fullname='G. Fairhurst'><organization | <author initials="T." surname="Chown" fullname="T. Chown"> | |||
| /></author> | <organization showOnFrontPage="true"/> | |||
| <author initials='G.' surname='Shepherd' fullname='G. Shepherd'><organization /> | </author> | |||
| </author> | <date year="2012" month="September"/> | |||
| <date year='2017' month='March' /> | <abstract> | |||
| <abstract><t>The User Datagram Protocol (UDP) provides a minimal message-passing | <t>This document describes two algorithms, one for source address | |||
| transport that has no inherent congestion control mechanisms. This document pr | selection and one for destination address selection. The algorithms specify def | |||
| ovides guidelines on the use of UDP for the designers of applications, tunnels, | ault behavior for all Internet Protocol version 6 (IPv6) implementations. They | |||
| and other protocols that use UDP. Congestion control guidelines are a primary f | do not override choices made by applications or upper-layer protocols, nor do th | |||
| ocus, but the document also provides guidance on other topics, including message | ey preclude the development of more advanced mechanisms for address selection. | |||
| sizes, reliability, checksums, middlebox traversal, the use of Explicit Congest | The two algorithms share a common context, including an optional mechanism for a | |||
| ion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.< | llowing administrators to provide policy that can override the default behavior. | |||
| /t><t>Because congestion control is critical to the stable operation of the Inte | In dual-stack implementations, the destination address selection algorithm can | |||
| rnet, applications and other protocols that choose to use UDP as an Internet tra | consider both IPv4 and IPv6 addresses -- depending on the available source addr | |||
| nsport must employ mechanisms to prevent congestion collapse and to establish so | esses, the algorithm might prefer IPv6 addresses over IPv4 addresses, or vice ve | |||
| me degree of fairness with concurrent traffic. They may also need to implement | rsa.</t> | |||
| additional mechanisms, depending on how they use UDP.</t><t>Some guidance is als | <t>Default address selection as defined in this specification appl | |||
| o applicable to the design of other protocols (e.g., protocols layered directly | ies to all IPv6 nodes, including both hosts and routers. This document obsolete | |||
| on IP or via IP-based tunnels), especially when these protocols do not themselve | s RFC 3484. [STANDARDS-TRACK]</t> | |||
| s provide congestion control.</t><t>This document obsoletes RFC 5405 and adds gu | </abstract> | |||
| idelines for multicast UDP usage.</t></abstract> | </front> | |||
| </front> | <seriesInfo name="RFC" value="6724"/> | |||
| <seriesInfo name='BCP' value='145'/> | <seriesInfo name="DOI" value="10.17487/RFC6724"/> | |||
| <seriesInfo name='RFC' value='8085'/> | </reference> | |||
| <seriesInfo name='DOI' value='10.17487/RFC8085'/> | <reference anchor="RFC6763" target="https://www.rfc-editor.org/info/rfc6 | |||
| </reference> | 763" quoteTitle="true" derivedAnchor="RFC6763"> | |||
| <front> | ||||
| <reference anchor="RFC8305" target='https://www.rfc-editor.org/info/rfc8305'> | <title>DNS-Based Service Discovery</title> | |||
| <front> | <author initials="S." surname="Cheshire" fullname="S. Cheshire"> | |||
| <title>Happy Eyeballs Version 2: Better Connectivity Using Concurrency</title> | <organization showOnFrontPage="true"/> | |||
| <author initials='D.' surname='Schinazi' fullname='D. Schinazi'><organization /> | </author> | |||
| </author> | <author initials="M." surname="Krochmal" fullname="M. Krochmal"> | |||
| <author initials='T.' surname='Pauly' fullname='T. Pauly'><organization /></auth | <organization showOnFrontPage="true"/> | |||
| or> | </author> | |||
| <date year='2017' month='December' /> | <date year="2013" month="February"/> | |||
| <abstract><t>Many communication protocols operating over the modern Internet use | <abstract> | |||
| hostnames. These often resolve to multiple IP addresses, each of which may hav | <t>This document specifies how DNS resource records are named and | |||
| e different performance and connectivity characteristics. Since specific addres | structured to facilitate service discovery. Given a type of service that a clie | |||
| ses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optimal on | nt is looking for, and a domain in which the client is looking for that service, | |||
| a network, clients that attempt multiple connections in parallel have a chance | this mechanism allows clients to discover a list of named instances of that des | |||
| of establishing a connection more quickly. This document specifies requirements | ired service, using standard DNS queries. This mechanism is referred to as DNS-b | |||
| for algorithms that reduce this user-visible delay and provides an example algo | ased Service Discovery, or DNS-SD.</t> | |||
| rithm, referred to as "Happy Eyeballs". This document obsoletes the o | </abstract> | |||
| riginal algorithm description in RFC 6555.</t></abstract> | </front> | |||
| </front> | <seriesInfo name="RFC" value="6763"/> | |||
| <seriesInfo name='RFC' value='8305'/> | <seriesInfo name="DOI" value="10.17487/RFC6763"/> | |||
| <seriesInfo name='DOI' value='10.17487/RFC8305'/> | </reference> | |||
| </reference> | <reference anchor="RFC7450" target="https://www.rfc-editor.org/info/rfc7 | |||
| 450" quoteTitle="true" derivedAnchor="RFC7450"> | ||||
| <reference anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'> | <front> | |||
| <front> | <title>Automatic Multicast Tunneling</title> | |||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | <author initials="G." surname="Bumgardner" fullname="G. Bumgardner"> | |||
| <author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></auth | <organization showOnFrontPage="true"/> | |||
| or> | </author> | |||
| <date year='2017' month='May' /> | <date year="2015" month="February"/> | |||
| <abstract><t>RFC 2119 specifies common key words that may be used in protocol s | <abstract> | |||
| pecifications. This document aims to reduce the ambiguity by clarifying that on | <t>This document describes Automatic Multicast Tunneling (AMT), a | |||
| ly UPPERCASE usage of the key words have the defined special meanings.</t></abs | protocol for delivering multicast traffic from sources in a multicast-enabled ne | |||
| tract> | twork to receivers that lack multicast connectivity to the source network. The | |||
| </front> | protocol uses UDP encapsulation and unicast replication to provide this function | |||
| <seriesInfo name='BCP' value='14'/> | ality.</t> | |||
| <seriesInfo name='RFC' value='8174'/> | <t>The AMT protocol is specifically designed to support rapid depl | |||
| <seriesInfo name='DOI' value='10.17487/RFC8174'/> | oyment by requiring minimal changes to existing network infrastructure.</t> | |||
| </reference> | </abstract> | |||
| </front> | ||||
| <reference anchor="RFC8499" target='https://www.rfc-editor.org/info/rfc8499'> | <seriesInfo name="RFC" value="7450"/> | |||
| <front> | <seriesInfo name="DOI" value="10.17487/RFC7450"/> | |||
| <title>DNS Terminology</title> | </reference> | |||
| <author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></ | <reference anchor="RFC8085" target="https://www.rfc-editor.org/info/rfc8 | |||
| author> | 085" quoteTitle="true" derivedAnchor="RFC8085"> | |||
| <author initials='A.' surname='Sullivan' fullname='A. Sullivan'><organization /> | <front> | |||
| </author> | <title>UDP Usage Guidelines</title> | |||
| <author initials='K.' surname='Fujiwara' fullname='K. Fujiwara'><organization /> | <author initials="L." surname="Eggert" fullname="L. Eggert"> | |||
| </author> | <organization showOnFrontPage="true"/> | |||
| <date year='2019' month='January' /> | </author> | |||
| <abstract><t>The Domain Name System (DNS) is defined in literally dozens of diff | <author initials="G." surname="Fairhurst" fullname="G. Fairhurst"> | |||
| erent RFCs. The terminology used by implementers and developers of DNS protocol | <organization showOnFrontPage="true"/> | |||
| s, and by operators of DNS systems, has sometimes changed in the decades since t | </author> | |||
| he DNS was first defined. This document gives current definitions for many of t | <author initials="G." surname="Shepherd" fullname="G. Shepherd"> | |||
| he terms used in the DNS in a single document.</t><t>This document obsoletes RFC | <organization showOnFrontPage="true"/> | |||
| 7719 and updates RFC 2308.</t></abstract> | </author> | |||
| </front> | <date year="2017" month="March"/> | |||
| <seriesInfo name='BCP' value='219'/> | <abstract> | |||
| <seriesInfo name='RFC' value='8499'/> | <t>The User Datagram Protocol (UDP) provides a minimal message-pas | |||
| <seriesInfo name='DOI' value='10.17487/RFC8499'/> | sing transport that has no inherent congestion control mechanisms. This documen | |||
| </reference> | t provides guidelines on the use of UDP for the designers of applications, tunne | |||
| ls, and other protocols that use UDP. Congestion control guidelines are a prima | ||||
| </references> | ry focus, but the document also provides guidance on other topics, including mes | |||
| sage sizes, reliability, checksums, middlebox traversal, the use of Explicit Con | ||||
| <references title='Informative References'> | gestion Notification (ECN), Differentiated Services Code Points (DSCPs), and por | |||
| ts.</t> | ||||
| <reference anchor="RFC2317" target='https://www.rfc-editor.org/info/rfc2317'> | <t>Because congestion control is critical to the stable operation | |||
| <front> | of the Internet, applications and other protocols that choose to use UDP as an I | |||
| <title>Classless IN-ADDR.ARPA delegation</title> | nternet transport must employ mechanisms to prevent congestion collapse and to e | |||
| <author initials='H.' surname='Eidnes' fullname='H. Eidnes'><organization /></au | stablish some degree of fairness with concurrent traffic. They may also need to | |||
| thor> | implement additional mechanisms, depending on how they use UDP.</t> | |||
| <author initials='G.' surname='de Groot' fullname='G. de Groot'><organization /> | <t>Some guidance is also applicable to the design of other protoco | |||
| </author> | ls (e.g., protocols layered directly on IP or via IP-based tunnels), especially | |||
| <author initials='P.' surname='Vixie' fullname='P. Vixie'><organization /></auth | when these protocols do not themselves provide congestion control.</t> | |||
| or> | <t>This document obsoletes RFC 5405 and adds guidelines for multic | |||
| <date year='1998' month='March' /> | ast UDP usage.</t> | |||
| <abstract><t>This document describes a way to do IN-ADDR.ARPA delegation on non- | </abstract> | |||
| octet boundaries for address spaces covering fewer than 256 addresses. This doc | </front> | |||
| ument specifies an Internet Best Current Practices for the Internet Community, a | <seriesInfo name="BCP" value="145"/> | |||
| nd requests discussion and suggestions for improvements.</t></abstract> | <seriesInfo name="RFC" value="8085"/> | |||
| </front> | <seriesInfo name="DOI" value="10.17487/RFC8085"/> | |||
| <seriesInfo name='BCP' value='20'/> | </reference> | |||
| <seriesInfo name='RFC' value='2317'/> | <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | |||
| <seriesInfo name='DOI' value='10.17487/RFC2317'/> | 174" quoteTitle="true" derivedAnchor="RFC8174"> | |||
| </reference> | <front> | |||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| <reference anchor="RFC2845" target='https://www.rfc-editor.org/info/rfc2845'> | tle> | |||
| <front> | <author initials="B." surname="Leiba" fullname="B. Leiba"> | |||
| <title>Secret Key Transaction Authentication for DNS (TSIG)</title> | <organization showOnFrontPage="true"/> | |||
| <author initials='P.' surname='Vixie' fullname='P. Vixie'><organization /></auth | </author> | |||
| or> | <date year="2017" month="May"/> | |||
| <author initials='O.' surname='Gudmundsson' fullname='O. Gudmundsson'><organizat | <abstract> | |||
| ion /></author> | <t>RFC 2119 specifies common key words that may be used in protoco | |||
| <author initials='D.' surname='Eastlake 3rd' fullname='D. Eastlake 3rd'><organiz | l specifications. This document aims to reduce the ambiguity by clarifying tha | |||
| ation /></author> | t only UPPERCASE usage of the key words have the defined special meanings.</t> | |||
| <author initials='B.' surname='Wellington' fullname='B. Wellington'><organizatio | </abstract> | |||
| n /></author> | </front> | |||
| <date year='2000' month='May' /> | <seriesInfo name="BCP" value="14"/> | |||
| <abstract><t>This protocol allows for transaction level authentication using sha | <seriesInfo name="RFC" value="8174"/> | |||
| red secrets and one way hashing. It can be used to authenticate dynamic updates | <seriesInfo name="DOI" value="10.17487/RFC8174"/> | |||
| as coming from an approved client, or to authenticate responses as coming from | </reference> | |||
| an approved recursive name server. [STANDARDS-TRACK]</t></abstract> | <reference anchor="RFC8305" target="https://www.rfc-editor.org/info/rfc8 | |||
| </front> | 305" quoteTitle="true" derivedAnchor="RFC8305"> | |||
| <seriesInfo name='RFC' value='2845'/> | <front> | |||
| <seriesInfo name='DOI' value='10.17487/RFC2845'/> | <title>Happy Eyeballs Version 2: Better Connectivity Using Concurren | |||
| </reference> | cy</title> | |||
| <author initials="D." surname="Schinazi" fullname="D. Schinazi"> | ||||
| <reference anchor="RFC2931" target='https://www.rfc-editor.org/info/rfc2931'> | <organization showOnFrontPage="true"/> | |||
| <front> | </author> | |||
| <title>DNS Request and Transaction Signatures ( SIG(0)s )</title> | <author initials="T." surname="Pauly" fullname="T. Pauly"> | |||
| <author initials='D.' surname='Eastlake 3rd' fullname='D. Eastlake 3rd'><organiz | <organization showOnFrontPage="true"/> | |||
| ation /></author> | </author> | |||
| <date year='2000' month='September' /> | <date year="2017" month="December"/> | |||
| <abstract><t>This document describes the minor but non-interoperable changes in | <abstract> | |||
| Request and Transaction signature resource records ( SIG(0)s ) that implementati | <t>Many communication protocols operating over the modern Internet | |||
| on experience has deemed necessary. [STANDARDS-TRACK]</t></abstract> | use hostnames. These often resolve to multiple IP addresses, each of which may | |||
| </front> | have different performance and connectivity characteristics. Since specific ad | |||
| <seriesInfo name='RFC' value='2931'/> | dresses or address families (IPv4 or IPv6) may be blocked, broken, or sub-optima | |||
| <seriesInfo name='DOI' value='10.17487/RFC2931'/> | l on a network, clients that attempt multiple connections in parallel have a cha | |||
| </reference> | nce of establishing a connection more quickly. This document specifies requirem | |||
| ents for algorithms that reduce this user-visible delay and provides an example | ||||
| <reference anchor="RFC3550" target='https://www.rfc-editor.org/info/rfc3550'> | algorithm, referred to as "Happy Eyeballs". This document obsoletes the origina | |||
| <front> | l algorithm description in RFC 6555.</t> | |||
| <title>RTP: A Transport Protocol for Real-Time Applications</title> | </abstract> | |||
| <author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organizat | </front> | |||
| ion /></author> | <seriesInfo name="RFC" value="8305"/> | |||
| <author initials='S.' surname='Casner' fullname='S. Casner'><organization /></au | <seriesInfo name="DOI" value="10.17487/RFC8305"/> | |||
| thor> | </reference> | |||
| <author initials='R.' surname='Frederick' fullname='R. Frederick'><organization | <reference anchor="RFC8499" target="https://www.rfc-editor.org/info/rfc8 | |||
| /></author> | 499" quoteTitle="true" derivedAnchor="RFC8499"> | |||
| <author initials='V.' surname='Jacobson' fullname='V. Jacobson'><organization /> | <front> | |||
| </author> | <title>DNS Terminology</title> | |||
| <date year='2003' month='July' /> | <author initials="P." surname="Hoffman" fullname="P. Hoffman"> | |||
| <abstract><t>This memorandum describes RTP, the real-time transport protocol. R | <organization showOnFrontPage="true"/> | |||
| TP provides end-to-end network transport functions suitable for applications tra | </author> | |||
| nsmitting real-time data, such as audio, video or simulation data, over multicas | <author initials="A." surname="Sullivan" fullname="A. Sullivan"> | |||
| t or unicast network services. RTP does not address resource reservation and do | <organization showOnFrontPage="true"/> | |||
| es not guarantee quality-of- service for real-time services. The data transport | </author> | |||
| is augmented by a control protocol (RTCP) to allow monitoring of the data deliv | <author initials="K." surname="Fujiwara" fullname="K. Fujiwara"> | |||
| ery in a manner scalable to large multicast networks, and to provide minimal con | <organization showOnFrontPage="true"/> | |||
| trol and identification functionality. RTP and RTCP are designed to be independ | </author> | |||
| ent of the underlying transport and network layers. The protocol supports the u | <date year="2019" month="January"/> | |||
| se of RTP-level translators and mixers. Most of the text in this memorandum is i | <abstract> | |||
| dentical to RFC 1889 which it obsoletes. There are no changes in the packet for | <t>The Domain Name System (DNS) is defined in literally dozens of | |||
| mats on the wire, only changes to the rules and algorithms governing how the pro | different RFCs. The terminology used by implementers and developers of DNS prot | |||
| tocol is used. The biggest change is an enhancement to the scalable timer algori | ocols, and by operators of DNS systems, has sometimes changed in the decades sin | |||
| thm for calculating when to send RTCP packets in order to minimize transmission | ce the DNS was first defined. This document gives current definitions for many | |||
| in excess of the intended rate when many participants join a session simultaneou | of the terms used in the DNS in a single document.</t> | |||
| sly. [STANDARDS-TRACK]</t></abstract> | <t>This document obsoletes RFC 7719 and updates RFC 2308.</t> | |||
| </front> | </abstract> | |||
| <seriesInfo name='STD' value='64'/> | </front> | |||
| <seriesInfo name='RFC' value='3550'/> | <seriesInfo name="BCP" value="219"/> | |||
| <seriesInfo name='DOI' value='10.17487/RFC3550'/> | <seriesInfo name="RFC" value="8499"/> | |||
| </reference> | <seriesInfo name="DOI" value="10.17487/RFC8499"/> | |||
| </reference> | ||||
| <reference anchor="RFC4025" target='https://www.rfc-editor.org/info/rfc4025'> | </references> | |||
| <front> | <references pn="section-7.2"> | |||
| <title>A Method for Storing IPsec Keying Material in DNS</title> | <name slugifiedName="name-informative-references">Informative References | |||
| <author initials='M.' surname='Richardson' fullname='M. Richardson'><organizatio | </name> | |||
| n /></author> | <reference anchor="RFC2317" target="https://www.rfc-editor.org/info/rfc2 | |||
| <date year='2005' month='March' /> | 317" quoteTitle="true" derivedAnchor="RFC2317"> | |||
| <abstract><t>This document describes a new resource record for the Domain Name S | <front> | |||
| ystem (DNS). This record may be used to store public keys for use in IP securit | <title>Classless IN-ADDR.ARPA delegation</title> | |||
| y (IPsec) systems. The record also includes provisions for indicating what syst | <author initials="H." surname="Eidnes" fullname="H. Eidnes"> | |||
| em should be contacted when an IPsec tunnel is established with the entity in qu | <organization showOnFrontPage="true"/> | |||
| estion. </t><t> This record replaces the functionality of the sub-type #4 of the | </author> | |||
| KEY Resource Record, which has been obsoleted by RFC 3445. [STANDARDS-TRACK]</ | <author initials="G." surname="de Groot" fullname="G. de Groot"> | |||
| t></abstract> | <organization showOnFrontPage="true"/> | |||
| </front> | </author> | |||
| <seriesInfo name='RFC' value='4025'/> | <author initials="P." surname="Vixie" fullname="P. Vixie"> | |||
| <seriesInfo name='DOI' value='10.17487/RFC4025'/> | <organization showOnFrontPage="true"/> | |||
| </reference> | </author> | |||
| <date year="1998" month="March"/> | ||||
| <reference anchor="RFC4301" target='https://www.rfc-editor.org/info/rfc4301'> | <abstract> | |||
| <front> | <t>This document describes a way to do IN-ADDR.ARPA delegation on | |||
| <title>Security Architecture for the Internet Protocol</title> | non-octet boundaries for address spaces covering fewer than 256 addresses. This | |||
| <author initials='S.' surname='Kent' fullname='S. Kent'><organization /></author | document specifies an Internet Best Current Practices for the Internet Communit | |||
| > | y, and requests discussion and suggestions for improvements.</t> | |||
| <author initials='K.' surname='Seo' fullname='K. Seo'><organization /></author> | </abstract> | |||
| <date year='2005' month='December' /> | </front> | |||
| <abstract><t>This document describes an updated version of the "Security Ar | <seriesInfo name="BCP" value="20"/> | |||
| chitecture for IP", which is designed to provide security services for traf | <seriesInfo name="RFC" value="2317"/> | |||
| fic at the IP layer. This document obsoletes RFC 2401 (November 1998). [STANDA | <seriesInfo name="DOI" value="10.17487/RFC2317"/> | |||
| RDS-TRACK]</t></abstract> | </reference> | |||
| </front> | <reference anchor="RFC2845" target="https://www.rfc-editor.org/info/rfc2 | |||
| <seriesInfo name='RFC' value='4301'/> | 845" quoteTitle="true" derivedAnchor="RFC2845"> | |||
| <seriesInfo name='DOI' value='10.17487/RFC4301'/> | <front> | |||
| </reference> | <title>Secret Key Transaction Authentication for DNS (TSIG)</title> | |||
| <author initials="P." surname="Vixie" fullname="P. Vixie"> | ||||
| <reference anchor="RFC4787" target='https://www.rfc-editor.org/info/rfc4787'> | <organization showOnFrontPage="true"/> | |||
| <front> | </author> | |||
| <title>Network Address Translation (NAT) Behavioral Requirements for Unicast UDP | <author initials="O." surname="Gudmundsson" fullname="O. Gudmundsson | |||
| </title> | "> | |||
| <author initials='F.' surname='Audet' fullname='F. Audet' role='editor'><organiz | <organization showOnFrontPage="true"/> | |||
| ation /></author> | </author> | |||
| <author initials='C.' surname='Jennings' fullname='C. Jennings'><organization /> | <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3 | |||
| </author> | rd"> | |||
| <date year='2007' month='January' /> | <organization showOnFrontPage="true"/> | |||
| <abstract><t>This document defines basic terminology for describing different ty | </author> | |||
| pes of Network Address Translation (NAT) behavior when handling Unicast UDP and | <author initials="B." surname="Wellington" fullname="B. Wellington"> | |||
| also defines a set of requirements that would allow many applications, such as m | <organization showOnFrontPage="true"/> | |||
| ultimedia communications or online gaming, to work consistently. Developing NAT | </author> | |||
| s that meet this set of requirements will greatly increase the likelihood that t | <date year="2000" month="May"/> | |||
| hese applications will function properly. This document specifies an Internet B | <abstract> | |||
| est Current Practices for the Internet Community, and requests discussion and su | <t>This protocol allows for transaction level authentication using | |||
| ggestions for improvements.</t></abstract> | shared secrets and one way hashing. It can be used to authenticate dynamic upd | |||
| </front> | ates as coming from an approved client, or to authenticate responses as coming f | |||
| <seriesInfo name='BCP' value='127'/> | rom an approved recursive name server. [STANDARDS-TRACK]</t> | |||
| <seriesInfo name='RFC' value='4787'/> | </abstract> | |||
| <seriesInfo name='DOI' value='10.17487/RFC4787'/> | </front> | |||
| </reference> | <seriesInfo name="RFC" value="2845"/> | |||
| <seriesInfo name="DOI" value="10.17487/RFC2845"/> | ||||
| <reference anchor="RFC5110" target='https://www.rfc-editor.org/info/rfc5110'> | </reference> | |||
| <front> | <reference anchor="RFC2931" target="https://www.rfc-editor.org/info/rfc2 | |||
| <title>Overview of the Internet Multicast Routing Architecture</title> | 931" quoteTitle="true" derivedAnchor="RFC2931"> | |||
| <author initials='P.' surname='Savola' fullname='P. Savola'><organization /></au | <front> | |||
| thor> | <title>DNS Request and Transaction Signatures ( SIG(0)s )</title> | |||
| <date year='2008' month='January' /> | <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3 | |||
| <abstract><t>This document describes multicast routing architectures that are cu | rd"> | |||
| rrently deployed on the Internet. This document briefly describes those protoco | <organization showOnFrontPage="true"/> | |||
| ls and references their specifications.</t><t>This memo also reclassifies severa | </author> | |||
| l older RFCs to Historic. These RFCs describe multicast routing protocols that | <date year="2000" month="September"/> | |||
| were never widely deployed or have fallen into disuse. This memo provides infor | <abstract> | |||
| mation for the Internet community.</t></abstract> | <t>This document describes the minor but non-interoperable changes | |||
| </front> | in Request and Transaction signature resource records ( SIG(0)s ) that implemen | |||
| <seriesInfo name='RFC' value='5110'/> | tation experience has deemed necessary. [STANDARDS-TRACK]</t> | |||
| <seriesInfo name='DOI' value='10.17487/RFC5110'/> | </abstract> | |||
| </reference> | </front> | |||
| <seriesInfo name="RFC" value="2931"/> | ||||
| <reference anchor="RFC6726" target='https://www.rfc-editor.org/info/rfc6726'> | <seriesInfo name="DOI" value="10.17487/RFC2931"/> | |||
| <front> | </reference> | |||
| <title>FLUTE - File Delivery over Unidirectional Transport</title> | <reference anchor="RFC3550" target="https://www.rfc-editor.org/info/rfc3 | |||
| <author initials='T.' surname='Paila' fullname='T. Paila'><organization /></auth | 550" quoteTitle="true" derivedAnchor="RFC3550"> | |||
| or> | <front> | |||
| <author initials='R.' surname='Walsh' fullname='R. Walsh'><organization /></auth | <title>RTP: A Transport Protocol for Real-Time Applications</title> | |||
| or> | <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne | |||
| <author initials='M.' surname='Luby' fullname='M. Luby'><organization /></author | "> | |||
| > | <organization showOnFrontPage="true"/> | |||
| <author initials='V.' surname='Roca' fullname='V. Roca'><organization /></author | </author> | |||
| > | <author initials="S." surname="Casner" fullname="S. Casner"> | |||
| <author initials='R.' surname='Lehtonen' fullname='R. Lehtonen'><organization /> | <organization showOnFrontPage="true"/> | |||
| </author> | </author> | |||
| <date year='2012' month='November' /> | <author initials="R." surname="Frederick" fullname="R. Frederick"> | |||
| <abstract><t>This document defines File Delivery over Unidirectional Transport ( | <organization showOnFrontPage="true"/> | |||
| FLUTE), a protocol for the unidirectional delivery of files over the Internet, w | </author> | |||
| hich is particularly suited to multicast networks. The specification builds on | <author initials="V." surname="Jacobson" fullname="V. Jacobson"> | |||
| Asynchronous Layered Coding, the base protocol designed for massively scalable m | <organization showOnFrontPage="true"/> | |||
| ulticast distribution. This document obsoletes RFC 3926. [STANDARDS-TRACK]</t>< | </author> | |||
| /abstract> | <date year="2003" month="July"/> | |||
| </front> | <abstract> | |||
| <seriesInfo name='RFC' value='6726'/> | <t>This memorandum describes RTP, the real-time transport protocol | |||
| <seriesInfo name='DOI' value='10.17487/RFC6726'/> | . RTP provides end-to-end network transport functions suitable for applications | |||
| </reference> | transmitting real-time data, such as audio, video or simulation data, over mult | |||
| icast or unicast network services. RTP does not address resource reservation an | ||||
| <reference anchor="RFC7359" target='https://www.rfc-editor.org/info/rfc7359'> | d does not guarantee quality-of- service for real-time services. The data trans | |||
| <front> | port is augmented by a control protocol (RTCP) to allow monitoring of the data d | |||
| <title>Layer 3 Virtual Private Network (VPN) Tunnel Traffic Leakages in Dual-Sta | elivery in a manner scalable to large multicast networks, and to provide minimal | |||
| ck Hosts/Networks</title> | control and identification functionality. RTP and RTCP are designed to be inde | |||
| <author initials='F.' surname='Gont' fullname='F. Gont'><organization /></author | pendent of the underlying transport and network layers. The protocol supports t | |||
| > | he use of RTP-level translators and mixers. Most of the text in this memorandum | |||
| <date year='2014' month='August' /> | is identical to RFC 1889 which it obsoletes. There are no changes in the packet | |||
| <abstract><t>The subtle way in which the IPv6 and IPv4 protocols coexist in typi | formats on the wire, only changes to the rules and algorithms governing how the | |||
| cal networks, together with the lack of proper IPv6 support in popular Virtual P | protocol is used. The biggest change is an enhancement to the scalable timer al | |||
| rivate Network (VPN) tunnel products, may inadvertently result in VPN tunnel tra | gorithm for calculating when to send RTCP packets in order to minimize transmiss | |||
| ffic leakages. That is, traffic meant to be transferred over an encrypted and i | ion in excess of the intended rate when many participants join a session simulta | |||
| ntegrity- protected VPN tunnel may leak out of such a tunnel and be sent in the | neously. [STANDARDS-TRACK]</t> | |||
| clear on the local network towards the final destination. This document discuss | </abstract> | |||
| es some scenarios in which such VPN tunnel traffic leakages may occur as a resul | </front> | |||
| t of employing IPv6-unaware VPN software. Additionally, this document offers po | <seriesInfo name="STD" value="64"/> | |||
| ssible mitigations for this issue.</t></abstract> | <seriesInfo name="RFC" value="3550"/> | |||
| </front> | <seriesInfo name="DOI" value="10.17487/RFC3550"/> | |||
| <seriesInfo name='RFC' value='7359'/> | </reference> | |||
| <seriesInfo name='DOI' value='10.17487/RFC7359'/> | <reference anchor="RFC4025" target="https://www.rfc-editor.org/info/rfc4 | |||
| </reference> | 025" quoteTitle="true" derivedAnchor="RFC4025"> | |||
| <front> | ||||
| <reference anchor="RFC7761" target='https://www.rfc-editor.org/info/rfc7761'> | <title>A Method for Storing IPsec Keying Material in DNS</title> | |||
| <front> | <author initials="M." surname="Richardson" fullname="M. Richardson"> | |||
| <title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specifica | <organization showOnFrontPage="true"/> | |||
| tion (Revised)</title> | </author> | |||
| <author initials='B.' surname='Fenner' fullname='B. Fenner'><organization /></au | <date year="2005" month="March"/> | |||
| thor> | <abstract> | |||
| <author initials='M.' surname='Handley' fullname='M. Handley'><organization /></ | <t>This document describes a new resource record for the Domain Na | |||
| author> | me System (DNS). This record may be used to store public keys for use in IP sec | |||
| <author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization /> | urity (IPsec) systems. The record also includes provisions for indicating what | |||
| </author> | system should be contacted when an IPsec tunnel is established with the entity i | |||
| <author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization /> | n question. </t> | |||
| </author> | <t> This record replaces the functionality of the sub-type #4 of t | |||
| <author initials='R.' surname='Parekh' fullname='R. Parekh'><organization /></au | he KEY Resource Record, which has been obsoleted by RFC 3445. [STANDARDS-TRACK] | |||
| thor> | </t> | |||
| <author initials='Z.' surname='Zhang' fullname='Z. Zhang'><organization /></auth | </abstract> | |||
| or> | </front> | |||
| <author initials='L.' surname='Zheng' fullname='L. Zheng'><organization /></auth | <seriesInfo name="RFC" value="4025"/> | |||
| or> | <seriesInfo name="DOI" value="10.17487/RFC4025"/> | |||
| <date year='2016' month='March' /> | </reference> | |||
| <abstract><t>This document specifies Protocol Independent Multicast - Sparse Mod | <reference anchor="RFC4301" target="https://www.rfc-editor.org/info/rfc4 | |||
| e (PIM-SM). PIM-SM is a multicast routing protocol that can use the underlying | 301" quoteTitle="true" derivedAnchor="RFC4301"> | |||
| unicast routing information base or a separate multicast-capable routing informa | <front> | |||
| tion base. It builds unidirectional shared trees rooted at a Rendezvous Point ( | <title>Security Architecture for the Internet Protocol</title> | |||
| RP) per group, and it optionally creates shortest-path trees per source.</t><t>T | <author initials="S." surname="Kent" fullname="S. Kent"> | |||
| his document obsoletes RFC 4601 by replacing it, addresses the errata filed agai | <organization showOnFrontPage="true"/> | |||
| nst it, removes the optional (*,*,RP), PIM Multicast Border Router features and | </author> | |||
| authentication using IPsec that lack sufficient deployment experience (see Appen | <author initials="K." surname="Seo" fullname="K. Seo"> | |||
| dix A), and moves the PIM specification to Internet Standard.</t></abstract> | <organization showOnFrontPage="true"/> | |||
| </front> | </author> | |||
| <seriesInfo name='STD' value='83'/> | <date year="2005" month="December"/> | |||
| <seriesInfo name='RFC' value='7761'/> | <abstract> | |||
| <seriesInfo name='DOI' value='10.17487/RFC7761'/> | <t>This document describes an updated version of the "Security Arc | |||
| </reference> | hitecture for IP", which is designed to provide security services for traffic at | |||
| the IP layer. This document obsoletes RFC 2401 (November 1998). [STANDARDS-TR | ||||
| <reference anchor="RFC7858" target='https://www.rfc-editor.org/info/rfc7858'> | ACK]</t> | |||
| <front> | </abstract> | |||
| <title>Specification for DNS over Transport Layer Security (TLS)</title> | </front> | |||
| <author initials='Z.' surname='Hu' fullname='Z. Hu'><organization /></author> | <seriesInfo name="RFC" value="4301"/> | |||
| <author initials='L.' surname='Zhu' fullname='L. Zhu'><organization /></author> | <seriesInfo name="DOI" value="10.17487/RFC4301"/> | |||
| <author initials='J.' surname='Heidemann' fullname='J. Heidemann'><organization | </reference> | |||
| /></author> | <reference anchor="RFC4787" target="https://www.rfc-editor.org/info/rfc4 | |||
| <author initials='A.' surname='Mankin' fullname='A. Mankin'><organization /></au | 787" quoteTitle="true" derivedAnchor="RFC4787"> | |||
| thor> | <front> | |||
| <author initials='D.' surname='Wessels' fullname='D. Wessels'><organization /></ | <title>Network Address Translation (NAT) Behavioral Requirements for | |||
| author> | Unicast UDP</title> | |||
| <author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></ | <author initials="F." surname="Audet" fullname="F. Audet" role="edit | |||
| author> | or"> | |||
| <date year='2016' month='May' /> | <organization showOnFrontPage="true"/> | |||
| <abstract><t>This document describes the use of Transport Layer Security (TLS) t | </author> | |||
| o provide privacy for DNS. Encryption provided by TLS eliminates opportunities | <author initials="C." surname="Jennings" fullname="C. Jennings"> | |||
| for eavesdropping and on-path tampering with DNS queries in the network, such as | <organization showOnFrontPage="true"/> | |||
| discussed in RFC 7626. In addition, this document specifies two usage profiles | </author> | |||
| for DNS over TLS and provides advice on performance considerations to minimize | <date year="2007" month="January"/> | |||
| overhead from using TCP and TLS with DNS.</t><t>This document focuses on securin | <abstract> | |||
| g stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It | <t>This document defines basic terminology for describing differen | |||
| does not prevent future applications of the protocol to recursive-to-authoritat | t types of Network Address Translation (NAT) behavior when handling Unicast UDP | |||
| ive traffic.</t></abstract> | and also defines a set of requirements that would allow many applications, such | |||
| </front> | as multimedia communications or online gaming, to work consistently. Developing | |||
| <seriesInfo name='RFC' value='7858'/> | NATs that meet this set of requirements will greatly increase the likelihood th | |||
| <seriesInfo name='DOI' value='10.17487/RFC7858'/> | at these applications will function properly. This document specifies an Intern | |||
| </reference> | et Best Current Practices for the Internet Community, and requests discussion an | |||
| d suggestions for improvements.</t> | ||||
| <reference anchor="RFC8126" target='https://www.rfc-editor.org/info/rfc8126'> | </abstract> | |||
| <front> | </front> | |||
| <title>Guidelines for Writing an IANA Considerations Section in RFCs</title> | <seriesInfo name="BCP" value="127"/> | |||
| <author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></au | <seriesInfo name="RFC" value="4787"/> | |||
| thor> | <seriesInfo name="DOI" value="10.17487/RFC4787"/> | |||
| <author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></auth | </reference> | |||
| or> | <reference anchor="RFC5110" target="https://www.rfc-editor.org/info/rfc5 | |||
| <author initials='T.' surname='Narten' fullname='T. Narten'><organization /></au | 110" quoteTitle="true" derivedAnchor="RFC5110"> | |||
| thor> | <front> | |||
| <date year='2017' month='June' /> | <title>Overview of the Internet Multicast Routing Architecture</titl | |||
| <abstract><t>Many protocols make use of points of extensibility that use constan | e> | |||
| ts to identify various protocol parameters. To ensure that the values in these | <author initials="P." surname="Savola" fullname="P. Savola"> | |||
| fields do not have conflicting uses and to promote interoperability, their alloc | <organization showOnFrontPage="true"/> | |||
| ations are often coordinated by a central record keeper. For IETF protocols, th | </author> | |||
| at role is filled by the Internet Assigned Numbers Authority (IANA).</t><t>To ma | <date year="2008" month="January"/> | |||
| ke assignments in a given registry prudently, guidance describing the conditions | <abstract> | |||
| under which new values should be assigned, as well as when and how modification | <t>This document describes multicast routing architectures that ar | |||
| s to existing values can be made, is needed. This document defines a framework | e currently deployed on the Internet. This document briefly describes those pro | |||
| for the documentation of these guidelines by specification authors, in order to | tocols and references their specifications.</t> | |||
| assure that the provided guidance for the IANA Considerations is clear and addre | <t>This memo also reclassifies several older RFCs to Historic. Th | |||
| sses the various issues that are likely in the operation of a registry.</t><t>Th | ese RFCs describe multicast routing protocols that were never widely deployed or | |||
| is is the third edition of this document; it obsoletes RFC 5226.</t></abstract> | have fallen into disuse. This memo provides information for the Internet commu | |||
| </front> | nity.</t> | |||
| <seriesInfo name='BCP' value='26'/> | </abstract> | |||
| <seriesInfo name='RFC' value='8126'/> | </front> | |||
| <seriesInfo name='DOI' value='10.17487/RFC8126'/> | <seriesInfo name="RFC" value="5110"/> | |||
| </reference> | <seriesInfo name="DOI" value="10.17487/RFC5110"/> | |||
| </reference> | ||||
| <reference anchor="RFC8313" target='https://www.rfc-editor.org/info/rfc8313'> | <reference anchor="RFC6726" target="https://www.rfc-editor.org/info/rfc6 | |||
| <front> | 726" quoteTitle="true" derivedAnchor="RFC6726"> | |||
| <title>Use of Multicast across Inter-domain Peering Points</title> | <front> | |||
| <author initials='P.' surname='Tarapore' fullname='P. Tarapore' role='editor'><o | <title>FLUTE - File Delivery over Unidirectional Transport</title> | |||
| rganization /></author> | <author initials="T." surname="Paila" fullname="T. Paila"> | |||
| <author initials='R.' surname='Sayko' fullname='R. Sayko'><organization /></auth | <organization showOnFrontPage="true"/> | |||
| or> | </author> | |||
| <author initials='G.' surname='Shepherd' fullname='G. Shepherd'><organization /> | <author initials="R." surname="Walsh" fullname="R. Walsh"> | |||
| </author> | <organization showOnFrontPage="true"/> | |||
| <author initials='T.' surname='Eckert' fullname='T. Eckert' role='editor'><organ | </author> | |||
| ization /></author> | <author initials="M." surname="Luby" fullname="M. Luby"> | |||
| <author initials='R.' surname='Krishnan' fullname='R. Krishnan'><organization /> | <organization showOnFrontPage="true"/> | |||
| </author> | </author> | |||
| <date year='2018' month='January' /> | <author initials="V." surname="Roca" fullname="V. Roca"> | |||
| <abstract><t>This document examines the use of Source-Specific Multicast (SSM) a | <organization showOnFrontPage="true"/> | |||
| cross inter-domain peering points for a specified set of deployment scenarios. | </author> | |||
| The objectives are to (1) describe the setup process for multicast-based deliver | <author initials="R." surname="Lehtonen" fullname="R. Lehtonen"> | |||
| y across administrative domains for these scenarios and (2) document supporting | <organization showOnFrontPage="true"/> | |||
| functionality to enable this process.</t></abstract> | </author> | |||
| </front> | <date year="2012" month="November"/> | |||
| <seriesInfo name='BCP' value='213'/> | <abstract> | |||
| <seriesInfo name='RFC' value='8313'/> | <t>This document defines File Delivery over Unidirectional Transpo | |||
| <seriesInfo name='DOI' value='10.17487/RFC8313'/> | rt (FLUTE), a protocol for the unidirectional delivery of files over the Interne | |||
| </reference> | t, which is particularly suited to multicast networks. The specification builds | |||
| on Asynchronous Layered Coding, the base protocol designed for massively scalab | ||||
| <reference anchor="RFC8484" target='https://www.rfc-editor.org/info/rfc8484'> | le multicast distribution. This document obsoletes RFC 3926. [STANDARDS-TRACK]< | |||
| <front> | /t> | |||
| <title>DNS Queries over HTTPS (DoH)</title> | </abstract> | |||
| <author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></ | </front> | |||
| author> | <seriesInfo name="RFC" value="6726"/> | |||
| <author initials='P.' surname='McManus' fullname='P. McManus'><organization /></ | <seriesInfo name="DOI" value="10.17487/RFC6726"/> | |||
| author> | </reference> | |||
| <date year='2018' month='October' /> | <reference anchor="RFC7359" target="https://www.rfc-editor.org/info/rfc7 | |||
| <abstract><t>This document defines a protocol for sending DNS queries and gettin | 359" quoteTitle="true" derivedAnchor="RFC7359"> | |||
| g DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP | <front> | |||
| exchange.</t></abstract> | <title>Layer 3 Virtual Private Network (VPN) Tunnel Traffic Leakages | |||
| </front> | in Dual-Stack Hosts/Networks</title> | |||
| <seriesInfo name='RFC' value='8484'/> | <author initials="F." surname="Gont" fullname="F. Gont"> | |||
| <seriesInfo name='DOI' value='10.17487/RFC8484'/> | <organization showOnFrontPage="true"/> | |||
| </reference> | </author> | |||
| <date year="2014" month="August"/> | ||||
| <abstract> | ||||
| <t>The subtle way in which the IPv6 and IPv4 protocols coexist in | ||||
| typical networks, together with the lack of proper IPv6 support in popular Virtu | ||||
| al Private Network (VPN) tunnel products, may inadvertently result in VPN tunnel | ||||
| traffic leakages. That is, traffic meant to be transferred over an encrypted a | ||||
| nd integrity- 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 dis | ||||
| cusses some scenarios in which such VPN tunnel traffic leakages may occur as a r | ||||
| esult of employing IPv6-unaware VPN software. Additionally, this document offer | ||||
| s possible 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/rfc7 | ||||
| 761" quoteTitle="true" derivedAnchor="RFC7761"> | ||||
| <front> | ||||
| <title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protoc | ||||
| ol Specification (Revised)</title> | ||||
| <author initials="B." surname="Fenner" fullname="B. Fenner"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="M." surname="Handley" fullname="M. Handley"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="H." surname="Holbrook" fullname="H. Holbrook"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="I." surname="Kouvelas" fullname="I. Kouvelas"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R." surname="Parekh" fullname="R. Parekh"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="Z." surname="Zhang" fullname="Z. Zhang"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L." surname="Zheng" fullname="L. Zheng"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2016" month="March"/> | ||||
| <abstract> | ||||
| <t>This document specifies Protocol Independent Multicast - Sparse | ||||
| Mode (PIM-SM). PIM-SM is a multicast routing protocol that can use the underly | ||||
| ing unicast routing information base or a separate multicast-capable routing inf | ||||
| ormation base. It builds unidirectional shared trees rooted at a Rendezvous Poi | ||||
| nt (RP) per group, and it optionally creates shortest-path trees per source.</t> | ||||
| <t>This document obsoletes RFC 4601 by replacing it, addresses the | ||||
| errata filed against it, removes the optional (*,*,RP), PIM Multicast Border Ro | ||||
| uter features and authentication using IPsec that lack sufficient deployment exp | ||||
| erience (see Appendix 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/rfc7 | ||||
| 858" quoteTitle="true" derivedAnchor="RFC7858"> | ||||
| <front> | ||||
| <title>Specification for DNS over Transport Layer Security (TLS)</ti | ||||
| tle> | ||||
| <author initials="Z." surname="Hu" fullname="Z. Hu"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L." surname="Zhu" fullname="L. Zhu"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J." surname="Heidemann" fullname="J. Heidemann"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="A." surname="Mankin" fullname="A. Mankin"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D." surname="Wessels" fullname="D. Wessels"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="P." surname="Hoffman" fullname="P. Hoffman"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2016" month="May"/> | ||||
| <abstract> | ||||
| <t>This document describes the use of Transport Layer Security (TL | ||||
| S) to provide privacy for DNS. Encryption provided by TLS eliminates opportunit | ||||
| ies for eavesdropping and on-path tampering with DNS queries in the network, suc | ||||
| h as discussed in RFC 7626. In addition, this document specifies two usage prof | ||||
| iles for DNS over TLS and provides advice on performance considerations to minim | ||||
| ize overhead from using TCP and TLS with DNS.</t> | ||||
| <t>This document focuses on securing stub-to-recursive traffic, as | ||||
| per the charter of the DPRIVE Working Group. It does not prevent future applic | ||||
| ations of the protocol to recursive-to-authoritative 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/rfc8 | ||||
| 126" quoteTitle="true" derivedAnchor="RFC8126"> | ||||
| <front> | ||||
| <title>Guidelines for Writing an IANA Considerations Section in RFCs | ||||
| </title> | ||||
| <author initials="M." surname="Cotton" fullname="M. Cotton"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="B." surname="Leiba" fullname="B. Leiba"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="T." surname="Narten" fullname="T. Narten"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2017" month="June"/> | ||||
| <abstract> | ||||
| <t>Many protocols make use of points of extensibility that use con | ||||
| stants to identify various protocol parameters. To ensure that the values in th | ||||
| ese fields do not have conflicting uses and to promote interoperability, their a | ||||
| llocations are often coordinated by a central record keeper. For IETF protocols | ||||
| , that role is filled by the Internet Assigned Numbers Authority (IANA).</t> | ||||
| <t>To make assignments in a given registry prudently, guidance des | ||||
| cribing the conditions under which new values should be assigned, as well as whe | ||||
| n and how modifications to existing values can be made, is needed. This documen | ||||
| t defines a framework for the documentation of these guidelines by specification | ||||
| authors, in order to assure that the provided guidance for the IANA Considerati | ||||
| ons is clear and addresses the various issues that are likely in the operation o | ||||
| f a registry.</t> | ||||
| <t>This is the third edition of this document; it obsoletes RFC 52 | ||||
| 26.</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/rfc8 | ||||
| 313" quoteTitle="true" derivedAnchor="RFC8313"> | ||||
| <front> | ||||
| <title>Use of Multicast across Inter-domain Peering Points</title> | ||||
| <author initials="P." surname="Tarapore" fullname="P. Tarapore" role | ||||
| ="editor"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R." surname="Sayko" fullname="R. Sayko"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="G." surname="Shepherd" fullname="G. Shepherd"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="T." surname="Eckert" fullname="T. Eckert" role="ed | ||||
| itor"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R." surname="Krishnan" fullname="R. Krishnan"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2018" month="January"/> | ||||
| <abstract> | ||||
| <t>This document examines the use of Source-Specific Multicast (SS | ||||
| M) across inter-domain peering points for a specified set of deployment scenario | ||||
| s. The objectives are to (1) describe the setup process for multicast-based del | ||||
| ivery across administrative domains for these scenarios and (2) document support | ||||
| ing 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/rfc8 | ||||
| 484" quoteTitle="true" derivedAnchor="RFC8484"> | ||||
| <front> | ||||
| <title>DNS Queries over HTTPS (DoH)</title> | ||||
| <author initials="P." surname="Hoffman" fullname="P. Hoffman"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="P." surname="McManus" fullname="P. McManus"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2018" month="October"/> | ||||
| <abstract> | ||||
| <t>This document defines a protocol for sending DNS queries and ge | ||||
| tting 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> | </references> | |||
| <section anchor="extranslate" numbered="true" toc="include" removeInRFC="fal | ||||
| <section anchor="extranslate" title="Unknown RRType construction"> | se" pn="section-appendix.a"> | |||
| <name slugifiedName="name-unknown-rrtype-construction">Unknown RRType Cons | ||||
| <t>In a DNS resolver that understands the AMTRELAY type, the zone file might | truction</name> | |||
| <t pn="section-appendix.a-1">In a DNS resolver that understands the AMTREL | ||||
| AY type, the zone file might | ||||
| contain this line:</t> | contain this line:</t> | |||
| <sourcecode name="" type="" markers="false" pn="section-appendix.a-2"> | ||||
| <figure><artwork><![CDATA[ | ||||
| IN AMTRELAY 128 0 3 amtrelays.example.com. | IN AMTRELAY 128 0 3 amtrelays.example.com. | |||
| ]]></artwork></figure> | </sourcecode> | |||
| <t pn="section-appendix.a-3">In order to translate this example to appear | ||||
| <t>In order to translate this example to appear as an unknown RRType | as an unknown RRType | |||
| as defined in <xref target="RFC3597"/>, one could run the following program:</t> | as defined in <xref target="RFC3597" format="default" sectionFormat="of" derived | |||
| Content="RFC3597"/>, one could run the following program:</t> | ||||
| <figure><artwork><![CDATA[ | <sourcecode name="" type="python" markers="true" pn="section-appendix.a-4" | |||
| <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 pn="section-appendix.a-5">The length of the RData and the hex string fo | |||
| r the domain name | ||||
| <t>The length of the RData and the hex string for the domain name | "amtrelays.example.com" are the outputs of this program.</t> | |||
| “amtrelays.example.com” are the outputs of this program.</t> | <t pn="section-appendix.a-6">The length of the wire-encoded domain name is | |||
| 22, so 2 was added to | ||||
| <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" section | |||
| Format="of" derivedContent="Section 4"/>.</t> | ||||
| <t>This results in a zone file entry like this:</t> | <t pn="section-appendix.a-7">This results in a zone file entry like this:< | |||
| /t> | ||||
| <figure><artwork><![CDATA[ | <artwork name="" type="" align="left" alt="" pn="section-appendix.a-8"> | |||
| 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="include" removeInRF | |||
| C="false" pn="section-appendix.b"> | ||||
| <name slugifiedName="name-acknowledgements">Acknowledgements</name> | ||||
| <t pn="section-appendix.b-1">This specification was inspired by the previo | ||||
| us work of <contact fullname="Doug Nortz"/>, <contact fullname="Robert Sayko"/>, | ||||
| <contact fullname="David Segelstein"/>, and <contact fullname="Percy Tarapore"/ | ||||
| >, presented in | ||||
| the MBONED Working Group at IETF 93.</t> | ||||
| <t pn="section-appendix.b-2">Thanks to <contact fullname="Jeff Goldsmith"/ | ||||
| >, <contact fullname="Toerless Eckert"/>, <contact fullname="Mikael Abrahamsson" | ||||
| />, <contact fullname="Lenny Giuliano"/>, <contact fullname="Mark Andrews"/>, <c | ||||
| ontact fullname="Sandy Zheng"/>, <contact fullname="Kyle Rose"/>, <contact fulln | ||||
| ame="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"/>, <contac | ||||
| t fullname="Carlos Pignataro"/>, <contact fullname="Niclas Comstedt"/>, <contact | ||||
| fullname="Mirja Kühlewind"/>, <contact fullname="Henning Rogge"/>, <contact ful | ||||
| lname="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> | ||||
| <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
| ="include" pn="section-appendix.c"> | ||||
| <name slugifiedName="name-authors-address">Author's Address</name> | ||||
| <author initials="J." surname="Holland" fullname="Jake Holland"> | ||||
| <organization showOnFrontPage="true">Akamai Technologies, Inc.</organiza | ||||
| tion> | ||||
| <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> | ||||
| </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 | ||||
| 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 | ||||
| a+0r8ZOfTyck4TkahAdJn44rjSd3MMDk6bs310/TetLfDQDX1pVfqrddUxV+ | ||||
| wguf2zzhAUYQXujENze/M74bX/WE/mMCf7LxQvzc547/dV+Innu692Prf5su | ||||
| RA9+/uvn1v82XTAPGelXXqyGcBJJZYWSPL9G0ShaicQcbl8tMKjmHcrClPSN | ||||
| gr5+QQ8Rm64qEbv1DVtRA+MyydHNw+2I1+6GY3ZNQrScVpTOEIfJ1xw72xEI | ||||
| WkpP8oVEDGeVNn/LusGHuljCv6Kv4Cs1z0JFf+N9GryFqFGSx4b2KmcHo31z | ||||
| +tbJ4yrV9nsUPrHCKF6XnWHUnklinyB042O9d1ssBSCTXlOEM8ZO6jwUY/QJ | ||||
| RQMgp2Gs1GCSJlw3aKZN2ZHM7r3lsoqybx5I/mDw/jbNShP39D4DPQX5DIwa | ||||
| FPydWKXeepPeJJO1MNwtWm9D6KPL1KKbER1Jk7zmFBfxMyX2LimztCZV3GWF | ||||
| eH/7ryIfWVaz44ydZTwnYnezq7iCl9Z7osr//v3b2Op1AXj7h89RP5ymc9wT | ||||
| MImg06cfJ/NVnGnl1T9ytUF7RvOZ4CFOvkhy3xPnec3yIPzHN+cDgfq7G7Sz | ||||
| DarZTrQgXdg0fP7S/XMHV5SNvFExe5ANdzPhz51fN31aIqMtVXb+AOSzC5cu | ||||
| eAcgJXc9+ZnjJkEMWXwC/tmT/+z9U+v2Q+eTXhs7fR/1Owq5+prefu04//EZ | ||||
| +ieebHZ3U3/bT3620ebe+P6uJ4FqJfZs94Ge/5K99UqY/P2j7fy0n3za+HvT | ||||
| oxuUpCfdX0MtvaGY2fe3BaaT4teXRT67XNDXM5BXVcOmaD4JNjLa7Zu+BjbF | ||||
| L9Xbn/PpVOm+6vMkVk1Urqt+EqkgwA8Dvrpa7m7ZE1BGviUM1WPSGpNZsEtM | ||||
| RKwqJknVUiMI5QJJZZwogmcXWKhAcLUwsVowEAdMq5RqB76gRiXIgEdCGvz/ | ||||
| ohWGA0/9D6P3T/7/wOifRGb7Q0/im/9AEYqgdOEqCUd42Hbveudnl+LxwJOd | ||||
| TPerevs/IuKhJ/9HRDw8Q7+AiOgUEIH9SumYG4McOf52cptQ9O48+8Dhxz3F | ||||
| ZFVY4BXDrpm0Q2wEdm8zylEkRGI29kFf22ycJIXkjII9VZQ1mk9d9SRKihMl | ||||
| lwRWMpgXGGkbpHOFBmByV2RTtLYz9HBQFmqt9SA2Qd8JtzvNKuqCF604S0b2 | ||||
| sKSdJBm1hGVFavj6U0eiglSPoGmAW+os1dB841CDeBb6ka/kSjzPkaekVk8J | ||||
| hxpi4npdFnMMupY0Xb6ryqdKFRo0G2EVaIBzIGqjNgvnfNRgSwKja9fj6IUK | ||||
| Rf2RHsLlo6VRBxKbrxKinTSjUEyHxzyK96AwTvJDlLIiYdZM2Dgau0HLVewN | ||||
| ifzNKftaxqlzV2AxgLWdZezcOKWyOPBxFWGCBJKwAw+4HNofCQhtqyZfzxja | ||||
| IODXMKJ2zFXE+CKx5792PfVZByG4nwpo//XRdwXC2X/teioa3Vf3sDUnLT1h | ||||
| 01ObvABtULzV8MZVaD8VrvImPfSBUFb43G2+utnNRZ8mphLmY38Uw+FhyYLM | ||||
| Rt2mG9nNsrxz7CYnbFW8qokLg9eSOousxkSSMVaz6MrskliDJMwoE85FEXxc | ||||
| RoYZGL4jZF4xBAgsSdP4y8qV+9hQmkQCGLpeShzPCMdjRm01AJHCG0h2IdtY | ||||
| LKTejsKGOBPUVc0ITGrjQ+i7IvsaZbLQIgvjXJTV9WW2g4DHe6yZUGmlKxdw | ||||
| U/m8m/HadQrla1fdpSCrNw4d9JlWrapapDGEY+l4IYHGCQa3Mc4okgIWqcJo | ||||
| rkUQhhC4i3G94PaJepZlpAzwajckRqksKTB4KvJME2M28+snD+09z/U2PPnE | ||||
| 8wn7Ve5jaTb6NET8BpXxMdt1g+Fq77r74O990BDksXnO282DxfT0vkjPj1U6 | ||||
| dMqJTe8L5EOnpNjEgb+qnx3f4783uVG75cSTZt87jb+Nr/UXNpknTY/4g889 | ||||
| 4L1/5LmNvvv/hn4+aVP0RvJ+RPNp78yI4Dtl5kZp+aCcDByIumOb7sNWvj3r | ||||
| 1kWOAhQLGoB0leyXK1cZ7dO2y6EkOeuT9K8D9dgHi2JQJweGcUBdyJ/JAXlT | ||||
| FFOLRi/7crSWTZTHHaRw40NRPqhLT/6+uMe3a8g8lkMAUYnhyiWGhgVvCtvG | ||||
| JsYYOsWvYJEGEi/IjwZx0YN7JonKKAr5AcWDggFVSroKneiGpMBzKcIY95Ym | ||||
| BsOtSHCAJOCoL1e7QkM2AwtXh62ppBMyDSda4sKE6dxoSzSryX1V0Ucfv6k5 | ||||
| m5yuN07rOojebU4L17Mji0fsIe31MkEDtOqoftRjoUoyvGAbP59I9i/ns2Mo | ||||
| q6bB9a39FiaTXtToW17UXbRAFHBf5N9wbT0tRDDVKCwNaTaNMp1sRGGydN4K | ||||
| g+M1cH5uSZyuJiA6YTtgbkWcaBxjEDTHCDLrL0gAqIARBYWxZ7QJYt/2xooG | ||||
| oKnQzkJTsLGzsDYEqTLOkKbSdKgt8zJVoS+XkJZFWgch/PpydMmTfuYCgjVu | ||||
| n7dzkF1Gxb50m2S5xgFrU99UXjvNCwrVR0e7vS2WURQxcw6wezV22722FeOr | ||||
| /XChdb+irA5NEQiSTpFSkjmW/lo3y+0FrMXFFHsIgQbR2ilR5cfwzfudb27X | ||||
| dI1qfAQh9VJMiV4blFIqPA8MkADRsZNa8oZokLL3ZSg/t/8H3TOnjWbIXQJm | ||||
| FcNNVB7y6ozeKemwR5S2zomvW39NFnX/r6vpcstKDL+GuGpauvRIKlLyuINA | ||||
| 9mDstP26uih8bvOYHV0y6e60A1Xl2WQMW6fmPJBPn7DoVTr98kVn6vCfmil8 | ||||
| /306n+8R+6IuJfmaKwH6agjYdw37ftaueueMKRA3d137uRexbAy7yQviy9QJ | ||||
| GCuGCBMkaSI+F4bfPiQwnJAPKakfZrrVq4SrhDoxKxyNJyjcfPhSt3pkUlEV | ||||
| B7+UmbMTQ1HLzxaL0N/HIGGhefDG1XJpmp84JcHmjJlozwO52DcR/lIO1Zfz | ||||
| 2FhmqKllqGR3fTdNm9OpMnEcD28rB0oIqTXqrWDNd0raQvgPwQhm+HdJNkei | ||||
| hMso7ECh4/IdBOsKjqggMoPTfqO0lz5CH7g8RjpLS8fYtCwEJkKEg2tOrFPz | ||||
| XDFet1E4faCqUb8aY81LtaND8bbKKeqJ0iqWjawOrnEgxVBNWNqIFK1kjto0 | ||||
| S5KgxEUXCk47BUEHR9sgw8J8gu33NHxKBHmHpgv29dN2IV+/tIpucKXqRKaN | ||||
| U+30OWT9TfR3upJBPFTnXOtb0oJAm7B+yQ2vCGWaco0v8z2oGWv7ap2OQQtA | ||||
| NP0GtfjbBYNca6TxaUbFUQXMwHqmK1jbvJ6DCBqDDobkZbx3g0srEzEGL7Ib | ||||
| X+QLyRj2+svQexjilS45jwcof6q8zZXVDAIHtCJj0aHSQu8TCRPgosKha4ao | ||||
| pZ2dQ6oNGTTqENHKvKJuk8KAIXulFFNKbiXVRoW2Lxsd34neHeOwvZsk09rV | ||||
| TRUXCD0H2qiFhTHNex0kyO6Jq4SyUyv24jgXFg6d+tvw3yBVS2Rjxpm/wr1B | ||||
| UaY4R9gNUQUdZWxKxsyHVWaa2+I+2M8CuYWRGZKOx7Q0WUdIm1CL6SZL4Cur | ||||
| SeoT0DD7C1qgnDDM8SAm4VYvSPewKe7RjF7XWD1WVWXlrjasXFjZPCiyMzgk | ||||
| fyLNTfUQpWMREph+EyQ2hbl/Z0HVzXZXAoGiZZaPXCfwQAlUqcYrT9Qs/hGW | ||||
| JKITG8mtIOWPr5ZUTotjLRWz9btBix6pJOKcXqSveGLQQvg3y2zPviF5wZi6 | ||||
| Ea0vtnuQlkKzx0PKIHGABbMnz5dKEsZIbYnUCxRJzu12fUaH36RG+0k3ZKew | ||||
| oMYCH0Aka131UtespK++prnNKplW8fUG5RV5miN3L6YVpbME81Al/ZOaUrkd | ||||
| zjb2E01OVYDDkwpo3LvNgVNTToPu//jvDF7/+Gu7Q3QV/DBB/1++sUjZcKha | ||||
| cPCKXS201gT0I507Yf2NMq+dBKsLaqzjGeJDd1nCHOpRjYmakZMa+iGhidvm | ||||
| gqpYuxV8ybUHQiyaWiDRAYouqzMOLIg6FZgrhBYwK1mgUc1aHhFNUokWpooq | ||||
| N+kOt5ByEijKuD6S61segOM+DJpUiyzO0gtbEtoL/TQ9NtxDYAUENYpcYrFt | ||||
| zUDnPNhDvejxqJxbaIVssECooU1WCHFpRF8D6m7UqJCTDgoxpkOwozF82GBa | ||||
| OYon4nQyoeTwG1RAQlNGxhBsuBZWqMyWGgoGiWTaHqjYoxV6aKYhcSczRL8C | ||||
| w5aWo0qTcnKrWlsSkhoT7hvK3yQOw1QrOCo5JbHGHworHiM9hqTTwRGz2BGm | ||||
| vFhC6hXYwVKUoZ0vMQOiH/Gj3tmoD4Z+0ZBcKeQlDpXwyZMYoiH5m1zxPWo5 | ||||
| IPfO9qO2ySnpW0Zv7BcO7hH0g3Os0birqFqHrWCSOSyFlAgsyVUFmp3eXyxV | ||||
| hoebSafU1wSRFNE9Ssdw0BRpaEiRU1r/WZbOGUVpgAQlzOxsz98p5TDsBHWR | ||||
| ibOzcL/IRIBKINiDK6rJlmVUeTXYHjcr0MeZwzohw11ZubzVlkIbhxRx4X+u | ||||
| 2K0xQHg7CyZBL4UsFlhOjNFvX+8Nd45XXBxy6hZaaNkyLHrDADrWZfgJufOc | ||||
| 1gyvR5VzfYkI2GgFFYUMtll7DdSuB8uPKiePUy4JqmIRdS18Sbhvb4N8+If1 | ||||
| LTVDqKkIc2mrXVqvhnBbrawTaHaVls8Iup9QfBZWEaRqOotlQliD8jblgh2d | ||||
| FNbb7CiW/ws5Y6SEtFkjz0qwT73xdeL8zMN+wORGfXv6FWjUn0QM/Bmf2e/L | ||||
| aXlSTYaPL6IOjNPb5A6UdHsBChmsHRJgmU1hdsgEmC5AiHMt/TvvqZdSi0gi | ||||
| UlzTNYM1SBGvaOLmoYQIAK6gaOKigPluGtk+cwuLsILafJfMuSCSp6ZQlSJ1 | ||||
| u/eQRa1KZUPUPkiGpq32t+jv4SGwDvPIQGifoVhko0FJqgoxGek2KRicGzdN | ||||
| +cwOWCaUL7cFhfpXK4yfwxOollW6mhag3YAO6s3h3QDT6EA84rOnpCJteLgA | ||||
| bo7xWg+C8VTRKFi9wOqJjDl51h9is0h2mZwohiMaZ4k7aWjj6Nz+RE9kCDgW | ||||
| 45pDUlGOwPqMqeZ5qeGYQPh1UWasD1AxcpI4HmAVVAG4XLZgA961TYA3a0Rc | ||||
| L449FDDQMXbElxwSdxTXddHEzPTjkt0aMZogy0GnzywU3DFNFZ7LTyKcdNYq | ||||
| ngV7czWpMWqFS+7OHUOaMZATuT7RE8gzA5JpqTszOmsFjdckyJGkpA6gZHEB | ||||
| EF2FbeICEu5bexux0xtqnHz5A+//CB1HHpPRKVyOW2LLIVbBnCa2eU3E+Zp4 | ||||
| QM/KNrCBsa/lSCjieJ4mGH5sRERmmo3q6HGGZwV4IBA1hhiL8ztdsWFSvhj6 | ||||
| TkukxxZL4JCzcSrpkygtcRjR0IxYK7fFfLo3JT9qtkCt5Oc4RLjKa+VioGii | ||||
| sxptgq1VvqrIIAnOGam27IoU18sVXBh2yGjTYo6iceqpgWj+oP/MheAKutHG | ||||
| K0yDbQtn8FqTFJHO43PfggJZ8ayGJBW07dYO6Ul0J7KSkxKoE9NSq9X4b1hH | ||||
| mJAziXBz6a+yDA15EoFw3dW+G7RIUcpAjjgEkKVAgPNklU9u02kA5obDTeo6 | ||||
| XSzpJL/t7e2XcoF1EgoP4/o3DPCc83l2NjrPDoMb2WqGHYTnJUVRHNiOvA55 | ||||
| /EKbjKMduKBTXIVedCkf2tclKxDOR29E+pT/ceot6AdTOqvytCnUMCpknDZO | ||||
| 2ZwiXOeC925WsGqwcVPWseksA1gKXFLk9ffZtMZcYuN8K1QAWt/Tapl4n7yd | ||||
| RbTqAxXHHSoXNo6KiK1p0IDzJjD+RUHrfgmjrO8YVucoC6ZlUblEouLJh9kE | ||||
| C2dFupfp0L2UCqeYGL293SDRT9u3+EMzEugdaBmwZ91ys0glJFqN8znWG884 | ||||
| 9TqgF0HGSJH0yoMH52xzk4TIrHfzwAtg/ddy9KKcInADYhG2Y/YTcaTIYBEJ | ||||
| 63usWYbGz3QVb+hajRcJN2pBg1Gda+81+SpPCRWxZhqfkWPDlXHX0ybRJvbO | ||||
| N0eKmlYyXrfHJJI/dOsIO9RRBXyRSZAKVW3sJcJYBGIZAepDkN6xUDr8CuRb | ||||
| d4V4d1akaMGaC9HlIVPyaRyMGmyQGkR5DgrbTUpyXDVEZ0gXuQr6B4YlHTda | ||||
| BS7yQqFaH9BE5KttmXRTd/QX99Q/CDrnDAXpjNiD8apR9DLxnCi3LiZYGxHY | ||||
| F5GdK/JoF64EoOESgP3NxUybIqPHpmxwlobID+TlIfHfs0OWDG+fssJao0hm | ||||
| PNwHZhkjidFKu8kL5BsCwUhJxo+1jwMM2u9ZOVoikVqyGgZIr8WhCobcKHao | ||||
| pk/HCSY8MLeYjImHb3S20GZSkOKVIh9P3e/frZC/oDPXmDMPxmydE61rKEtS | ||||
| rUH4lkVerCoXB5nheabL26SKT/Dwxz40Fmg3tMxUXrNzjPrGhBbk+gRHKkbn | ||||
| XchGI/0Ii5jQbsImtPdXl793Z8EisiIOGG7bq0S4cAJgU5oBIUSJK6EZlgLU | ||||
| yW+XONzkAoCJfkUHK8xcl5DUwoOeyDBS/VbqD0eZV+GJIj2K72F4BsufDsnC | ||||
| wm+jjkbJ/lK83eDLQROl/Qv8CyvaNwOV8BZnq0W1kLViqEvMktmrk/Im5XPM | ||||
| VqU4M/hIrWfHI1ptvnEthf/9ALHuZJhTFg9sP5gaURxKvMAHDGB4YNRX1XVQ | ||||
| g/JDnAZD3FUnPOqpxJqiIwVFEVbm7hpWlivUSacxO9DD5dqpeePnZetKMDxH | ||||
| lt3Pdu+ejdbZbs+QGoMATjh5Ov6vGhPXlkWTWcsBy9lZwW7hNDyiVU3G6zE0 | ||||
| HyyMTA65hUMTj4drO4eLrmiKsVV6Y2ypuR2mFO7K4I/lPKVC2e6Kj33V3vpj | ||||
| JZCfs1bEpxDhwjmwlRrh9NbKObZMWNK3KwE2AuHqIIfIkk00zyiVKjcS16RT | ||||
| 2PcFg4V1gN3CVIloP+H3Sxe0yd5p4woHY+7rlOvh5lMOM1uWaBJoVDFBSPOM | ||||
| Di0PjQIw1+hUXTp9CeEfccvyvV5XC0LNpgXhLSwCL2gNSH5ypBE/iJlVbrRe | ||||
| odcUXyqAzW4esdTcNJh3SF/3GTr+PNsn0LtzJnXGg6nk84io5K3gr0Ct2Isq | ||||
| tIGWiHjVzDCpVtJwEJEzHig9HAz2FiB/M3WLweViimWfpcB2VjUgXVJBW5hu | ||||
| bFcgYznVgvFC+dE2TKClO6mLv0kym0qEPx5T21S7IsOZw1kkzU3gw5sM4+Qo | ||||
| P84rj4IxqISNdR93xHOYsSUKNaMZxPRDxYGiEzhgCI0PpzG4t0e2i4aZbb1S | ||||
| BVDTy1C0hWoL17JiTaviiG7iSdrzLUP88QEdsKli9Hyh7pVE+JjwaLJAjek1 | ||||
| AZPMazy0MxCauU+ymqy3eXJzo1vKsaoYa4Dn/AG5YE82VGQfh9NUXAm5zRki | ||||
| JKjDH2klGiwe/ZOYNtqBY9oSY1BOqqTVu3753lfqJkfNPAURtcVGUimBl9a9 | ||||
| M1TvyaKIpsXrShKgydBWVMtbtGjXNPYgauSOt0emJ2dJ3FeY7KLRVRg/16VZ | ||||
| a1dC7Xtz0BW5MAXJoQPnCZkREKPyIJk7nMn4SKGuieF4odN2p6Izs623OcIF | ||||
| aVbRN+qfw9SY+3kUDy5Anb0DgTENi6LTETSWTy0g19xOdPBuI55hN2DySMok | ||||
| ULEvcqgvsFKKDUsDAFStOB/5i7Svga3ttCDWiOfpXZL7IHxpX0uSN5lA01w1 | ||||
| EQLE/ZnBOtymyby+FagIaKEQTAbbwEA9thuQgZnMRebporhRO8/KQ2nHxqUy | ||||
| XRd2i/nRFk/EBwzuFo9v0L4Kq01MvWcC4JCdchLqzHBJy/pzB1sHVe2NBBCj | ||||
| 7EbNoFg6Sxm7o+dlap5XDKWdurQv0rf5EKWuF5NfJqRn7qyLvDIPgjTBO5EZ | ||||
| emuSunWZ0rEZxDj98X0RwEa5Q14jwnE4gMlhXmhmuaCINL/LgIWzTLxXFDIx | ||||
| QZHH2xQsWXSBSXwnliHhzUhqXiNwp+ReepS8Xfm+EYqQpnXQIYmQoz1wU+B5 | ||||
| RjtBQckeet2AHcywp/4hJCyyXDWmDnZRCtbnTZmyuJfsA+HuPe3lxmgJritC | ||||
| 81Yls9SJ4TCdTjBINvPppDYpNc4npHhzO2SSPYNOLoTGOR8qwXeXq2XIkn2A | ||||
| jktxmMXdNNpNNkHIRAEaKyTQ3k+Mwn4uSREtfRBmNymTohzh5E+7Tb3LvB3m | ||||
| 7+B5GamLyuKzcCuK45mvhQxQxczUNwAksiSHCEwYxzfDX27TkQdKzoE1jNnP | ||||
| 0XlAfdLjcX0ax1wnPz76U504KS479hH2OjSmBk+Up7J5tnBxDJ8ngE+66Dqf | ||||
| RTOGn9KGLFLgCwSQTrpgIEYwkI6G6CGNJg9blRCudqPcGCJijoK8O6qRjYdP | ||||
| 4frKaTqN8zhgsr513nQiW2UbjVnT6dfpSzBgHYiC1xoRvWJMiC+dBwpsbKHl | ||||
| 8QPjKWCJUfifnIGBG10h7JDdRAxsxX5v9coLD4pZTpvZCFFEWqGGtDcj2DtP | ||||
| 4A009LowmkLEi+cMQfwBVxfHSoMnDU+KfLs0JhwBpwmBJAgdlZuSOIi9/7Bk | ||||
| SIRO+nNs6xVxmUAP5hN++8NmJOacUD3N8hHmxLa+50JhWjNPJjlZPCvvOLJX | ||||
| qzc79cbpf7TlV9LtLkOrTG+U48CaoXKtwWA1paCSdgmGLGZBco8FCJhlJZDe | ||||
| oQ6DKoEVyyydGlKX8bl8hUKZo8BsmlQZxTiJ0yA8/mwhQcIHQWuGFciEChNi | ||||
| A5HbuAVLSmKslKZyZ/xQ1MseOflnCWdm0Uzi6cVSU4MCmUd9n3nmA5S08omo | ||||
| FImc5hYd0XPPscy5BCSr34Y3HDa937ffxv4AZiSg6V/iaV4wi6L7SpCfV2V4 | ||||
| 4bjh9YTcmJj/eepgcZejRfEgYUJ5I0BF3kRNyduwscOuxoIjsTZp6XHsrte8 | ||||
| 8WVDbPjoq+ZTk5PjCRWNkXRXDkgWUDJW/P1UkwnAJnZ7gSiU8ZnvjuTzeyFA | ||||
| Mph4GfLcng2LZt/H5JRxvJ+vcKaVwoOjfqWedXy+uyd2vkzNoDSoIqnnQlwD | ||||
| kFtRUUkWYlMjiHYOK+SIPmEp2CRc/rPvwW7VtaNCORH6I/kXHgHCOTuWOcPJ | ||||
| ROwQAdd5gTojhnKgSsWRCniqjUZG6aQif6IwMZkxnV2X3++Ul0jjZ8vRBWk/ | ||||
| 7yAi1OGZfFCHCXwKbUqqKIyJ3p8XYY6qEPi0lSdLwRnIMTHIBgzBPtmiqWRi | ||||
| NGJs3LnxyNY15TP9eAtsvCZ0LMeJJlboFFLRRIXLaXpMkEhbqK6L9YlkG9eB | ||||
| eOoSTN69KRowNW+3hyFAueCz3FwAL+q+upUMbaBqJRlZdZy9W3hhqcUk8sKd | ||||
| miOlPlg+ykGzV7XGgH/arvT7l1jtD08rwlFzdIhTDCkswh8ankogPyvjxuWr | ||||
| eqUPk2ORR3i9F7WoMuOYStJEk6kTHWKcmMigYXJYZBVpo5368W4b+kDUJsuB | ||||
| uQaJsBQ24nXPOQaEJpWNlC2kFt0mEv4Q6KYm0E1ZPloCHFKFujgouxlTzOC1 | ||||
| GG6sUyNis5GKnPUilMNHJ3KiWeXOmLTb+3bHO7NJm40l127PMGWg64B94LOS | ||||
| jqqsKcaOkae5ck5iMA4fq1rYSA/+dn2UVyga9+kTasoc5TaTzW/aEA7nq7LT | ||||
| jEcjdrIGQzWMZUx51cEKMQstfk+dAlIOesj1606REzBApDd/2o65BFWRCQMp | ||||
| NR70EdbFqoAXv4ZVT51v3r8BV5vpEeVBmn8V8TrK/uBUOS6BACyu18YNOhxE | ||||
| jyn157OG+hCcKdo2512wC3aAnd3pZMV2pnGRqJrTR3YPM2N1bmj4PNoOf1tV | ||||
| 4nAKfS8Y42xg+8Mcs9gaw+7dK2Z6nm4UCCSNk04g4dF3yXzlDgQrUaSaH/8k | ||||
| Pse/ygM9e3H+dqfxo/03O/pLmdbl+q/k0+sBsX3MFquF3rD74597RhScsBfN | ||||
| dmAZDyTVidX26HbTaBVvH44G7oEdd5gGcxxfQRClPjxo355eQyPLJTEsaaTj | ||||
| LLhnx89YzsXVDsIWmz1HeYgOdDnfI/TWGriHiy6FjzPDFAsjCPEJI3rVokK3 | ||||
| SIjPa8REVoUkgF1hmA5M7t+Eh9B6ZMcoO9PUA2tP585r5mmOSKFyPCNSm/Dc | ||||
| nYACNRwshM1CP1fPBhZryZZvRY8aNW3o1RzYxvITFvZvzQFIcGobpDDeoKII | ||||
| PuR3HlzJY44Xjg8W2FUoeBSOUwCLPRmJY4Hu4GtyhTKg1ohatpL3vCjutDyT | ||||
| lPTCJMbYvhOBhEyR5QjKJoEWfac4y5yVhz7tbf9K4RNzOT2G8k3FikAHG6zk | ||||
| So1iPBFB3axmONBrLAe23xQV3/bSKbs+1Fa5XjPkVqshz9Du1cMQCtgJwl9Z | ||||
| kITzpjqPPxvZHbAamiSUNlRrEDAxqJrmX4oWoIrOmYiLBdUi4JiNIBOC+I+r | ||||
| YNpjMUQ9UxhAFXJ4glMyYfHrYlLMBU9yp1CzhV9x3RaYQB1tz5BgCUpd4BDC | ||||
| qttIIBSWr8OXCYlVT5ic7OZGckYfVoQbyi9oLByFZx5WXCJHnXr/1Z2a/UR+ | ||||
| K/+u8ZpzWdxIgHGBPEvylE5iNxywlkgacWDSSbdC2FbTYD1wbCRPRmvL+nVe | ||||
| FuivwjKnMk3CiTkA20vygLUiPA+Gs5dqU65IxlDE46h7kOEsYrNaJi6sStoM | ||||
| jFI2bue+wMQ4jbfccGBUQPnUN1ZkNrDXIFLbBAy220MRslrZuKesKAap++cB | ||||
| dX3aVkWSdjO5gkhTjML5FAH3Nep5BdbNIu/sYYmcYqrtTTllysUoKF7C8+SS | ||||
| ZUTRV8chS5UOc6IhqL2F9SUk5qhyE9c1r1zfcdKxl+PUHwIt6e+qTpop0jcC | ||||
| EWn6gSWgJq6Bpo/6GeYs3KqHdIyUh02scjFUfNkbw+tLKU88XY+S3+ObubmR | ||||
| g2BRUP2y0sd4kv21h1C1dcqbxDex60vPpkH2CmsiPJEqNU0lIbOZVkHVAZVu | ||||
| eWgT1HEkveNW03Q4u8IL92QhsV461cbDWA0rVzCjgqJRKG3tRiKmx4lXD/xM | ||||
| Brq5zB4rzN4HgLk+K4qoQE5CoYQoPHpxIRfjvQ4Nqzys6UKMUkJs1iRhcg0Y | ||||
| Im6GE88lftBHFNbueMdO96pSxYrT1FNE7evbOIO+CpKIsso7JH5FFNo8KRuD | ||||
| WGjt16wDOkifkvykNkbFiclB6S8O9pPUG940uoOXSUXB1ITdoBXvqKj08Xmy | ||||
| BMCkNGbxMfJm/sT1Bt6w/Q90c3W7qtmnjCL307ZELzDzFZ6xg8ZyFB7RESAh | ||||
| ir/3a/vCHjhtjjMAS81uKLFNcAjBPRDnTiYUYVJBn6ZSvlOFXpRMI8HdSw71 | ||||
| bvgPGpzOR/Q8aFI6S13+7kaiRd1xQHQQ/mHtOSmn8lNoBYvCGCZbNcI2Oh3Q | ||||
| HECmJXB91kyzINfOp0+cbvPFnchOEjEA/qVTUbKTI3pRlMIn5y4M4dxrla1U | ||||
| FqeQsAIT+FQbcglngrgNR2zoJOmZLWgigG3JxzomILP3WBf2enXf2woyBvLQ | ||||
| yQZtKPxq3qEAI3HKlOluM13Jiz6HPwLM2G7oTJIkrnsLFMhc/mGjIdx8XjO4 | ||||
| YDFS2TvQZrviO2BDtiAp2AjzeVhWJwnSsVzcuK/DohpMsE1MsyML7chO2r/p | ||||
| R4khYAPv90fN7Y7RTkWgsjzi8dXdj15QytpIOH3QtLqg6odWNFM3DO3tJDjJ | ||||
| BjbcD7RBWPKH2KUXPYJz6qE67fCYwHIFAWPKtF6VXB4A6anZCaEsnr1TLSDM | ||||
| GTqB+4P1xsmtjrI90RicJdHbmcTdIOf3URPIXBzYiw4WiWPVSHPuc1DvUF3I | ||||
| WE8iTpVJyJqrBbJIbADHObxSZ11rvYmP35GMqkTmQTWQYJGwHAPRbqctJjUC | ||||
| lTY9j0K9wIhBJAwM8X2u1712XhtXPdNXcXBKaGclwvabnAEghjK/NDFfE5Az | ||||
| 9uyVFrqxzMbtJ3daslYZTTxvYf5OWnrBNUfVS+xloVFZ6FJqJU5PPZbN6BUh | ||||
| VY0HDgnBVSsNk2/bTSi+pdF6k4ID6rFjSBDFbMbpV+L18EQrp0anZRjUJJTl | ||||
| z0RBXT4IezBBSF6loxNqb6jbEmbMd7YNCKXAql7zQb4bNp/dQRy8klqsHczG | ||||
| BIayHISsRaI7zBY9rFKmebedUqxSttsvsrmC53kzg9Q0AY2u/aMlAB/bBkYf | ||||
| 8IoCpdrxHDVtITLF0vnSYuoCRRipOyv0cpESVSpWOKE4kNz5kEACnuccWhVb | ||||
| yO+BZNSZccUueHPZqjOnFePCiq8o+xoVb+ONoIkP6ooM7PhGmIa4gimRWkLn | ||||
| 86lajhTR3+iLJMKR7orxRc1+uK3YMJ99DUlQpUetiJ0+jv0RS3Ump4q1Qk1c | ||||
| oIIoBOZRo5eaouG2JsRb0yaIytJDDB5pV9RvqXoAOpdbeEm/9CvBMWYSpIEz | ||||
| 3VNCCpkB+6+N88+6edas2mZ7RHFonr0MowwkDb3py/UHNzDgMNEqsIGnnhI2 | ||||
| KNYjTEwxDoeqwrrUzKucaEdIk51lNNfROUlR3XWFZvF8A4968xGH9XopdU3w | ||||
| MVc3G67Pi4KCz6Bv4SFyRtNzx+ugCqYv0K2KDR9sh2v0EYuTFEHir5UsTe+6 | ||||
| KVNUFLN8D5/uJ+WSzreC5u4O2lCRSy7pHzo/ynCwzynGoCQsj6IWjja3MOr7 | ||||
| XI/9w+dHGgzh/NIbEu7D+WDAb8qmuE8/NT/RwZ1J5JXs2zChjtM1Ma2JbCE5 | ||||
| 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 | ||||
| 7RpZ+qD+K7q4oblxWXygUKIEUascH/8aYtpM0MMGbcA+ZRWvm74cHTr8oZl1 | ||||
| LtPpTv+l5KUGNbRdA4qj44EALqgFuxgVtBCk3pmPfo004I8OIjM8SC2PLSP9 | ||||
| KS0LzSGKgp+QF7h05HbbLv1NQCD0k1SrTJ0AnSyJ9BVgPlR1iPmOF/BBbLIA | ||||
| 7fiQmC/N47wMYbtYPMyFyUZ6wPVteECJBFGyjUVVpbjoAL38hR2cYILFddwI | ||||
| GTbAY9d2ZwDWJXQLlCb/zLDzGVffKbEHewXYRDVBIW7DBg2MHmtgeORbOOpq | ||||
| Yf+xFu6BKvcwBA5BjiBNh4+lC69S2QSecNoDc5ANzJOpCHPFVC0aV8YVCrE6 | ||||
| JLcUNI0NEYE5v/JiSdDYVFJZQjnpdiNLSVLwwipN2JhCPGgG7xo8+Dpw6WmJ | ||||
| sChe+tpT1CYftxmH8VQOHN/A3zpJmSUD0PJUjHA93DYioJCTIswZpEoJYQc+ | ||||
| TFJEDDdXd5V/93slPNkv3EEVSuJgqSK3QngPZaxivSq/5RKK5/fj9wzHMf+N | ||||
| B/1Bv12phw0dG35Fx2DRkeLFt5OY/RGpb+EW4vMuqNxY3waKXnTPJpA9TooV | ||||
| 3cy3YuV9HFRKWSMSPIn7n2uvbh7g6CsGODwKRwj243B0rEM8+oohHj06xFGg | ||||
| ijAyGg5QX9c9QvvICPd7XWNKNLemg90YJPWHgOAmD+jbl8Ix8HrASQwXlfTB | ||||
| KXSSlS+U1K7uJkzDmNekmbgSeLipeCCkDROpBaVEaVyo95QYOnbHGGcyn5tT | ||||
| qyXcmgX7ItbKR1ZItR71Q2iCOflg0EO6MYjYF9NwcCcCt43ChKbbesjQZqe6 | ||||
| 8g8MrUcRJvge4+Pl6ICi4IVuvhovshJBzzUvVd0hS0kK3vFGzKcRuWJYS5ZY | ||||
| qX6Hc8iwa9UAGPgd75n4WdoLxwVOu3SclsJnluFdIV6Mvg4TIf0U5OdQ+kQA | ||||
| WuTnC2BmeMQXoqAky7y51eNJ7Blx/sJ89IJiH0InqFNcvvrdD+eXr868Oukf | ||||
| aXHmcPeoKrbV39Iyu+GgPLHTtGS061mroVPW6HP+1o88sBXPPHzC6hpO2itF | ||||
| oDHemNHKZFXjUSw1F0OgyodYwEFSJSgsgSDcRvFOmg2iH5rLuNJmorQAI6Fq | ||||
| cXSmD0oJf5iI/Zd3l+ffQeeHg0H/EFTz58f90I3Up5uGo9YYsQodIS+D/f6g | ||||
| Pxzu94eHD987gnsHw5Pp+PjkZPO9wBqh1X2bLGo5IUDw+j7oMP3gyJK4ArY7 | ||||
| OtxLocC0dV5f5t6m8xKiWqFmEKkhlS/mpsapaQhf56PBOcSphBkdjqRKwobt | ||||
| aLhcgqtDLuADUw2s3MDuYKFdVD58n8mThYUbipICwZsRQAGoQDVpaWQBTQ6D | ||||
| VqHb62/K1AS1j8LjeChpBslnrdEraKyGbY2Od4W3/6R+DArKypkXlZTAIG4B | ||||
| rHsZhkc0cdVc4v0lLEwre2uaSGCO4Nqscs5JubykbVB1TYWXP2IBE+qP4QRc | ||||
| ewpP9kwmadQbo9tFFNngOKo7X/DAbapxCnwg2FDDAVP09R/fv0Ks1/64bXdM | ||||
| gMgdWfsrUU/CnwcJ/Oxn9sVwEF0dwtWzF4NewNNeDHtNlSt8ZDIeDJ4NBzO7 | ||||
| C4+2t+lj3Rwe/yPdHHV0c9Rrqk3hI8gUBsAUBt0f7X6TczzW/dFBZ/ePB43u | ||||
| j46jy/vU/2HU//3eA0ZcNPrnR8Oj6bODZ6Ojw6PJ0fDZ82f7g2dHh8+O6fcB | ||||
| /HY42D/aP5odTWlYYTvE2di/mH6kvCEszx4kN4tfkWT1+enbU4yhCI9L/bSd | ||||
| JXnypVkCRou+IM3SY5fpDebWrJ3br+kFwb1YUW59hXHhxCZI3YF5Fk2joY60 | ||||
| 6s5MqFhPJblWpb4RBzq1W5v8L+Z9UsIdoAlUW84RVK3Ge2XYZXz/Ftt9ZGO+ | ||||
| Rhm+JXxWXEVGoAaNOw7bAJYbbFf6PNnjj/772OeJf/Sz/T1ZvZ/xWBRXu2Tz | ||||
| 5/Mv9FZL7pXP9m3hoxedtfLQW/HRIf17ag/2yN7YYNh1PjqSR4dH7tkui6nr | ||||
| 0X15dNNWCh+PHj3YGx0ewr8/5EyR8Nh/1wzTLvw9Ew9wMWAEI5ag+6RiaqlI | ||||
| 8uz7cw2kfrcGBCgWAVbPpddAJUcSTCPN7cRRyQmQbmBC9ctink0wjMhchUVJ | ||||
| CfGkkKaddgIYFlwdjiQIZxsssRXWk2+wCVRAf3CRHc19688996kiJLw5eoUu | ||||
| ICvCQzuqJcZfsgG9qosFAdc+aKTHiVOufLmL3koC/AI93GPQG/rmncuJhsfF | ||||
| GpaUd18+RzSJLKdzklBRik7uaBYC8ZnVaEemjGtHaViVTlLjLKLOk90cWB2+ | ||||
| J8jlpiCk1sHuNZ3NFgQbgKWzpMJlaV6tylRw1Tq9KSWViyxSSsrSbBUy2nBK | ||||
| GwnAaMkWpE+t5Eg0mf/z99B9Sd7fHwwl6wAH68N+4+o3SAxRpB808erlb195 | ||||
| 05ZbG4wIIsTZdai0VinCfNdVVVM7NI+YpeMUpkCXFqIvNJIjqjBL8cTU1WlU | ||||
| cYDOftZAjqxGdNSHT+TrYA4xS1mr/+fmwlEbQYcarh75eJqLvEtgKyeiGN+c | ||||
| M6GwWLx3cMgxg0TvlBo728Oj27GKMb6MDn51NkeUCQCzHJqj+FecvC/ykc+X | ||||
| 4dMBJBmvUbF1QsGCdHCV317TcMDkGTJYRgDZh8SPqaOEjhPglOQM64tSezdp | ||||
| owmsukfuFEUc/DB4japlESFuelivgpIIGCA17dGNmKwYxy+UqhCIre1Q9Kbj | ||||
| wYfTGJ/g7jNlg8rwyoA4q3JRTIGZSuxYauTkV80EDHak4DGUJ5jrU5QisNSX | ||||
| 8AtczenFqqI0QNkFNtoFYZWGlOtyV6sF55wSbtscuZIBjoTNKDVhonYlpBGa | ||||
| 3KsLEKpTLPsPG5erK/ujChPd/c0kIOorjMy/hx07rnKgb5rqrtZrORKPw9DL | ||||
| eDk93ippN8421vcEY2l2pn2blmg0uL91AFyU1B/mJxLz+ur8O4nWOz445KPv | ||||
| 4KedgZzPPnq+D3zQuMfdjPCJ0PK7pq/CDq+52Dphj9dvroQ9HB8ef/nSM+7K | ||||
| 99fX7+Xa8cHxgcTQUvAYh0U2BKnOK8rMW4YJw/jAy0tGr5plrSaYFUTiN0GP | ||||
| D1UZAC0bc52nTW28FwKKE/UegLBMc4wqgzdd6aEwVFJSywwI9knnV3Z7GLQa | ||||
| nw0K6QuP+6bSw5Npm4clMi6ajfUomzebcBoOx3yIHth6cY8gYIyxozn1deZs | ||||
| mVUf2pH8XeeLDI45+OPUaxJxnVCq/aEl65xAZ+itSqNAWtNQLEi8o0GZrLRg | ||||
| EyonzGtcMQ0MxPIvd8iRJmb1fCnXmCpI2cEBU7xFuueOqQDFsGOqlGmIFjDJ | ||||
| yskqq/fGwNdRDIEUu80zdJnr5jEsyjZ4BRDDasxiWAc0EowSr+COD8dqz3FV | ||||
| aWGuegeXINA4QuYmmICPYjJA9npU8wJrzYNopySBpjpoGFiSiNcfzt6HRKIH | ||||
| eoPulU8wQpNz+lGQjfnsRybgvolSQA5akSSRV/SoFcKg/JJ3vpoJsVbJ2qyk | ||||
| 85GzXhJ3cMc1CJvCFCcIcM3T6Q1Xs9BcqsgguKcDcqulZprWjF7fIYuwTNAz | ||||
| ewbmBliKZf1Tz1wWMHCQn8n6QwEcDugPx3WTzoHvZlKg8n1agvFxDdb4ksL4 | ||||
| xSrzMVkX3757++rM1dflDAwggfNX16/t832O7ck/kL7/m3Q2s98V82kFw73t | ||||
| 2esCD1oFW+AV8g0MFc0+JMB5T8dlcpssKqr39SbN87X5LlvNsySHfl4kMJLT | ||||
| HMzMe1jBK+jk2v4H7JSbnv0tppZdFhgP/C3Qx2+T6eoDfMXc0VMgtWIKr8wW | ||||
| 9uUtpey9vKWkGeCvf8BIqAssIAmCCq78IcE8cPvb1SIpM5yZHOZqkYA5NFlh | ||||
| 02WO5ZpPx8U4gWaAcxWVfY9583VSQg/fZhi2iX4zFGB1z1xk5d8S+9v/+r+3 | ||||
| 8/Q+y6Eb38OgcLouixuMAfqv/1PCjv/9Ood5gBeQp+tNlkLz/GLswnqe3ffs | ||||
| KajGVQJtI3OC4cM+qm7tb2Ekt3kCXT+dgt52ibhmj4o/wYMZzOjrEtbA5bRk | ||||
| pSX4GFPGME0AiQRmU44JWWg5CzCDySwDAvzBIazXHL6a8/nCHB8bolSBJ0OP | ||||
| HPoaz4V1ngvEjRvnaNVcUzNPO30s6CcYbPYTYH8c53H95DbVgKpdzgjn2qyi | ||||
| 4ZqkcXihw5J7ctALAcgrzUfVIBdgBDdlspBO//vLd2ev7Levvjt/e/VrGca/ | ||||
| gEirfaf6y7WVK9v/6+mqKp+Os/xpmt/Z5RrYc74vF/nwJixhLT8gZvIC/uwn | ||||
| 5c3dn4Z/lp8RXnnxzTfyF6V15YrI9ytgnvXON/1vdk8cTAIK/zzNd6b5rv21 | ||||
| BOFY35R98sLufPOvg9HHb+y/6o27nTd900frQm7+V5j+nY8cgPeRTjjwjyE3 | ||||
| rnewLXx49+nT0a59YkfRVbpi3JT1n0YT1rnscvPoQL78HDw2WK1Xb89grcgw | ||||
| iaMIOPZEhext+pEqtwZJOiGeu9XZxS2OHr2lk7eXq7pyNU2EboB0RyONWYlf | ||||
| vwk3I1t1RJJAE6k4JY/jcXaGrn/NIHAai78M/RsTvTu3tWl6UCuKfkTDkKge | ||||
| c2elk6ODaJpAw38tzY4MB1vErqVoAPeMmkzTRjfV+dvdl64qSJKbo4h0cBpD | ||||
| EnAacmlF/lDHYSKPwiY3gm15EjAWLfYlIAGSOwFH0HCJ7NudTau522zjn3Eq | ||||
| mP8HF313I2fxAAA= | ||||
| </rfc> | </rfc> | |||
| End of changes. 98 change blocks. | ||||
| 2489 lines changed or deleted | 3062 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/ | ||||