| rfc8971xml2.original.xml | rfc8971.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- This template is for creating an Internet Draft using xml2rfc, | ||||
| which is available here: http://xml.resource.org. --> | ||||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <!-- used by XSLT processors --> | ||||
| <!-- For a complete list and description of processing instructions (PIs), | ||||
| please see http://xml.resource.org/authoring/README.html. --> | ||||
| <!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | ||||
| might want to use. | ||||
| (Here they are set differently than their defaults in xml2rfc v1.32) --> | ||||
| <?rfc strict="yes" ?> | ||||
| <!-- give errors regarding ID-nits and DTD validation --> | ||||
| <!-- control the table of contents (ToC) --> | ||||
| <?rfc toc="yes"?> | ||||
| <!-- generate a ToC --> | ||||
| <?rfc tocdepth="4"?> | ||||
| <!-- the number of levels of subsections in ToC. default: 3 --> | ||||
| <!-- control references --> | ||||
| <?rfc symrefs="yes"?> | ||||
| <!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
| <?rfc sortrefs="yes" ?> | ||||
| <!-- sort the reference entries alphabetically --> | ||||
| <!-- control vertical white space | ||||
| (using these PIs as follows is recommended by the RFC Editor) --> | ||||
| <?rfc compact="yes" ?> | ||||
| <!-- do not start each main section on a new page --> | ||||
| <?rfc subcompact="no" ?> | ||||
| <!-- keep one blank line between list items --> | ||||
| <!-- end of list of popular I-D processing instructions --> | ||||
| <rfc category="info" docName="draft-ietf-bfd-vxlan-16" ipr="trust200902"> | ||||
| <!-- category values: std, bcp, info, exp, and historic | ||||
| ipr values: full3667, noModification3667, noDerivatives3667 | ||||
| you can add the attributes updates="NNNN" and obsoletes="NNNN" | ||||
| they will automatically be output with "(if approved)" --> | ||||
| <!-- ***** FRONT MATTER ***** --> | <!-- updated by Chris 10/29/20 --> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | ||||
| docName="draft-ietf-bfd-vxlan-16" number="8971" ipr="trust200902" | ||||
| obsoletes="" updates="" submissionType="IETF" category="info" | ||||
| consensus="true" xml:lang="en" tocInclude="true" tocDepth="4" | ||||
| symRefs="true" sortRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 3.3.0 --> | ||||
| <front> | <front> | |||
| <title abbrev="BFD for VXLAN"> | <title abbrev="BFD for VXLAN"> | |||
| BFD for VXLAN | Bidirectional Forwarding Detection (BFD) for Virtual eXtensible Local Area | |||
| Network (VXLAN) | ||||
| </title> | </title> | |||
| <seriesInfo name="RFC" value="8971"/> | ||||
| <!-- add 'role="editor"' below for the editors if appropriate --> | ||||
| <!-- Another author who claims to be an editor --> | ||||
| <author fullname="Santosh Pallagatti" role="editor" initials="S." surname=" Pallagatti"> | <author fullname="Santosh Pallagatti" role="editor" initials="S." surname=" Pallagatti"> | |||
| <organization>VMware</organization> | <organization>VMware</organization> | |||
| <address> | <address> | |||
| <email>santosh.pallagatti@gmail.com</email> | <email>santosh.pallagatti@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Greg Mirsky" role="editor" initials="G." surname="Mirsky"> | ||||
| <author fullname="Greg Mirsky" role="editor" initials="G." surname="Mirsk | ||||
| y"> | ||||
| <organization>ZTE Corp.</organization> | <organization>ZTE Corp.</organization> | |||
| <address> | <address> | |||
| <email>gregimirsky@gmail.com</email> | <email>gregimirsky@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <!-- | ||||
| <author fullname="Basil Saji" initials="B." | ||||
| surname="Saji"> | ||||
| <organization>Juniper Networks</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>Embassy Business Park</street> | ||||
| <city>Bangalore</city> | ||||
| <region>KA</region> | ||||
| <code>560093</code> | ||||
| <country>India</country> | ||||
| </postal> | ||||
| <email>sbasil@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Sudarsan Paragiri " initials="S." surname="Paragiri"> | <author fullname="Sudarsan Paragiri " initials="S." surname="Paragiri"> | |||
| <organization>Individual Contributor</organization> | <organization>Individual Contributor</organization> | |||
| <address> | <address> | |||
| <email>sudarsan.225@gmail.com</email> | <email>sudarsan.225@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Vengada Prasad Govindan" initials="V." surname="Govindan"> | ||||
| <author fullname="Vengada Prasad Govindan" initials="V." surname="Govinda | ||||
| n"> | ||||
| <organization>Cisco</organization> | <organization>Cisco</organization> | |||
| <address> | <address> | |||
| <email>venggovi@cisco.com</email> | <email>venggovi@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Mallik Mudigonda" initials="M." surname="Mudigonda"> | ||||
| <author fullname="Mallik Mudigonda" initials="M." surname="Mudigonda"> | ||||
| <organization>Cisco</organization> | <organization>Cisco</organization> | |||
| <address> | <address> | |||
| <email>mmudigon@cisco.com</email> | <email>mmudigon@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2020" month="December" /> | ||||
| <date year="2020"/> | ||||
| <area>Routing</area> | <area>Routing</area> | |||
| <workgroup>BFD</workgroup> | <workgroup>BFD</workgroup> | |||
| <!-- WG name at the upperleft corner of the doc, | ||||
| IETF is fine for individual submissions. | ||||
| If this element is not present, the default is "Network Working Group", | ||||
| which is used by the RFC Editor as a nod to the history of the IETF. --> | ||||
| <keyword>BFD</keyword> | <keyword>BFD</keyword> | |||
| <keyword>BFD for VXLAN</keyword> | <keyword>BFD for VXLAN</keyword> | |||
| <!-- Keywords will be incorporated into HTML output | ||||
| files in a meta tag but they have no effect on text or nroff | ||||
| output. If you submit your draft to the RFC Editor, the | ||||
| keywords will be used for the search engine. --> | ||||
| <abstract> | <abstract> | |||
| <t>This document describes the use of the Bidirectional Forwarding Detec tion (BFD) protocol | <t>This document describes the use of the Bidirectional Forwarding Detecti on (BFD) protocol | |||
| in point-to-point Virtual eXtensible Local Area Network (VXLAN) tunnels | in point-to-point Virtual eXtensible Local Area Network (VXLAN) tunnels | |||
| used to form an overlay network.</t> | used to form an overlay network.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction" anchor="Intro"> | <section anchor="Intro" numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <t> | <t> | |||
| "Virtual eXtensible Local Area Network" (VXLAN) <xref target="RFC7348"/> pro | "Virtual eXtensible Local Area Network (VXLAN)" <xref target="RFC7348" forma | |||
| vides | t="default"/> provides | |||
| an encapsulation scheme that allows building an overlay network by | an encapsulation scheme that allows the building of an overlay network by | |||
| decoupling the address space of the attached virtual hosts from that of the ne twork. | decoupling the address space of the attached virtual hosts from that of the ne twork. | |||
| </t> | </t> | |||
| <t> | ||||
| <t> | ||||
| One use of VXLAN is in data centers interconnecting virtual machines (VMs) | One use of VXLAN is in data centers interconnecting virtual machines (VMs) | |||
| of a tenant. VXLAN addresses requirements of the Layer 2 and | of a tenant. VXLAN addresses the requirements of the Layer 2 and | |||
| Layer 3 data center network infrastructure in the presence of VMs in a multi-ten | Layer 3 data-center network infrastructure in the presence of VMs in a multi-ten | |||
| ant environment by | ant environment by | |||
| providing a Layer 2 overlay scheme on a Layer 3 network <xref target="RFC7348"/ | providing a Layer 2 overlay scheme on a Layer 3 network <xref target="RFC7348" | |||
| >. | format="default"/>. | |||
| Another use is as an encapsulation for Ethernet VPN <xref target="RFC8365"/>. | Another use is as an encapsulation for Ethernet VPN <xref target="RFC8365" form | |||
| </t> | at="default"/>. | |||
| <t> | </t> | |||
| <t> | ||||
| This document is written assuming the use of VXLAN for virtualized | This document is written assuming the use of VXLAN for virtualized | |||
| hosts and refers to VMs and VXLAN Tunnel End Points (VTEPs) in hypervisors. How ever, the | hosts and refers to VMs and VXLAN Tunnel End Points (VTEPs) in hypervisors. How ever, the | |||
| concepts are equally applicable to non-virtualized hosts attached to | concepts are equally applicable to non-virtualized hosts attached to | |||
| VTEPs in switches. | VTEPs in switches. | |||
| </t> | </t> | |||
| <t>In the absence of a router in the overlay, a VM can communicate with an | ||||
| <t>In the absence of a router in the overlay, a VM can communicate with ano | other VM only if they are on the same VXLAN segment. | |||
| ther VM only if they are on the same VXLAN segment. | VMs are unaware of VXLAN tunnels, because a VXLAN tunnel is terminated o | |||
| VMs are unaware of VXLAN tunnels as a VXLAN tunnel is terminated on a VT | n a VTEP. | |||
| EP. | ||||
| VTEPs are responsible for encapsulating and decapsulating frames exchang ed among | VTEPs are responsible for encapsulating and decapsulating frames exchang ed among | |||
| VMs. </t> | VMs. </t> | |||
| <t> | ||||
| <t> | The ability to monitor path continuity -- i.e., perform proactive | |||
| The ability to monitor path continuity, i.e., perform proactive continuity c | continuity check (CC) for point-to-point (p2p) VXLAN tunnels -- is | |||
| heck (CC) for point-to-point (p2p) VXLAN tunnels, is important. | important. | |||
| The asynchronous mode of BFD, as defined in <xref target="RFC5880"/>, is | The asynchronous mode of BFD, as defined in <xref target="RFC5880" format | |||
| used to monitor a p2p VXLAN tunnel. | ="default"/>, is used to monitor a p2p VXLAN tunnel. | |||
| </t> | </t> | |||
| <t> | ||||
| <t> | In the case where a Multicast Service Node (MSN) (as described in | |||
| In the case where a Multicast Service Node (MSN) (as described in Section 3.3 | <xref target="RFC8293" sectionFormat="of" section="3.3"/>) participates i | |||
| of <xref target="RFC8293"/>) participates in VXLAN, the mechanisms described in | n VXLAN, the | |||
| this | mechanisms described in this | |||
| document apply and can, therefore, be used to test the continuity of the path be | document apply and can, therefore, be used to test the continuity of the | |||
| tween | path between | |||
| the source NVE and the MSN. | the source Network Virtualization Endpoint (NVE) and the MSN. | |||
| </t> | </t> | |||
| <t> | ||||
| <t> | This document describes the use of the Bidirectional Forwarding Detection (B | |||
| This document describes the use of Bidirectional Forwarding Detection (BFD) | FD) protocol | |||
| protocol | ||||
| to enable monitoring continuity of the path between VXLAN VTEPs that are | to enable monitoring continuity of the path between VXLAN VTEPs that are | |||
| performing as Network Virtualization Endpoints, | performing as VNEs, | |||
| and/or between the source NVE and a replicator MSN using a Management VN | and/or between the source NVE and a replicator MSN using a Management | |||
| I (<xref target="management-vni-sec"/>). | VXLAN Network Identifier (VNI) (<xref target="management-vni-sec" format= | |||
| All other uses of the specification to test toward other VXLAN endpoints | "default"/>). | |||
| are out of the scope. | All other uses of the specification to test toward other VXLAN endpoints | |||
| </t> | are out of scope. | |||
| </t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Conventions Used in This Document</name> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Abbreviations</name> | ||||
| <dl indent="9"> | ||||
| <dt>BFD:</dt><dd>Bidirectional Forwarding Detection</dd> | ||||
| <dt>CC:</dt><dd>Continuity Check</dd> | ||||
| <dt>FCS:</dt><dd>Frame Check Sequence</dd> | ||||
| <dt>MSN:</dt><dd>Multicast Service Node</dd> | ||||
| <dt>NVE:</dt><dd>Network Virtualization Endpoint</dd> | ||||
| <dt>p2p:</dt><dd>Point-to-point</dd> | ||||
| <dt>VFI:</dt><dd>Virtual Forwarding Instance</dd> | ||||
| <dt>VM:</dt><dd>Virtual Machine</dd> | ||||
| <dt>VNI:</dt><dd>VXLAN Network Identifier (or VXLAN Segment ID)</dd> | ||||
| <dt>VTEP:</dt><dd>VXLAN Tunnel End Point</dd> | ||||
| <dt>VXLAN:</dt><dd>Virtual eXtensible Local Area Network</dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Requirements Language</name> | ||||
| <t> | ||||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
| IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
| RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| <section title="Conventions Used in this Document"> | </section> | |||
| <section title="Acronyms"> | ||||
| <t>BFD Bidirectional Forwarding Detection </t> | ||||
| <t>CC Continuity Check</t> | ||||
| <!--<t>GTSM Generalized TTL Security Mechanism</t>--> | ||||
| <t>p2p Point-to-point</t> | ||||
| <t>MSN Multicast Service Node</t> | ||||
| <t>NVE Network Virtualization Endpoint</t> | ||||
| <t>VFI Virtual Forwarding Instance</t> | ||||
| <t>VM Virtual Machine</t> | ||||
| <t>VNI VXLAN Network Identifier (or VXLAN Segment ID)</t> | ||||
| <t>VTEP VXLAN Tunnel End Point</t> | ||||
| <t>VXLAN Virtual eXtensible Local Area Network</t> | ||||
| </section> | ||||
| <section title="Requirements Language"> | ||||
| <t> | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | ||||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | ||||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Deployment"> | <name>Deployment</name> | |||
| <t> | <t> | |||
| <xref target="ref-vxlan-fig"/> illustrates the scenario with two servers, ea | <xref target="ref-vxlan-fig" format="default"/> illustrates a scenario with | |||
| ch of them hosting two VMs. | two servers: each hosting two VMs. | |||
| The servers host VTEPs that terminate two VXLAN tunnels with VXLAN Networ | The servers host VTEPs that terminate two VXLAN tunnels with VNI number 1 | |||
| k Identifier (VNI) number 100 | 00 | |||
| and 200 respectively. Separate BFD sessions can be | and 200, respectively. Separate BFD sessions can be | |||
| established between the VTEPs (IP1 and IP2) for monitoring | established between the VTEPs (IP1 and IP2) for monitoring | |||
| each of the VXLAN tunnels (VNI 100 and 200). Using a BFD session to monit or a set of VXLAN VNIs | each of the VXLAN tunnels (VNI 100 and 200). Using a BFD session to monit or a set of VXLAN VNIs | |||
| between the same pair of VTEPs might help to detect and localize problems caused by misconfiguration. | between the same pair of VTEPs might help to detect and localize problems caused by misconfiguration. | |||
| An implementation that supports this specification MUST | An implementation that supports this specification <bcp14>MUST</bcp14> | |||
| be able to control the number of BFD sessions | be able to control the number of BFD sessions | |||
| that can be created between the same pair of VTEPs. | that can be created between the same pair of VTEPs. | |||
| This method is applicable whether the VTEP is a virtual or physical devi ce. | This method is applicable whether the VTEP is a virtual or physical devi ce. | |||
| </t> | </t> | |||
| <t keepWithNext="true"/> | ||||
| <figure anchor="ref-vxlan-fig"> | ||||
| <name>Reference VXLAN Domain</name> | ||||
| <artwork align="left" name="" type="" alt=""><![CDATA[ | ||||
| <figure anchor="ref-vxlan-fig" align="left" title="Reference VXLAN Domain" | ||||
| > | ||||
| <preamble/> | ||||
| <artwork align="left"> | ||||
| <![CDATA[ | ||||
| +------------+-------------+ | +------------+-------------+ | |||
| | Server 1 | | | Server 1 | | |||
| | +----+----+ +----+----+ | | | +----+----+ +----+----+ | | |||
| | |VM1-1 | |VM1-2 | | | | |VM1-1 | |VM1-2 | | | |||
| | |VNI 100 | |VNI 200 | | | | |VNI 100 | |VNI 200 | | | |||
| | | | | | | | | | | | | | | |||
| | +---------+ +---------+ | | | +---------+ +---------+ | | |||
| | VTEP (IP1) | | | VTEP (IP1) | | |||
| +--------------------------+ | +--------------------------+ | |||
| | | | | |||
| skipping to change at line 245 ¶ | skipping to change at line 187 ¶ | |||
| | | | | |||
| +------------+-------------+ | +------------+-------------+ | |||
| | VTEP (IP2) | | | VTEP (IP2) | | |||
| | +----+----+ +----+----+ | | | +----+----+ +----+----+ | | |||
| | |VM2-1 | |VM2-2 | | | | |VM2-1 | |VM2-2 | | | |||
| | |VNI 100 | |VNI 200 | | | | |VNI 100 | |VNI 200 | | | |||
| | | | | | | | | | | | | | | |||
| | +---------+ +---------+ | | | +---------+ +---------+ | | |||
| | Server 2 | | | Server 2 | | |||
| +--------------------------+ | +--------------------------+ | |||
| ]]> | ||||
| </artwork> | ||||
| </figure> | ||||
| <t> | ]]></artwork> | |||
| At the same time, a service layer BFD session may be used between the ten | </figure> | |||
| ants of VTEPs IP1 and IP2 | <t> | |||
| to provide end-to-end fault management (this use case is outside the scop | At the same time, a service-layer BFD session may be used between the | |||
| e of this document). In | tenants of VTEPs IP1 and IP2 | |||
| such a case, for VTEPs, the BFD Control packets of that session are indis | to provide end-to-end fault management; this use case is outside the | |||
| tinguishable from data packets. | scope of this document. In | |||
| </t> | such a case, for VTEPs, the BFD Control packets of that session are | |||
| <t> | indistinguishable from data packets. | |||
| For BFD Control packets encapsulated in VXLAN (<xref target="vxlan-bfd-en | </t> | |||
| cap-fig"/>), | <t> | |||
| For BFD Control packets encapsulated in VXLAN (<xref target="vxlan-bfd-en | ||||
| cap-fig" format="default"/>), | ||||
| the inner destination IP address | the inner destination IP address | |||
| SHOULD be set to one of the loopback addresses from | <bcp14>SHOULD</bcp14> be set to one of the loopback addresses from | |||
| 127/8 range for IPv4 or to one of IPv4-mapped IPv6 loopback addresses fro m ::ffff:127.0.0.0/104 range for IPv6. | 127/8 range for IPv4 or to one of IPv4-mapped IPv6 loopback addresses fro m ::ffff:127.0.0.0/104 range for IPv6. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="management-vni-sec" numbered="true" toc="default"> | ||||
| <section anchor="management-vni-sec" title="Use of the Management VNI"> | <name>Use of the Management VNI</name> | |||
| <t> | <t> | |||
| In most cases, a single BFD session is sufficient for the given VTEP to monitor | In most cases, a single BFD session is sufficient for the given VTEP to monitor | |||
| the reachability of a remote VTEP, regardless of the number of VNIs. | the reachability of a remote VTEP, regardless of the number of VNIs. | |||
| BFD control messages MUST be sent using the Management VNI which acts | BFD control messages <bcp14>MUST</bcp14> be sent using the Management VNI, w | |||
| as the as control and management channel between VTEPs. | hich acts | |||
| An implementation MAY support operating BFD on another | as the control and management channel between VTEPs. | |||
| (non-Management) VNI although the implications of this are outside | An implementation <bcp14>MAY</bcp14> support operating BFD on another | |||
| (non-Management) VNI, although the implications of this are outside | ||||
| the scope of this document. The selection of the VNI number | the scope of this document. The selection of the VNI number | |||
| of the Management VNI MUST be controlled through a management plane. An implemen | of the Management VNI <bcp14>MUST</bcp14> be controlled through a management pla | |||
| tation MAY use VNI number 1 as | ne. An implementation <bcp14>MAY</bcp14> use VNI number 1 as | |||
| the default value for the Management VNI. All VXLAN packets received on the Mana | the default value for the Management VNI. All VXLAN packets received on the Mana | |||
| gement VNI MUST be processed locally | gement VNI <bcp14>MUST</bcp14> be processed locally | |||
| and MUST NOT be forwarded to a tenant. | and <bcp14>MUST NOT</bcp14> be forwarded to a tenant. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="bfd-transmit-vxlan-sec" numbered="true" toc="default"> | ||||
| <section anchor="bfd-transmit-vxlan-sec" title="BFD Packet Transmission o | <name>BFD Packet Transmission over VXLAN Tunnel</name> | |||
| ver VXLAN Tunnel"> | <t> | |||
| <t> | BFD packets <bcp14>MUST</bcp14> be encapsulated and sent to a remote VTEP | |||
| BFD packets MUST be encapsulated and sent to a remote VTEP as explained i | as explained in this section. | |||
| n this section. | Implementations <bcp14>SHOULD</bcp14> ensure that the BFD packets follow | |||
| Implementations SHOULD ensure that the BFD packets follow the same | the same | |||
| forwarding path as VXLAN data packets within the sender system. | forwarding path as VXLAN data packets within the sender system. | |||
| </t> | </t> | |||
| <t> | ||||
| <!-- | BFD packets are encapsulated in VXLAN as described below. | |||
| <section title="BFD Packet Encapsulation in VXLAN" anchor="encap" | The VXLAN packet format is defined in | |||
| > | <xref target="RFC7348" sectionFormat="of" section="5"/>. | |||
| --> | The value in the VNI field of the VXLAN header <bcp14>MUST</bcp14> | |||
| <t> | be set to the value selected as the Management VNI. | |||
| BFD packets are encapsulated in VXLAN as described below. | The outer IP/UDP and VXLAN headers <bcp14>MUST</bcp14> | |||
| The VXLAN packet format is defined in Section 5 of <xref | be encoded by the sender, as defined in <xref target="RFC7348" format="def | |||
| target="RFC7348"/>. | ault"/>.</t> | |||
| The value in the VNI field of the VXLAN header MUST | ||||
| be set to the value selected as the Management VNI. | ||||
| The Outer IP/UDP and VXLAN headers MUST | ||||
| be encoded by the sender as defined in <xref targ | ||||
| et="RFC7348"/>.</t> | ||||
| <t> | <figure anchor="vxlan-bfd-encap-fig"> | |||
| <figure align="left" anchor="vxlan-bfd-encap-fig" title="VXLAN Encapsu | <name>VXLAN Encapsulation of BFD Control Packet</name> | |||
| lation of BFD Control Packet"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| ~ Outer Ethernet Header ~ | ~ Outer Ethernet Header ~ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| ~ Outer IPvX Header ~ | ~ Outer IPvX Header ~ | |||
| | | | | | | |||
| skipping to change at line 336 ¶ | skipping to change at line 277 ¶ | |||
| ~ Inner UDP Header ~ | ~ Inner UDP Header ~ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| ~ BFD Control Packet ~ | ~ BFD Control Packet ~ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Outer Ethernet FCS | | | Outer Ethernet FCS | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </t> | <t> | |||
| The BFD packet <bcp14>MUST</bcp14> be carried inside the inner Ethernet f | ||||
| <t> | rame of the VXLAN packet. | |||
| The BFD packet MUST be carried inside the inner Ethernet frame | The choice of destination Media Access Control (MAC) and destination | |||
| of the VXLAN packet. | IP addresses for the inner Ethernet frame <bcp14>MUST</bcp14> | |||
| The choice of Destination MAC and Destination IP addresses for | ensure that the BFD Control packet is not forwarded to a tenant but is pr | |||
| the inner Ethernet frame MUST | ocessed locally at the remote VTEP. | |||
| ensure that the BFD Control packet is not forwarded to a tenan | The inner Ethernet frame carrying the BFD Control packet has the followin | |||
| t but is processed locally at the remote VTEP. | g format: | |||
| The inner Ethernet frame carrying the BFD Control packet- has | </t> | |||
| the following format: | <dl newline="true"> | |||
| <list> | ||||
| <t> Ethernet Header: | ||||
| <list style="hanging"> | ||||
| <t>Destination MAC: A Management VNI, | ||||
| which does not have any tenants, will | ||||
| have no dedicated MAC address for decapsulated traffic.  The value (TBD1) | ||||
| SHOULD be used in this field.</t> | ||||
| <t>Source MAC: MAC address associated | ||||
| with the originating VTEP.</t> | ||||
| <t>Ethertype: is set to 0x0800 if the | ||||
| inner IP header is IPv4, and is set to 0x86DD if the inner IP header is IPv6.</t | ||||
| > | ||||
| </list> | ||||
| </t> | ||||
| <t>IP header: | ||||
| <list style="hanging"> | ||||
| <t>Destination IP: IP address MUST NOT | ||||
| be of one of tenant's IP addresses. | ||||
| The IP address SHOULD be selected | ||||
| from the range 127/8 for IPv4, for IPv | ||||
| 6 - from the range ::ffff:127.0.0.0/104. | ||||
| Alternatively, the destination IP addr | ||||
| ess MAY be set to VTEP's IP address.</t> | ||||
| <t>Source IP: IP address of the origin | ||||
| ating VTEP.</t> | ||||
| <t>TTL or Hop Limit: MUST be set to 25 | ||||
| 5 in accordance with <xref target="RFC5881"/>. | ||||
| </t> | ||||
| <!-- | ||||
| <t>[Ed.Note]:Use of inner source and d | ||||
| estination IP | ||||
| addresses needs more discussion by the | ||||
| WG.</t> | ||||
| --> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <dt>Ethernet Header:</dt> | |||
| The fields of the UDP header and the BFD Control packet are en | <dd> | |||
| coded as specified | <dl newline="false" spacing="normal"> | |||
| in <xref target="RFC5881"/>. | <dt>Destination MAC:</dt><dd>A Management VNI, which does not have | |||
| </t> | any tenants, will have no dedicated MAC address for decapsulated | |||
| traffic. The value 00-52-02 <bcp14>SHOULD</bcp14> be used in | ||||
| this field.</dd> | ||||
| <dt>Source MAC:</dt><dd>MAC address associated with the originating | ||||
| VTEP.</dd> | ||||
| <dt>Ethertype:</dt><dd>This is set to 0x0800 if the inner IP header | ||||
| is | ||||
| IPv4 and set to 0x86DD if the inner IP header is IPv6.</dd> | ||||
| </dl> | ||||
| </dd> | ||||
| </list></t> | <dt>IP header:</dt> | |||
| <!-- | <dd> | |||
| </section> | <dl newline="false" spacing="normal"> | |||
| --> | <dt>Destination IP:</dt><dd>This IP address <bcp14>MUST | |||
| <!-- | NOT</bcp14> be of one of tenant's IP addresses. | |||
| <section title="BFD Packet Encapsulation in VXLAN-GPE" anchor="en | The IP address <bcp14>SHOULD</bcp14> be selected | |||
| cap-gpe"> | from the range 127/8 for IPv4 and from the range | |||
| <t> If VTEP suppors Generic Protocol Extension (GPE) head | ::ffff:127.0.0.0/104 for IPv6. | |||
| er capabilities then VXLAN-GPE MAY be used. | Alternatively, the destination IP address <bcp14>MAY</bcp14> be set t | |||
| The VXLAN-GPE header MUST be encoded as per Section 3.3 o | o VTEP's IP address.</dd> | |||
| f <xref target="I-D.ietf-nvo3-vxlan-gpe"/>. Next Protocol Field in | <dt>Source IP:</dt><dd>IP address of the originating VTEP.</dd> | |||
| VXLAN-GPE header MAY be set to indicate IPv4or IPv6 paylo | <dt>TTL or Hop Limit:</dt><dd><bcp14>MUST</bcp14> be set to 255, in | |||
| ad. Then BFD control packet MUST be encapsulated | accordance with <xref target="RFC5881" format="default"/>.</dd> | |||
| using IP/UDP format per <xref target="RFC5881"/>. Next Pr | </dl> | |||
| otocol Field in VXLAN-GPE header MAY be set to indicate | </dd> | |||
| that payload is OAM packet. Then OOAM Common Header | </dl> | |||
| <xref target="I-D.ooamdt-rtgwg-ooam-header"/> immediately | ||||
| follows the VXLAN-GPE header and | ||||
| defines encapsulation of the BFD control packet. Theencap | ||||
| sulation MAY use IP/UDP form or | ||||
| PW-ACH encapsulation <xref target="RFC5885"/>.</t> | ||||
| <t>Details of how the VTEP is instructed to choose VXLAN | <t> | |||
| or GPE header are outside the scope of this document.</t> | The destination UDP port is set to 3784 and the fields of the | |||
| BFD Control packet are encoded as specified in <xref target="RFC5881" format="de | ||||
| fault"/>.</t> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Reception of BFD Packet from VXLAN Tunnel"> | <name>Reception of BFD Packet from VXLAN Tunnel</name> | |||
| <t> | <t> | |||
| Once a packet is received, the VTEP MUST validate the packet. | Once a packet is received, the VTEP <bcp14>MUST</bcp14> validate the pac | |||
| If the packet is received on the management VNI and is identified as BFD | ket. | |||
| control packet addressed to the VTEP, | If the packet is received on the Management VNI and is identified as a | |||
| and then the packet can be processed further. Processing of BFD control | BFD Control packet addressed to the VTEP, | |||
| packets received on non-management VNI | then the packet can be processed further. Processing of BFD Control | |||
| packets received on a non-Management VNI | ||||
| is outside the scope of this specification. | is outside the scope of this specification. | |||
| </t> | </t> | |||
| <t> | ||||
| <t> | ||||
| The received packet's inner IP payload is then validated according to | The received packet's inner IP payload is then validated according to | |||
| Sections 4 and 5 in <xref target="RFC5881"/>. | Sections <xref target="RFC5881" sectionFormat="bare" section="4" /> | |||
| </t> | and <xref target="RFC5881" sectionFormat="bare" section="5"/> in <xref ta | |||
| rget="RFC5881" format="default"/>. | ||||
| <!-- | </t> | |||
| <t> To ensure that the BFD session monitors the intended VXLAN Ne | ||||
| twork Identifier (VNI) | ||||
| in a remote VTEP, a lookup SHOULD be performed with the MAC-DA an | ||||
| d VNI as key in the | ||||
| Virtual Forwarding Instance (VFI) table of the originating/termin | ||||
| ating VTEP to exercise the VFI associated with the VNI.</t> | ||||
| --> | ||||
| <!-- | ||||
| <section title="Demultiplexing of the BFD Packet"> | ||||
| <t>Demultiplexing of IP BFD packet has been defined in Section 3 of <xre | ||||
| f target="RFC5881"/>. | ||||
| Since multiple BFD sessions may be running between two VTEPs, there | ||||
| needs to be a mechanism for demultiplexing received BFD packets to | ||||
| the proper session. For demultiplexing packets with | ||||
| Your Discriminator equal to 0, a BFD session MUST be identified using | ||||
| the logical link over which the BFD Control packet is received. | ||||
| In the case of VXLAN, the VNI number | ||||
| identifies that logical link. | ||||
| If BFD packet is received with non-zero Your Discriminator, then the BFD s | ||||
| ession MUST | ||||
| be demultiplexed only with Your Discriminator as the key.</t> | ||||
| </section> | ||||
| --> | ||||
| </section> | </section> | |||
| <!-- | <section numbered="true" toc="default"> | |||
| <section title="Reception of BFD packet from VXLAN-GPE Tunnel"> | <name>Echo BFD</name> | |||
| <t>TBD</t> | <t>Support for echo BFD is outside the scope of this document.</t> | |||
| <section title="Demultiplexing of the BFD packet"> | ||||
| <t>TBD</t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="Echo BFD"> | ||||
| <t>Support for echo BFD is outside the scope of this document.</t> | ||||
| </section> | </section> | |||
| <section anchor="iana-consideration" numbered="true" toc="default"> | ||||
| <section anchor="iana-consideration" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <t> | <t> | |||
| IANA is requested to assign a single MAC address to the value TBD1 from the | IANA has assigned a single MAC address of the value 00-52-02 from the "Unassigne | |||
| "IANA Unicast 48-bit MAC Address" registry from the "Unassigned (small allocatio | d (small allocations)" block of the "IANA Unicast 48-bit MAC Addresses" registry | |||
| ns)" block. | as follows: | |||
| The Usage field will be "BFD for VXLAN" with a Reference field of this document. | the "Usage" field is "BFD for VXLAN". The "Reference" is this document. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Security Considerations"> | <name>Security Considerations</name> | |||
| <!-- | ||||
| <t> | ||||
| The document requires setting the inner IP TTL or Hop Limit to 1, which | ||||
| could be used as a DDoS attack vector. | ||||
| Thus the implementation MUST have throttling in place to control the rat | ||||
| e of BFD Control packets sent to the control plane. | ||||
| On the other hand, over-aggressive throttling of BFD Control packets may | ||||
| become the cause of the inability to form and maintain | ||||
| BFD session at scale. Hence, throttling of BFD Control packets SHOULD be | ||||
| adjusted to permit BFD to work according to its | ||||
| procedures. | ||||
| </t> | ||||
| --> | ||||
| <t> | <t> | |||
| Security issues discussed in <xref target="RFC5880"/>, <xref target="RFC | Security issues discussed in <xref target="RFC5880" | |||
| 5881"/>, and <xref target="RFC7348"/> | format="default"/>, <xref target="RFC5881" format="default"/>, and | |||
| <xref target="RFC7348" format="default"/> | ||||
| apply to this document. | apply to this document. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This document recommends using an address from the internal host loopbac | ||||
| This document recommends using an address from the Internal host loopbac | k addresses | |||
| k addresses | 127/8 range for IPv4, or an IP4-mapped IPv6 loopback address from the | |||
| 127/8 range for IPv4 or an IP4-mapped IPv6 loopback address from ::ffff:1 | ::ffff:127.0.0.0/104 range for IPv6, | |||
| 27.0.0.0/104 range for IPv6 | ||||
| as the destination IP address in the inner IP header. Using such an addr ess prevents | as the destination IP address in the inner IP header. Using such an addr ess prevents | |||
| the forwarding of the encapsulated BFD control message by a transient no | the forwarding of the encapsulated BFD control message by a transient | |||
| de in case the VXLAN tunnel is broken as | node, in case the VXLAN tunnel is broken, in | |||
| according to <xref target="RFC1812"/>. | accordance with <xref target="RFC1812" format="default"/>. | |||
| <list> | </t> | |||
| <t> | <aside> | |||
| A router SHOULD NOT forward, except over a loopback interface, any | <t> | |||
| A router <bcp14>SHOULD NOT</bcp14> forward, except over a loopback interfa | ||||
| ce, any | ||||
| packet that has a destination address on network 127. A router | packet that has a destination address on network 127. A router | |||
| MAY have a switch that allows the network manager to disable these | <bcp14>MAY</bcp14> have a switch that allows the network manager to disabl | |||
| checks. If such a switch is provided, it MUST default to | e these | |||
| performing the checks. | checks. If such a switch is provided, it <bcp14>MUST</bcp14> default to | |||
| </t> | performing the checks.</t> | |||
| </list> | </aside> | |||
| <t> | ||||
| The use of IPv4-mapped IPv6 addresses | The use of IPv4-mapped IPv6 addresses | |||
| has the same property as using the IPv4 network 127/8, moreover, the IPv | has the same property as using the IPv4 network 127/8. Moreover, the IPv | |||
| 4-mapped | 4-mapped | |||
| IPv6 addresses prefix is not advertised in any routing protocol.</t> | IPv6 addresses' prefix is not advertised in any routing protocol.</t> | |||
| <t> | ||||
| <t> | ||||
| If the implementation supports establishing multiple BFD sessions | If the implementation supports establishing multiple BFD sessions | |||
| between the same pair of VTEPs, there SHOULD be a mechanism | between the same pair of VTEPs, there <bcp14>SHOULD</bcp14> be a mechani sm | |||
| to control the maximum number of such sessions that can be active | to control the maximum number of such sessions that can be active | |||
| at the same time. | at the same time. | |||
| </t> | </t> | |||
| </section> | ||||
| <section title="Contributors"> | ||||
| <t> | ||||
| <figure> | ||||
| <artwork> | ||||
| <![CDATA[ | ||||
| Reshad Rahman | ||||
| rrahman@cisco.com | ||||
| Cisco | ||||
| ]]> | ||||
| </artwork> | ||||
| </figure> | ||||
| </t> | ||||
| </section> | ||||
| <section title="Acknowledgments"> | ||||
| <t>Authors would like to thank Jeff Haas of Juniper Networks for his review | ||||
| s and feedback on this material.</t> | ||||
| <t>Authors would also like to thank Nobo Akiya, Marc Binderberger, Shahr | ||||
| am Davari, | ||||
| Donald E. Eastlake 3rd, Anoop Ghanwani, Dinesh Dutt, Joel Halpern, and C | ||||
| arlos Pignataro for the extensive reviews | ||||
| and the most detailed and constructive comments.</t> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <!-- *****BACK MATTER ***** --> | ||||
| <back> | <back> | |||
| <!-- References split into informative and normative --> | ||||
| <references title="Normative References"> | ||||
| <?rfc include="reference.RFC.5880"?> | ||||
| <?rfc include="reference.RFC.5881"?> | ||||
| <?rfc include="reference.RFC.7348"?> | <references> | |||
| <?rfc include="reference.RFC.2119"?> | <name>References</name> | |||
| <?rfc include="reference.RFC.8174"?> | <references> | |||
| <?rfc include="reference.RFC.1812"?> | <name>Normative References</name> | |||
| <!-- <?rfc include="reference.RFC.5082"?> --> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <!-- | FC.5880.xml"/> | |||
| <?rfc include="reference.I-D.ietf-bfd-seamless-base"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| --> | FC.5881.xml"/> | |||
| <!-- | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc include="reference.I-D.ashwood-nvo3-operational-requirement"?> | FC.7348.xml"/> | |||
| <!-- | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc include="reference.I-D.ietf-nvo3-vxlan-gpe"?> | FC.2119.xml"/> | |||
| --> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <!-- | FC.8174.xml"/> | |||
| <?rfc include="reference.I-D.ietf-bfd-multipoint"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| --> | FC.1812.xml"/> | |||
| <!-- | </references> | |||
| <?rfc include="reference.I-D.ooamdt-rtgwg-ooam-header"?> | <references> | |||
| --> | <name>Informative References</name> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8293.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8365.xml"/> | ||||
| </references> | ||||
| </references> | </references> | |||
| <references title="Informational References"> | <section numbered="false" toc="default"> | |||
| <name>Acknowledgments</name> | ||||
| <?rfc include="reference.RFC.8293"?> | <t>The authors would like to thank <contact fullname="Jeff Haas"/> of | |||
| <?rfc include="reference.RFC.8365"?> | Juniper Networks for his reviews and feedback on this material.</t> | |||
| <t>The authors would also like to thank <contact fullname="Nobo Akiya"/>, | ||||
| <contact fullname="Marc Binderberger"/>, <contact fullname="Shahram Davari | ||||
| "/>, | ||||
| <contact fullname="Donald E. Eastlake 3rd"/>, <contact | ||||
| fullname="Anoop Ghanwani"/>, <contact fullname="Dinesh Dutt"/>, | ||||
| <contact fullname="Joel Halpern"/>, and <contact fullname="Carlos | ||||
| Pignataro"/> for the extensive reviews | ||||
| and the most detailed and constructive comments.</t> | ||||
| </section> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Contributors</name> | ||||
| <contact fullname="Reshad Rahman"> | ||||
| <organization>Cisco</organization> | ||||
| <address> | ||||
| <email>rrahman@cisco.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| </section> | ||||
| </references> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 63 change blocks. | ||||
| 458 lines changed or deleted | 309 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/ | ||||