| rfc9229xml2.original.xml | rfc9229.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" []> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | <!DOCTYPE rfc [ | |||
| <?rfc toc="yes"?> | <!ENTITY nbsp " "> | |||
| <?rfc tocdepth="2"?> | <!ENTITY zwsp "​"> | |||
| <?rfc symrefs="yes"?> | <!ENTITY nbhy "‑"> | |||
| <?rfc sortrefs="yes" ?> | <!ENTITY wj "⁠"> | |||
| <?rfc compact="no" ?> | ]> | |||
| <rfc category="exp" docName="draft-ietf-babel-v4viav6-08" | ||||
| ipr="trust200902"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-babel-v4viav | |||
| <front> | 6-08" number="9229" ipr="trust200902" obsoletes="" updates="" submissionType="IE | |||
| <title abbrev="IPv4 routes with an IPv6 next-hop"> | TF" category="exp" | |||
| IPv4 routes with an IPv6 next hop in the Babel routing protocol | consensus="true" xml:lang="en" tocInclude="true" tocDepth="2" symRefs="true" sor | |||
| tRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 3.12.2 --> | ||||
| <front> | ||||
| <title abbrev="IPv4 Routes with an IPv6 Next Hop"> | ||||
| IPv4 Routes with an IPv6 Next Hop in the Babel Routing Protocol | ||||
| </title> | </title> | |||
| <author fullname="Juliusz Chroboczek" initials="J." surname="Chroboczek"> | <seriesInfo name="RFC" value="9229"/> | |||
| <organization>IRIF, University of Paris</organization> | <author fullname="Juliusz Chroboczek" initials="J." surname="Chroboczek"> | |||
| <address> | <organization>IRIF, University of Paris</organization> | |||
| <postal> | <address> | |||
| <street>Case 7014</street> | <postal> | |||
| <city>75205 Paris Cedex 13</city> | <street>Case 7014</street> | |||
| <country>France</country> | <city>Paris Cedex 13</city> | |||
| </postal> | <code>75205</code> | |||
| <email>jch@irif.fr</email> | <country>France</country> | |||
| </address> | </postal> | |||
| </author> | <email>jch@irif.fr</email> | |||
| </address> | ||||
| </author> | ||||
| <date month="May" year="2022"/> | ||||
| <area>rtg</area> | ||||
| <workgroup>babel</workgroup> | ||||
| <date day="24" month="February" year="2022"/> | <keyword>routing</keyword> | |||
| <keyword>transition</keyword> | ||||
| <keyword>IPv6 transition</keyword> | ||||
| <keyword>double-stack</keyword> | ||||
| <keyword>dual-stack</keyword> | ||||
| <keyword>glorious IPv6-only future</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>This document defines an extension to the Babel routing protocol that | <t>This document defines an extension to the Babel routing protocol that | |||
| allows announcing routes to an IPv4 prefix with an IPv6 next-hop, which | allows announcing routes to an IPv4 prefix with an IPv6 next hop, which | |||
| makes it possible for IPv4 traffic to flow through interfaces that have | makes it possible for IPv4 traffic to flow through interfaces that have | |||
| not been assigned an IPv4 address.</t> | not been assigned an IPv4 address.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | ||||
| <middle> | <section numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <section title="Introduction"> | <t> | |||
| The role of a routing protocol is to build a routing table, a data | ||||
| structure that maps network prefixes in a given family (IPv4 or IPv6) | ||||
| to next hops, which are (at least conceptually) pairs of an outgoing | ||||
| interface and a neighbour's network address. For example: | ||||
| </t> | ||||
| <t>The role of a routing protocol is to build a routing table, a data | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| structure that maps network prefixes in a given family (IPv4 or IPv6) to | ||||
| next hops, pairs of an outgoing interface and a neighbour's network | ||||
| address, for example:</t> | ||||
| <figure><artwork><![CDATA[ | ||||
| destination next hop | destination next hop | |||
| 2001:db8:0:1::/64 eth0, fe80::1234:5678 | 2001:db8:0:1::/64 eth0, fe80::1234:5678 | |||
| 203.0.113.0/24 eth0, 192.0.2.1 | 203.0.113.0/24 eth0, 192.0.2.1 | |||
| ]]></artwork></figure> | ]]></artwork> | |||
| <t>When a packet is routed according to a given routing table entry, the | ||||
| <t>When a packet is routed according to a given routing table entry, the | ||||
| forwarding plane typically uses a neighbour discovery protocol (the | forwarding plane typically uses a neighbour discovery protocol (the | |||
| Neighbour Discovery protocol (ND) <xref target="RFC4861"/> in the case of | Neighbour Discovery (ND) protocol <xref target="RFC4861" format="default"/> in t | |||
| IPv6, the Address Resolution Protocol (ARP) <xref target="RFC0826"/> in | he case of | |||
| IPv6 and the Address Resolution Protocol (ARP) <xref target="RFC0826" format="de | ||||
| fault"/> in | ||||
| the case of IPv4) to map the next-hop address to a link-layer address (a | the case of IPv4) to map the next-hop address to a link-layer address (a | |||
| "MAC address"), which is then used to construct the link-layer frames that | "Media Access Control (MAC) address"), which is then used to construct the link- layer frames that | |||
| encapsulate forwarded packets.</t> | encapsulate forwarded packets.</t> | |||
| <t>It is apparent from the description above that there is no fundamental | ||||
| <t>It is apparent from the description above that there is no fundamental | ||||
| reason why the destination prefix and the next-hop address should be in | reason why the destination prefix and the next-hop address should be in | |||
| the same address family: there is nothing preventing an IPv6 packet from | the same address family: there is nothing preventing an IPv6 packet from | |||
| being routed through a next hop with an IPv4 address (in which case the | being routed through a next hop with an IPv4 address (in which case the | |||
| next hop's MAC address will be obtained using ARP), or, conversely, an | next hop's MAC address will be obtained using ARP) or, conversely, an | |||
| IPv4 packet from being routed through a next hop with an IPv6 address. | IPv4 packet from being routed through a next hop with an IPv6 address. | |||
| (In fact, it is even possible to store link-layer addresses directly in | (In fact, it is even possible to store link-layer addresses directly in | |||
| the next-hop entry of the routing table, which is commonly done in | the next-hop entry of the routing table, which is commonly done in | |||
| networks using the OSI protocol suite).</t> | networks using the OSI protocol suite).</t> | |||
| <t>The case of routing IPv4 packets through an IPv6 next hop is | ||||
| <t>The case of routing IPv4 packets through an IPv6 next hop is | ||||
| particularly interesting, since it makes it possible to build networks | particularly interesting, since it makes it possible to build networks | |||
| that have no IPv4 addresses except at the edges and still provide IPv4 | that have no IPv4 addresses except at the edges and still provide IPv4 | |||
| connectivity to edge hosts. In addition, since an IPv6 next hop can use | connectivity to edge hosts. In addition, since an IPv6 next hop can use | |||
| a link-local address that is autonomously configured, the use of such | a link-local address that is autonomously configured, the use of such | |||
| routes enables a mode of operation where the network core has no | routes enables a mode of operation where the network core has no | |||
| statically assigned IP addresses of either family, which significantly | statically assigned IP addresses of either family, which significantly | |||
| reduces the amount of manual configuration required. (See also | reduces the amount of manual configuration required. (See also | |||
| <xref target="RFC7404"/> for a discussion of the issues involved with such | <xref target="RFC7404" format="default"/> for a discussion of the issues involve d with such | |||
| an approach.)</t> | an approach.)</t> | |||
| <t>We call a route towards an IPv4 prefix that uses an IPv6 next hop | ||||
| <t>We call a route towards an IPv4 prefix that uses an IPv6 next hop | ||||
| a "v4-via-v6" route. This document describes an extension that allows the | a "v4-via-v6" route. This document describes an extension that allows the | |||
| Babel routing protocol <xref target="RFC8966"/> to announce v4-via-v6 | Babel routing protocol <xref target="RFC8966" format="default"/> to announce v4- via-v6 | |||
| routes across interfaces that have no IPv4 addresses assigned but are | routes across interfaces that have no IPv4 addresses assigned but are | |||
| capable of forwarding IPv4 traffic. <xref target="icmp"/> describes | capable of forwarding IPv4 traffic. <xref target="icmp" format="default"/> desc ribes | |||
| procedures that ensure that all routers can originate ICMPv4 packets, even | procedures that ensure that all routers can originate ICMPv4 packets, even | |||
| if they have not been assigned any IPv4 addresses.</t> | if they have not been assigned any IPv4 addresses.</t> | |||
| <t>The extension described in this document is inspired by a previously | ||||
| <t>The extension described in this document is inspired by a previously | defined extension to BGP <xref target="RFC5549" format="default"/>.</t> | |||
| defined extension to the BGP protocol <xref target="RFC5549"/>.</t> | <section numbered="true" toc="default"> | |||
| <name>Specification of Requirements</name> | ||||
| <section title="Specification of Requirements"> | <t> | |||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14> | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ", | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP 14 | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| they appear in all capitals, as shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| be | ||||
| </section> | interpreted as described in BCP 14 <xref target="RFC2119"/> <xref | |||
| target="RFC8174"/> when, and only when, they appear in all capitals, as | ||||
| </section> | shown here. | |||
| </t> | ||||
| <section title="Protocol operation"> | </section> | |||
| </section> | ||||
| <t>The Babel protocol fully supports dual-stack operation: all data that | <section numbered="true" toc="default"> | |||
| <name>Protocol Operation</name> | ||||
| <t>The Babel protocol fully supports dual-stack operation: all data that | ||||
| represent a neighbour address or a network prefix are tagged by an Address | represent a neighbour address or a network prefix are tagged by an Address | |||
| Encoding (AE), a small integer that identifies the address family (IPv4 or | Encoding (AE), a small integer that identifies the address family (IPv4 or | |||
| IPv6) of the address of prefix, and describes how it is encoded. This | IPv6) of the address of prefix and describes how it is encoded. This | |||
| extension defines a new AE, called v4-via-v6, which has the same format as | extension defines a new AE, called "v4-via-v6", which has the same format as | |||
| the existing AE for IPv4 addresses (AE 1). This new AE is only | the existing AE for IPv4 addresses (AE 1). This new AE is only | |||
| allowed in TLVs that carry network prefixes: TLVs that carry an IPv6 | allowed in TLVs that carry network prefixes: TLVs that carry an IPv6 | |||
| neighbour address use one of the normal encodings for IPv6 addresses.</t> | neighbour address use one of the normal encodings for IPv6 addresses.</t> | |||
| <section anchor="updates" numbered="true" toc="default"> | ||||
| <section title="Announcing v4-via-v6 routes" anchor="updates"> | <name>Announcing v4-via-v6 Routes</name> | |||
| <t>A Babel node can use a v4-via-v6 announcement to announce an IPv4 rou | ||||
| <t>A Babel node can use a v4-via-v6 announcement to announce an IPv4 route | te | |||
| over an interface that has no assigned IPv4 address. In order to do so, | over an interface that has no assigned IPv4 address. In order to do so, | |||
| it first establishes an IPv6 next-hop address in the usual manner (either | it first establishes an IPv6 next-hop address in the usual manner (either | |||
| by sending the Babel packet over IPv6, or by including a Next Hop TLV | by sending the Babel packet over IPv6, or by including a Next Hop TLV | |||
| containing an IPv6 address and using AE 2 or 3); it then sends an Update, | containing an IPv6 address and using AE 2 or 3); it then sends an Update, | |||
| with AE equal to 4 (v4-via-v6) containing the IPv4 prefix being | with AE equal to 4 (v4-via-v6) containing the IPv4 prefix being | |||
| announced.</t> | announced.</t> | |||
| <t>If the outgoing interface has been assigned an IPv4 address, then, in | ||||
| <t>If the outgoing interface has been assigned an IPv4 address, then, in | ||||
| the interest of maximising compatibility with existing routers, the sender | the interest of maximising compatibility with existing routers, the sender | |||
| SHOULD prefer an ordinary IPv4 announcement; even in that case, however, | <bcp14>SHOULD</bcp14> prefer an ordinary IPv4 announcement; even in that case, h | |||
| it MAY send a v4-via-v6 announcement. A node SHOULD NOT send both | owever, | |||
| it <bcp14>MAY</bcp14> send a v4-via-v6 announcement. A node <bcp14>SHOULD NOT</ | ||||
| bcp14> send both | ||||
| ordinary IPv4 and v4-via-v6 announcements for the same prefix over | ordinary IPv4 and v4-via-v6 announcements for the same prefix over | |||
| a single interface (if the update is sent to a multicast address) or to | a single interface (if the update is sent to a multicast address) or to | |||
| a single neighbour (if sent to a unicast address), since doing that | a single neighbour (if sent to a unicast address), since doing that | |||
| provides no benefit while doubling the amount of routing traffic.</t> | provides no benefit while doubling the amount of routing traffic.</t> | |||
| <t>Updates with infinite metric are retractions: they indicate that | ||||
| <t>Updates with infinite metric are retractions: they indicate that | ||||
| a previously announced route is no longer available. Retractions do not | a previously announced route is no longer available. Retractions do not | |||
| require a next hop, and there is therefore no difference between v4-via-v6 | require a next hop; therefore, there is no difference between v4-via-v6 | |||
| retractions and ordinary retractions. A node MAY send IPv4 retractions | retractions and ordinary retractions. A node <bcp14>MAY</bcp14> send IPv4 retra | |||
| only, or it MAY send v4-via-v6 retractions on interfaces that have not | ctions | |||
| only, or it <bcp14>MAY</bcp14> send v4-via-v6 retractions on interfaces that hav | ||||
| e not | ||||
| been assigned an IPv4 address.</t> | been assigned an IPv4 address.</t> | |||
| </section> | ||||
| </section> | <section anchor="receiving-updates" numbered="true" toc="default"> | |||
| <name>Receiving v4-via-v6 Routes</name> | ||||
| <section title="Receiving v4-via-v6 routes" anchor="receiving-updates"> | <t>Upon reception of an Update TLV with AE equal to 4 (v4-via-v6) and | |||
| <t>Upon reception of an Update TLV with AE equal to 4 (v4-via-v6) and | ||||
| finite metric, a Babel node computes the IPv6 next hop, as described in | finite metric, a Babel node computes the IPv6 next hop, as described in | |||
| Section 4.6.9 of <xref target="RFC8966"/>. If no IPv6 next hop exists, | <xref target="RFC8966" format="default" sectionFormat="of" section="4.6.9"/>. I | |||
| then the Update MUST be ignored. If an IPv6 next hop exists, | f no IPv6 next hop exists, | |||
| then the node MAY acquire the route being announced, as described in | then the Update <bcp14>MUST</bcp14> be ignored. If an IPv6 next hop exists, | |||
| Section 3.5.3 of <xref target="RFC8966"/>; the parameters of the route are | then the node <bcp14>MAY</bcp14> acquire the route being announced, as described | |||
| in | ||||
| <xref target="RFC8966" format="default" sectionFormat="of" section="3.5.3"/>; th | ||||
| e parameters of the route are | ||||
| as follows: | as follows: | |||
| <list style="symbols"> | </t> | |||
| <t>the prefix, plen, router-id, seqno, metric MUST be computed as for an | ||||
| IPv4 route, as described in Section 4.6.9 of <xref target="RFC8966"/>;</t> | <ul spacing="normal"> | |||
| <t>the next hop MUST be computed as for an IPv6 route, as described in | <li>The prefix, plen, router-id, seqno, and metric <bcp14>MUST</bcp14> | |||
| Section 4.6.9 of <xref target="RFC8966"/>: it is taken from the last | be computed as for an | |||
| IPv4 route, as described in <xref target="RFC8966" format="default" sectionForma | ||||
| t="of" section="4.6.9"/>.</li> | ||||
| <li>The next hop <bcp14>MUST</bcp14> be computed as for an IPv6 route, | ||||
| as described in | ||||
| <xref target="RFC8966" format="default" sectionFormat="of" section="4.6.9"/>. It | ||||
| is taken from the last | ||||
| preceding Next Hop TLV with an AE field equal to 2 or 3; if no such | preceding Next Hop TLV with an AE field equal to 2 or 3; if no such | |||
| entry exists, and if the Update TLV has been sent in a Babel packet | entry exists and if the Update TLV has been sent in a Babel packet | |||
| carried over IPv6, then the next hop is the network-layer source address | carried over IPv6, then the next hop is the network-layer source address | |||
| of the packet.</t> | of the packet.</li> | |||
| </list></t> | </ul> | |||
| <t>An Update TLV with a v4-via-v6 AE and metric equal to infinity is | ||||
| <t>An Update TLV with a v4-via-v6 AE and metric equal to infinity is | ||||
| a retraction: it announces that a previously available route is being | a retraction: it announces that a previously available route is being | |||
| retracted. In that case, no next hop is necessary, and the retraction is | retracted. In that case, no next hop is necessary, and the retraction is | |||
| treated as described in Section 4.6.9 of <xref target="RFC8966"/>.</t> | treated as described in <xref target="RFC8966" format="default" sectionFormat="o | |||
| f" section="4.6.9"/>.</t> | ||||
| <t>As usual, a node MAY ignore the update, e.g., due to filtering | <t>As usual, a node <bcp14>MAY</bcp14> ignore the update, e.g., due to f | |||
| (Appendix C of <xref target="RFC8966"/>). If a node cannot install | iltering | |||
| (see <xref target="RFC8966" format="default" sectionFormat="of" section="C"/>). | ||||
| If a node cannot install | ||||
| v4-via-v6 routes, e.g., due to hardware or software limitations, then | v4-via-v6 routes, e.g., due to hardware or software limitations, then | |||
| routes to an IPv4 prefix with an IPv6 next hop MUST NOT be selected.</t> | routes to an IPv4 prefix with an IPv6 next hop <bcp14>MUST NOT</bcp14> be select | |||
| ed.</t> | ||||
| </section> | </section> | |||
| <section anchor="requests" numbered="true" toc="default"> | ||||
| <section title="Route and seqno requests" anchor="requests"> | <name>Route and Seqno Requests</name> | |||
| <t>Route and seqno requests are used to request an update for a given | <t>Route and seqno requests are used to request an update for a given | |||
| prefix. Since they are not related to a specific next hop, there is no | prefix. Since they are not related to a specific next hop, there is no | |||
| semantic difference between IPv4 and v4-via-v6 requests. Therefore, | semantic difference between IPv4 and v4-via-v6 requests. Therefore, | |||
| a node SHOULD NOT send requests of either kind with the AE field being set | a node <bcp14>SHOULD NOT</bcp14> send requests of either kind with the AE field | |||
| to 4 (v4-via-v6); instead, it SHOULD request IPv4 updates by sending | being set | |||
| to 4 (v4-via-v6); instead, it <bcp14>SHOULD</bcp14> request IPv4 updates by send | ||||
| ing | ||||
| requests with the AE field being set to 1 (IPv4).</t> | requests with the AE field being set to 1 (IPv4).</t> | |||
| <t>When receiving requests, AEs 1 (IPv4) and 4 (v4-via-v6) <bcp14>MUST</ | ||||
| <t>When receiving requests, AEs 1 (IPv4) and 4 (v4-via-v6) MUST be treated | bcp14> be treated | |||
| in the same manner: the receiver processes the request as described in | in the same manner: the receiver processes the request as described in | |||
| Section 3.8 of <xref target="RFC8966"/>. If an Update is sent, then it | <xref target="RFC8966" format="default" sectionFormat="of" section="3.8"/>. If | |||
| MAY be an ordinary IPv4 announcement (AE = 1) or an v4-via-v6 | an Update is sent, then it | |||
| announcement (AE = 4), as described in <xref target="updates"/> | <bcp14>MAY</bcp14> be an ordinary IPv4 announcement (AE = 1) or a v4-via-v6 | |||
| above, irrespective of which AE was used in the request.</t> | announcement (AE = 4), as described in <xref target="updates" format="default"/> | |||
| , irrespective of which AE was used in the request.</t> | ||||
| <t>When receiving a request with AE 0 (wildcard), the receiver SHOULD send | <t>When receiving a request with AE 0 (wildcard), the receiver <bcp14>SH | |||
| a full route dump, as described in Section 3.8.1.1 of <xref | OULD</bcp14> send | |||
| target="RFC8966"/>. Any IPv4 routes contained in the route dump may use | a full route dump, as described in <xref target="RFC8966" format="default" secti | |||
| either AE 1 (IPv4) or AE 4 (v4-via-v6), as described <xref target="updates"/> | onFormat="of" section="3.8.1.1"/>. Any IPv4 routes contained in the route dump | |||
| above.</t> | may use | |||
| either AE 1 (IPv4) or AE 4 (v4-via-v6), as described <xref target="updates" form | ||||
| </section> | at="default"/>.</t> | |||
| </section> | ||||
| <section title="Other TLVs"> | <section numbered="true" toc="default"> | |||
| <name>Other TLVs</name> | ||||
| <t>The only other TLVs defined by <xref target="RFC8966"/> that carry an | <t>The only other TLVs defined by <xref target="RFC8966" format="default | |||
| AE field are Next Hop and IHU. Next Hop and IHU TLVs MUST NOT carry the | "/> that carry an | |||
| AE field are Next Hop and IHU. Next Hop and IHU TLVs <bcp14>MUST NOT</bcp14> ca | ||||
| rry the | ||||
| AE 4 (v4-via-v6).</t> | AE 4 (v4-via-v6).</t> | |||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="icmp" numbered="true" toc="default"> | ||||
| </section> | <name>ICMPv4 and PMTU Discovery</name> | |||
| <t>The Internet Control Message Protocol (ICMPv4, or simply ICMP) <xref ta | ||||
| <section title="ICMPv4 and PMTU discovery" anchor="icmp"> | rget="RFC0792" format="default"/> is a protocol related to IPv4 that is primaril | |||
| y used to | ||||
| <t>The Internet Control Message Protocol (ICMPv4, or simply ICMP) <xref | ||||
| target="RFC0792"/> is a protocol related to IPv4 that is primarily used to | ||||
| carry diagnostic and debugging information. ICMPv4 packets may be | carry diagnostic and debugging information. ICMPv4 packets may be | |||
| originated by end hosts (e.g., the "destination unreachable, port | originated by end hosts (e.g., the "destination unreachable, port | |||
| unreachable" ICMPv4 packet), but they may also be originated by | unreachable" ICMPv4 packet), but they may also be originated by | |||
| intermediate routers (e.g., most other kinds of "destination unreachable" | intermediate routers (e.g., most other kinds of "destination unreachable" | |||
| packets).</t> | packets).</t> | |||
| <t>Some protocols deployed in the Internet rely on ICMPv4 packets sent by | ||||
| <t>Some protocols deployed in the Internet rely on ICMPv4 packets sent by | intermediate routers. Most notably, Path MTU Discovery (PMTUD) <xref target="RF | |||
| intermediate routers. Most notably, path MTU Discovery (PMTUd) <xref | C1191" format="default"/> is an algorithm executed by end hosts to discover the | |||
| target="RFC1191"/> is an algorithm executed by end hosts to discover the | ||||
| maximum packet size that a route is able to carry. While there exist | maximum packet size that a route is able to carry. While there exist | |||
| variants of PMTUd that are purely end-to-end <xref target="RFC4821"/>, the | variants of PMTUD that are purely end-to-end <xref target="RFC4821" format="defa ult"/>, the | |||
| variant most commonly deployed in the Internet has a hard dependency on | variant most commonly deployed in the Internet has a hard dependency on | |||
| ICMPv4 packets originated by intermediate routers: if intermediate routers | ICMPv4 packets originated by intermediate routers: if intermediate routers | |||
| are unable to send ICMPv4 packets, PMTUd may lead to persistent | are unable to send ICMPv4 packets, PMTUD may lead to persistent | |||
| blackholing of IPv4 traffic.</t> | blackholing of IPv4 traffic.</t> | |||
| <t>Due to this kind of dependency, every Babel router that is able to | ||||
| <t>Due to this kind of dependency, every Babel router that is able to | forward IPv4 traffic <bcp14>MUST</bcp14> be able originate ICMPv4 traffic. Sinc | |||
| forward IPv4 traffic MUST be able originate ICMPv4 traffic. Since the | e the | |||
| extension described in this document enables routers to forward IPv4 | extension described in this document enables routers to forward IPv4 | |||
| traffic received over an interface that has not been assigned an IPv4 | traffic received over an interface that has not been assigned an IPv4 | |||
| address, a router implementing this extension MUST be able to originate | address, a router implementing this extension <bcp14>MUST</bcp14> be able to ori ginate | |||
| ICMPv4 packets even when the outgoing interface has not been assigned an | ICMPv4 packets even when the outgoing interface has not been assigned an | |||
| IPv4 address.</t> | IPv4 address.</t> | |||
| <t>In such a situation, if a Babel router has an interface that has been | ||||
| <t>In such a situation, if a Babel router has an interface that has been | assigned an IPv4 address (other than a loopback address) or if an IPv4 | |||
| assigned an IPv4 address (other than the loopback address), or if an IPv4 | ||||
| address has been assigned to the router itself (to the "loopback | address has been assigned to the router itself (to the "loopback | |||
| interface"), then that IPv4 address may be used as the source of | interface"), then that IPv4 address may be used as the source of | |||
| originated ICMPv4 packets. If no IPv4 address is available, a Babel | originated ICMPv4 packets. If no IPv4 address is available, a Babel | |||
| router could use the experimental mechanism described in Requirement | router could use the experimental mechanism described in Requirement | |||
| R-22 of Section 4.8 <xref target="RFC7600"/>, which consists of | R-22 of <xref target="RFC7600" format="default" sectionFormat="of" section="4.8" />, which consists of | |||
| using the dummy address 192.0.0.8 as the source address of originated | using the dummy address 192.0.0.8 as the source address of originated | |||
| ICMPv4 packets. Note however that using the same address on multiple | ICMPv4 packets. Note, however, that using the same address on multiple | |||
| routers may hamper debugging and fault isolation, e.g., when using the | routers may hamper debugging and fault isolation, e.g., when using the | |||
| "traceroute" utility.</t> | "traceroute" utility.</t> | |||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Protocol Encoding</name> | ||||
| <t>This extension defines the v4-via-v6 AE, whose value is 4. This AE is | ||||
| solely used to tag network prefixes and <bcp14>MUST NOT</bcp14> be used to tag n | ||||
| eighbour | ||||
| addresses, e.g., in Next Hop or IHU TLVs.</t> | ||||
| <t>This extension defines no new TLVs or sub-TLVs.</t> | ||||
| <section anchor="prefix-encoding" numbered="true" toc="default"> | ||||
| <name>Prefix Encoding</name> | ||||
| </section> | <t>Network prefixes tagged with AE 4 (v4-via-v6) <bcp14>MUST</bcp14> be e | |||
| ncoded and | ||||
| <section title="Protocol encoding"> | ||||
| <t>This extension defines the v4-via-v6 AE, whose value is 4. This AE is | ||||
| solely used to tag network prefixes, and MUST NOT be used to tag neighbour | ||||
| addresses, e.g. in Next Hop or IHU TLVs.</t> | ||||
| <t>This extension defines no new TLVs or sub-TLVs.</t> | ||||
| <section title="Prefix encoding" anchor="prefix-encoding"> | ||||
| <t>Network prefixes tagged with AE 4 (v4-via-v6) MUST be encoded and | ||||
| decoded just like prefixes tagged with AE 1 (IPv4), as described in | decoded just like prefixes tagged with AE 1 (IPv4), as described in | |||
| Section 4.3.1 of <xref target="RFC8966"/>.</t> | <xref target="RFC8966" format="default" sectionFormat="of" section="4.1.5"/>.</t > | |||
| <t>A new compression state for AE 4 (v4-via-v6) distinct from that of AE | <t>A new compression state for AE 4 (v4-via-v6) distinct from that of AE | |||
| 1 (IPv4) is introduced, and MUST be used for address compression of | 1 (IPv4) is introduced and <bcp14>MUST</bcp14> be used for address compression o | |||
| prefixes tagged with AE 4, as described in Sections 4.5 and 4.6.9 of | f | |||
| <xref target="RFC8966"/></t> | prefixes tagged with AE 4, as described in Sections <xref target="RFC8966" secti | |||
| onFormat="bare" section="4.5"/> and <xref target="RFC8966" sectionFormat="bare" | ||||
| </section> | section="4.6.9"/> of | |||
| <xref target="RFC8966" format="default"/></t> | ||||
| <section title="Changes to existing TLVs"> | </section> | |||
| <t>The following TLVs MAY be tagged with AE 4 (v4-via-v6): | <section numbered="true" toc="default"> | |||
| <name>Changes to Existing TLVs</name> | ||||
| <t>The following TLVs <bcp14>MAY</bcp14> be tagged with AE 4 (v4-via-v6) | ||||
| : | ||||
| <list style="symbols"> | ||||
| <t>Update (Type = 8)</t> | ||||
| <t>Route Request (Type = 9)</t> | ||||
| <t>Seqno Request (Type = 10)</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>As AE 4 (v4-via-v6) is suitable only for network prefixes, IHU | <li>Update (Type = 8)</li> | |||
| (Type = 5) and Next-Hop (Type = 7) TLVs are never sent | <li>Route Request (Type = 9)</li> | |||
| with AE 4. Such (incorrect) TLVs MUST be ignored upon reception.</t> | <li>Seqno Request (Type = 10)</li> | |||
| </ul> | ||||
| <section title="Update"> | <t>As AE 4 (v4-via-v6) is suitable only for network prefixes, IHU | |||
| (Type = 5) and Next Hop (Type = 7) TLVs are never sent | ||||
| <t>An Update (Type = 8) TLV with AE 4 is constructed as described in | with AE 4. Such (incorrect) TLVs <bcp14>MUST</bcp14> be ignored upon reception. | |||
| Section 4.6.9 of <xref target="RFC8966"/> for AE 1 (IPv4), with the | </t> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Update</name> | ||||
| <t>An Update (Type = 8) TLV with AE 4 (v4-via-v6) is constructed as de | ||||
| scribed in | ||||
| <xref target="RFC8966" format="default" sectionFormat="of" section="4.6.9"/> for | ||||
| AE 1 (IPv4), with the | ||||
| following specificities: | following specificities: | |||
| <list style="symbols"> | ||||
| <t>Prefix. The Prefix field is constructed according to | ||||
| <xref target="prefix-encoding"/> above.</t> | ||||
| <t>Next Hop. The next hop is built and prased as described in | ||||
| <xref target="updates"/> and <xref target="receiving-updates"/> above.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| </section> | <ul spacing="normal"> | |||
| <li>The Prefix field is constructed according to | ||||
| <section title="Requests"> | <xref target="prefix-encoding" format="default"/>.</li> | |||
| <t>When tagged with the AE 4, Route Request and Seqno Request updates | ||||
| MUST be constructed and decoded as described in Section 4.6 of | ||||
| <xref target="RFC8966"/>, and the network prefixes contained within them | ||||
| decoded as described in <xref target="prefix-encoding"/> above (see also | ||||
| <xref target="requests"/>).</t> | ||||
| </section> | ||||
| </section> | ||||
| </section> | ||||
| <section title="Backwards compatibility"> | <li>The Next Hop field is built and parsed as described in Sections | |||
| <xref target="updates" format="counter"/> and <xref target="receiving-updates" f | ||||
| ormat="counter"/>.</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Requests</name> | ||||
| <t>This protocol extension adds no new TLVs or sub-TLVs.</t> | <t>When tagged with the AE 4 (v4-via-v6), Route Request and Seqno Reque | |||
| st TLVs | ||||
| <bcp14>MUST</bcp14> be constructed and decoded as described in | ||||
| <xref target="RFC8966" format="default" sectionFormat="of" section="4.6"/>, and | ||||
| the network prefixes contained within them | ||||
| <bcp14>MUST</bcp14> be decoded as described in <xref target="prefix-encoding" fo | ||||
| rmat="default"/> (see also | ||||
| <xref target="requests" format="default"/>).</t> | ||||
| </section> | ||||
| </section> | ||||
| </section> | ||||
| <t>This protocol extension uses a new AE. As discussed in Appendix D of | <section numbered="true" toc="default"> | |||
| <xref target="RFC8966"/> and specified in the same document, implementations | <name>Backwards Compatibility</name> | |||
| <t>This protocol extension adds no new TLVs or sub-TLVs.</t> | ||||
| <t>This protocol extension uses a new AE. As discussed in | ||||
| <xref target="RFC8966" format="default" sectionFormat="of" section="D"/> and spe | ||||
| cified in the same document, implementations | ||||
| that do not understand the present extension will silently ignore the various | that do not understand the present extension will silently ignore the various | |||
| TLVs that use this new AE. As a result, incompatible versions will ignore | TLVs that use this new AE. As a result, incompatible versions will ignore | |||
| v4-via-v6 routes. They will also ignore requests with AE 4, which, as | v4-via-v6 routes. They will also ignore requests with AE 4 (v4-via-v6), which, | |||
| stated in <xref target="requests"/>, are not recommended.</t> | as | |||
| stated in <xref target="requests" format="default"/>, are not recommended.</t> | ||||
| <t>Using a new AE introduces a new compression state, used to parse the | <t>Using a new AE introduces a new compression state, which is used to | |||
| network prefixes. As this compression state is separate from other AEs' | parse the network prefixes. As this compression state is separate from | |||
| states, it will not interfere with the compression state of unextended | the states of other AEs, it will not interfere with the compression | |||
| nodes.</t> | state of unextended nodes.</t> | |||
| <t>This extension reuses the next-hop state from AEs 2 and 3 (IPv6) but | ||||
| <t>This extension reuses the next-hop state from AEs 2 and 3 (IPv6), but | makes no changes to the way in which it is updated. Therefore, it causes | |||
| makes no changes to the way in which it is updated, and therefore causes | ||||
| no compatibility issues.</t> | no compatibility issues.</t> | |||
| <t>As mentioned in <xref target="updates" format="default"/>, ordinary IPv | ||||
| <t>As mentioned in <xref target="updates"/>, ordinary IPv4 announcements | 4 announcements | |||
| are preferred to v4-via-v6 announcements when the outgoing interface has | are preferred to v4-via-v6 announcements when the outgoing interface has | |||
| an assigned IPv4 address; doing otherwise would prevent routers that do | an assigned IPv4 address; doing otherwise would prevent routers that do | |||
| not implement this extension from learning the route being announced.</t> | not implement this extension from learning the route being announced.</t> | |||
| </section> | ||||
| </section> | <section numbered="true" toc="default"> | |||
| <name>IANA Considerations</name> | ||||
| <section title="IANA Considerations"> | <t>IANA has allocated value 4 in the "Babel Address Encodings" registry as | |||
| <t>IANA has allocated value 4 in the "Babel Address Encodings" registry as | ||||
| follows:</t> | follows:</t> | |||
| <table align="center"> | ||||
| <texttable> | <thead> | |||
| <ttcol>AE</ttcol><ttcol>Name</ttcol><ttcol>Reference</ttcol> | <tr> | |||
| <c>4</c><c>v4-via-v6</c><c>(this document)</c> | <th align="left">AE</th> | |||
| </texttable> | <th align="left">Name</th> | |||
| <th align="left">Reference</th> | ||||
| </section> | </tr> | |||
| </thead> | ||||
| <section title="Security Considerations"> | <tbody> | |||
| <tr> | ||||
| <t>The extension defined in this document does not fundamentally change | <td align="left">4</td> | |||
| <td align="left">v4-via-v6</td> | ||||
| <td align="left">RFC 9229</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Security Considerations</name> | ||||
| <t>The extension defined in this document does not fundamentally change | ||||
| the security properties of the Babel protocol. However, by allowing IPv4 | the security properties of the Babel protocol. However, by allowing IPv4 | |||
| routes to be propagated across routers that have not been assigned IPv4 | routes to be propagated across routers that have not been assigned IPv4 | |||
| addresses, it might invalidate the assumptions made by network | addresses, it might invalidate the assumptions made by network | |||
| administrators, which could conceivably lead to security issues.</t> | administrators, which could conceivably lead to security issues.</t> | |||
| <t>For example, if an island of IPv4-only hosts is separated from the IPv4 | ||||
| <t>For example, if an island of IPv4-only hosts is separated from the IPv4 | ||||
| Internet by routers that have not been assigned IPv4 addresses, a network | Internet by routers that have not been assigned IPv4 addresses, a network | |||
| administrator might reasonably assume that the IPv4-only hosts are | administrator might reasonably assume that the IPv4-only hosts are | |||
| unreachable from the IPv4 Internet. This assumption is broken if the | unreachable from the IPv4 Internet. This assumption is broken if the | |||
| intermediary routers implement the extension described in this document, | intermediary routers implement the extension described in this document, | |||
| which might expose the IPv4-only hosts to traffic from the IPv4 Internet. | which might expose the IPv4-only hosts to traffic from the IPv4 Internet. | |||
| If this is undesirable, the flow of IPv4 traffic must be restricted by the | If this is undesirable, the flow of IPv4 traffic must be restricted by the | |||
| use of suitable filtering rules (Appendix C of <xref target="RFC8966"/>) | use of suitable filtering rules (see <xref target="RFC8966" format="default" sec tionFormat="of" section="C"/>) | |||
| together with matching packet filters in the data plane.</t> | together with matching packet filters in the data plane.</t> | |||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| </section> | <references> | |||
| <name>References</name> | ||||
| <section title="Acknowledgments"> | <references> | |||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8966.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.0792.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.0826.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4861.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5549.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.1191.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4821.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7600.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7404.xml"/> | ||||
| </references> | ||||
| </references> | ||||
| <t>This protocol extension was originally designed, described and | <section numbered="false" toc="default"> | |||
| implemented in collaboration with Theophile Bastian. Margaret Cullen | <name>Acknowledgments</name> | |||
| <t>This protocol extension was originally designed, described, and | ||||
| implemented in collaboration with <contact fullname="Theophile Bastian"/>. <con | ||||
| tact fullname="Margaret Cullen"/> | ||||
| pointed out the issues with ICMP and helped coin the phrase "v4-via-v6". | pointed out the issues with ICMP and helped coin the phrase "v4-via-v6". | |||
| The author is also indebted to Donald Eastlake, Toke Hoiland-Jorgensen, | The author is also indebted to <contact fullname="Donald Eastlake"/>, <contact f | |||
| David Schinazi, and Donald Sharp.</t> | ullname="Toke Høiland-Jørgensen"/>, | |||
| <contact fullname="David Schinazi"/>, and <contact fullname="Donald Sharp"/>.</t | ||||
| </section> | > | |||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| <references title="Normative References"> | ||||
| <reference anchor="RFC2119"><front> | ||||
| <title>Key words for use in RFCs to Indicate Requirement Levels</title> | ||||
| <author initials="S." surname="Bradner" fullname="S. Bradner"/> | ||||
| <date year="1997" month="March"/> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="2119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174"><front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | ||||
| <author initials="B." surname="Leiba" fullname="B. Leiba"/> | ||||
| <date year="2017" month="May"/> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8966" target="https://www.rfc-editor.org/info/rfc8966"> | ||||
| <front> | ||||
| <title>The Babel Routing Protocol</title> | ||||
| <author initials="J." surname="Chroboczek" fullname="J. Chroboczek"/> | ||||
| <author initials="D." surname="Schinazi" fullname="D. Schinazi"/> | ||||
| <date year="2021" month="January"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8966"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8966"/> | ||||
| </reference> | ||||
| <reference anchor="RFC0792" target="https://www.rfc-editor.org/info/rfc792"> | ||||
| <front> | ||||
| <title>Internet Control Message Protocol</title> | ||||
| <author initials="J." surname="Postel" fullname="J. Postel"/> | ||||
| <date year="1981" month="September"/> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="5"/> | ||||
| <seriesInfo name="RFC" value="792"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC0792"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <reference anchor="RFC0826"><front> | ||||
| <title>An Ethernet Address Resolution Protocol: Or Converting Network | ||||
| Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet | ||||
| Hardware</title> | ||||
| <author initials="D." surname="Plummer" fullname="D. Plummer"/> | ||||
| <date year="1982" month="November"/> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="37"/> | ||||
| <seriesInfo name="RFC" value="826"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC0826"/> | ||||
| </reference> | ||||
| <reference anchor="RFC4861"><front> | ||||
| <title>Neighbor Discovery for IP version 6 (IPv6)</title> | ||||
| <author initials="T." surname="Narten" fullname="T. Narten"/> | ||||
| <author initials="E." surname="Nordmark" fullname="E. Nordmark"/> | ||||
| <author initials="W." surname="Simpson" fullname="W. Simpson"/> | ||||
| <author initials="H." surname="Soliman" fullname="H. Soliman"/> | ||||
| <date year="2007" month="September"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4861"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4861"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5549"> | ||||
| <front> | ||||
| <title> | ||||
| Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop | ||||
| </title> | ||||
| <author initials="F." surname="Le Faucheur" fullname="F. Le Faucheur"/> | ||||
| <author initials="E." surname="Rosen" fullname="E. Rosen"/> | ||||
| <date year="2009" month="May"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5549"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5549"/> | ||||
| </reference> | ||||
| <reference anchor="RFC1191" target="https://www.rfc-editor.org/info/rfc1191"> | ||||
| <front> | ||||
| <title>Path MTU discovery</title> | ||||
| <author initials="J.C." surname="Mogul" fullname="J.C. Mogul"/> | ||||
| <author initials="S.E." surname="Deering" fullname="S.E. Deering"/> | ||||
| <date year="1990" month="November"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="1191"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC1191"/> | ||||
| </reference> | ||||
| <reference anchor="RFC4821" target="https://www.rfc-editor.org/info/rfc4821"> | ||||
| <front> | ||||
| <title>Packetization Layer Path MTU Discovery</title> | ||||
| <author initials="M." surname="Mathis" fullname="M. Mathis"/> | ||||
| <author initials="J." surname="Heffner" fullname="J. Heffner"/> | ||||
| <date year="2007" month="March"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4821"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4821"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7600" target="https://www.rfc-editor.org/info/rfc7600"> | ||||
| <front> | ||||
| <title>IPv4 Residual Deployment via IPv6 - A Stateless Solution (4rd)</title> | ||||
| <author initials="R." surname="Despres" fullname="R. Despres"/> | ||||
| <author initials="S." surname="Jiang" fullname="S. Jiang" role="editor"/> | ||||
| <author initials="R." surname="Penno" fullname="R. Penno"/> | ||||
| <author initials="Y." surname="Lee" fullname="Y. Lee"/> | ||||
| <author initials="G." surname="Chen" fullname="G. Chen"/> | ||||
| <author initials="M." surname="Chen" fullname="M. Chen"/> | ||||
| <date year="2015" month="July"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7600"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7600"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7404" target="https://www.rfc-editor.org/info/rfc7404"> | ||||
| <front> | ||||
| <title>Using Only Link-Local Addressing inside an IPv6 Network</title> | ||||
| <author initials="M." surname="Behringer" fullname="M. Behringer"/> | ||||
| <author initials="E." surname="Vyncke" fullname="E. Vyncke"/> | ||||
| <date year="2014" month="November"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7404"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7404"/> | ||||
| </reference> | ||||
| </references> | </back> | |||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 66 change blocks. | ||||
| 403 lines changed or deleted | 340 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||