| rfc9251xml2.original.xml | rfc9251.xml | |||
|---|---|---|---|---|
| <?xml version='1.0'?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc SYSTEM 'rfc2629.dtd' [ | <!DOCTYPE rfc [ | |||
| ]> | <!ENTITY nbsp " "> | |||
| <?rfc toc="yes"?> | <!ENTITY zwsp "​"> | |||
| <?rfc tocompact="no"?> | <!ENTITY nbhy "‑"> | |||
| <?rfc tocdepth="6"?> | <!ENTITY wj "⁠"> | |||
| <?rfc symrefs="yes"?> | ]> | |||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <?rfc strict="yes" ?> | ||||
| <rfc category="std" docName="draft-ietf-bess-evpn-igmp-mld-proxy-21"> | ||||
| <!-- ***** FRONT MATTER ***** --> | ||||
| <front> | ||||
| <title abbrev="IGMP and MLD Proxy for EVPN">IGMP and MLD Proxy for EVPN</tit | ||||
| le> | ||||
| <author initials="A" surname="Sajassi" | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-i | |||
| fullname="Ali Sajassi"> | etf-bess-evpn-igmp-mld-proxy-21" obsoletes="" updates="" submissionType="IETF" c | |||
| <organization>Cisco Systems</organization> | onsensus="true" ipr="trust200902" xml:lang="en" tocInclude="true" tocDepth="6" s | |||
| ymRefs="true" sortRefs="true" version="3" number="9251"> | ||||
| <!-- xml2rfc v2v3 conversion 3.12.2 --> | ||||
| <front> | ||||
| <title abbrev="IGMP and MLD Proxies for EVPN"> Internet Group Management Pro | ||||
| tocol (IGMP) and Multicast Listener Discovery (MLD) Proxies for Ethernet VPN (EV | ||||
| PN)</title> | ||||
| <seriesInfo name="RFC" value="9251"/> | ||||
| <author initials="A" surname="Sajassi" fullname="Ali Sajassi"> | ||||
| <organization>Cisco Systems</organization> | ||||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>821 Alder Drive,</street> | <street>821 Alder Drive</street> | |||
| <code>95035</code> | ||||
| <region>MILPITAS, CALIFORNIA 95035</region> | <city>Milpitas</city> | |||
| <region>CA</region> | ||||
| <country>UNITED STATES</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <phone/> | ||||
| <phone></phone> | <email>sajassi@cisco.com</email> | |||
| <email>sajassi@cisco.com</email> | </address> | |||
| </address> | ||||
| </author> | </author> | |||
| <author initials="S" surname="Thoria" | <author initials="S" surname="Thoria" fullname="Samir Thoria"> | |||
| fullname="Samir Thoria"> | ||||
| <organization>Cisco Systems</organization> | <organization>Cisco Systems</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>821 Alder Drive,</street> | <street>821 Alder Drive</street> | |||
| <code>95035</code> | ||||
| <region>MILPITAS, CALIFORNIA 95035</region> | <city>Milpitas</city> | |||
| <region>CA</region> | ||||
| <country>UNITED STATES</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <phone/> | ||||
| <phone></phone> | <email>sthoria@cisco.com</email> | |||
| <email>sthoria@cisco.com</email> | </address> | |||
| </address> | ||||
| </author> | </author> | |||
| <author initials="M" surname="Mishra" | <author initials="M" surname="Mishra" fullname="Mankamana Mishra"> | |||
| fullname="Mankamana Mishra"> | ||||
| <organization>Cisco Systems</organization> | <organization>Cisco Systems</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>821 Alder Drive,</street> | <street>821 Alder Drive</street> | |||
| <code>95035</code> | ||||
| <region>MILPITAS, CALIFORNIA 95035</region> | <city>Milpitas</city> | |||
| <region>CA</region> | ||||
| <country>UNITED STATES</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <phone/> | ||||
| <phone></phone> | <email>mankamis@cisco.com</email> | |||
| <email>mankamis@cisco.com</email> | </address> | |||
| </address> | ||||
| </author> | </author> | |||
| <author initials="K" surname="Patel" fullname="Keyur Patel"> | ||||
| <author initials="K" surname="Patel" | ||||
| fullname="Keyur PAtel"> | ||||
| <organization>Arrcus</organization> | <organization>Arrcus</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <country>United States of America</country> | |||
| </postal> | ||||
| <region></region> | <phone/> | |||
| <email>keyur@arrcus.com</email> | ||||
| <country>UNITED STATES</country> | </address> | |||
| </postal> | ||||
| <phone></phone> | ||||
| <email>keyur@arrcus.com</email> | ||||
| </address> | ||||
| </author> | </author> | |||
| <author initials="J" surname="Drake" fullname="John Drake"> | ||||
| <author initials="J" surname="Drake" | ||||
| fullname="John Drake"> | ||||
| <organization>Juniper Networks</organization> | <organization>Juniper Networks</organization> | |||
| <address> | <address> | |||
| <postal> | <email>jdrake@juniper.net</email> | |||
| <street></street> | </address> | |||
| <region></region> | ||||
| <country></country> | ||||
| </postal> | ||||
| <phone></phone> | ||||
| <email>jdrake@juniper.net</email> | ||||
| </address> | ||||
| </author> | </author> | |||
| <author initials="W" surname="Lin" fullname="Wen Lin"> | ||||
| <author initials="W" surname="Lin" | ||||
| fullname="Wen Lin"> | ||||
| <organization>Juniper Networks</organization> | <organization>Juniper Networks</organization> | |||
| <address> | <address> | |||
| <postal> | <email>wlin@juniper.net</email> | |||
| <street></street> | </address> | |||
| <region></region> | ||||
| <country></country> | ||||
| </postal> | ||||
| <phone></phone> | ||||
| <email>wlin@juniper.net</email> | ||||
| </address> | ||||
| </author> | </author> | |||
| <date year="2022" month="May"/> | ||||
| <date year="2022"/> | <area>RTG</area> | |||
| <area>Routing</area> | <workgroup>BESS</workgroup> | |||
| <workgroup>BESS WorkGroup</workgroup> | ||||
| <abstract> | <abstract> | |||
| <t>This document describes how to support endpoints running | ||||
| <t> | the Internet Group Management Protocol (IGMP) or Multicast Listener Discov | |||
| This document describes how to support efficiently endpoints runn | ery (MLD) efficiently | |||
| ing | for the multicast services over an Ethernet VPN (EVPN) network by incorpor | |||
| IGMP(Internet Group Management Protocol) or MLD (Multicast Listen | ating | |||
| er Discovery) for the multicast services | IGMP/MLD Proxy procedures on EVPN Provider Edges (PEs). | |||
| over an EVPN network by incorporating | </t> | |||
| IGMP/MLD proxy procedures on EVPN (Ethernet VPN) PEs. | ||||
| </t> | ||||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <!-- ***** MIDDLE MATTER ***** --> | ||||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <t> | <t>In data center (DC) applications, a point of delivery (POD) can consist | |||
| In DC applications, a point of delivery (POD) can consist of | of a | |||
| a | collection of servers supported by several top-of-rack (ToR) and | |||
| collection of servers supported by several top of rack (ToR) | spine switches. This collection of servers and switches are self-contained | |||
| and | and may have their own control protocol for intra-POD | |||
| spine switches. This collection of servers and switches are | communication and orchestration. However, EVPN is used as a standard | |||
| self | way of inter-POD communication for both intra-DC and inter-DC. A | |||
| contained and may have their own control protocol for intra- | subnet can span across multiple PODs and DCs. EVPN provides a robust | |||
| POD | multi-tenant solution with extensive multihoming capabilities to | |||
| communication and orchestration. However, EVPN is used as st | stretch a subnet (VLAN) across multiple PODs and DCs. There can be | |||
| andard | many hosts (several hundreds) attached to a subnet that is | |||
| way of inter-POD communication for both intra-DC and inter-D | stretched across several PODs and DCs. | |||
| C. A | </t> | |||
| subnet can span across multiple PODs and DCs. EVPN provides | <t>These hosts express their interests in multicast groups on a | |||
| a robust | given subnet/VLAN by sending IGMP/MLD Membership Reports for | |||
| multi-tenant solution with extensive multi-homing capabiliti | their interested multicast group(s). Furthermore, an IGMP/MLD router | |||
| es to | periodically sends Membership Queries to find out if there are hosts | |||
| stretch a subnet (VLAN) across multiple PODs and DCs. There | on that subnet that are still interested in receiving multicast | |||
| can be | traffic for that group. The IGMP/MLD Proxy solution described in this | |||
| many hosts (several hundreds) attached to a subnet that is | document accomplishes three objectives: | |||
| stretched across several PODs and DCs. | </t> | |||
| <ol spacing="normal" type="1"> | ||||
| </t> | <li>Reduce flooding of IGMP/MLD messages: Just like the ARP / Neighbor Di | |||
| scovery (ND) | ||||
| <t> | suppression | |||
| These hosts express their interests in multicast groups | mechanism in EVPN to reduce the flooding of ARP messages over EVPN, | |||
| on a | it is also desired to have a mechanism to reduce the flooding of IGMP/MLD | |||
| given subnet/VLAN by sending IGMP/MLD Membership Reports | messages (both Queries and Membership Reports) in EVPN.</li> | |||
| for | <li>Distributed anycast multicast proxy: It is desirable for the EVPN | |||
| their interested multicast group(s). Furthermore, an IGM | network to act as a distributed anycast multicast router with respect | |||
| P/MLD router | to IGMP/MLD Proxy function for all the hosts attached to that | |||
| periodically sends membership queries to find out if the | subnet.</li> | |||
| re are hosts | <li>Selective multicast: This describes forwarding multicast traffic ove | |||
| on that subnet that are still interested in receiving mu | r the EVPN | |||
| lticast | network such that it only gets forwarded to the PEs that have | |||
| traffic for that group. The IGMP/MLD Proxy solution desc | interests in the multicast group(s). This document shows how this objecti | |||
| ribed in this | ve may be achieved | |||
| document accomplishes three objectives: | when ingress replication is used to distribute the multicast traffic | |||
| among the PEs. Procedures for supporting selective multicast using | ||||
| <list style="numbers"> | Point-to-Multipoint (P2MP) tunnels can be found in <xref target="I-D.ietf | |||
| <t> | -bess-evpn-bum-procedure-updates" | |||
| Reduce flooding of IGMP/MLD messages: ju | format="default"/>.</li> | |||
| st like the ARP/ND suppression | </ol> | |||
| mechanism in EVPN to reduce the flooding | <t>The first two objectives are achieved by using the IGMP/MLD Proxy on th | |||
| of ARP messages over EVPN, | e | |||
| it is also desired to have a mechanism t | PE. The third objective is achieved by setting up a multicast | |||
| o reduce the flooding of IGMP/MLD | tunnel among only the PEs that have | |||
| messages (both Queries and Membership Re | interest in the multicast group(s) based on the trigger from | |||
| ports) in EVPN. | IGMP/MLD Proxy processes. The proposed solutions for each of these | |||
| </t> | objectives are discussed in the following sections. | |||
| </t> | ||||
| <t> | </section> | |||
| Distributed anycast multicast proxy | <section numbered="true" toc="default"> | |||
| : it is desirable for the EVPN | <name>Specification of Requirements</name> | |||
| network to act as a distributed any | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| cast multicast router with respect | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp1 | |||
| to IGMP/MLD proxy function for all | 4>", | |||
| the hosts attached to that | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED< | |||
| subnet. | /bcp14>", | |||
| </t> | "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and | |||
| "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as descri | ||||
| <t> | bed in | |||
| Selective Multicast: to forward | BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" | |||
| multicast traffic over EVPN | format="default"/> when, and only when, they appear in all capitals, as s | |||
| network such that it only gets f | hown here. | |||
| orwarded to the PEs that have | </t> | |||
| interest in the multicast group( | </section> | |||
| s). This document shows how this objective may be achieved | <section numbered="true" toc="default"> | |||
| when Ingress Replication is used | <name>Terminology</name> | |||
| to distribute the multicast traffic | <dl newline="false" spacing="normal"> | |||
| among the PEs. Procedures for s | <dt> AC:</dt> | |||
| upporting selective multicast using | <dd> Attachment Circuit</dd> | |||
| P2MP tunnels can be found in <xr | <dt>All-Active Redundancy Mode:</dt> | |||
| ef target="I-D.ietf-bess-evpn-bum-procedure-updates"/> | <dd> When all PEs attached to an Ethernet | |||
| </t> | segment are allowed to forward known unicast traffic to/from that | |||
| </list> | Ethernet segment for a given VLAN, then the Ethernet segment is | |||
| </t> | defined to be operating in All-Active redundancy mode.</dd> | |||
| <dt>BD:</dt> | ||||
| <t> | <dd> Broadcast Domain. As per <xref target="RFC7432" format="default"/>, | |||
| The first two objectives are achieved by using IGMP/MLD | an EVPN instance | |||
| proxy on the | (EVI) consists of a single BD | |||
| PE. The third objective is achieved by setting up a mul | or multiple BDs. In case of a VLAN bundle and a VLAN-aware bundle service | |||
| ticast | model, an EVI contains multiple BDs. Also, in this document, BD and | |||
| tunnel only among the PEs that have | subnet are equivalent terms.</dd> | |||
| interest in that multicast group(s) based on the trigge | <dt>DC:</dt> | |||
| r from | <dd> Data Center</dd> | |||
| IGMP/MLD proxy processes. The proposed solutions for ea | <dt>ES:</dt> | |||
| ch of these | <dd> Ethernet segment. This is when a customer site (device or network) i | |||
| objectives are discussed in the following sections. | s | |||
| </t> | connected to one or more PEs via a set of Ethernet links.</dd> | |||
| </section> | <dt>ESI:</dt> | |||
| <dd> Ethernet Segment Identifier. This is a unique non-zero identifier th | ||||
| <section title="Specification of Requirements"> | at | |||
| <t> | identifies an Ethernet segment.</dd> | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "S | <dt>Ethernet Tag:</dt> | |||
| HALL NOT", | <dd> It identifies a particular broadcast | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | domain, e.g., a VLAN. An EVPN instance consists of one or more | |||
| "MAY", and | broadcast domains.</dd> | |||
| "OPTIONAL" in this document are to be interpreted as desc | <dt>EVI:</dt> | |||
| ribed in BCP | <dd> EVPN Instance. This spans the Provider Edge (PE) devices | |||
| 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when | participating in that EVPN.</dd> | |||
| , and only when, | <dt>EVPN:</dt> | |||
| they appear in all | <dd> Ethernet Virtual Private Network</dd> | |||
| capitals, as shown here. | <dt>IGMP:</dt> | |||
| </t> | <dd> Internet Group Management Protocol</dd> | |||
| <dt>IR:</dt> | ||||
| </section> | <dd> Ingress Replication</dd> | |||
| <dt>MLD:</dt> | ||||
| <section title="Terminology"> | <dd> Multicast Listener Discovery</dd> | |||
| <t> | <dt> OIF:</dt> | |||
| <list style="symbols"> | <dd> Outgoing Interface for multicast. It can be a physical interface, | |||
| <t> AC: Attachment Circuit. | virtual interface, or tunnel.</dd> | |||
| </t> | <dt>PE:</dt> | |||
| <t> | <dd> Provider Edge</dd> | |||
| All-Active Redundancy Mode: When all PEs attached to a | <dt>POD:</dt><dd> Point of Delivery</dd> | |||
| n Ethernet | <dt> S-PMSI:</dt> | |||
| segment are allowed to forward known unicast traffic t | <dd> Selective P-Multicast Service Interface. This is a conceptual interf | |||
| o/from that | ace for a | |||
| Ethernet segment for a given VLAN, then the Ethernet s | PE to send customer multicast traffic to some of the PEs in the same VPN. | |||
| egment is | </dd> | |||
| defined to be operating in All-Active redundancy mode. | <dt>Single-Active Redundancy Mode:</dt> | |||
| </t> | <dd> When only a single PE, among all the | |||
| <t> | PEs attached to an Ethernet segment, is allowed to forward traffic | |||
| BD: Broadcast Domain. As per <xref target="RFC7432"/>, | to/from that Ethernet segment for a given VLAN, then the Ethernet | |||
| an EVI consists of a single | segment is defined to be operating in Single-Active redundancy mode.</dd> | |||
| or multiple BDs. In case of VLAN-bundle and VLAN-aware | <dt> SMET:</dt> | |||
| bundle service | <dd> Selective Multicast Ethernet Tag</dd> | |||
| model, an EVI contains multiple BDs. Also, in this doc | <dt>ToR:</dt> | |||
| ument, BD and | <dd> Top of Rack</dd> | |||
| subnet are equivalent terms. | </dl> | |||
| </t> | <t>This document also assumes familiarity with the terminology of | |||
| <t> | <xref target="RFC7432" format="default"/>, <xref target="RFC3376" | |||
| DC: Data Center | format="default"/>, and <xref target="RFC2236" format="default"/>. | |||
| </t> | When this document uses the term "IGMP | |||
| Membership Report", the text equally applies to the MLD | ||||
| <t> | Membership Report. Similarly, text for IGMPv2 applies to MLDv1, | |||
| Ethernet Segment (ES): When a customer site (device or | and text for IGMPv3 applies to MLDv2. IGMP/MLD version encoding in the | |||
| network) is | BGP update is stated in <xref target="bgp-encoding" format="default"/>.</t | |||
| connected to one or more PEs via a set of Ethernet lin | > | |||
| ks. | <t> It is important to note that when there is text considering whether a | |||
| </t> | PE | |||
| indicates support for IGMP proxying, the corresponding behavior has a | ||||
| <t> | natural analog for indicating support for MLD proxying, and the analogous | |||
| Ethernet Segment Identifier (ESI): A unique non-zero i | requirements apply as well. | |||
| dentifier that | </t> | |||
| identifies an Ethernet Segment. | </section> | |||
| </t> | <section numbered="true" toc="default"> | |||
| <name>IGMP/MLD Proxy</name> | ||||
| <t> | <t>The IGMP Proxy mechanism is used to reduce the flooding of IGMP | |||
| Ethernet Tag: It identifies a particular broadcast | messages over an EVPN network, similar to the ARP proxy used in reducing | |||
| domain, e.g., a VLAN. An EVPN instance consists of on | the flooding of ARP messages over EVPN. It also provides a triggering | |||
| e or more | mechanism for the PEs to set up their underlay multicast tunnels. The | |||
| broadcast domains. | IGMP Proxy mechanism consists of two components: | |||
| </t> | </t> | |||
| <ol spacing="normal" type="1"> | ||||
| <t> | <li> Proxy for IGMP Membership Reports </li> | |||
| EVI: An EVPN instance spanning the Provider Edge (PE) | <li> Proxy for IGMP Membership Queries </li> | |||
| devices | </ol> | |||
| participating in that EVPN | <t>The goal of IGMP and MLD proxying is to make the EVPN behave seamlessly | |||
| </t> | for | |||
| the tenant systems with respect to multicast operations while using a more | ||||
| <t> | efficient delivery system for signaling and delivery across the VPN. | |||
| EVPN: Ethernet Virtual Private Network | Accordingly, group state must be tracked synchronously among the PEs | |||
| </t> | serving the VPN, with join and leave events propagated to the peer PEs and | |||
| each PE tracking the state of each of its peer PEs with respect to whether | ||||
| <t> | there are locally attached group members (and in some cases, senders), wha | |||
| IGMP: Internet Group Management Protocol | t | |||
| </t> | version(s) of IGMP/MLD are in use for those locally attached group members | |||
| <t> | , | |||
| IR: Ingress Replication | etc. In order to perform this translation, each PE acts as an IGMP router | |||
| </t> | for the locally attached domain, maintains the requisite state on | |||
| locally attached nodes, sends periodic Membership Queries, etc. The role | ||||
| <t> | of EVPN Selective Multicast Ethernet Tag (SMET) route propagation is to | |||
| MLD: Multicast Listener Discovery | ensure that each PE's local state is | |||
| </t> | propagated to the other PEs so that they share a consistent view of the | |||
| overall IGMP Membership Request and Leave Group state. It is important to | ||||
| <t> OIF: Outgoing Interface for multicast. It can be phys | note that the need to keep such local state can be triggered by either | |||
| ical interface, virtual interface or tunnel.</t> | local IGMP traffic or BGP EVPN signaling. In most cases, a local IGMP eve | |||
| <t> | nt | |||
| PE: Provider Edge. | will need to be signaled over EVPN, though state initiated by received EVP | |||
| </t> | N | |||
| traffic will not always need to be relayed to the locally attached domain. | ||||
| <t> | </t> | |||
| POD: Point of Delivery | <section numbered="true" toc="default"> | |||
| </t> | <name>Proxy Reporting</name> | |||
| <t>When IGMP is used between hosts and their first hop EVPN | ||||
| <t> S-PMSI: Selective P-Multicast Service Interface - a c | router (EVPN PE), proxy reporting is used by the EVPN PE to summarize | |||
| onceptual interface for a | (when possible) reports received from downstream hosts and propagate | |||
| PE to send customer multicast traffic to some of | them in BGP to other PEs that are interested in the information. | |||
| the PEs in the same VPN. | This | |||
| </t> | is done by terminating the IGMP Membership Reports in the first hop PE an | |||
| <t> | d | |||
| Single-Active Redundancy Mode: When only a single PE, | translating and exchanging the relevant information among EVPN BGP | |||
| among all the | speakers. The information is again translated back to an IGMP message at | |||
| PEs attached to an Ethernet segment, is allowed to for | the recipient EVPN speaker. Thus, it helps create an IGMP overlay | |||
| ward traffic | subnet using BGP. In order to facilitate such an overlay, this | |||
| to/from that Ethernet segment for a given VLAN, then t | document also defines a new EVPN route type Network Layer Reachability In | |||
| he Ethernet | formation | |||
| segment is defined to be operating in Single-Active re | (NLRI) and the EVPN SMET route, along with its procedures to help | |||
| dundancy mode. | exchange and register IGMP multicast groups; see <xref target="bgp-encodi | |||
| </t> | ng" | |||
| format="default"/>. | ||||
| <t> SMET: Selective Multicast Eth | </t> | |||
| ernet Tag | <section numbered="true" toc="default"> | |||
| </t> | <name>IGMP/MLD Membership Report Advertisement in BGP</name> | |||
| <t> | <t>When a PE wants to advertise an IGMP Membership Report using | |||
| ToR: Top of Rack | the BGP EVPN route, it follows the proceeding rules (BGP encoding | |||
| </t> | is stated in <xref target="bgp-encoding" format="default"/>). The first | |||
| four | ||||
| </list> | rules are applicable to the originator PE, and the last three rules are | |||
| </t> | applicable | |||
| <t> | to remote PE processing SMET routes: | |||
| This document also assumes familiarity with the termin | </t> | |||
| ology of | <t>Processing at the BGP route originator: | |||
| <xref target="RFC7432"/>, <xref target="RFC3376"/>, <x | </t> | |||
| ref target="RFC2236"/> . Though most of the place this document uses term IGMP | <ol spacing="normal" type="1"> | |||
| Membership Report, the text applies equally for MLD | <li>When the first hop PE receives IGMP Membership Reports | |||
| Membership Report too. Similarly, text for IGMPv2 appl | belonging to the same IGMP version from different attached | |||
| ies to MLDv1 | hosts for the same (*,G) or (S,G), it <bcp14>SHOULD</bcp14> send a si | |||
| and text for IGMPv3 applies to MLDv2. IGMP / MLD vers | ngle | |||
| ion encoding in | BGP message corresponding to the very first IGMP Membership Request ( | |||
| BGP update is stated in <xref target="bgp-encoding"/> | BGP update as | |||
| </t> | soon as possible) for that (*,G) or (S,G). This is because BGP is a | |||
| <t> It is important to note when there is text considerin | stateful protocol, and no further transmission of the same report is | |||
| g whether a PE indicates support for IGMP proxying, the corresponding behavior h | needed. If the IGMP Membership Request is for (*,G), then the Multica | |||
| as a natural analogue for indication of support for MLD proxying, and the analog | st Group Address | |||
| ous requirements apply as well. | <bcp14>MUST</bcp14> be sent along with the corresponding version flag | |||
| </t> | (v2 or v3) | |||
| set. In case of IGMPv3, the exclude flag <bcp14>MUST</bcp14> also be | ||||
| set to | ||||
| indicate that no source IP address must be excluded (include all | ||||
| sources "*"). | ||||
| If the IGMP Membership Report is for (S,G), then besides setting the | ||||
| Multicast Group | ||||
| Address along with the v3 flag, the source IP address and the | ||||
| Include/Exclude (IE) flag <bcp14>MUST</bcp14> be set. It should be no | ||||
| ted that, when | ||||
| advertising the EVPN route for (S,G), the only valid version flag is | ||||
| v3 (v2 flags <bcp14>MUST</bcp14> be set to 0). | ||||
| </li> | ||||
| <li>When the first hop PE receives an IGMPv3 Membership Report for ( | ||||
| S,G) on a given | ||||
| BD, it <bcp14>MUST</bcp14> advertise the corresponding EVPN SMET rout | ||||
| e, regardless | ||||
| of whether the source (S) is | ||||
| attached to itself or not, in order to facilitate the source move in | ||||
| the future. </li> | ||||
| <li>When the first hop PE receives an IGMP version-X Membership Repo | ||||
| rt first for | ||||
| (*,G) and then later receives an IGMP version-Y Membership Report for | ||||
| the same | ||||
| (*,G), then it <bcp14>MUST</bcp14> re-advertise the same EVPN SMET ro | ||||
| ute with the flag | ||||
| for version-Y set in addition to any previously set version flag(s). | ||||
| In other words, the first hop PE <bcp14>MUST NOT</bcp14> withdraw the | ||||
| EVPN route | ||||
| before sending the new route because the Flags field is not part of | ||||
| BGP route key processing. | ||||
| </li> | ||||
| <li>When the first hop PE receives an IGMP version-X Membership Repo | ||||
| rt first for | ||||
| (*,G) and then later receives an IGMPv3 Membership Report for the sam | ||||
| e | ||||
| Multicast Group Address but for a specific source address S, then the | ||||
| PE <bcp14>MUST</bcp14> advertise a new EVPN SMET route with the v3 fl | ||||
| ag set (and v2 reset). | ||||
| The IE flag also needs to be set accordingly. | ||||
| Since the source IP address is used as part of BGP route key processi | ||||
| ng, | ||||
| it is considered to be a new BGP route advertisement. When different | ||||
| versions | ||||
| of IGMP Membership Report are received, the final state <bcp14>MUST</ | ||||
| bcp14> be as per | ||||
| <xref target="RFC3376" sectionFormat="of" section="5.1"/>. | ||||
| At the end of the route processing, local and remote group record sta | ||||
| te | ||||
| <bcp14>MUST</bcp14> | ||||
| be as per <xref target="RFC3376" sectionFormat="of" section="5.1"/>. | ||||
| </li> | ||||
| </ol> | ||||
| <t>Processing at the BGP route receiver: | ||||
| </t> | ||||
| <ol spacing="normal" type="1"> | ||||
| <li>When a PE receives an EVPN SMET route with more than one version | ||||
| flag set, it will generate the corresponding IGMP Report for (*,G) | ||||
| for each version specified in the Flags field. With multiple version | ||||
| flags set, there must not be a source IP address in the received EVPN | ||||
| route. If there is, then an error <bcp14>SHOULD</bcp14> be logged. If | ||||
| the v3 flag | ||||
| is set (in addition to v2), then the IE flag <bcp14>MUST</bcp14> | ||||
| indicate "exclude". If not, then an error <bcp14>SHOULD</bcp14> be lo | ||||
| gged. The PE | ||||
| <bcp14>MUST</bcp14> generate an IGMP Membership Report for that (*,G) | ||||
| and | ||||
| each IGMP version in the version flag. | ||||
| </li> | ||||
| <li>When a PE receives a list of EVPN SMET NLRIs in its BGP update | ||||
| message, each with a different source IP address and the same | ||||
| Multicast Group Address, and the version flag is set to v3, then the | ||||
| PE generates an IGMPv3 Membership Report with a record corresponding | ||||
| to the list of source IP addresses and the group address, along with | ||||
| the proper indication of inclusion/exclusion. | ||||
| </li> | ||||
| <li>Upon receiving an EVPN SMET route(s) and before generating the | ||||
| corresponding IGMP Membership Request(s), the PE checks to see whethe | ||||
| r it has a | ||||
| Customer Edge (CE) multicast router for that BD on any of its ESs . T | ||||
| he PE provides | ||||
| such a check by listening for PIM Hello messages on that AC, i.e., | ||||
| (ES,BD). If the PE does have the router's ACs, then the generated | ||||
| IGMP Membership Request(s) is sent to those ACs. If it doesn't have a | ||||
| ny of the | ||||
| router's ACs, then no IGMP Membership Request(s) needs to be generate | ||||
| d. This is | ||||
| because sending IGMP Membership Requests to other hosts can result in | ||||
| unintentionally preventing a host from joining a specific multicast | ||||
| group using IGMPv2, i.e., if the PE does not receive a Membership Rep | ||||
| ort from the | ||||
| host, it will not forward multicast data to it. Per <xref target="RFC | ||||
| 4541" | ||||
| format="default"/> , when an | ||||
| IGMPv2 host receives a Membership Report for a group address that it | ||||
| intends to join, the host will suppress its own Membership Report for | ||||
| the same group, and if the PE does not receive an IGMP Membership Rep | ||||
| ort from the host, | ||||
| it will not forward multicast data to it. In other words, an IGMPv2 | ||||
| Membership Report <bcp14>MUST NOT</bcp14> be sent on an AC that does | ||||
| not lead to a CE | ||||
| multicast router. This message suppression is a requirement for IGMPv | ||||
| 2 hosts. | ||||
| This is not a problem for hosts running IGMPv3, because there is no | ||||
| suppression of IGMP Membership Reports. | ||||
| </li> | ||||
| </ol> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>IGMP/MLD Leave Group Advertisement in BGP</name> | ||||
| <t>When a PE wants to withdraw an EVPN SMET route corresponding to an | ||||
| IGMPv2 Leave Group or IGMPv3 "Leave" equivalent message, it | ||||
| follows the rules below. The first rule defines the procedure at the | ||||
| originator PE, and the last two rules talk about procedures at the remo | ||||
| te PE: | ||||
| </t> | ||||
| <t>Processing at the BGP route originator: | ||||
| </t> | ||||
| <ol spacing="normal" type="1"> | ||||
| <li>When a PE receives an IGMPv2 Leave Group or its "Leave" equivalen | ||||
| t | ||||
| message for IGMPv3 from its attached host, it checks to see if this | ||||
| host is the last host that is interested in this multicast group by | ||||
| sending a query for the multicast group. | ||||
| If the host was indeed the | ||||
| last one (i.e., no responses are received for the query), then the PE | ||||
| <bcp14>MUST</bcp14> re-advertise the EVPN SMET route with the corresp | ||||
| onding | ||||
| version flag reset. If this is the last version flag to be reset, | ||||
| then instead of re-advertising the EVPN route with all version flags | ||||
| reset, the PE <bcp14>MUST</bcp14> withdraw the EVPN route for that (* | ||||
| ,G). | ||||
| </li> | ||||
| </ol> | ||||
| <t>Processing at the BGP route receiver: | ||||
| </t> | ||||
| <ol spacing="normal" type="1"> | ||||
| <li>When a PE receives an EVPN SMET route for a given (*,G), it | ||||
| compares the received version flags from the route with its per-PE | ||||
| stored version flags. | ||||
| If the PE finds that a version flag associated | ||||
| with the (*,G) for the remote PE is reset, then the PE <bcp14>MUST</b | ||||
| cp14> generate | ||||
| IGMP Leave for that (*,G) toward its local interface (if any), which | ||||
| is | ||||
| attached to the multicast router for that multicast group. It should | ||||
| be noted that the received EVPN route <bcp14>MUST</bcp14> have at lea | ||||
| st one | ||||
| version flag set. If all version flags are reset, it is an error | ||||
| because the PE should have received an EVPN route withdraw for the | ||||
| last version flag. An error <bcp14>MUST</bcp14> be considered as a BG | ||||
| P error, and | ||||
| the PE <bcp14>MUST</bcp14> apply the | ||||
| "treat-as-withdraw" procedure per <xref target="RFC7606" format="defa | ||||
| ult"/>. | ||||
| </li> | ||||
| <li>When a PE receives an EVPN SMET route withdraw, it removes the | ||||
| remote PE from its OIF list for that multicast group, and if there ar | ||||
| e | ||||
| no more OIF entries for that multicast group (either locally or | ||||
| remotely), then the PE <bcp14>MUST</bcp14> stop responding to Members | ||||
| hip | ||||
| Queries from the | ||||
| locally attached router (if any). If there is a source for that | ||||
| multicast group, the PE stops sending multicast traffic for that sour | ||||
| ce. | ||||
| </li> | ||||
| </ol> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="IGMP/MLD Proxy"> | <name>Proxy Querier</name> | |||
| <t> | <t>As mentioned in the previous sections, each PE <bcp14>MUST</bcp14> ha | |||
| The IGMP Proxy mechanism is used to reduce the flooding | ve proxy | |||
| of IGMP | querier functionality for the following reasons: | |||
| messages over an EVPN network similar to ARP proxy used | </t> | |||
| in reducing | <ol spacing="normal" type="1"> | |||
| the flooding of ARP messages over EVPN. It also provides | <li>to enable the collection of EVPN PEs providing Layer 2 Virtual Priv | |||
| a triggering | ate Network | |||
| mechanism for the PEs to setup their underlay multicast | (L2VPN) service to | |||
| tunnels. The | act as a distributed multicast router with an anycast IP address for al | |||
| IGMP Proxy mechanism consists of two components: | l | |||
| <list style="numbers"> | attached hosts in that subnet</li> | |||
| <t> Proxy for IGMP Membership Reports. </t> | <li>to enable suppression of IGMP Membership Reports and Membership Qu | |||
| <t> Proxy for IGMP Membership Queries. </t> | eries over | |||
| </list> | MPLS/IP core</li> | |||
| </t> | </ol> | |||
| <t> | ||||
| The goal of IGMP and MLD proxying is to make th | ||||
| e EVPN behave seamlessly for | ||||
| the tenant systems with respect to multicast o | ||||
| perations, while using a more | ||||
| efficient delivery system for signaling and de | ||||
| livery across the VPN. | ||||
| Accordingly, group state must be tracked synch | ||||
| ronously among the PEs | ||||
| serving the VPN, with join and leave events pr | ||||
| opagated to the peer PEs, and | ||||
| each PE tracking the state of each of its peer | ||||
| PEs with respect whether | ||||
| there are locally attached group members (and | ||||
| in some cases, senders), what | ||||
| version(s) of IGMP/MLD are in use for those lo | ||||
| cally attached group members, | ||||
| etc. In order to perform this translation, ea | ||||
| ch PE acts as an IGMP router | ||||
| for the locally attached domain, and maintains | ||||
| the requisite state on | ||||
| locally attached nodes, sends periodic members | ||||
| hip queries, etc. The role | ||||
| of EVPN SMET route propagation is to ensure th | ||||
| at each PE's local state is | ||||
| propagated to the other PEs so that they share | ||||
| a consistent view of the | ||||
| overall IGMP Membership Request and Leave Grou | ||||
| p state. It is important to | ||||
| note that the need to keep such local state ca | ||||
| n be triggered by either | ||||
| local IGMP traffic or BGP EVPN signaling. In | ||||
| most cases a local IGMP event | ||||
| will need to be signaled over EVPN, though sta | ||||
| te initiated by received EVPN | ||||
| traffic will not always need to be relayed to | ||||
| the locally attached domain. | ||||
| </t> | ||||
| <section title="Proxy Reporting"> | ||||
| <t> | ||||
| When IGMP protocol is used between hosts and th | ||||
| eir first hop EVPN | ||||
| router (EVPN PE), Proxy-reporting is used by th | ||||
| e EVPN PE to summarize | ||||
| (when possible) reports received from downstrea | ||||
| m hosts and propagate | ||||
| them in BGP to other PEs that are interested in | ||||
| the information. This | ||||
| is done by terminating the IGMP Reports in the | ||||
| first hop PE, and | ||||
| translating and exchanging the relevant informa | ||||
| tion among EVPN BGP | ||||
| speakers. The information is again translated b | ||||
| ack to IGMP message at | ||||
| the recipient EVPN speaker. Thus it helps creat | ||||
| e an IGMP overlay | ||||
| subnet using BGP. In order to facilitate such a | ||||
| n overlay, this | ||||
| document also defines a new EVPN route type NLR | ||||
| I, the EVPN Selective | ||||
| Multicast Ethernet Tag route, along with its pr | ||||
| ocedures to help | ||||
| exchange and register IGMP multicast groups <xr | ||||
| ef target="bgp-encoding"/>. | ||||
| </t> | ||||
| <section title="IGMP/MLD Membership Report Advertisemen | ||||
| t in BGP"> | ||||
| <t> | ||||
| When a PE wants to advertise an IGMP | ||||
| Membership Report using | ||||
| the BGP EVPN route, it follows the fo | ||||
| llowing rules (BGP encoding | ||||
| stated in <xref target="bgp-encoding" | ||||
| />). Where first four rules are applicable to originator PE and last three rules | ||||
| are applicable to remote PE processing SMET routes: | ||||
| </t> | ||||
| <t> | ||||
| Processing at BGP route originator: | ||||
| <list style="numbers"> | ||||
| <t> | ||||
| When the first hop PE re | ||||
| ceives IGMP Membership Reports | ||||
| , belonging to the sam | ||||
| e IGMP version, from different attached | ||||
| hosts for the same (*, | ||||
| G) or (S,G), it SHOULD send a single | ||||
| BGP message correspond | ||||
| ing to the very first IGMP Membership Request (BGP update as | ||||
| soon as possible) for | ||||
| that (*,G) or (S,G). This is because BGP is a | ||||
| stateful protocol and | ||||
| no further transmission of the same report is | ||||
| needed. If the IGMP Me | ||||
| mbership Request is for (*,G), then multicast group address | ||||
| MUST be sent along wit | ||||
| h the corresponding version flag (v2 or v3) | ||||
| set. In case of IGMPv3 | ||||
| , the exclude flag MUST also be set to | ||||
| indicate that no sourc | ||||
| e IP address must be excluded (include all | ||||
| sources "*"). | ||||
| If the IGMP Membership | ||||
| Report is for (S,G), then besides setting multicast group | ||||
| address along with the | ||||
| version flag v3, the source IP address and the | ||||
| IE flag MUST be set. I | ||||
| t should be noted that when | ||||
| advertising the EVPN r | ||||
| oute for (S,G), the only valid version flag is | ||||
| v3 (v2 flags MUST be s | ||||
| et to zero). | ||||
| </t> | ||||
| <t> | ||||
| When the first hop PE | ||||
| receives an IGMPv3 Membership Report for (S,G) on a given | ||||
| BD, it MUST advertise | ||||
| the corresponding EVPN Selective Multicast | ||||
| Ethernet Tag (SMET) ro | ||||
| ute regardless of whether the source (S) is | ||||
| attached to itself or | ||||
| not in order to facilitate the source move in | ||||
| the future. | ||||
| </t> | ||||
| <t> | ||||
| When the first hop PE | ||||
| receives an IGMP version-X Membership Report first for | ||||
| (*,G) and then later i | ||||
| t receives an IGMP version-Y Membership Report for the same | ||||
| (*,G), then it MUST re | ||||
| -advertise the same EVPN SMET route with flag | ||||
| for version-Y set in a | ||||
| ddition to any previously-set version flag(s). | ||||
| In other words, the fi | ||||
| rst hop PE MUST NOT withdraw the EVPN route | ||||
| before sending the new | ||||
| route because the flag field is not part of | ||||
| BGP route key processi | ||||
| ng. | ||||
| </t> | ||||
| <t> | ||||
| When the first hop PE | ||||
| receives an IGMP version-X Membership Report first for | ||||
| (*,G) and then later i | ||||
| t receives an IGMPv3 Membership Report for the same | ||||
| multicast group addres | ||||
| s but for a specific source address S, then the | ||||
| PE MUST advertise a ne | ||||
| w EVPN SMET route with v3 flag set (and v2 reset). | ||||
| The IE flag also need | ||||
| to be set accordingly. | ||||
| Since source IP addres | ||||
| s is used as part of BGP route key processing | ||||
| it is considered as a | ||||
| new BGP route advertisement. When different version | ||||
| of IGMP Membership Rep | ||||
| ort are received, final state MUST be as per section 5.1 of <xref target="RFC337 | ||||
| 6"/>. | ||||
| At the end of route pr | ||||
| ocessing local and remote group record state MUST be | ||||
| as per section 5.1 of | ||||
| <xref target="RFC3376"/>. | ||||
| </t> | ||||
| </list> | ||||
| Processing at BGP route r | ||||
| eceiver: | ||||
| <list style="numbers"> | ||||
| <t> | ||||
| When a PE receives an | ||||
| EVPN SMET route with more than one version | ||||
| flag set, it will gene | ||||
| rate the corresponding IGMP report for (*,G) | ||||
| for each version speci | ||||
| fied in the flags field. With multiple version | ||||
| flags set, there must | ||||
| not be source IP address in the received EVPN | ||||
| route. If there is, th | ||||
| en an error SHOULD be logged. If the v3 flag | ||||
| is set (in addition to | ||||
| v2), then the IE flag MUST | ||||
| indicate "exclude". If | ||||
| not, then an error SHOULD be logged. The PE | ||||
| MUST generate an IGMP | ||||
| Membership Report for that (*,G) and | ||||
| each IGMP version in t | ||||
| he version flag. | ||||
| </t> | ||||
| <t> | ||||
| When a PE receives a l | ||||
| ist of EVPN SMET NLRIs in its BGP update | ||||
| message, each with a d | ||||
| ifferent source IP address and the same | ||||
| multicast group addres | ||||
| s, and the version flag is set to v3, then the | ||||
| PE generates an IGMPv3 | ||||
| Membership Report with a record corresponding | ||||
| to the list of source | ||||
| IP addresses and the group address along with | ||||
| the proper indication | ||||
| of inclusion/exclusion. | ||||
| </t> | ||||
| <t> | ||||
| Upon receiving EV | ||||
| PN SMET route(s) and before generating the | ||||
| corresponding IGMP Mem | ||||
| bership Request(s), the PE checks to see whether it has any | ||||
| CE multicast router fo | ||||
| r that BD on any of its ES's . The PE provides | ||||
| such a check by listen | ||||
| ing for PIM Hello messages on that AC (i.e, | ||||
| ES,BD). If the PE does | ||||
| have the router's ACs, then the generated | ||||
| IGMP Membership Reques | ||||
| t(s) are sent to those ACs. If it doesn't have any of the | ||||
| router's AC, then no I | ||||
| GMP Membership Request(s) needs to be generated. This is | ||||
| because sending IGMP M | ||||
| embership Requests to other hosts can result in | ||||
| unintentionally preven | ||||
| ting a host from joining a specific multicast | ||||
| group using IGMPv2 - i | ||||
| .e., if the PE does not receive a Membership Report from the | ||||
| host it will not forwa | ||||
| rd multicast data to it. Per <xref target="RFC4541"/> , when an | ||||
| IGMPv2 host receives a | ||||
| Membership Report for a group address that it | ||||
| intends to join, the h | ||||
| ost will suppress its own membership report for | ||||
| the same group, and if | ||||
| the PE does not receive an IGMP Membership Report from the host | ||||
| it will not forward mu | ||||
| lticast data to it. In other words, an IGMPv2 | ||||
| Membership Report MUST | ||||
| NOT be sent on an AC that does not lead to a CE multicast | ||||
| router. This message s | ||||
| uppression is a requirement for IGMPv2 hosts. | ||||
| This is not a problem | ||||
| for hosts running IGMPv3 because there is no | ||||
| suppression of IGMP Me | ||||
| mbership Reports. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section title="IGMP/MLD Leave Group Advertisement in B | ||||
| GP"> | ||||
| <t> | ||||
| When a PE wants to withdraw an EVPN | ||||
| SMET route corresponding to an | ||||
| IGMPv2 Leave Group or IGMPv3 "Leave" | ||||
| equivalent message, it | ||||
| follows the following rules, where f | ||||
| irst rule defines the procedure at originator PE and last two rules talk about p | ||||
| rocedures at remote PE: | ||||
| </t> | ||||
| <t> | ||||
| Processing at BGP route orig | ||||
| inator: | ||||
| <list style="numbers"> | ||||
| <t> | ||||
| When a PE receives an | ||||
| IGMPv2 Leave Group or its "Leave" equivalent | ||||
| message for IGMPv3 fro | ||||
| m its attached host, it checks to see if this | ||||
| host is the last host | ||||
| that is interested in this multicast group by | ||||
| sending a query for th | ||||
| e multicast group. If the host was indeed the | ||||
| last one (i.e. no resp | ||||
| onses are received for the query), then the PE | ||||
| MUST re-advertises EVP | ||||
| N SMET Multicast route with the corresponding | ||||
| version flag reset. If | ||||
| this is the last version flag to be reset, | ||||
| then instead of re-adv | ||||
| ertising the EVPN route with all version flags | ||||
| reset, the PE MUST wit | ||||
| hdraw the EVPN route for that (*,G). | ||||
| </t> | ||||
| </list> | ||||
| Processing at BGP route r | ||||
| eceiver: | ||||
| <list style="numbers"> | ||||
| <t> | ||||
| When a PE receives an | ||||
| EVPN SMET route for a given (*,G), it | ||||
| compares the received | ||||
| version flags from the route with its per-PE | ||||
| stored version flags. | ||||
| If the PE finds that a version flag associated | ||||
| with the (*,G) for the | ||||
| remote PE is reset, then the PE MUST generate | ||||
| IGMP Leave for that (* | ||||
| ,G) toward its local interface (if any) | ||||
| attached to the multic | ||||
| ast router for that multicast group. It should | ||||
| be noted that the rece | ||||
| ived EVPN route MUST at least have one | ||||
| version flag set. If a | ||||
| ll version flags are reset, it is an error | ||||
| because the PE should | ||||
| have received an EVPN route withdraw for the | ||||
| last version flag. Err | ||||
| or MUST be considered as a BGP error and the PE MUST apply the | ||||
| "treat-as-withdraw" pr | ||||
| ocedure of <xref target="RFC7606"/>. | ||||
| </t> | ||||
| <t> | ||||
| When a PE receives an | ||||
| EVPN SMET route withdraw, it removes the | ||||
| remote PE from its OIF | ||||
| list for that multicast group and if there are | ||||
| no more OIF entries fo | ||||
| r that multicast group (either locally or | ||||
| remotely), then the PE | ||||
| MUST stop responding to Membership Queries from the | ||||
| locally attached route | ||||
| r (if any). If there is a source for that | ||||
| multicast group, the P | ||||
| E stops sending multicast traffic for that | ||||
| source. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="Proxy Querier"> | ||||
| <t> | ||||
| As mentioned in the previous sections, each PE | ||||
| MUST have proxy | ||||
| querier functionality for the following reasons | ||||
| : | ||||
| <list style="numbers"> | ||||
| <t> | ||||
| To enable the collection of EVP | ||||
| N PEs providing L2VPN service to | ||||
| act as distributed multicast ro | ||||
| uter with Anycast IP address for all | ||||
| attached hosts in that subnet. | ||||
| </t> | ||||
| <t> | ||||
| To enable suppression of IGMP M | ||||
| embership Reports and Membership Queries over | ||||
| MPLS/IP core. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| </section> | </section> | |||
| </section> | ||||
| <section title="Operation"> | <section numbered="true" toc="default"> | |||
| <t> | <name>Operation</name> | |||
| Consider the EVPN network of Figure-1, where there is an EV | <t>Consider the EVPN network in <xref target="EVPN"/>, where there is an E | |||
| PN | VPN | |||
| instance configured across the PEs shown in this figur | instance configured across the PEs (namely PE1, | |||
| e (namely PE1, | PE2, and PE3). Let's consider that this EVPN instance consists of a | |||
| PE2, and PE3). Let's consider that this EVPN instance | single bridge domain (single subnet) with all the hosts and sources and | |||
| consists of a | the multicast router connected to this subnet. PE1 only has hosts (host de | |||
| single bridge domain (single subnet) with all the host | noted by Hx) | |||
| s, sources, and | connected to it. PE2 has a mix of hosts and a multicast source. PE3 | |||
| the multicast router connected to this subnet. PE1 onl | has a mix of hosts, a multicast source (source denoted by Sx), and a multi | |||
| y has hosts(host denoted by Hx) | cast router | |||
| connected to it. PE2 has a mix of hosts and a multicas | (router denoted by Rx). | |||
| t source. PE3 | Furthermore, let's consider that for (S1,G1), R1 is used as the | |||
| has a mix of hosts, a multicast source (source denoted | multicast router. The following subsections describe the IGMP Proxy | |||
| by Sx), and a multicast router (router denoted by Rx). | operation in different PEs with regard to whether the locally | |||
| Furthermore, let's consider that for (S1,G1), R1 is us | attached devices for that subnet are: | |||
| ed as the | </t> | |||
| multicast router. The following subsections describe t | <ul spacing="normal"> | |||
| he IGMP proxy | <li>only hosts,</li> | |||
| operation in different PEs with regard to whether the | <li>a mix of hosts and a multicast source, or</li> | |||
| locally | <li>a mix of hosts, a multicast source, and a multicast router.</li> | |||
| attached devices for that subnet are: | </ul> | |||
| <figure anchor="EVPN"> | ||||
| <list style="symbols"> | <name>EVPN Network</name> | |||
| <t> | <artwork name=">EVPN network" type="" align="center" alt=""><![CDATA[ | |||
| only hosts | +--------------+ | |||
| </t> | | | | |||
| <t> | | | | |||
| mix of hosts and multicast source | +----+ | | +----+ | |||
| </t> | H1:(*,G1)v2 ---| | | | | |---- H6(*,G1)v2 | |||
| <t> | H2:(*,G1)v2 ---| PE1| | IP/MPLS | | PE2|---- H7(S2,G2)v3 | |||
| mix of hosts, multicast source, and mu | H3:(*,G1)v3 ---| | | Network | | |---- S2 | |||
| lticast router | H4:(S2,G2)v3 --| | | | | | | |||
| </t> | +----+ | | +----+ | |||
| </list> | | | | |||
| </t> | +----+ | | | |||
| H5:(S1,G1)v3 --| | | | | ||||
| <figure > | S1 ---| PE3| | | | |||
| <artwork ><![CDATA[ | R1 ---| | | | | |||
| +----+ | | | ||||
| +--------------+ | | | | |||
| | | | +--------------+ | |||
| | | | ]]></artwork> | |||
| +----+ | | +----+ | ||||
| H1:(*,G1)v2 ---| | | | | |---- H6(*,G1)v2 | ||||
| H2:(*,G1)v2 ---| PE1| | IP/MPLS | | PE2|---- H7(S2,G2)v3 | ||||
| H3:(*,G1)v3 ---| | | Network | | |---- S2 | ||||
| H4:(S2,G2)v3 --| | | | | | | ||||
| +----+ | | +----+ | ||||
| | | | ||||
| +----+ | | | ||||
| H5:(S1,G1)v3 --| | | | | ||||
| S1 ---| PE3| | | | ||||
| R1 ---| | | | | ||||
| +----+ | | | ||||
| | | | ||||
| +--------------+ | ||||
| Figure 1: EVPN network | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <section title="PE with only attached hosts for a given subnet"> | ||||
| <t> | ||||
| When PE1 receives an IGMPv2 Membership Report from H1, it | ||||
| does not forward | ||||
| this Membership Report to any of its other ports (for thi | ||||
| s subnet) because all | ||||
| these local ports are associated with the hosts. PE1 send | ||||
| s an | ||||
| EVPN Multicast Group route corresponding to this Membersh | ||||
| ip Report for (*,G1) and | ||||
| setting v2 flag. This EVPN route is received by PE2 and P | ||||
| E3 that are | ||||
| the members of the same BD (i.e., same EVI in case of VLA | ||||
| N-based | ||||
| service or EVI,VLAN in case of VLAN-aware bundle service) | ||||
| . PE3 | ||||
| reconstructs the IGMPv2 Membership Report from this EVPN | ||||
| BGP route and only | ||||
| sends it to the port(s) with multicast routers attached t | ||||
| o it (for | ||||
| that subnet). In this example, PE3 sends the reconstructe | ||||
| d IGMPv2 | ||||
| Membership Report for (*,G1) only to R1. Furthermore, ev | ||||
| en though PE2 | ||||
| receives the EVPN BGP route, it does not send it to any o | ||||
| f its ports | ||||
| for that subnet; viz, ports associated with H6 and H7. | ||||
| </t> | ||||
| <t> | ||||
| When PE1 receives the second IGMPv2 Membership Report fro | ||||
| m H2 for the same | ||||
| multicast group (*,G1), it only adds that port to its OIF | ||||
| list but it | ||||
| doesn't send any EVPN BGP route because there is no chang | ||||
| e in | ||||
| information. However, when it receives the IGMPv3 Members | ||||
| hip Report from H3 for | ||||
| the same (*,G1). Besides adding the corresponding port to | ||||
| its OIF | ||||
| list, it re-advertises the previously sent EVPN SMET rout | ||||
| e with the | ||||
| v3 and exclude flag set. | ||||
| </t> | ||||
| <t> | ||||
| Finally when PE1 receives the IGMPv3 Membership Report fr | ||||
| om H4 for (S2,G2), it | ||||
| advertises a new EVPN SMET route corresponding to it. | ||||
| </t> | ||||
| </section> | ||||
| <section title="PE with a mix of attached hosts and multicast source"> | ||||
| <t> | ||||
| The main difference in this case is that when PE2 rece | ||||
| ives the IGMPv3 | ||||
| Membership Report from H7 for (S2,G2), it does adverti | ||||
| se it in BGP to support | ||||
| source move even though PE2 knows that S2 is attached | ||||
| to its local | ||||
| AC. PE2 adds the port associated with H7 to its OIF li | ||||
| st for (S2,G2). | ||||
| The processing for IGMPv2 received from H6 is the same | ||||
| as the IGMPv2 | ||||
| Membership Report described in previous section. | ||||
| </t> | ||||
| </section> | ||||
| <section title="PE with a mix of attached hosts, a multicast source and a | ||||
| router"> | ||||
| <t> | ||||
| The main difference in this case relative to the previ | ||||
| ous two | ||||
| sections is that IGMP v2/v3 Membership Report messages | ||||
| received locally need to | ||||
| be sent to the port associated with router R1. Further | ||||
| more, the Membership Reports | ||||
| received via BGP (SMET) need to be passed to the R1 po | ||||
| rt but filtered | ||||
| for all other ports. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="All-Active Multi-Homing"> | ||||
| <t> | ||||
| Because the LAG flow hashing algorithm used by the CE is unkno | ||||
| wn at | ||||
| the PE, in an All-Active redundancy mode it must be assumed th | ||||
| at the | ||||
| CE can send a given IGMP message to any one of the multi-homed | ||||
| PEs, | ||||
| either DF or non-DF; i.e., different IGMP Membership Request m | ||||
| essages can arrive at | ||||
| different PEs in the redundancy group and furthermore their | ||||
| corresponding Leave messages can arrive at PEs that are differ | ||||
| ent | ||||
| from the ones that received the Membership Report. Therefore, | ||||
| all PEs | ||||
| attached to a given ES must coordinate IGMP Membership Request | ||||
| and Leave Group | ||||
| (x,G) state, where x may be either '*' or a particular source | ||||
| S, for | ||||
| each BD on that ES. Each PE has a local copy of that state and | ||||
| the EVPN signaling serves to synchronize state across PEs. This allows the DF f | ||||
| or that (ES,BD) to correctly | ||||
| advertise or withdraw a Selective Multicast Ethernet Tag (SMET | ||||
| ) route | ||||
| for that (x,G) group in that BD when needed. | ||||
| All-Active multihoming PEs for a given ES MUST support IGMP | ||||
| synchronization procedures described in this section if they n | ||||
| eed to | ||||
| perform IGMP proxy for hosts connected to that ES. | ||||
| </t> | ||||
| <section title="Local IGMP/MLD Membership Report Synchronization"> | ||||
| <t> | ||||
| When a PE, either DF or non-DF, receives on a given | ||||
| multihomed ES | ||||
| operating in All-Active redundancy mode, an IGMP Me | ||||
| mbership Report | ||||
| for (x,G), it determines the BD to which the IGMP M | ||||
| embership Report | ||||
| belongs. If the PE doesn't already have local IGMP | ||||
| Membership Request (x,G) state | ||||
| for that BD on that ES, it MUST instantiate local I | ||||
| GMP Membership Request (x,G) | ||||
| state and MUST advertise a BGP IGMP Membership Repo | ||||
| rt Synch route for that (ES,BD). | ||||
| Local IGMP Membership Request (x,G) state refers t | ||||
| o IGMP Membership Request (x,G) state | ||||
| that is created as a result of processing an IGMP | ||||
| Membership Report | ||||
| for (x,G). | ||||
| </t> | ||||
| <t> | ||||
| The IGMP Membership Report Synch route MUST carry the | ||||
| ES-Import RT for the ES on | ||||
| which the IGMP Membership Report was received. Thus i | ||||
| t MUST only be | ||||
| imported by the PEs attached to that ES and not any ot | ||||
| her PEs. | ||||
| </t> | ||||
| <t> | ||||
| When a PE, either DF or non-DF, receives an IGMP Me | ||||
| mbership Report Synch route it | ||||
| installs that route and if it doesn't already have | ||||
| IGMP Membership Request (x,G) | ||||
| state for that (ES,BD), it MUST instantiate that IG | ||||
| MP Membership Request (x,G) | ||||
| state - i.e., IGMP Membership Request (x,G) state i | ||||
| s the union of the local IGMP | ||||
| Membership Report (x,G) state and the installed IGM | ||||
| P Membership Report Synch route. If the DF | ||||
| did not already advertise (originate) a SMET route | ||||
| for that (x,G) | ||||
| group in that BD, it MUST do so now. | ||||
| </t> | ||||
| <t> | ||||
| When a PE, either DF or non-DF, deletes its local IGM | ||||
| P Membership Request (x,G) | ||||
| state for that (ES,BD), it MUST withdraw its BGP IGMP | ||||
| Membership Report Synch | ||||
| route for that (ES,BD). | ||||
| </t> | ||||
| <t> | ||||
| When a PE, either DF or non-DF, receives the withdr | ||||
| awal of an IGMP | ||||
| Membership Report Synch route from another PE it MU | ||||
| ST remove that route. When a | ||||
| PE has no local IGMP Membership Request (x,G) state | ||||
| and it has no installed IGMP | ||||
| Membership Report Synch routes, it MUST remove IGMP | ||||
| Membership Request (x,G) state for that (ES,BD). | ||||
| If the DF no longer has IGMP Membership Request (x, | ||||
| G) state for that BD on | ||||
| any ES for which it is DF, it MUST withdraw its SME | ||||
| T route for that | ||||
| (x,G) group in that BD. | ||||
| </t> | ||||
| <t> | ||||
| In other words, a PE advertises an SMET route for t | ||||
| hat (x,G) group in | ||||
| that BD when it has IGMP Membership Request (x,G) s | ||||
| tate in that BD on at least one | ||||
| ES for which it is DF and it withdraws that SMET ro | ||||
| ute when it does | ||||
| not have IGMP Membership Request (x,G) state in tha | ||||
| t BD on any ES for which it is | ||||
| DF. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Local IGMP/MLD Leave Group Synchronization"> | ||||
| <t> | ||||
| When a PE, either DF or non-DF, receives, on a given | ||||
| multihomed ES | ||||
| operating in All-Active redundancy mode, an IGMP Lea | ||||
| ve Group message | ||||
| for (x,G) from the attached CE, it determines the BD | ||||
| to which the | ||||
| IGMPv2 Leave Group belongs. Regardless of whether i | ||||
| t has IGMP Membership Request | ||||
| (x,G) state for that (ES,BD), it initiates the (x,G) | ||||
| leave group | ||||
| synchronization procedure, which consists of the fol | ||||
| lowing steps: | ||||
| <list style="numbers"> | ||||
| <t> | ||||
| It computes the Maximum Response Tim | ||||
| e, which is the duration of | ||||
| (x,G) leave group synchronization pr | ||||
| ocedure. This is the product of | ||||
| two locally configured values, Last | ||||
| Member Query Count and Last | ||||
| Member Query Interval (described in | ||||
| Section 3 of <xref target="RFC2236"/>), plus a | ||||
| delta corresponding to the time it t | ||||
| akes for a BGP advertisement to | ||||
| propagate between the PEs attached t | ||||
| o the multihomed ES (delta is a | ||||
| consistently configured value on all | ||||
| PEs attached to the multihomed | ||||
| ES). | ||||
| </t> | ||||
| <t> | ||||
| It starts the Maximum Response T | ||||
| ime timer. Note that the receipt | ||||
| of subsequent IGMP Leave Group m | ||||
| essages or BGP Leave Synch routes for | ||||
| (x,G) do not change the value of | ||||
| a currently running Maximum Response | ||||
| Time timer and are ignored by th | ||||
| e PE. | ||||
| </t> | ||||
| <t> | ||||
| It initiates the Last Member Que | ||||
| ry procedure described in Section | ||||
| 3 of <xref target="RFC2236"/>; v | ||||
| iz, it sends a number of Group-Specific Query (x,G) | ||||
| messages (Last Member Query Coun | ||||
| t) at a fixed interval (Last Member | ||||
| Query Interval) to the attached | ||||
| CE. | ||||
| </t> | ||||
| <t> | ||||
| It advertises an IGMP Leave Sync | ||||
| h route for that that (ES,BD). | ||||
| This route notifies the other mu | ||||
| ltihomed PEs attached to the given | ||||
| multihomed ES that it has initia | ||||
| ted an (x,G) leave group | ||||
| synchronization procedure; i.e., | ||||
| it carries the ES-Import RT for the | ||||
| ES on which the IGMP Leave Group | ||||
| was received. It also contains the | ||||
| Maximum Response Time. | ||||
| </t> | ||||
| <t> | ||||
| When the Maximum Response Timer | ||||
| expires, the PE that has | ||||
| advertised the IGMP Leave Synch | ||||
| route withdraws it. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <section title="Remote Leave Group Synchronization"> | ||||
| <t> | ||||
| When a PE, either DF or non-DF, receives an IG | ||||
| MP Leave Synch route it | ||||
| installs that route and it starts a timer for | ||||
| (x,G) on the specified | ||||
| (ES,BD) whose value is set to the Maximum Resp | ||||
| onse Time in the | ||||
| received IGMP Leave Synch route. Note that th | ||||
| e receipt of subsequent | ||||
| IGMPv2 Leave Group messages or BGP Leave Synch | ||||
| routes for (x,G) do | ||||
| not change the value of a currently running Ma | ||||
| ximum Response Time | ||||
| timer and are ignored by the PE. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Common Leave Group Synchronization"> | ||||
| <t> | ||||
| If a PE attached to the multihomed ES receives | ||||
| an IGMP Membership | ||||
| Report for (x,G) before the Maximum Response Ti | ||||
| me timer expires, it | ||||
| advertises a BGP IGMP Membership Report Synch r | ||||
| oute for that (ES,BD). If it | ||||
| doesn't already have local IGMP Membership Requ | ||||
| est (x,G) state for that (ES,BD), | ||||
| it instantiates local IGMP Membership Request ( | ||||
| x,G) state. If the DF is not | ||||
| currently advertising (originating) a SMET rout | ||||
| e for that (x,G) group | ||||
| in that BD, it does so now. | ||||
| </t> | ||||
| <t> | ||||
| If a PE attached to the multihomed ES receiv | ||||
| es an IGMP Membership Report Synch | ||||
| route for (x,G) before the Maximum Response | ||||
| Time timer expires, it | ||||
| installs that route and if it doesn't alread | ||||
| y have IGMP Membership Request (x,G) | ||||
| state for that BD on that ES, it instantiate | ||||
| s that IGMP Membership Request (x,G) | ||||
| state. If the DF has not already advertised | ||||
| (originated) a SMET route | ||||
| for that (x,G) group in that BD, it does so | ||||
| now. | ||||
| </t> | ||||
| <t> | ||||
| When the Maximum Response Timer expires a PE | ||||
| that has advertised an | ||||
| IGMP Leave Synch route, withdraws it. Any P | ||||
| E attached to the | ||||
| multihomed ES, that started the Maximum Resp | ||||
| onse Time and has no | ||||
| local IGMP Membership Request (x,G) state an | ||||
| d no installed IGMP Membership Report Synch routes, | ||||
| it removes IGMP Membership Request (x,G) sta | ||||
| te for that (ES,BD). If the DF no | ||||
| longer has IGMP Membership Request (x,G) sta | ||||
| te for that BD on any ES for which it | ||||
| is DF, it withdraws its SMET route for that | ||||
| (x,G) group in that BD. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="Mass Withdraw of Multicast Membership Report Sync rout | ||||
| e in case of failure"> | ||||
| <t> | ||||
| A PE which has received an IGMP Membership Request | ||||
| would have synced the IGMP Membership Report | ||||
| by the procedure defined in section 6.1. If a PE wi | ||||
| th local Membership Report | ||||
| state goes down or the PE to CE link goes down, it | ||||
| would lead to a | ||||
| mass withdraw of multicast routes. Remote PEs (PEs | ||||
| where these routes | ||||
| were remote IGMP Membership Reports) SHOULD NOT rem | ||||
| ove the state immediately; | ||||
| instead General Query SHOULD be generated to refres | ||||
| h the states. | ||||
| There are several ways to detect failure at a | ||||
| peer, e.g. using IGP next hop tracking or ES route | ||||
| withdraw. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="Single-Active Multi-Homing"> | ||||
| <t> | ||||
| Note that to facilitate state synchronization after failove | ||||
| r, the PEs | ||||
| attached to a multihomed ES operating in Single-Active redu | ||||
| ndancy mode | ||||
| SHOULD also coordinate IGMP Membership Report (x,G) state. | ||||
| In this case all IGMP | ||||
| Membership Report messages are received by the DF and distr | ||||
| ibuted to the non-DF | ||||
| PEs using the procedures described above. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Selective Multicast Procedures for IR tunnels"> | ||||
| <t> | ||||
| If an ingress PE uses ingress replication, then for a | ||||
| given (x,G) | ||||
| group in a given BD: | ||||
| <list style="numbers"> | ||||
| <t> | ||||
| It sends (x,G) traffic to the set of P | ||||
| Es not supporting IGMP or MLD | ||||
| Proxy. This set consists of any PE tha | ||||
| t has advertised an IMET route for the BD | ||||
| without a Multicast Flags extended co | ||||
| mmunity or with a Multicast Flags extended | ||||
| community in which neither the IGMP Pr | ||||
| oxy support nor the MLD Proxy support flags are set. | ||||
| </t> | ||||
| <t> | ||||
| It sends (x,G) traffic to the set of P | ||||
| Es supporting IGMP or MLD Proxy | ||||
| and having listeners for that (x,G) gr | ||||
| oup in that BD. This set consists of any PE that has advertised an IMET route fo | ||||
| r the BD | ||||
| with a Multicast Flags extended commun | ||||
| ity in which the IGMP Proxy support and/or | ||||
| the MLD Proxy support flags are set a | ||||
| nd that has advertised a SMET route for that (x,G) | ||||
| group in that BD. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section title="BGP Encoding" anchor="bgp-encoding"> | ||||
| <t> | ||||
| This document defines three new BGP EVPN routes to carry | ||||
| IGMP | ||||
| Membership Reports. The route types are known as: | ||||
| </t> | ||||
| <t> + 6 - Selective Multicast Ethernet Tag | ||||
| Route </t> | ||||
| <t> + 7 - Multicast Membership Report Synch | ||||
| Route </t> | ||||
| <t> + 8 - Multicast Leave Synch Route </t> | ||||
| <t> | ||||
| The detailed encoding and procedures for these route t | ||||
| ypes are | ||||
| described in subsequent sections. | ||||
| </t> | ||||
| <section title="Selective Multicast Ethernet Tag Route" anchor=" | ||||
| SMET"> | ||||
| <t> | ||||
| A Selective Multicast Ethernet Tag route type sp | ||||
| ecific EVPN NLRI | ||||
| consists of the following: | ||||
| </t> | ||||
| <figure > | ||||
| <artwork ><![CDATA[ | ||||
| +---------------------------------------+ | ||||
| | RD (8 octets) | | ||||
| +---------------------------------------+ | ||||
| | Ethernet Tag ID (4 octets) | | ||||
| +---------------------------------------+ | ||||
| | Multicast Source Length (1 octet) | | ||||
| +---------------------------------------+ | ||||
| | Multicast Source Address (variable) | | ||||
| +---------------------------------------+ | ||||
| | Multicast Group Length (1 octet) | | ||||
| +---------------------------------------+ | ||||
| | Multicast Group Address (Variable) | | ||||
| +---------------------------------------+ | ||||
| | Originator Router Length (1 octet) | | ||||
| +---------------------------------------+ | ||||
| | Originator Router Address (variable) | | ||||
| +---------------------------------------+ | ||||
| | Flags (1 octet) | | ||||
| +---------------------------------------+ | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <t> | ||||
| For the purpose of BGP route key processing, all the fields ar | ||||
| e | ||||
| considered to be part of the prefix in the NLRI except for the | ||||
| one- | ||||
| octet flag field. The Flags fields are defined as follows: | ||||
| </t> | ||||
| <figure > | ||||
| <artwork ><![CDATA[ | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +--+--+--+--+--+--+--+--+ | ||||
| | reserved |IE|v3|v2|v1| | ||||
| +--+--+--+--+--+--+--+--+ | ||||
| ]]></artwork> | ||||
| </figure> | </figure> | |||
| <section numbered="true" toc="default"> | ||||
| <name>PE with Only Attached Hosts for a Given Subnet</name> | ||||
| <t>When PE1 receives an IGMPv2 Membership Report from H1, it does not fo | ||||
| rward | ||||
| this Membership Report to any of its other ports (for this subnet) becaus | ||||
| e all | ||||
| these local ports are associated with the hosts. | ||||
| PE1 sends an | ||||
| EVPN SMET route corresponding to this Membership Report for (*,G1) and | ||||
| sets the v2 flag. This EVPN route is received by PE2 and PE3, which are | ||||
| the members of the same BD (i.e., same EVI in case of a VLAN-based | ||||
| service or EVI and VLAN in case of a VLAN-aware bundle service). PE3 | ||||
| reconstructs the IGMPv2 Membership Report from this EVPN BGP route and on | ||||
| ly | ||||
| sends it to the port(s) with multicast routers attached to it (for | ||||
| that subnet). In this example, PE3 sends the reconstructed IGMPv2 | ||||
| Membership Report for (*,G1) only to R1. Furthermore, even though PE2 | ||||
| receives the EVPN BGP route, it does not send it to any of its ports | ||||
| for that subnet (viz., ports associated with H6 and H7). | ||||
| </t> | ||||
| <t>When PE1 receives the second IGMPv2 Membership Report from H2 for the | ||||
| same | ||||
| multicast group (*,G1), it only adds that port to its OIF list, but it | ||||
| doesn't send any EVPN BGP routes because there is no change in | ||||
| information. However, when it receives the IGMPv3 Membership Report from | ||||
| H3 for | ||||
| the same (*,G1), besides adding the corresponding port to its OIF | ||||
| list, it re-advertises the previously sent EVPN SMET route with the | ||||
| v3 and exclude flag set. | ||||
| </t> | ||||
| <t>Finally, when PE1 receives the IGMPv3 Membership Report from H4 for ( | ||||
| S2,G2), it | ||||
| advertises a new EVPN SMET route corresponding to it. | ||||
| </t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>PE with a Mix of Attached Hosts and a Multicast Source</name> | ||||
| <t>The main difference in this case is that when PE2 receives the IGMPv3 | ||||
| Membership Report from H7 for (S2,G2), it advertises it in BGP to support | ||||
| the | ||||
| source moving, even though PE2 knows that S2 is attached to its local | ||||
| AC. PE2 adds the port associated with H7 to its OIF list for (S2,G2). | ||||
| The processing for IGMPv2 received from H6 is the same as the IGMPv2 | ||||
| Membership Report described in the previous section. | ||||
| </t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>PE with a Mix of Attached Hosts, a Multicast Source, and a Router< | ||||
| /name> | ||||
| <t>The main difference in this case relative to the previous two | ||||
| sections is that IGMPv2/v3 Membership Report messages received locally ne | ||||
| ed to | ||||
| be sent to the port associated with router R1. Furthermore, the Membershi | ||||
| p Reports | ||||
| received via BGP (SMET) need to be passed to the R1 port but filtered | ||||
| for all other ports. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>All-Active Multihoming</name> | ||||
| <t>Because the Link Aggregation Group (LAG) flow hashing algorithm used by | ||||
| the CE is unknown at | ||||
| the PE, in an All-Active redundancy mode, it must be assumed that the | ||||
| CE can send a given IGMP message to any one of the multihomed PEs, | ||||
| either Designated Forwarder (DF) or non-DF, i.e., different IGMP Membershi | ||||
| p | ||||
| Request messages can arrive at | ||||
| different PEs in the redundancy group. Furthermore, their | ||||
| corresponding Leave messages can arrive at PEs that are different | ||||
| from the ones that received the Membership Report. Therefore, all PEs | ||||
| attached to a given Ethernet segment (ES) must coordinate the IGMP Members | ||||
| hip Request and Leave Group | ||||
| (x,G) state, where x may be either "*" or a particular source S for | ||||
| each BD on that ES. Each PE has a local copy of that state, and the EVPN s | ||||
| ignaling | ||||
| serves to synchronize that state across PEs. This allows the DF for that ( | ||||
| ES,BD) to correctly | ||||
| advertise or withdraw a SMET route | ||||
| for that (x,G) group in that BD when needed. | ||||
| All-Active multihoming PEs for a given ES <bcp14>MUST</bcp14> support IGMP | ||||
| synchronization procedures described in this section if they need to | ||||
| perform IGMP Proxy for hosts connected to that ES. | ||||
| </t> | ||||
| <section numbered="true" toc="default" anchor="local-igmp-mld"> | ||||
| <name>Local IGMP/MLD Membership Report Synchronization</name> | ||||
| <t>When a PE, either DF or non-DF, receives an IGMP Membership Report | ||||
| for (x,G) on a given multihomed ES operating in All-Active redundancy mod | ||||
| e, it determines the BD to which the IGMP Membership Report | ||||
| belongs. If the PE doesn't already have the local IGMP Membership Request | ||||
| (x,G) state | ||||
| for that BD on that ES, it <bcp14>MUST</bcp14> instantiate that local IGM | ||||
| P Membership | ||||
| Request (x,G) | ||||
| state and <bcp14>MUST</bcp14> advertise a BGP IGMP Membership Report Sync | ||||
| h route | ||||
| for that (ES,BD). | ||||
| The local IGMP Membership Request (x,G) state refers to the IGMP Membersh | ||||
| ip Request (x,G) state | ||||
| that is created as a result of processing an IGMP Membership Report | ||||
| for (x,G). | ||||
| </t> | ||||
| <t>The IGMP Membership Report Synch route <bcp14>MUST</bcp14> carry the | ||||
| ES-Import | ||||
| Route Target (RT) for the ES on | ||||
| which the IGMP Membership Report was received. Thus, it <bcp14>MUST</bcp | ||||
| 14> only be | ||||
| imported by the PEs attached to that ES and not any other PEs. | ||||
| </t> | ||||
| <t>When a PE, either DF or non-DF, receives an IGMP Membership Report Sy | ||||
| nch route, it | ||||
| installs that route, and if it doesn't already have the IGMP Membership R | ||||
| equest (x,G) | ||||
| state for that (ES,BD), it <bcp14>MUST</bcp14> instantiate that IGMP Memb | ||||
| ership | ||||
| Request (x,G) | ||||
| state, i.e., the IGMP Membership Request (x,G) state is the union of the | ||||
| local IGMP | ||||
| Membership Report (x,G) state and the installed IGMP Membership Report Sy | ||||
| nch route. | ||||
| If the DF did not already advertise (originate) a SMET route for that (x, | ||||
| G) | ||||
| group in that BD, it <bcp14>MUST</bcp14> do so now. | ||||
| </t> | ||||
| <t>When a PE, either DF or non-DF, deletes its local IGMP Membership Req | ||||
| uest (x,G) | ||||
| state for that (ES,BD), it <bcp14>MUST</bcp14> withdraw its BGP IGMP Memb | ||||
| ership | ||||
| Report Synch route for that (ES,BD). | ||||
| </t> | ||||
| <t>When a PE, either DF or non-DF, receives the withdrawal of an IGMP | ||||
| Membership Report Synch route from another PE, it <bcp14>MUST</bcp14> rem | ||||
| ove that route. | ||||
| When a PE has no local IGMP Membership Request (x,G) state and it has no | ||||
| installed IGMP | ||||
| Membership Report Synch routes, it <bcp14>MUST</bcp14> remove that IGMP M | ||||
| embership Request | ||||
| (x,G) state for that (ES,BD). | ||||
| If the DF no longer has the IGMP Membership Request (x,G) state for that | ||||
| BD on | ||||
| any ES for which it is the DF, it <bcp14>MUST</bcp14> withdraw its SMET r | ||||
| oute for that | ||||
| (x,G) group in that BD. | ||||
| </t> | ||||
| <t>In other words, a PE advertises a SMET route for that (x,G) group in | ||||
| that BD when it has the IGMP Membership Request (x,G) state on at least o | ||||
| ne | ||||
| ES for which it is the DF, and it withdraws that SMET route when it does | ||||
| not have an IGMP Membership Request (x,G) state in that BD on any ES for | ||||
| which it is | ||||
| the DF. | ||||
| </t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Local IGMP/MLD Leave Group Synchronization</name> | ||||
| <t>When a PE, either DF or non-DF, receives an IGMP Leave Group message | ||||
| for (x,G) from the attached CE on a given multihomed ES | ||||
| operating in All-Active redundancy mode, it determines the BD to which th | ||||
| e | ||||
| IGMPv2 Leave Group belongs. Regardless of whether it has the IGMP Member | ||||
| ship Request | ||||
| (x,G) state for that (ES,BD), it initiates the (x,G) leave group | ||||
| synchronization procedure, which consists of the following steps: | ||||
| </t> | ||||
| <ol spacing="normal" type="1"> | ||||
| <li>It computes the Maximum Response Time, which is the duration of the | ||||
| (x,G) leave group synchronization procedure. This is the product of | ||||
| two locally configured values, Last Member Query Count and Last | ||||
| Member Query Interval (described in <xref target="RFC2236" section="3" | ||||
| sectionFormat="of"/>), plus a | ||||
| delta corresponding to the time it takes for a BGP advertisement to | ||||
| propagate between the PEs attached to the multihomed ES (delta is a | ||||
| consistently configured value on all PEs attached to the multihomed | ||||
| ES). | ||||
| </li> | ||||
| <li>It starts the Maximum Response Time timer. Note that the receipt | ||||
| of subsequent IGMP Leave Group messages or BGP Leave Synch routes for | ||||
| (x,G) do not change the value of a currently running Maximum Response | ||||
| Time timer and are ignored by the PE. | ||||
| </li> | ||||
| <li>It initiates the Last Member Query procedure described in | ||||
| <xref target="RFC2236" section="3" sectionFormat="of"/>; viz., it | ||||
| sends a number of Group-Specific Query (x,G) | ||||
| messages (Last Member Query Count) at a fixed interval (Last Member | ||||
| Query Interval) to the attached CE.</li> | ||||
| <li>It advertises an IGMP Leave Synch route for that (ES,BD). | ||||
| This route notifies the other multihomed PEs attached to the given | ||||
| multihomed ES that it has initiated an (x,G) leave group | ||||
| synchronization procedure, i.e., it carries the ES-Import RT for the | ||||
| ES on which the IGMP Leave Group was received. It also contains the | ||||
| Maximum Response Time. | ||||
| </li> | ||||
| <li>When the Maximum Response Time timer expires, the PE that has | ||||
| advertised the IGMP Leave Synch route withdraws it. | ||||
| </li> | ||||
| </ol> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Remote Leave Group Synchronization</name> | ||||
| <t>When a PE, either DF or non-DF, receives an IGMP Leave Synch route, | ||||
| it | ||||
| installs that route and it starts a timer for (x,G) on the specified | ||||
| (ES,BD), whose value is set to the Maximum Response Time in the | ||||
| received IGMP Leave Synch route. Note that the receipt of subsequent | ||||
| IGMPv2 Leave Group messages or BGP Leave Synch routes for (x,G) do | ||||
| not change the value of a currently running Maximum Response Time | ||||
| timer and are ignored by the PE. | ||||
| </t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Common Leave Group Synchronization</name> | ||||
| <t>If a PE attached to the multihomed ES receives an IGMP Membership | ||||
| Report for (x,G) before the Maximum Response Time timer expires, it | ||||
| advertises a BGP IGMP Membership Report Synch route for that (ES,BD). I | ||||
| f it | ||||
| doesn't already have the local IGMP Membership Request (x,G) state for | ||||
| that (ES,BD), | ||||
| it instantiates that local IGMP Membership Request (x,G) state. If the | ||||
| DF is not | ||||
| currently advertising (originating) a SMET route for that (x,G) group | ||||
| in that BD, it does so now. | ||||
| </t> | ||||
| <t>If a PE attached to the multihomed ES receives an IGMP Membership R | ||||
| eport Synch | ||||
| route for (x,G) before the Maximum Response Time timer expires, it | ||||
| installs that route, and if it doesn't already have the IGMP Membership | ||||
| Request (x,G) | ||||
| state for that BD on that ES, it instantiates that IGMP Membership Requ | ||||
| est (x,G) | ||||
| state. If the DF has not already advertised (originated) a SMET route | ||||
| for that (x,G) group in that BD, it does so now. | ||||
| </t> | ||||
| <t>When the Maximum Response Time timer expires, a PE that has adverti | ||||
| sed an | ||||
| IGMP Leave Synch route withdraws it. Any PE attached to the | ||||
| multihomed ES, which started the Maximum Response Time and has no | ||||
| local IGMP Membership Request (x,G) state and no installed IGMP Members | ||||
| hip Report | ||||
| Synch routes, | ||||
| removes the IGMP Membership Request (x,G) state for that (ES,BD). If t | ||||
| he DF no | ||||
| longer has the IGMP Membership Request (x,G) state for that BD on any E | ||||
| S for which it | ||||
| is the DF, it withdraws its SMET route for that (x,G) group in that BD. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Mass Withdraw of the Multicast Membership Report Synch Route in Ca | ||||
| se of Failure</name> | ||||
| <t>A PE that has received an IGMP Membership Request would have synced t | ||||
| he IGMP | ||||
| Membership Report by the procedure defined in <xref target="local-igmp-ml | ||||
| d" | ||||
| format="default"/>. If a PE with the local Membership Report | ||||
| state goes down or the PE to CE link goes down, it would lead to a | ||||
| mass withdraw of multicast routes. Remote PEs (PEs where these routes | ||||
| were remote IGMP Membership Reports) <bcp14>SHOULD NOT</bcp14> remove the | ||||
| state immediately; | ||||
| instead, General Query <bcp14>SHOULD</bcp14> be generated to refresh the | ||||
| states. | ||||
| There are several ways to detect failure at a | ||||
| peer, e.g., using IGP next-hop tracking or ES route withdraw. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Single-Active Multihoming</name> | ||||
| <t>Note that to facilitate state synchronization after failover, the PEs | ||||
| attached to a multihomed ES operating in Single-Active redundancy mode | ||||
| <bcp14>SHOULD</bcp14> also coordinate the IGMP Membership Report (x,G) sta | ||||
| te. | ||||
| In this case, all IGMP | ||||
| Membership Report messages are received by the DF and distributed to the n | ||||
| on-DF | ||||
| PEs using the procedures described above. | ||||
| </t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Selective Multicast Procedures for IR Tunnels</name> | ||||
| <t>If an ingress PE uses ingress replication, then for a given (x,G) | ||||
| group in a given BD: | ||||
| </t> | ||||
| <ol spacing="normal" type="1"> | ||||
| <li>It sends (x,G) traffic to the set of PEs not supporting IGMP or MLD | ||||
| Proxies. This set consists of any PE that has advertised an Inclusive Mul | ||||
| ticast | ||||
| Ethernet Tag (IMET) route for the BD | ||||
| without a Multicast Flags Extended Community or with a Multicast Flags E | ||||
| xtended | ||||
| Community in which neither the IGMP Proxy support nor the MLD Proxy supp | ||||
| ort flags are set. | ||||
| </li> | ||||
| <li>It sends (x,G) traffic to the set of PEs supporting IGMP or MLD Prox | ||||
| ies | ||||
| and has listeners for that (x,G) group in that BD. This set consists of a | ||||
| ny PE | ||||
| that has advertised an IMET route for the BD | ||||
| with a Multicast Flags Extended Community in which the IGMP Proxy support | ||||
| and/or | ||||
| the MLD Proxy support flags are set and that has advertised a SMET route | ||||
| for that (x,G) | ||||
| group in that BD. | ||||
| </li> | ||||
| </ol> | ||||
| </section> | ||||
| <section anchor="bgp-encoding" numbered="true" toc="default"> | ||||
| <name>BGP Encoding</name> | ||||
| <t>This document defines three new BGP EVPN routes to carry IGMP | ||||
| Membership Reports. The route types are known as: | ||||
| </t> | ||||
| <t> | <dl newline="false" spacing="normal"> | |||
| <list style="symbols"> | <dt>6 -</dt> | |||
| <t> | <dd>Selective Multicast Ethernet Tag Route </dd> | |||
| The least significant bit, bit 7 indicates sup | <dt>7 -</dt> | |||
| port for IGMP version | <dd>Multicast Membership Report Synch Route </dd> | |||
| 1. Since IGMP V1 is being deprecated sender MU | <dt>8 -</dt> | |||
| ST set it as 0 for IGMP and | <dd>Multicast Leave Synch Route </dd> | |||
| receiver MUST ignore it. | </dl> | |||
| </t> | ||||
| <t> | ||||
| The second least significant bit, bit 6 indica | ||||
| tes support for IGMP | ||||
| version 2. | ||||
| </t> | ||||
| <t> | ||||
| The third least significant bit, bit 5 indicat | ||||
| es support for IGMP | ||||
| version 3. | ||||
| </t> | ||||
| <t> | ||||
| The fourth least significant bit, bit 4 indica | ||||
| tes whether the (S,G) | ||||
| information carried within the route-type is o | ||||
| f an Include Group type | ||||
| (bit value 0) or an Exclude Group type (bit va | ||||
| lue 1). The Exclude | ||||
| Group type bit MUST be ignored if bit 5 is not | ||||
| set. | ||||
| </t> | ||||
| <t> | ||||
| This EVPN route type is used to carry tenant I | ||||
| GMP multicast group | ||||
| information. The flag field assists in distrib | ||||
| uting IGMP Membership | ||||
| Report of a given host for a given multicast r | ||||
| oute. The version | ||||
| bits help associate IGMP version of receivers | ||||
| participating within | ||||
| the EVPN domain. | ||||
| </t> | ||||
| <t> | ||||
| The include/exclude (IE) bit helps in creating | ||||
| filters for a given | ||||
| multicast route. | ||||
| </t> | ||||
| <t> | ||||
| If route is used for IPv6 (MLD) then bit 7 ind | ||||
| icates support for MLD | ||||
| version 1. The second least significant bit, b | ||||
| it 6 indicates support | ||||
| for MLD version 2. Since there is no MLD versi | ||||
| on 3, in case of IPv6 | ||||
| route third least significant bit MUST be 0. I | ||||
| n case of IPv6 routes, | ||||
| the fourth least significant bit MUST be ignor | ||||
| ed if bit 6 is not | ||||
| set. | ||||
| </t> | ||||
| <t> Reserved bits MUST be set to 0 by sender. And | ||||
| receiver MUST ignore the Reserved bits. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <section title="Constructing the Selective Multicast Ethernet Tag ro | ||||
| ute"> | ||||
| <t> | ||||
| This section describes the procedures used to constr | ||||
| uct the Selective | ||||
| Multicast Ethernet Tag (SMET) route. | ||||
| </t> | ||||
| <t> | ||||
| The Route Distinguisher (RD) SHOULD be a Type | ||||
| 1 RD <xref target="RFC4364"/>. The | ||||
| value field comprises an IP address of the PE | ||||
| (typically, the | ||||
| loopback address) followed by a number unique | ||||
| to the PE. | ||||
| </t> | ||||
| <t> | ||||
| The Ethernet Tag ID MUST be set as procedure defined | ||||
| in <xref target="RFC7432"/>. | ||||
| </t> | ||||
| <t> | ||||
| The Multicast Source Length MUST be set to le | ||||
| ngth of the multicast | ||||
| Source address in bits. If the Multicast Sour | ||||
| ce Address field | ||||
| contains an IPv4 address, then the value of t | ||||
| he Multicast Source | ||||
| Length field is 32. If the Multicast Source A | ||||
| ddress field contains an | ||||
| IPv6 address, then the value of the Multicast | ||||
| Source Length field is | ||||
| 128. In case of a (*,G) Membership Report, th | ||||
| e Multicast Source Length is set to | ||||
| 0. | ||||
| </t> | ||||
| <t> | ||||
| The Multicast Source Address is the source IP | ||||
| address from the IGMP | ||||
| Membership Report. In case of a (*,G), this f | ||||
| ield is not used. | ||||
| </t> | ||||
| <t> | ||||
| The Multicast Group Length MUST be set to length | ||||
| of multicast group | ||||
| address in bits. If the Multicast Group Address | ||||
| field contains an | ||||
| IPv4 address, then the value of the Multicast Gr | ||||
| oup Length field is | ||||
| 32. If the Multicast Group Address field contai | ||||
| ns an IPv6 address, | ||||
| then the value of the Multicast Group Length fie | ||||
| ld is 128. | ||||
| </t> | ||||
| <t> | ||||
| The Multicast Group Address is the Group address | ||||
| from the IGMP or MLD | ||||
| Membership Report. | ||||
| </t> | ||||
| <t> | ||||
| The Originator Router Length is the length of th | ||||
| e Originator Router | ||||
| Address in bits. | ||||
| </t> | ||||
| <t> | ||||
| The Originator Router Address is the IP addre | ||||
| ss of router originating this route. | ||||
| The SMET Originator Router IP address MUST ma | ||||
| tch that of the IMET (or S-PMSI AD) | ||||
| route originated for the same EVI by the same | ||||
| downstream PE. | ||||
| </t> | ||||
| <t> | ||||
| The Flags field indicates the version of IGMP | ||||
| protocol from which the | ||||
| Membership Report was received. It also indic | ||||
| ates whether the | ||||
| multicast group had the INCLUDE or EXCLUDE bi | ||||
| t set. | ||||
| </t> | ||||
| <t> Reserved bits MUST be set to 0. They can be defined | ||||
| in future by other document. | ||||
| </t> | ||||
| <t> | ||||
| IGMP is used to receive group membership info | ||||
| rmation from hosts | ||||
| by TORs. Upon receiving the hosts expression | ||||
| of interest of a | ||||
| particular group membership, this information | ||||
| is then forwarded using | ||||
| SMET route. The NLRI also keeps track | ||||
| of receiver's IGMP protocol version and any s | ||||
| ource filtering for a | ||||
| given group membership. All EVPN SMET routes | ||||
| are announced with per- | ||||
| EVI Route Target extended communities. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Reconstructing IGMP / MLD Membership Reports fro | ||||
| m Selective Multicast Route"> | ||||
| <t> Th | ||||
| is section describes the procedures used to reconstruct IGMP / MLD Membership Re | ||||
| ports from SMET route. | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t> If multicast group length is 32, rou | ||||
| te would be translated to IGMP membership request. If multicast group length is | ||||
| 128, route would be translated to MLD membership request. | ||||
| </t> | ||||
| <t> Multicast group address field would be translated | ||||
| to IGMP / MLD group address. | ||||
| </t> | ||||
| <t> If Multicast source length is set to zero it would | ||||
| be translated to any source (*). | ||||
| If multicast source length is non zero, Multica | ||||
| st source address field would be translated to IGMP / MLD source address. | ||||
| </t> | ||||
| <t> If flag bit 7 is set, it translates Membership repo | ||||
| rt to be IGMP V1 or MLD V1. | ||||
| </t> | ||||
| <t> If flag bit 6 is set, it translates Membership repo | ||||
| rt to be IGMP V2 or MLD V2. | ||||
| </t> | ||||
| <t> Flag bit 5 is only valid for IGMP Membership report | ||||
| and if it is set, it translates to IGMP V3 report. | ||||
| </t> | ||||
| <t> If IE flag is set, it translate to IGMP / MLD Exc | ||||
| lude mode membership report. If IE flag is not set (zero), it translates to Incl | ||||
| ude mode membership report. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section title="Default Selective Multicast Route"> | ||||
| <t> | ||||
| If there is multicast router connected behind | ||||
| the EVPN domain, the PE | ||||
| MAY originate a default SMET (*,*) to get all | ||||
| multicast traffic in | ||||
| domain. | ||||
| </t> | ||||
| <figure > | ||||
| <artwork ><![CDATA[ | ||||
| +--------------+ | ||||
| | | | ||||
| | | | ||||
| | | +----+ | ||||
| | | | |---- H1(*,G1)v2 | ||||
| | IP/MPLS | | PE1|---- H2(S2,G2)v3 | ||||
| | Network | | |---- S2 | ||||
| | | | | | ||||
| | | +----+ | ||||
| | | | ||||
| +----+ | | | ||||
| +----+ | | | | | ||||
| | | S1 ---| PE2| | | | ||||
| |PIM |----R1 ---| | | | | ||||
| |ASM | +----+ | | | ||||
| | | | | | ||||
| +----+ +--------------+ | ||||
| Figure 2: Multicast Router behind EVPN domain | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <t> | <t>The detailed encoding and procedures for these route types are | |||
| Consider the EVPN network of Figure-2, where there is an EVPN | described in subsequent sections. | |||
| </t> | ||||
| <section anchor="SMET" numbered="true" toc="default"> | ||||
| <name>Selective Multicast Ethernet Tag Route</name> | ||||
| <t>A SMET route-type-specific EVPN NLRI | ||||
| consists of the following: | ||||
| </t> | ||||
| <artwork name="" type="" align="center" alt=""><![CDATA[ | ||||
| +---------------------------------------+ | ||||
| | RD (8 octets) | | ||||
| +---------------------------------------+ | ||||
| | Ethernet Tag ID (4 octets) | | ||||
| +---------------------------------------+ | ||||
| | Multicast Source Length (1 octet) | | ||||
| +---------------------------------------+ | ||||
| | Multicast Source Address (variable) | | ||||
| +---------------------------------------+ | ||||
| | Multicast Group Length (1 octet) | | ||||
| +---------------------------------------+ | ||||
| | Multicast Group Address (Variable) | | ||||
| +---------------------------------------+ | ||||
| | Originator Router Length (1 octet) | | ||||
| +---------------------------------------+ | ||||
| | Originator Router Address (variable) | | ||||
| +---------------------------------------+ | ||||
| | Flags (1 octet) | | ||||
| +---------------------------------------+ | ||||
| ]]></artwork> | ||||
| <t>For the purpose of BGP route key processing, all the fields are | ||||
| considered to be part of the prefix in the NLRI, except for the 1-octet | ||||
| Flags field. The Flags fields are defined as follows: | ||||
| </t> | ||||
| <artwork name="" type="" align="center" alt=""><![CDATA[ | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +--+--+--+--+--+--+--+--+ | ||||
| | reserved |IE|v3|v2|v1| | ||||
| +--+--+--+--+--+--+--+--+ | ||||
| ]]></artwork> | ||||
| <ul spacing="normal"> | ||||
| <li>The least significant bit (bit 7) indicates support for IGMP versi | ||||
| on | ||||
| 1. Since IGMPv1 is being deprecated, the sender <bcp14>MUST</bcp14> set | ||||
| it to 0 for IGMP and the receiver <bcp14>MUST</bcp14> ignore it. | ||||
| </li> | ||||
| <li>The second least significant bit (bit 6) indicates support for IGM | ||||
| P | ||||
| version 2. | ||||
| </li> | ||||
| <li>The third least significant bit (bit 5) indicates support for IGMP | ||||
| version 3. | ||||
| </li> | ||||
| <li>The fourth least significant bit (bit 4) indicates whether the (S, | ||||
| G) | ||||
| information carried within the route type is of an Include Group type | ||||
| (bit value 0) or an Exclude Group type (bit value 1). The Exclude | ||||
| Group type bit <bcp14>MUST</bcp14> be ignored if bit 5 is not set. | ||||
| </li> | ||||
| <li>This EVPN route type is used to carry tenant IGMP multicast group | ||||
| information. The Flags field assists in distributing the IGMP Membershi | ||||
| p | ||||
| Report of a given host for a given multicast route. The version | ||||
| bits help associate the IGMP version of receivers participating within | ||||
| the EVPN domain. | ||||
| </li> | ||||
| <li>The IE bit helps in creating filters for a given | ||||
| multicast route. | ||||
| </li> | ||||
| <li>If the route is used for IPv6 (MLD), then bit 7 indicates support | ||||
| for MLD | ||||
| version 1. The second least significant bit (bit 6) indicates support | ||||
| for MLD version 2. Since there is no MLD version 3, in case of IPv6 | ||||
| routes, the third least significant bit <bcp14>MUST</bcp14> be 0. In ca | ||||
| se of IPv6 routes, | ||||
| the fourth least significant bit <bcp14>MUST</bcp14> be ignored if bit | ||||
| 6 is not | ||||
| set. | ||||
| </li> | ||||
| <li> Reserved bits <bcp14>MUST</bcp14> be set to 0 by the sender, and | ||||
| the receiver | ||||
| <bcp14>MUST</bcp14> ignore the Reserved bits. | ||||
| </li> | ||||
| </ul> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Constructing the Selective Multicast Ethernet Tag Route</name> | ||||
| <t>This section describes the procedures used to construct the SMET ro | ||||
| ute. | ||||
| </t> | ||||
| <t>The Route Distinguisher (RD) <bcp14>SHOULD</bcp14> be a Type 1 RD < | ||||
| xref | ||||
| target="RFC4364" format="default"/>. The | ||||
| value field comprises an IP address of the PE (typically, the | ||||
| loopback address), followed by a number unique to the PE. | ||||
| </t> | ||||
| <t>The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedur | ||||
| e | ||||
| defined in <xref target="RFC7432" format="default"/>. | ||||
| </t> | ||||
| <t>The Multicast Source Length <bcp14>MUST</bcp14> be set to the lengt | ||||
| h of the Multicast | ||||
| Source Address in bits. If the Multicast Source Address field | ||||
| contains an IPv4 address, then the value of the Multicast Source | ||||
| Length field is 32. If the Multicast Source Address field contains an | ||||
| IPv6 address, then the value of the Multicast Source Length field is | ||||
| 128. In case of a (*,G) Membership Report, the Multicast Source Length | ||||
| is set to | ||||
| 0. | ||||
| </t> | ||||
| <t>The Multicast Source Address is the source IP address from the IGMP | ||||
| Membership Report. | ||||
| In case of a (*,G) Membership Report, this field is not used. | ||||
| </t> | ||||
| <t>The Multicast Group Length <bcp14>MUST</bcp14> be set to the length | ||||
| of the Multicast Group | ||||
| Address in bits. If the Multicast Group Address field contains an | ||||
| IPv4 address, then the value of the Multicast Group Length field is | ||||
| 32. If the Multicast Group Address field contains an IPv6 address, | ||||
| then the value of the Multicast Group Length field is 128. | ||||
| </t> | ||||
| <t>The Multicast Group Address is the group address from the IGMP or M | ||||
| LD | ||||
| Membership Report. | ||||
| </t> | ||||
| <t>The Originator Router Length is the length of the Originator Router | ||||
| Address in bits. | ||||
| </t> | ||||
| <t>The Originator Router Address is the IP address of the router origi | ||||
| nating this route. | ||||
| The SMET Originator Router IP address <bcp14>MUST</bcp14> match that of | ||||
| the IMET (or | ||||
| S-PMSI Authentic Data (AD)) | ||||
| route originated for the same EVI by the same downstream PE. | ||||
| </t> | ||||
| <t>The Flags field indicates the version of IGMP from which the | ||||
| Membership Report was received. It also indicates whether the | ||||
| multicast group had the Include/Exclude bit set. | ||||
| </t> | ||||
| <t> Reserved bits <bcp14>MUST</bcp14> be set to 0. They can be defined | ||||
| by other documents in the future. </t> | ||||
| <t>IGMP is used to receive group membership information from hosts | ||||
| by Top-of-the-Rack (ToR) switches. Upon receiving the host's expression | ||||
| of interest in a | ||||
| particular group membership, this information is then forwarded using t | ||||
| he | ||||
| SMET route. The NLRI also keeps track | ||||
| of the receiver's IGMP version and any source filtering for a | ||||
| given group membership. All EVPN SMET routes are announced per EVI | ||||
| Route Target extended communities (EVI-RT ECs). | ||||
| </t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Reconstructing IGMP/MLD Membership Reports from the Selective Mu | ||||
| lticast Route</name> | ||||
| <t> This section describes the procedures used to reconstruct IGMP/ML | ||||
| D Membership | ||||
| Reports from the SMET route. | ||||
| </t> | ||||
| <ul spacing="normal"> | ||||
| <li> If the Multicast Group Length is 32, the route is | ||||
| translated to the IGMP Membership Request. If the Multicast Group | ||||
| Length is 128, the route is translated to an MLD | ||||
| Membership Request. </li> | ||||
| <li>The Multicast Group Address field is translated to | ||||
| the IGMP/MLD group address.</li> | ||||
| <li> If the Multicast Source Length is set to 0, it is | ||||
| translated to any source (*). | ||||
| If the Multicast Source Length is non-zero, the Multicast Source | ||||
| Address field is translated to the IGMP/MLD source address.</li> | ||||
| <li> If flag bit 7 is set, it translates the Membership Report to be | ||||
| IGMPv1 or MLDv1.</li> | ||||
| <li> If flag bit 6 is set, it translates the Membership Report to be | ||||
| IGMPv2 or MLDv2.</li> | ||||
| <li> Flag bit 5 is only valid for the IGMP Membership Report; if it i | ||||
| s | ||||
| set, it translates to the IGMPv3 report.</li> | ||||
| <li> If the IE flag is set, it translates to the IGMP/MLD Exclude | ||||
| mode Membership Report. If the IE flag is not set (0), it | ||||
| translates to the Include mode Membership Report. </li> | ||||
| </ul> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Default Selective Multicast Route</name> | ||||
| <t>If there is a multicast router connected behind the EVPN domain, th | ||||
| e PE | ||||
| <bcp14>MAY</bcp14> originate a default SMET (*,*) to get all multicast | ||||
| traffic in | ||||
| the domain.</t> | ||||
| <figure anchor="EVPN-domain"> | ||||
| <name>Multicast Router behind the EVPN Domain</name> | ||||
| <artwork name="" type="" align="center" alt=""><![CDATA[ | ||||
| +--------------+ | ||||
| | | | ||||
| | | | ||||
| | | +----+ | ||||
| | | | |---- H1(*,G1)v2 | ||||
| | IP/MPLS | | PE1|---- H2(S2,G2)v3 | ||||
| | Network | | |---- S2 | ||||
| | | | | | ||||
| | | +----+ | ||||
| | | | ||||
| +----+ | | | ||||
| +----+ | | | | | ||||
| | | S1 ---| PE2| | | | ||||
| |PIM |----R1 ---| | | | | ||||
| |ASM | +----+ | | | ||||
| | | | | | ||||
| +----+ +--------------+ | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <t>Consider the EVPN network in <xref target="EVPN-domain"/>, where th | ||||
| ere is an EVPN | ||||
| instance configured across the PEs. Let's consider that PE2 is connect ed to | instance configured across the PEs. Let's consider that PE2 is connect ed to | |||
| multicast router R1 and there is a network running PIM ASM behind R1. | multicast router R1 and there is a network running PIM ASM behind R1. | |||
| If there are receivers behind the PIM ASM network the PIM Join would | If there are receivers behind the PIM ASM network, the PIM Join would | |||
| be forwarded to the PIM RP (Rendezvous Point). If receivers behind | be forwarded to the PIM Rendezvous Point (RP). If receivers behind the | |||
| PIM ASM network are interested in a multicast flow originated by | PIM ASM network are interested in a multicast flow originated by | |||
| multicast source S2 (behind PE1), it is necessary for PE2 to receive | multicast source S2 (behind PE1), it is necessary for PE2 to receive | |||
| multicast traffic. In this case PE2 MUST originate a (*,*) SMET route | multicast traffic. In this case, PE2 <bcp14>MUST</bcp14> originate a ( *,*) SMET route | |||
| to receive all of the multicast traffic in the EVPN domain. To generat e | to receive all of the multicast traffic in the EVPN domain. To generat e | |||
| Wildcards (*,*) routes, the procedure from <xref target="RFC6625"/> MU | wildcard (*,*) routes, the procedure from <xref target="RFC6625" forma | |||
| ST be used. | t="default"/> | |||
| </t> | <bcp14>MUST</bcp14> be used.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| </section> | <name>Multicast Membership Report Synch Route</name> | |||
| <t>This EVPN route type is used to coordinate the IGMP Membership Report | ||||
| <section title="Multicast Membership Report Synch Route"> | (x,G) | |||
| state for a given BD between the PEs attached to a given ES operating in | ||||
| <t> | All-Active (or Single-Active) redundancy mode, and it consists of the | |||
| This EVPN route type is used to coordinate IG | following:</t> | |||
| MP Membership Report (x,G) state for | <artwork name="" type="" align="center" alt=""><![CDATA[+----------------------- | |||
| a given BD between the PEs attached to a give | ---------------------------+ | |||
| n ES operating in All- | | RD (8 octets) | | |||
| Active (or Single-Active) redundancy mode and | +--------------------------------------------------+ | |||
| it consists of | | Ethernet Segment Identifier (10 octets) | | |||
| following: | +--------------------------------------------------+ | |||
| </t> | | Ethernet Tag ID (4 octets) | | |||
| +--------------------------------------------------+ | ||||
| <figure > | | Multicast Source Length (1 octet) | | |||
| <artwork ><![CDATA[ | +--------------------------------------------------+ | |||
| | Multicast Source Address (variable) | | ||||
| +--------------------------------------------------+ | +--------------------------------------------------+ | |||
| | RD (8 octets) | | | Multicast Group Length (1 octet) | | |||
| +--------------------------------------------------+ | +--------------------------------------------------+ | |||
| | Ethernet Segment Identifier (10 octets) | | | Multicast Group Address (Variable) | | |||
| +--------------------------------------------------+ | +--------------------------------------------------+ | |||
| | Ethernet Tag ID (4 octets) | | | Originator Router Length (1 octet) | | |||
| +--------------------------------------------------+ | +--------------------------------------------------+ | |||
| | Multicast Source Length (1 octet) | | | Originator Router Address (variable) | | |||
| +--------------------------------------------------+ | +--------------------------------------------------+ | |||
| | Multicast Source Address (variable) | | | Flags (1 octet) | | |||
| +--------------------------------------------------+ | +--------------------------------------------------+ | |||
| | Multicast Group Length (1 octet) | | ]]></artwork> | |||
| +--------------------------------------------------+ | <t>For the purpose of BGP route key processing, all the fields are | |||
| | Multicast Group Address (Variable) | | considered to be part of the prefix in the NLRI, except for the 1-octet | |||
| +--------------------------------------------------+ | Flags field, whose fields are defined as follows:</t> | |||
| | Originator Router Length (1 octet) | | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
| +--------------------------------------------------+ | 0 1 2 3 4 5 6 7 | |||
| | Originator Router Address (variable) | | +--+--+--+--+--+--+--+--+ | |||
| +--------------------------------------------------+ | | reserved |IE|v3|v2|v1| | |||
| | Flags (1 octet) | | +--+--+--+--+--+--+--+--+ | |||
| +--------------------------------------------------+ | ]]></artwork> | |||
| <ul spacing="normal"> | ||||
| ]]></artwork> | <li> The least significant bit (bit 7) indicates support for IGMP vers | |||
| </figure> | ion 1. </li> | |||
| <li> The second least significant bit (bit 6) indicates support for IG | ||||
| <t> | MP version 2. </li> | |||
| For the purpose of BGP route key processing, a | <li> The third least significant bit (bit 5) indicates support for IGM | |||
| ll the fields are | P version 3. </li> | |||
| considered to be part of the prefix in the NLR | <li> The fourth least significant bit (bit 4) indicates whether the (S | |||
| I except for the one- | , G) information | |||
| octet Flags field, whose fields are defined as | carried within the route type is of an Include Group type (bit value 0) | |||
| follows: | or an Exclude Group | |||
| </t> | type (bit value 1). The Exclude Group type bit <bcp14>MUST</bcp14> be i | |||
| <figure > | gnored if bit 5 is | |||
| <artwork ><![CDATA[ | not set. </li> | |||
| <li> Reserved bits <bcp14>MUST</bcp14> be set to 0.</li> | ||||
| 0 1 2 3 4 5 6 7 | </ul> | |||
| +--+--+--+--+--+--+--+--+ | <t>The Flags field assists in distributing the IGMP Membership Report of | |||
| | reserved |IE|v3|v2|v1| | a | |||
| +--+--+--+--+--+--+--+--+ | given host for a given multicast route. The version bits help | |||
| associate the IGMP version of receivers participating within the EVPN | ||||
| ]]></artwork> | domain. The Include/Exclude bit helps in creating filters for a | |||
| </figure> | given multicast route.</t> | |||
| <t>If the route is being prepared for IPv6 (MLD), then bit 7 indicates | ||||
| <t> | support for MLD version 1. The second least significant bit (bit 6) | |||
| <list style="symbols"> | indicates support for MLD version 2. Since there is no MLD version 3, | |||
| <t> The least significant bit, bit 7 indicates support | in case of the IPv6 route, the third least significant bit <bcp14>MUST</b | |||
| for IGMP version 1. </t> | cp14> | |||
| <t> The second least significant bit, bit 6 indica | be 0. In case of the IPv6 route, the fourth least significant bit <bcp14> | |||
| tes support for IGMP version 2. </t> | MUST</bcp14> | |||
| <t> The third least significant bit, bit 5 indicat | be ignored if bit 6 is not set.</t> | |||
| es support for IGMP version 3. </t> | <section numbered="true" toc="default"> | |||
| <t> The fourth least significant bit, bit 4 indica | <name>Constructing the Multicast Membership Report Synch Route</name> | |||
| tes whether the (S, G) information | <t>This section describes the procedures used to construct the IGMP Me | |||
| carried within the route-type is of Includ | mbership Report | |||
| e Group type (bit value 0) or an Exclude Group type | Synch route. Support for these route types is optional. If a PE does | |||
| (bit value 1). The Exclude Group type bit | not support this route, then it <bcp14>MUST NOT</bcp14> indicate that i | |||
| MUST be ignored if bit 5 is | t supports | |||
| not set. </t> | "IGMP Proxy" in the Multicast Flags Extended Community for the EVIs | |||
| <t> Reserved bits MUST be set to 0. | corresponding to its multihomed ESs.</t> | |||
| </t> | <t>An IGMP Membership Report Synch route <bcp14>MUST</bcp14> carry exa | |||
| </list> | ctly one | |||
| ES-Import Route | ||||
| </t> | Target extended community, i.e., the one that corresponds to the ES on | |||
| which the IGMP Membership Report was received. It <bcp14>MUST</bcp14> | ||||
| <t> | also carry | |||
| The Flags field assists in distributing IGMP Membership Re | exactly one EVI-RT EC, i.e., the one that corresponds to the EVI on | |||
| port of a | which the IGMP Membership Report | |||
| given host for a given multicast route. The version bits h | was received. See <xref target="evi-rt" format="default"/> for details | |||
| elp | on how to | |||
| associate IGMP version of receivers participating within t | encode and construct the EVI-RT EC.</t> | |||
| he EVPN | <t>The RD <bcp14>SHOULD</bcp14> be Type 1 <xref | |||
| domain. The include/exclude bit helps in creating filters | target="RFC4364" format="default"/>. The | |||
| for a | value field comprises an IP address of the PE (typically, the | |||
| given multicast route. | loopback address), followed by a number unique to the PE.</t> | |||
| </t> | <t>The Ethernet Segment Identifier (ESI) <bcp14>MUST</bcp14> be set to | |||
| the 10-octet | ||||
| <t> | value defined for the ES.</t> | |||
| If route is being prepared for IPv6 (MLD) then bit 7 | <t>The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedur | |||
| indicates | e defined in | |||
| support for MLD version 1. The second least signific | <xref target="RFC7432" format="default"/>.</t> | |||
| ant bit, bit 6 | <t>The Multicast Source Length <bcp14>MUST</bcp14> be set to the | |||
| indicates support for MLD version 2. Since there is | length of the Multicast Source | |||
| no MLD version 3, | Address in bits. If the Multicast Source field contains an IPv4 | |||
| in case of IPv6 route third least significant bit MU | address, then the value of the Multicast Source Length field is 32. | |||
| ST be 0. In case | If the Multicast Source field contains an IPv6 address, then the | |||
| of IPv6 route, the fourth least significant bit MUST | value of the Multicast Source Length field is 128. In case of a (*,G) | |||
| be ignored if | Membership Report, the Multicast Source Length is set to 0.</t> | |||
| bit 6 is not set. | <t>The Multicast Source is the source IP address of the IGMP Membershi | |||
| </t> | p | |||
| Report. In case of a (*,G) Membership Report, this field does not exis | ||||
| <section title="Constructing the Multicast Membership Report S | t.</t> | |||
| ynch Route"> | <t>The Multicast Group Length <bcp14>MUST</bcp14> be set to the length | |||
| <t> | of the | |||
| This section describes the procedures used | Multicast Group | |||
| to construct the IGMP Membership Report | Address in bits. If the Multicast Group field contains an IPv4 | |||
| Synch route. Support for these route types | address, then the value of the Multicast Group Length field is 32. | |||
| is optional. If a PE does | If the Multicast Group field contains an IPv6 address, then the value | |||
| not support this route, then it MUST NOT in | of the Multicast Group Length field is 128.</t> | |||
| dicate that it supports | <t>The Multicast Group is the group address of the IGMP Membership | |||
| 'IGMP proxy' in the Multicast Flag extended | Report.</t> | |||
| community for the EVIs | <t>The Originator Router Length is the length of the Originator Router | |||
| corresponding to its multi-homed Ethernet S | Address in bits.</t> | |||
| egments (ESs). | <t>The Originator Router Address is the IP address of the router origi | |||
| </t> | nating the prefix.</t> | |||
| <t>The Flags field indicates the version of IGMP from which the | ||||
| <t> | Membership Report was received. It also indicates whether the | |||
| An IGMP Membership Report Synch route MUST | multicast group had the Include/Exclude bit set.</t> | |||
| carry exactly one ES-Import Route | <t> Reserved bits <bcp14>MUST</bcp14> be set to 0.</t> | |||
| Target extended community, the one that cor | </section> | |||
| responds to the ES on | <section numbered="true" toc="default"> | |||
| which the IGMP Membership Report was receiv | <name>Reconstructing IGMP/MLD Membership Reports from a Multicast Memb | |||
| ed. It MUST also carry exactly one | ership | |||
| EVI-RT EC, the one that corresponds to the | Report Synch Route</name> | |||
| EVI on which the IGMP Membership Report | <t> This section describes the procedures used to reconstruct IGMP/ML | |||
| was received. See <xref target="evi-rt"/> | D | |||
| for details on how to encode and | Membership Reports from the Multicast Membership Report Synch route.</t | |||
| construct the EVI-RT EC. | > | |||
| </t> | <ul spacing="normal"> | |||
| <li> If the Multicast Group Length is 32, the route is translated | ||||
| <t> | to the IGMP Membership Request. If the Multicast Group Length is 128, | |||
| The Route Distinguisher (RD) SHOULD be a Ty | the route is translated to an MLD Membership Request. </li> | |||
| pe 1 RD <xref target="RFC4364"/>. The | <li> The Multicast Group Address field is translated to the | |||
| value field comprises an IP address of the | IGMP/MLD group address.</li> | |||
| PE (typically, the | <li> If the Multicast Source Length is set to 0, it is translated to | |||
| loopback address) followed by a number uniq | any source (*). If the Multicast Source Length is non-zero, the | |||
| ue to the PE. | Multicast Source | |||
| </t> | Address field is translated to the IGMP/MLD source address.</li> | |||
| <li> If flag bit 7 is set, it translates the Membership Report to be | ||||
| <t> | IGMPv1 or MLDv1.</li> | |||
| The Ethernet Segment Identifier (ESI) MUST | <li> If flag bit 6 is set, it translates the Membership Report to be | |||
| be set to the 10-octet | IGMPv2 or MLDv2.</li> | |||
| value defined for the ES. | <li> Flag bit 5 is only valid for the IGMP Membership Report; if it | |||
| </t> | is | |||
| set, it translates to the IGMPv3 report.</li> | ||||
| <t> | <li> If the IE flag is set, it translates to the IGMP/MLD Exclude mo | |||
| The Ethernet Tag ID MUST be set as per procedu | de | |||
| re defined in <xref target="RFC7432"/>. | Membership Report. If the IE flag is not set (0), it translates to th | |||
| </t> | e | |||
| Include mode Membership Report. </li> | ||||
| <t> | </ul> | |||
| The Multicast Source length MUST be set to length o | </section> | |||
| f Multicast Source | </section> | |||
| address in bits. If the Multicast Source field cont | <section numbered="true" toc="default"> | |||
| ains an IPv4 | <name>Multicast Leave Synch Route</name> | |||
| address, then the value of the Multicast Source Len | <t>This EVPN route type is used to coordinate the IGMP Leave Group (x,G) | |||
| gth field is 32. | state for a given BD between the PEs attached to a given ES operating | |||
| If the Multicast Source field contains an IPv6 addr | in an All-Active (or Single-Active) redundancy mode, and it consists of t | |||
| ess, then the | he | |||
| value of the Multicast Source Length field is 128. | following:</t> | |||
| In case of a (*,G) | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
| Membership Report, the Multicast Source Length is s | +--------------------------------------------------+ | |||
| et to 0. | | RD (8 octets) | | |||
| +--------------------------------------------------+ | ||||
| </t> | | Ethernet Segment Identifier (10 octets) | | |||
| +--------------------------------------------------+ | ||||
| <t> | | Ethernet Tag ID (4 octets) | | |||
| The Multicast Source is the Source IP address | +--------------------------------------------------+ | |||
| of the IGMP Membership | | Multicast Source Length (1 octet) | | |||
| Report. In case of a (*,G) Membership Report, | +--------------------------------------------------+ | |||
| this field does not exist. | | Multicast Source Address (variable) | | |||
| </t> | +--------------------------------------------------+ | |||
| | Multicast Group Length (1 octet) | | ||||
| <t> | +--------------------------------------------------+ | |||
| The Multicast Group length MUST be set to l | | Multicast Group Address (Variable) | | |||
| ength of multicast group | +--------------------------------------------------+ | |||
| address in bits. If the Multicast Group fie | | Originator Router Length (1 octet) | | |||
| ld contains an IPv4 | +--------------------------------------------------+ | |||
| address, then the value of the Multicast Gr | | Originator Router Address (variable) | | |||
| oup Length field is 32. | +--------------------------------------------------+ | |||
| If the Multicast Group field contains an IP | | Reserved (4 octets) | | |||
| v6 address, then the value | +--------------------------------------------------+ | |||
| of the Multicast Group Length field is 128. | | Maximum Response Time (1 octet) | | |||
| </t> | +--------------------------------------------------+ | |||
| | Flags (1 octet) | | ||||
| <t> | +--------------------------------------------------+ | |||
| The Multicast Group is the Group address | ]]></artwork> | |||
| of the IGMP Membership | <t>For the purpose of BGP route key processing, all the fields are | |||
| Report. | considered to be part of the prefix in the NLRI, except for the Reserved, | |||
| </t> | Maximum Response Time, and 1-octet Flags fields, which are defined as fol | |||
| lows:</t> | ||||
| <t> | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
| The Originator Router Length is the le | 0 1 2 3 4 5 6 7 | |||
| ngth of the Originator Router | +--+--+--+--+--+--+--+--+ | |||
| address in bits. | | reserved |IE|v3|v2|v1| | |||
| </t> | +--+--+--+--+--+--+--+--+ | |||
| ]]></artwork> | ||||
| <t> | <ul spacing="normal"> | |||
| The Originator Router Address is the IP add | <li> The least significant bit (bit 7) indicates support for IGMP ver | |||
| ress of Router Originating the prefix. | sion 1. </li> | |||
| </t> | <li> The second least significant bit (bit 6) indicates support for I | |||
| GMP version 2. </li> | ||||
| <t> | <li> The third least significant bit (bit 5) indicates support for IG | |||
| The Flags field indicates the version of IG | MP version 3. </li> | |||
| MP protocol from which the | <li> The fourth least significant bit (bit 4) indicates whether the ( | |||
| Membership Report was received. It also ind | S, G) information | |||
| icates whether the | carried within the route type is of an Include Group type (bit value 0) | |||
| multicast group had INCLUDE or EXCLUDE bit | or an Exclude Group | |||
| set. | type (bit value 1). The Exclude Group type bit <bcp14>MUST</bcp14> be | |||
| </t> | ignored if bit 5 | |||
| <t> Reserved bits MUST be set to | is not set. </li> | |||
| 0. | <li> Reserved bits <bcp14>MUST</bcp14> be set to 0. They can be define | |||
| </t> | d by | |||
| other documents in the future. </li> | ||||
| </section> | </ul> | |||
| <section title="Reconstructing I | <t>The Flags field assists in distributing the IGMP Membership Report of | |||
| GMP / MLD Membership Reports from Multicast Membership Report Sync Route"> | a | |||
| <t> Th | given host for a given multicast route. The version bits help | |||
| is section describes the procedures used to reconstruct IGMP / MLD Membership Re | associate the IGMP version of the receivers participating within the EVPN | |||
| ports from Multicast Membership Report Sync route. | domain. The Include/Exclude bit helps in creating filters for a | |||
| </t> | given multicast route.</t> | |||
| <t> | <t>If the route is being prepared for IPv6 (MLD), then bit 7 indicates | |||
| <list style="symbols"> | support for MLD version 1. The second least significant bit (bit 6) | |||
| <t> If multicast group length is 32, rou | indicates support for MLD version 2. Since there is no MLD version 3, | |||
| te would be translated to IGMP membership request. If multicast group length is | in case of the IPv6 route, the third least significant bit <bcp14>MUST</b | |||
| 128, route would be translated to MLD membership request. | cp14> be 0. In case | |||
| </t> | of the IPv6 route, the fourth least significant bit <bcp14>MUST</bcp14> b | |||
| e ignored if | ||||
| <t> Multicast group address field would be translated | bit 6 is not set.</t> | |||
| to IGMP / MLD group address. | <t> Reserved bits in the flag <bcp14>MUST</bcp14> be set to 0. They can | |||
| </t> | be | |||
| <t> If Multicast source length is set to zero it would | defined by other documents in the future. </t> | |||
| be translated to any source (*). | <section numbered="true" toc="default"> | |||
| If multicast source length is non zero, Multica | <name>Constructing the Multicast Leave Synch Route</name> | |||
| st source address field would be translated to IGMP / MLD source address. | <t>This section describes the procedures used to construct the IGMP | |||
| </t> | Leave Synch route. Support for these route types is optional. If a PE | |||
| <t> If flag bit 7 is set, it translates Membership repo | does not support this route, then it <bcp14>MUST NOT</bcp14> indicate t | |||
| rt to be IGMP V1 or MLD V1. | hat it | |||
| </t> | supports "IGMP Proxy" in the Multicast Flags Extended Community for the | |||
| <t> If flag bit 6 is set, it translates Membership repo | EVIs corresponding to its multihomed Ethernet segments.</t> | |||
| rt to be IGMP V2 or MLD V2. | <t>An IGMP Leave Synch route <bcp14>MUST</bcp14> carry exactly one ES- | |||
| </t> | Import Route | |||
| <t> Flag bit 5 is only valid for IGMP Membership report | Target extended community, i.e., the one that corresponds to the ES on | |||
| and if it is set, it translates to IGMP V3 report. | which the IGMP Leave was received. It <bcp14>MUST</bcp14> also carry e | |||
| </t> | xactly one | |||
| <t> If IE flag is set, it translate to IGMP / MLD Exc | EVI-RT EC, i.e., the one that corresponds to the EVI on which the IGMP | |||
| lude mode membership report. If IE flag is not set (zero), it translates to Incl | Leave was received. See <xref target="evi-rt"/> for details on how to | |||
| ude mode membership report. | form the | |||
| </t> | EVI-RT EC.</t> | |||
| </list> | <t>The RD <bcp14>SHOULD</bcp14> be Type 1 <xref | |||
| </t> | target="RFC4364" format="default"/>. The | |||
| value field comprises an IP address of the PE (typically, the | ||||
| </section> | loopback address), followed by a number unique to the PE.</t> | |||
| </section> | <t>The ESI <bcp14>MUST</bcp14> be set to the 10-octet | |||
| value defined for the ES.</t> | ||||
| <section title="Multicast Leave Synch Route"> | <t>The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedur | |||
| <t> | e | |||
| This EVPN route type is used to coordinate IGMP | defined in <xref target="RFC7432" format="default"/>.</t> | |||
| Leave Group (x,G) | <t>The Multicast Source Length <bcp14>MUST</bcp14> be set to the lengt | |||
| state for a given BD between the PEs attached to | h | |||
| a given ES operating | of the Multicast Source | |||
| in All-Active (or Single-Active) redundancy mode | Address in bits. If the Multicast Source field contains an IPv4 | |||
| and it consists of | address, then the value of the Multicast Source Length field is 32. | |||
| following: | If the Multicast Source field contains an IPv6 address, then the | |||
| </t> | value of the Multicast Source Length field is 128. In case of a (*,G) | |||
| Membership Report, the Multicast Source Length is set to 0.</t> | ||||
| <figure > | <t>The Multicast Source is the source IP address of the IGMP Membershi | |||
| <artwork ><![CDATA[ | p | |||
| Report. In case of a (*,G) Membership Report, this field does not exis | ||||
| +--------------------------------------------------+ | t.</t> | |||
| | RD (8 octets) | | <t>The Multicast Group Length <bcp14>MUST</bcp14> be set to the length | |||
| +--------------------------------------------------+ | of the | |||
| | Ethernet Segment Identifier (10 octets) | | Multicast Group | |||
| +--------------------------------------------------+ | Address in bits. If the Multicast Group field contains an IPv4 | |||
| | Ethernet Tag ID (4 octets) | | address, then the value of the Multicast Group Length field is 32. | |||
| +--------------------------------------------------+ | If the Multicast Group field contains an IPv6 address, then the value | |||
| | Multicast Source Length (1 octet) | | of the Multicast Group Length field is 128.</t> | |||
| +--------------------------------------------------+ | <t>The Multicast Group is the group address of the IGMP Membership Rep | |||
| | Multicast Source Address (variable) | | ort.</t> | |||
| +--------------------------------------------------+ | <t>The Originator Router Length is the length of the Originator Router | |||
| | Multicast Group Length (1 octet) | | Address | |||
| +--------------------------------------------------+ | in bits.</t> | |||
| | Multicast Group Address (Variable) | | <t>The Originator Router Address is the IP address of the router | |||
| +--------------------------------------------------+ | originating the prefix.</t> | |||
| | Originator Router Length (1 octet) | | <t> The Reserved field is not part of the route key. The originator <b | |||
| +--------------------------------------------------+ | cp14>MUST</bcp14> set | |||
| | Originator Router Address (variable) | | the Reserved field to 0; | |||
| +--------------------------------------------------+ | the receiver <bcp14>SHOULD</bcp14> ignore it, and if it needs to be pro | |||
| | Reserved (4 octet) | | pagated, it | |||
| +--------------------------------------------------+ | <bcp14>MUST</bcp14> propagate it unchanged.</t> | |||
| | Maximum Response Time (1 octet) | | <t> The Maximum Response Time is the value to be used while sending a | |||
| +--------------------------------------------------+ | query, as defined in | |||
| | Flags (1 octet) | | <xref target="RFC2236" format="default"/>.</t> | |||
| +--------------------------------------------------+ | <t>The Flags field indicates the version of IGMP from which the | |||
| Membership Report was received. It also indicates whether the | ||||
| ]]></artwork> | multicast group had an Include/Exclude bit set.</t> | |||
| </figure> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <t> | <name>Reconstructing IGMP/MLD Leave from a Multicast Leave Synch Route | |||
| For the purpose of BGP route key processing, all the fields | </name> | |||
| are | <t>This section describes the procedures used to reconstruct IGMP/MLD | |||
| considered to be part of the prefix in the NLRI except for t | Leave from | |||
| he Reserved, | the Multicast Leave Synch route.</t> | |||
| Maximum Response Time and the one-octet Flags field, whose f | <ul spacing="normal"> | |||
| ields are | <li> If the Multicast Group Length is 32, the route is translated | |||
| defined as follows: | to IGMP Leave. If the | |||
| </t> | Multicast Group Length is 128, the route is translated to MLD | |||
| Leave.</li> | ||||
| <figure | <li> The Multicast Group Address field is translated to an | |||
| > | IGMP/MLD group address.</li> | |||
| <artwork ><![CDATA[ | <li> If the Multicast Source Length is set to 0, it is | |||
| 0 1 2 3 4 5 6 7 | translated to any source (*). | |||
| +--+--+--+--+--+--+--+--+ | If the Multicast Source Length is non-zero, the Multicast Source | |||
| | reserved |IE|v3|v2|v1| | Address field is translated to the IGMP/MLD source address.</li> | |||
| +--+--+--+--+--+--+--+--+ | <li> If flag bit 7 is set, it translates the Membership Report to be | |||
| IGMPv1 or MLDv1.</li> | ||||
| ]]></artwork> | <li> If flag bit 6 is set, it translates the Membership Report to be | |||
| </figure> | IGMPv2 or MLDv2.</li> | |||
| <li> Flag bit 5 is only valid for the IGMP Membership Report; if it | ||||
| <t> | is set, it | |||
| <list style="symbols"> | translates to the IGMPv3 report.</li> | |||
| <t> The least significant bit, bit 7 indicates su | <li> If the IE flag is set, it translates to the IGMP/MLD Exclude mo | |||
| pport for IGMP version 1. </t> | de Leave. | |||
| <t> The second least significant bit, bit 6 indic | If the IE flag is not set (0), it translates to the Include mode Leav | |||
| ates support for IGMP version 2. </t> | e. </li> | |||
| <t> The third least significant bit, bit 5 indica | </ul> | |||
| tes support for IGMP version 3. </t> | </section> | |||
| <t> The fourth least significant bit, bit 4 indic | </section> | |||
| ates whether the (S, G) information carried | <section numbered="true" toc="default"> | |||
| within the route-type is of Include Group | <name>Multicast Flags Extended Community</name> | |||
| type (bit value 0) or an Exclude Group type | <t>The Multicast Flags Extended Community is a new EVPN Extended | |||
| (bit value 1). The Exclude Group type bit | Community. EVPN Extended Communities are transitive extended | |||
| MUST be ignored if bit 5 is not set. </t> | communities with a Type Value of 0x06. IANA has assigned 0x09 to Multica | |||
| <t> Reserved bits MUST be set to 0. They can b | st Flags Extended Community in the "EVPN Extended Community Sub-Types" subregist | |||
| e defined in future by other document. | ry.</t> | |||
| </t> | <t>A PE that supports IGMP and/or the MLD Proxy on a given BD | |||
| </list> | <bcp14>MUST</bcp14> attach this extended community to the IMET route it | |||
| </t> | advertises for that BD, and it <bcp14>MUST</bcp14> set the IGMP and/or ML | |||
| D Proxy | ||||
| <t> | Support flags to 1. Note that a PE compliant with <xref target="RFC7432" | |||
| The Flags field assists in distributing IGMP Membershi | format="default"/> | |||
| p Report of a | will not advertise this | |||
| given host for a given multicast route. The version bi | extended community, so its absence indicates that the advertising PE | |||
| ts help | does not support either IGMP or MLD Proxies.</t> | |||
| associate IGMP version of receivers participating with | <t>The advertisement of this extended community enables a more efficient | |||
| in the EVPN | multicast tunnel setup from the source PE specially for ingress | |||
| domain. The include/exclude bit helps in creating fil | replication, i.e., if an egress PE supports the IGMP Proxy but doesn't | |||
| ters for a | have any interest in a given (x,G), it advertises its IGMP Proxy | |||
| given multicast route. | capability using this extended community, but it does not advertise | |||
| </t> | any SMET route for that (x,G). When the source PE (ingress PE) | |||
| receives such advertisements from the egress PE, it does not | ||||
| <t> | replicate the multicast traffic to that egress PE; however, it does | |||
| If route is being prepared for IPv6 (MLD) then bit | replicate the multicast traffic to the egress PEs that don't | |||
| 7 indicates | advertise such capability, even if they don't have any interests in | |||
| support for MLD version 1. The second least signif | that (x,G).</t> | |||
| icant bit, bit 6 | <t>A Multicast Flags Extended Community is encoded as an 8-octet value | |||
| indicates support for MLD version 2. Since there i | as follows:</t> | |||
| s no MLD version 3, | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
| in case of IPv6 route third least significant bit | 0 1 2 3 | |||
| MUST be 0. In case | 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 | |||
| of IPv6 route, the fourth least significant bit M | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| UST be ignored if | | Type=0x06 |Sub-Type=0x09 | Flags (2 Octets) |M|I| | |||
| bit 6 is not set. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| </t> | | Reserved=0 | | |||
| <t> Reserved bits in flag MUST be set to 0. They can be d | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| efined in future by other document. | ]]></artwork> | |||
| </t> | ||||
| <section title="Constructing the Multicast Leave Synch Ro | ||||
| ute"> | ||||
| <t> | ||||
| This section describes the procedures use | ||||
| d to construct the IGMP | ||||
| Leave Synch route. Support for these ro | ||||
| ute types is optional. If a PE | ||||
| does not support this route, then it MUS | ||||
| T NOT indicate that it | ||||
| supports 'IGMP proxy' in Multicast Flag | ||||
| extended community for the | ||||
| EVIs corresponding to its multi-homed Et | ||||
| hernet Segments. | ||||
| </t> | ||||
| <t> | ||||
| An IGMP Leave Synch route MUST carry exact | ||||
| ly one ES-Import Route | ||||
| Target extended community, the one that co | ||||
| rresponds to the ES on | ||||
| which the IGMP Leave was received. It MUS | ||||
| T also carry exactly one | ||||
| EVI-RT EC, the one that corresponds to the | ||||
| EVI on which the IGMP | ||||
| Leave was received. See Section 9.5 for d | ||||
| etails on how to form the | ||||
| EVI-RT EC. | ||||
| </t> | ||||
| <t> | ||||
| The Route Distinguisher (RD) SHOULD be | ||||
| a Type 1 RD <xref target="RFC4364"/>. The | ||||
| value field comprises an IP address of | ||||
| the PE (typically, the | ||||
| loopback address) followed by a number | ||||
| unique to the PE. | ||||
| </t> | ||||
| <t> | ||||
| The Ethernet Segment Identifier (ESI) MUST | ||||
| be set to the 10-octet | ||||
| value defined for the ES. | ||||
| </t> | ||||
| <t> | ||||
| The Ethernet Tag ID MUST be set as per pr | ||||
| ocedure defined in <xref target="RFC7432"/>. | ||||
| </t> | ||||
| <t> | ||||
| The Multicast Source length MUST be set t | ||||
| o length of multicast source | ||||
| address in bits. If the Multicast Source | ||||
| field contains an IPv4 | ||||
| address, then the value of the Multicast | ||||
| Source Length field is 32. | ||||
| If the Multicast Source field contains an | ||||
| IPv6 address, then the | ||||
| value of the Multicast Source Length fiel | ||||
| d is 128. In case of a (*,G) | ||||
| Membership Report, the Multicast Source | ||||
| Length is set to 0. | ||||
| </t> | ||||
| <t> | ||||
| The Multicast Source is the Source IP | ||||
| address of the IGMP Membership | ||||
| Report. In case of a (*,G) Membership | ||||
| Report, this field does not exist. | ||||
| </t> | ||||
| <t> | ||||
| The Multicast Group length MUST be set | ||||
| to length of multicast group | ||||
| address in bits. If the Multicast Grou | ||||
| p field contains an IPv4 | ||||
| address, then the value of the Multica | ||||
| st Group Length field is 32. | ||||
| If the Multicast Group field contains | ||||
| an IPv6 address, then the value | ||||
| of the Multicast Group Length field is | ||||
| 128. | ||||
| </t> | ||||
| <t> | ||||
| The Multicast Group is the Group addre | ||||
| ss of the IGMP Membership Report. | ||||
| </t> | ||||
| <t> | ||||
| The Originator Router Length is the length | ||||
| of the Originator Router | ||||
| address in bits. | ||||
| </t> | ||||
| <t> | ||||
| The Originator Router Address is the I | ||||
| P address of Router Originating the prefix. | ||||
| </t> | ||||
| <t> Reserved field is not part of the route key. | ||||
| The originator MUST set the reserved field to Zero , | ||||
| the receiver SHOULD ignore it and if it n | ||||
| eeds to be propagated, it MUST propagate it unchanged | ||||
| </t> | ||||
| <t> Maximum Response Time is value to be used whi | ||||
| le sending query as defined in <xref target="RFC2236"/> | ||||
| </t> | ||||
| <t> | ||||
| The Flags field indicates the version | ||||
| of IGMP protocol from which the | ||||
| Membership Report was received. It als | ||||
| o indicates whether the | ||||
| multicast group had INCLUDE or EXCLUDE | ||||
| bit set. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Reconstructing IGMP / MLD Leave from Multicast Leave Sync Route" | ||||
| > | ||||
| <t> Th | ||||
| is section describes the procedures used to reconstruct IGMP / MLD Leave from M | ||||
| ulticast Leave Sync route. | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t> If multicast group length is 32, rou | ||||
| te would be translated to IGMP Leave. If multicast group length is 128, route wo | ||||
| uld be translated to MLD Leave. | ||||
| </t> | ||||
| <t> Multicast group address field would be translated | ||||
| to IGMP / MLD group address. | ||||
| </t> | ||||
| <t> If Multicast source length is set to zero it would | ||||
| be translated to any source (*). | ||||
| If multicast source length is non zero, Multica | ||||
| st source address field would be translated to IGMP / MLD source address. | ||||
| </t> | ||||
| <t> If flag bit 7 is set, it translates Membership repo | ||||
| rt to be IGMP V1 or MLD V1. | ||||
| </t> | ||||
| <t> If flag bit 6 is set, it translates Membership repo | ||||
| rt to be IGMP V2 or MLD V2. | ||||
| </t> | ||||
| <t> Flag bit 5 is only valid for IGMP Membership report | ||||
| and if it is set, it translates to IGMP V3 report. | ||||
| </t> | ||||
| <t> If IE flag is set, it translate to IGMP / MLD Exc | ||||
| lude mode Leave. If IE flag is not set (zero), it translates to Include mode Lea | ||||
| ve. | ||||
| </t> | ||||
| <t> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="Multicast Flags Extended Community"> | ||||
| <t> | ||||
| The 'Multicast Flags' extended community is a | ||||
| new EVPN extended | ||||
| community. EVPN extended communities are tra | ||||
| nsitive extended | ||||
| communities with a Type field value of 6. IA | ||||
| NA will assign a Sub-Type | ||||
| from the 'EVPN Extended Community Sub-Types' | ||||
| registry. | ||||
| </t> | ||||
| <t> | ||||
| A PE that supports IGMP and/or MLD Proxy on a gi | ||||
| ven BD | ||||
| MUST attach this extended community to the IMET | ||||
| route it advertises | ||||
| advertises for that BD and it MUST set the IGMP | ||||
| and/or MLD Proxy | ||||
| Support flags to 1. Note that an <xref target="R | ||||
| FC7432"/> compliant PE will not advertise this | ||||
| extended community so its absence indicates that | ||||
| the advertising PE | ||||
| does not support either IGMP or MLD Proxy. | ||||
| </t> | ||||
| <t> | ||||
| The advertisement of this extended community enab | ||||
| les more efficient | ||||
| multicast tunnel setup from the source PE special | ||||
| ly for ingress | ||||
| replication - i.e., if an egress PE supports IGMP | ||||
| proxy but doesn't | ||||
| have any interest in a given (x,G), it advertises | ||||
| its IGMP proxy | ||||
| capability using this extended community but it d | ||||
| oes not advertise | ||||
| any SMET route for that (x,G). When the source PE | ||||
| (ingress PE) | ||||
| receives such advertisements from the egress PE, | ||||
| it does not | ||||
| replicate the multicast traffic to that egress PE | ||||
| ; however, it does | ||||
| replicate the multicast traffic to the egress PEs | ||||
| that don't | ||||
| advertise such capability even if they don't have | ||||
| any interests in | ||||
| that (x,G). | ||||
| </t> | ||||
| <t> | ||||
| A Multicast Flags extended community is encode | ||||
| d as an 8-octet value, | ||||
| as follows: | ||||
| </t> | ||||
| <figure > | ||||
| <artwork ><![CDATA[ | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type=0x06 |Sub-Type=0x09 | Flags (2 Octets) |M|I| | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Reserved=0 | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <t> | ||||
| The low-order (lease significant) two bits are defined as th | ||||
| e "IGMP | ||||
| Proxy Support and MLD Proxy Support" bit. The absence of thi | ||||
| s | ||||
| extended community also means that the PE does not support I | ||||
| GMP | ||||
| proxy. where: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t> Type is 0x06 as registered with IANA for EVPN Exten | ||||
| ded Communities. </t> | ||||
| <t> Sub-Type : 0x09</t> | ||||
| <t> | ||||
| Flags are two Octets value. | ||||
| <list style="symbols"> | ||||
| <t> Bit 15 (shown as I) def | ||||
| ines IGMP Proxy Support. Value of 1 for | ||||
| bit 15 means that P | ||||
| E supports IGMP Proxy. Value of 0 for bit 15 | ||||
| means that PE does | ||||
| not supports IGMP Proxy.</t> | ||||
| <t>Bit 14 (shown as M) defi | ||||
| nes MLD Proxy Support. Value of 1 for | ||||
| bit 14 means that | ||||
| PE supports MLD Proxy. Value of 0 for bit 14 | ||||
| means that PE does | ||||
| not support MLD proxy. </t> | ||||
| <t>Bit 0 to 13 are reserved | ||||
| for future. Sender MUST set it 0 and receiver MUST ignore it. </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> Reserved bits are set to 0. Sender MUST set i | ||||
| t to 0 and receiver MUST ignore it.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> If a router does not support this specification, it MUST NOT ad | ||||
| d Multicast Flags Extended Community | ||||
| in BGP route. A router receiving BGP update, | ||||
| if M and I both flag are zero (0), the router MUST treat th | ||||
| is Update as malformed. Receiver of such | ||||
| update MUST ignore the extended community. | ||||
| </t> | ||||
| </section> | ||||
| <section title="EVI-RT Extended Community" anchor="evi-rt"> | ||||
| <t> | ||||
| In EVPN, every EVI is associated with one | ||||
| or more Route Targets | ||||
| (RTs). These Route Targets serve two fun | ||||
| ctions: | ||||
| <list style="numbers"> | ||||
| <t> | ||||
| Distribution control: RTs | ||||
| control the distribution of the | ||||
| routes. If a route carri | ||||
| es the RT associated with a particular | ||||
| EVI, it will be distribu | ||||
| ted to all the PEs on which that EVI | ||||
| exists. | ||||
| </t> | ||||
| <t> | ||||
| EVI identification: O | ||||
| nce a route has been received by a | ||||
| particular PE, the RT | ||||
| is used to identify the EVI to which it | ||||
| applies. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| An IGMP Membership Report Synch or IGMP L | ||||
| eave Synch route is associated with a | ||||
| particular combination of ES and EVI. T | ||||
| hese routes need to be | ||||
| distributed only to PEs that are attache | ||||
| d to the associated ES. | ||||
| Therefore these routes carry the ES-Imp | ||||
| ort RT for that ES. | ||||
| </t> | ||||
| <t> | ||||
| Since an IGMP Membership Report Synch or I | ||||
| GMP Leave Synch route does not need | ||||
| to be distributed to all the PEs on which | ||||
| the associated EVI | ||||
| exists, these routes cannot carry the RT a | ||||
| ssociated with that | ||||
| EVI. Therefore, when such a route arrives | ||||
| at a particular PE, the | ||||
| route's RTs cannot be used to identify the | ||||
| EVI to which the route | ||||
| applies. Some other means of associating | ||||
| the route with an EVI | ||||
| must be used. | ||||
| </t> | ||||
| <t> | ||||
| This document specifies four new Extended Comm | ||||
| unities (EC) that | ||||
| can be used to identify the EVI with which a | ||||
| route is associated, | ||||
| but which do not have any effect on the distr | ||||
| ibution of the | ||||
| route. These new ECs are known as the "Type | ||||
| 0 EVI-RT EC", the | ||||
| "Type 1 EVI-RT EC", the "Type 2 EVI-RT EC", a | ||||
| nd the "Type 3 EVI-RT EC". | ||||
| <list style="numbers"> | ||||
| <t> A Type 0 EVI-RT EC is an EVPN EC | ||||
| (type 6) of sub-type 0xA.</t> | ||||
| <t> A Type 1 EVI-RT EC is an EVPN EC | ||||
| (type 6) of sub-type 0xB.</t> | ||||
| <t> A Type 2 EVI-RT EC is an EVPN EC | ||||
| (type 6) of sub-type 0xC.</t> | ||||
| <t> A Type 3 EVI-RT EC is an EVPN EC | ||||
| (type 6) of sub-type 0xD</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| Each IGMP Membership Report Synch or IGMP Leave S | ||||
| ynch route MUST carry exactly | ||||
| one EVI-RT EC. The EVI-RT EC carried by a partic | ||||
| ular route is | ||||
| constructed as follows. Each such route is the r | ||||
| esult of having | ||||
| received an IGMP Membership Report or an IGMP Lea | ||||
| ve message from a particular | ||||
| BD. The route is said to be associated with that | ||||
| BD. | ||||
| For each BD, there is a corresponding RT that is | ||||
| used to ensure | ||||
| that routes "about" that BD are distributed to al | ||||
| l PEs attached | ||||
| to that BD. So suppose a given IGMP Membership R | ||||
| eport Synch or Leave Synch | ||||
| route is associated with a given BD, say BD1, and | ||||
| suppose that | ||||
| the corresponding RT for BD1 is RT1. Then: | ||||
| <list style="symbols"> | ||||
| <t> 0. If RT1 is a Transitive Two-Octet A | ||||
| S-specific EC, then the EVI- | ||||
| RT EC carried by the route is a T | ||||
| ype 0 EVI-RT EC. The value | ||||
| field of the Type 0 EVI-RT EC is | ||||
| identical to the value field of | ||||
| RT1. </t> | ||||
| <t> 1. If RT1 is a Transitive IPv4-Addres | ||||
| s-specific EC, then the EVI- | ||||
| RT EC carried by the route is a T | ||||
| ype 1 EVI-RT EC. The value | ||||
| field of the Type 1 EVI-RT EC is | ||||
| identical to the value field of | ||||
| RT1. </t> | ||||
| <t> 2. If RT1 is a Transitive Four-Octet- | ||||
| specific EC, then the EVI-RT | ||||
| EC carried by the route is a Type | ||||
| 2 EVI-RT EC. The value field | ||||
| of the Type 2 EVI-RT EC is identi | ||||
| cal to the value field of RT1.</t> | ||||
| <t> 3. If RT1 is a Transitive IPv6-Addres | ||||
| s-specific EC, then the EVI-RT | ||||
| EC carried by the route is a Type | ||||
| 3 EVI-RT EC. The value | ||||
| field of the Type 3 EVI-RT EC is | ||||
| identical to the value field of | ||||
| RT1. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| An IGMP Membership Report Synch or Leave S | ||||
| ynch route MUST carry exactly one EVI-RT EC. | ||||
| </t> | ||||
| <t> | ||||
| Suppose a PE receives a particular IGMP Me | ||||
| mbership Report Synch or IGMP Leave | ||||
| Synch route, say R1, and suppose that R1 | ||||
| carries an ES-Import RT | ||||
| that is one of the PE's Import RTs. If | ||||
| R1 has no EVI-RT EC, or | ||||
| has more than one EVI-RT EC, the PE MUST | ||||
| apply the "treat-as-withdraw" | ||||
| procedure of <xref target="RFC7606"/>. | ||||
| </t> | ||||
| <t> | ||||
| Note that an EVI-RT EC is not a Route Targ | ||||
| et Extended Community, | ||||
| is not visible to the RT Constrain mechani | ||||
| sm <xref target="RFC4684"/>, and is | ||||
| not intended to influence the propagation | ||||
| of routes by BGP. | ||||
| </t> | ||||
| <figure > | ||||
| <artwork ><![CDATA[ | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type=0x06 | Sub-Type=n | RT associated with EVI | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | RT associated with the EVI (cont.) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <t> | ||||
| Where the value of 'n' is 0x0A, 0x0B, 0x0C, or 0x0D corr | ||||
| esponding | ||||
| to EVI-RT type 0, 1, 2, or 3 respectively. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Rewriting of RT ECs and EVI-RT ECs by ASBRs"> | ||||
| <t> | ||||
| There are certain situations in which an | ||||
| ES is attached to a set | ||||
| of PEs that are not all in the same AS, o | ||||
| r not all operated by | ||||
| the same provider. In some such situati | ||||
| ons, the RT that | ||||
| corresponds to a particular EVI may be d | ||||
| ifferent in each AS. If | ||||
| a route is propagated from AS1 to AS2, a | ||||
| n ASBR at the AS1/AS2 | ||||
| border may be provisioned with a policy | ||||
| that removes the RTs that | ||||
| are meaningful in AS1 and replaces them | ||||
| with the corresponding | ||||
| (i.e., RTs corresponding to the same EVI | ||||
| s) RTs that are | ||||
| meaningful in AS2. This is known as RT- | ||||
| rewriting. | ||||
| </t> | ||||
| <t> | ||||
| Note that if a given route's RTs are rewri | ||||
| tten, and the route | ||||
| carries an EVI-RT EC, the EVI-RT EC needs | ||||
| to be rewritten as | ||||
| well. | ||||
| </t> | ||||
| </section> | ||||
| <section title="BGP Error Handling"> | ||||
| <t> | ||||
| If a received BGP update contains Flags not in a | ||||
| ccordance with IGMP/MLD version-X expectation, | ||||
| the PE MUST apply the "treat-as-withdraw" proced | ||||
| ure as per <xref target="RFC7606"/> | ||||
| </t> | ||||
| <t> | ||||
| If a received BGP update is malformed such that | ||||
| BGP route keys cannot be extracted, then | ||||
| BGP update MUST be considered as invalid. Receiv | ||||
| ing PE MUST apply the "Session reset" procedure of <xref target="RFC7606"/>. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="IGMP Version 1 Membership Report"> | ||||
| <t> | ||||
| This document does not provide any detail about IGMPv1 p | ||||
| rocessing. | ||||
| Implementations are expected to only use IGMPv2 and above for IPv4 and | ||||
| MLDv1 and above for IPv6. IGMPv1 routes are considered invalid and the | ||||
| PE MUST apply the "treat-as-withdraw" procedure as per <xref target="RFC7606" | ||||
| />. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Security Considerations"> | ||||
| <t> | ||||
| This document describes a means to efficiently operate IGMP and ML | ||||
| D on a subnet | ||||
| constructed across multiple PODs or DCs via an EVPN solution. The | ||||
| security | ||||
| considerations for the operation of the underlying EVPN and BGP su | ||||
| bstrate are | ||||
| described in <xref target="RFC7432"/>, and specific multicast cons | ||||
| iderations are outlined in | ||||
| <xref target="RFC6513"/> and <xref target="RFC6514"/>. The EVPN a | ||||
| nd associated IGMP proxy provides a single | ||||
| broadcast domain so the same security considerations of IGMPv2 <xr | ||||
| ef target="RFC2236"/>, | ||||
| <xref target="RFC3376"/>, MLD <xref target="RFC2710"/>, or MLDv2 < | ||||
| xref target="RFC3810"/> apply. | ||||
| </t> | ||||
| </section> | ||||
| <section title="IANA Considerations"> | ||||
| <section title="EVPN Extended Community Sub-Types Registrations"> | <t>The low-order (least significant) 2 bits are defined as the "IGMP | |||
| <t> | Proxy Support" and "MLD Proxy Support" bits (see <xref target="multicast_ | |||
| IANA has allocated the following codepoints from the EVPN Extended Co | flags_extended_community"/>. The absence of this | |||
| mmunity Sub-Types | extended community also means that the PE does not support the IGMP | |||
| sub-registry of the BGP Extended Communities registry. </t> | Proxy, where:</t> | |||
| <ul spacing="normal"> | ||||
| <li> The Type is 0x06, as registered with IANA for EVPN Extended Commu | ||||
| nities. </li> | ||||
| <li> The Sub-Type is 0x09.</li> | ||||
| <li> | ||||
| <t>Flags are 2-octet values.</t> | ||||
| <figure> | <ul spacing="normal"> | |||
| <artwork ><![CDATA[ | <li> Bit 15 (shown as I) defines IGMP Proxy Support. The value of | |||
| 1 for | ||||
| bit 15 means that the PE supports the IGMP Proxy. The value of 0 fo | ||||
| r bit 15 | ||||
| means that the PE does not support the IGMP Proxy.</li> | ||||
| <li>Bit 14 (shown as M) defines MLD Proxy Support. The value of 1 | ||||
| for | ||||
| bit 14 means that the PE supports the MLD Proxy. The value of 0 for | ||||
| bit 14 | ||||
| means that the PE does not support the MLD Proxy. </li> | ||||
| <li>Bits 0 to 13 are reserved for the future. The sender <bcp14>MU | ||||
| ST</bcp14> | ||||
| set it to 0, and the receiver <bcp14>MUST</bcp14> ignore it. </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> Reserved bits are set to 0. The sender <bcp14>MUST</bcp14> set it | ||||
| to 0, | ||||
| and the receiver <bcp14>MUST</bcp14> ignore it.</li> | ||||
| </ul> | ||||
| <t> If a router does not support this specification, it <bcp14>MUST NOT< | ||||
| /bcp14> add | ||||
| the Multicast Flags Extended Community | ||||
| in the BGP route. When a router receives a BGP update, | ||||
| if both M and I flags are 0, the router <bcp14>MUST</bcp14> treat this up | ||||
| date as | ||||
| malformed. The receiver of such an | ||||
| update <bcp14>MUST</bcp14> ignore the extended community. </t> | ||||
| </section> | ||||
| <section anchor="evi-rt" numbered="true" toc="default"> | ||||
| <name>EVI-RT Extended Community</name> | ||||
| <t>In EVPN, every EVI is associated with one or more Route Targets. The | ||||
| se RTs serve two functions:</t> | ||||
| <ol spacing="normal" type="1"> | ||||
| <li>Distribution control: RTs control the distribution of the | ||||
| routes. If a route carries the RT associated with a particular | ||||
| EVI, it will be distributed to all the PEs on which that EVI | ||||
| exists.</li> | ||||
| <li>EVI identification: Once a route has been received by a | ||||
| particular PE, the RT is used to identify the EVI to which it | ||||
| applies.</li> | ||||
| </ol> | ||||
| <t>An IGMP Membership Report Synch or IGMP Leave Synch route is associat | ||||
| ed with a | ||||
| particular combination of ES and EVI. These routes need to be | ||||
| distributed only to PEs that are attached to the associated ES. | ||||
| Therefore, these routes carry the ES-Import RT for that ES.</t> | ||||
| <t>Since an IGMP Membership Report Synch or IGMP Leave Synch route does | ||||
| not need | ||||
| to be distributed to all the PEs on which the associated EVI | ||||
| exists, these routes cannot carry the RT associated with that | ||||
| EVI. Therefore, when such a route arrives at a particular PE, the | ||||
| route's RTs cannot be used to identify the EVI to which the route | ||||
| applies. Some other means of associating the route with an EVI | ||||
| must be used.</t> | ||||
| <t>This document specifies four new ECs that | ||||
| can be used to identify the EVI with which a route is associated | ||||
| but do not have any effect on the distribution of the | ||||
| route. These new ECs are known as "Type 0 EVI-RT EC", | ||||
| "Type 1 EVI-RT EC", "Type 2 EVI-RT EC", and "Type 3 EVI-RT EC".</t> | ||||
| 0x09 Multicast Flags Extended Community [this document] | <ol spacing="normal" type="1"> | |||
| 0x0A EVI-RT Type 0 [this document] | <li> A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xA.</li> | |||
| 0x0B EVI-RT Type 1 [this document] | <li> A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xB.</li> | |||
| 0x0C EVI-RT Type 2 [this document] | <li> A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xC.</li> | |||
| <li> A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xD</li> | ||||
| </ol> | ||||
| <t>Each IGMP Membership Report Synch or IGMP Leave Synch route <bcp14>MU | ||||
| ST</bcp14> | ||||
| carry exactly | ||||
| one EVI-RT EC. The EVI-RT EC carried by a particular route is | ||||
| constructed as follows. Each such route is the result of having | ||||
| received an IGMP Membership Report or an IGMP Leave message from a partic | ||||
| ular | ||||
| BD. The route is said to be associated with that BD. | ||||
| For each BD, there is a corresponding RT that is used to ensure | ||||
| that routes "about" that BD are distributed to all PEs attached | ||||
| to that BD. So suppose a given IGMP Membership Report Synch or Leave Syn | ||||
| ch | ||||
| route is associated with a given BD, say BD1, and suppose that | ||||
| the corresponding RT for BD1 is RT1. Then:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>If RT1 is a Transitive Two-Octet AS-specific EC, then the EVI-RT | ||||
| EC carried by the route is a Type 0 EVI-RT EC. The value | ||||
| field of the Type 0 EVI-RT EC is identical to the value field of | ||||
| RT1. </li> | ||||
| <li>If RT1 is a Transitive IPv4-Address-specific EC, then the EVI-RT | ||||
| EC carried by the route is a Type 1 EVI-RT EC. The value | ||||
| field of the Type 1 EVI-RT EC is identical to the value field of | ||||
| RT1. </li> | ||||
| <li>If RT1 is a Transitive Four-Octet AS-specific EC, then the EVI-RT | ||||
| EC carried by the route is a Type 2 EVI-RT EC. The value field | ||||
| of the Type 2 EVI-RT EC is identical to the value field of RT1.</li> | ||||
| <li>If RT1 is a Transitive IPv6-Address-specific EC, then the EVI-RT | ||||
| EC carried by the route is a Type 3 EVI-RT EC. The value | ||||
| field of the Type 3 EVI-RT EC is identical to the value field of | ||||
| RT1.</li> | ||||
| </ul> | ||||
| <t>An IGMP Membership Report Synch or Leave Synch route <bcp14>MUST</bcp | ||||
| 14> | ||||
| carry exactly one EVI-RT EC.</t> | ||||
| <t>Suppose a PE receives a particular IGMP Membership Report Synch or IG | ||||
| MP Leave | ||||
| Synch route, say R1, and suppose that R1 carries an ES-Import RT | ||||
| that is one of the PE's Import RTs. If R1 has no EVI-RT EC or | ||||
| has more than one EVI-RT EC, the PE <bcp14>MUST</bcp14> apply the "treat- | ||||
| as-withdraw" | ||||
| procedure per <xref target="RFC7606" format="default"/>.</t> | ||||
| <t>Note that an EVI-RT EC is not a Route Target extended community, | ||||
| is not visible to the RT Constrain mechanism <xref target="RFC4684" forma | ||||
| t="default"/>, | ||||
| and is not intended to influence the propagation of routes by BGP.</t> | ||||
| <artwork name="" type="" align="center" alt=""><![CDATA[ | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type=0x06 | Sub-Type=n | RT associated with EVI | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | RT associated with the EVI (cont.) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ]]></artwork> | ||||
| ]]></artwork> | <t>The value of "n" is 0x0A, 0x0B, 0x0C, or 0x0D, corresponding | |||
| </figure> | to EVI-RT types 0, 1, 2, or 3, respectively.</t> | |||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Rewriting of RT ECs and EVI-RT ECs by ASBRs</name> | ||||
| <!-- Note: text updated per mail from John E Drake <jdrake@juniper.net> | ||||
| on 5/18/2022. --> | ||||
| <t> | <!-- [rfced] AD, Section 9.6 was updated per a request from the author. Please | |||
| IANA is requested to allocate a new codepoint from the EVP | review and let us know if the changes are approved. Note that you can also view | |||
| N | the changes in the diff files. | |||
| Extended Community sub-types registry for the following. | ||||
| </t> | ||||
| <figure> | Original: | |||
| <artwork ><![CDATA[ | There are certain situations in which an ES is attached to a set of | |||
| 0x0D EVI-RT Type 3 [this document] | PEs that are not all in the same AS, or not all operated by the same | |||
| provider. In some such situations, the RT that corresponds to a | ||||
| particular EVI may be different in each AS. If a route is propagated | ||||
| from AS1 to AS2, an ASBR at the AS1/AS2 border may be provisioned | ||||
| with a policy that removes the RTs that are meaningful in AS1 and | ||||
| replaces them with the corresponding (i.e., RTs corresponding to the | ||||
| same EVIs) RTs that are meaningful in AS2. This is known as RT- | ||||
| rewriting. | ||||
| ]]></artwork> | Note that if a given route's RTs are rewritten, and the route carries | |||
| </figure> | an EVI-RT EC, the EVI-RT EC needs to be rewritten as well. | |||
| </section> | ||||
| <section title="EVPN Route Type Registration"> | ||||
| <t> | Current: | |||
| IANA has allocated the following EVPN route types from the EVPN | There are certain situations in which an ES is attached to a set of | |||
| Route Type registry. | PEs that are not all in the same AS, or not all operated by the same | |||
| </t> | provider. In this situation, the RT that corresponds to a particular | |||
| EVI may be different in each AS. If a route is propagated from AS1 | ||||
| to AS2, an ASBR at the AS1/AS2 border may be configured with a policy | ||||
| that replaces the EVI RTs for AS1 with the corresponding EVI RTs | ||||
| for AS2. This is known as RT-rewriting. | ||||
| <figure> | If an ASBR is configured to perform RT-rewriting of the EVI RTs in | |||
| <artwork ><![CDATA[ | EVPN routes, it MUST be configured to perform RT-rewriting of the | |||
| 6 - Selective Multicast Ethernet Tag Route | corresponding EVI-RT extended communities in IGMP Join Synch and IGMP | |||
| 7 - Multicast Membership Report Synch Route | Leave Synch Routes. | |||
| 8 - Multicast Leave Synch Route | --> | |||
| ]]></artwork> | <t>There are certain situations in which an ES is attached to a set of P | |||
| </figure> | Es that are not all in the same AS, or not all operated by the same provider. I | |||
| </section> | n this situation, the RT that corresponds to a particular EVI may be different i | |||
| <section title="Multicast Flags Extended Community Registry"> | n each AS. If a route is propagated from AS1 to AS2, an ASBR at the AS1/AS2 bor | |||
| der may be configured with a policy that replaces the EVI RTs for AS1 with the c | ||||
| orresponding EVI RTs for AS2. This is known | ||||
| as RT-rewriting.</t> | ||||
| <t>If an ASBR is configured to perform RT-rewriting of the EVI RTs in EV | ||||
| PN routes, it <bcp14>MUST</bcp14> be configured to perform RT-rewriting of the c | ||||
| orresponding EVI-RT extended communities in IGMP Join Synch and IGMP Leave Sync | ||||
| h Routes.</t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>BGP Error Handling</name> | ||||
| <t>If a received BGP update contains Flags not in accordance with the IG | ||||
| MP/MLD | ||||
| version-X expectation, | ||||
| the PE <bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedure per <x | ||||
| ref | ||||
| target="RFC7606" format="default"/>.</t> | ||||
| <t>If a received BGP update is malformed such that BGP route keys cannot | ||||
| be extracted, | ||||
| then the BGP update <bcp14>MUST</bcp14> be considered invalid. The receiv | ||||
| ing PE | ||||
| <bcp14>MUST</bcp14> apply the "session reset" procedure per <xref target= | ||||
| "RFC7606" | ||||
| format="default"/>.</t> | ||||
| </section> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>IGMP Version 1 Membership Report</name> | ||||
| <t>This document does not provide any detail about IGMPv1 processing. | ||||
| Implementations are expected to only use IGMPv2 and above for IPv4 and | ||||
| MLDv1 and above for IPv6. IGMPv1 routes are considered invalid, and the | ||||
| PE <bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedure per | ||||
| <xref target="RFC7606" format="default"/>.</t> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Security Considerations</name> | ||||
| <t>This document describes a means to efficiently operate IGMP and MLD on | ||||
| a subnet | ||||
| constructed across multiple PODs or DCs via an EVPN solution. The securit | ||||
| y | ||||
| considerations for the operation of the underlying EVPN and BGP substrates | ||||
| are | ||||
| described in <xref target="RFC7432" format="default"/>, and specific multi | ||||
| cast | ||||
| considerations are outlined in | ||||
| <xref target="RFC6513" format="default"/> and <xref target="RFC6514" forma | ||||
| t="default"/>. | ||||
| The EVPN and associated IGMP Proxy provides a single | ||||
| broadcast domain so the same security considerations of IGMPv2 <xref targe | ||||
| t="RFC2236" | ||||
| format="default"/>, IGMPv3 | ||||
| <xref target="RFC3376" format="default"/>, MLD <xref target="RFC2710" form | ||||
| at="default"/>, | ||||
| or MLDv2 <xref target="RFC3810" format="default"/> apply.</t> | ||||
| </section> | ||||
| <t> | <section numbered="true" toc="default"> | |||
| The Multicast Flags Extended Community contains a 16-bit Fl | <name>IANA Considerations</name> | |||
| ags | <section numbered="true" toc="default"> | |||
| field. The bits are numbered 0-15, from high-order to low-o | <name>EVPN Extended Community Sub-Types Registration</name> | |||
| rder. | <t>IANA has allocated the following codepoints in the "EVPN Extended Com | |||
| </t> | munity Sub-Types" | |||
| subregistry under the "Border Gateway Protocol (BGP) Extended Communitie | ||||
| s" registry. </t> | ||||
| <figure> | <table> | |||
| <artwork ><![CDATA[ | <name>EVPN Extended Community Sub-Types Subregistry Allocated Codepoint | |||
| The registry should be initialized as follows: | s</name> | |||
| <thead> | ||||
| <tr> | ||||
| <th>Sub-Type Value</th> | ||||
| <th>Name</th> | ||||
| <th>Reference</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>0x09</td> | ||||
| <td>Multicast Flags Extended Community</td> | ||||
| <td>RFC 9251</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>0x0A</td> | ||||
| <td>EVI-RT Type 0</td> | ||||
| <td>RFC 9251</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>0x0B</td> | ||||
| <td>EVI-RT Type 1</td> | ||||
| <td>RFC 9251</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>0x0C</td> | ||||
| <td>EVI-RT Type 2</td> | ||||
| <td>RFC 9251</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>0x0D</td> | ||||
| <td>EVI-RT Type 3</td> | ||||
| <td>RFC 9251</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>EVPN Route Types Registration</name> | ||||
| <t>IANA has allocated the following EVPN route types in the "EVPN | ||||
| Route Types" subregistry.</t> | ||||
| Bit Name Reference Change | <dl newline="false" spacing="normal"> | |||
| Controller | <dt>6 -</dt> | |||
| ---- -------------- ------------- ------- | <dd>Selective Multicast Ethernet Tag Route</dd> | |||
| ----------- | <dt>7 -</dt> | |||
| 0 - 13 Unassigned | <dd>Multicast Membership Report Synch Route</dd> | |||
| 14 MLD Proxy Support This document. IE | <dt>8 -</dt> | |||
| TF | <dd> Multicast Leave Synch Route</dd> | |||
| 15 IGMP Proxy Support This document IE | </dl> | |||
| TF | ||||
| The registration policy should be "First Come First Served". | </section> | |||
| <section anchor="multicast_flags_extended_community" numbered="true" toc=" | ||||
| default"> | ||||
| <name>Multicast Flags Extended Community Registry</name> | ||||
| <t>IANA has created and now maintains a new subregistry called "Multicas | ||||
| t Flags Extended Community" under the "Border Gateway Protocol (BGP) Extended Co | ||||
| mmunities" registry. The registration procedure is First Come First Served <xref | ||||
| target="RFC8126"/>. For the 16-bit Flags field, the bits are numbered 0-15, fro | ||||
| m high order to low order. The registry was initialized as follows:</t> | ||||
| ]]></artwork> | <table> | |||
| </figure> | <name>Multicast Flags Extended Community</name> | |||
| </section> | <thead> | |||
| <tr> | ||||
| <th>Bit</th> | ||||
| <th>Name</th> | ||||
| <th>Reference</th> | ||||
| <th>Change Controller</th> | ||||
| </tr> | ||||
| </thead> | ||||
| </section> | <tbody> | |||
| <tr> | ||||
| <td>0-13</td> | ||||
| <td>Unassigned</td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <section title="Acknowledgement"> | <tr> | |||
| <t> | <td> 14</td> | |||
| The authors would like to thank Stephane Litkowski, Jor | <td>MLD Proxy Support</td> | |||
| ge Rabadan, | <td>RFC 9251</td> | |||
| Anoop Ghanwani, Jeffrey Haas, Krishna Muddenahally Anan | <td>IETF</td> | |||
| thamurthy, Swadesh Agrawal | </tr> | |||
| for reviewing and providing valuable | ||||
| comment. | ||||
| </t> | ||||
| <tr> | ||||
| <td> 15</td> | ||||
| <td>IGMP Proxy Support</td> | ||||
| <td>RFC 9251</td> | ||||
| <td>IETF</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | </section> | |||
| </section> | ||||
| <section title="Contributors"> | ||||
| <t> | ||||
| Derek Yeung </t> | ||||
| <t> Arrcus </t> | ||||
| <t> Email: derek@arrcus.com | ||||
| </t> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <!-- *****BACK MATTER ***** --> | ||||
| <back> | <back> | |||
| <references title='Normative References'> | <displayreference target="I-D.ietf-bess-evpn-bum-procedure-updates" to="EVPN | |||
| <?rfc include='reference.RFC.2119' ?> | -BUM"/> | |||
| <?rfc include='reference.RFC.7432' ?> | <references> | |||
| <?rfc include='reference.RFC.3376' ?> | <name>References</name> | |||
| <?rfc include='reference.RFC.2710' ?> | <references> | |||
| <?rfc include='reference.RFC.3810' ?> | <name>Normative References</name> | |||
| <?rfc include='reference.RFC.7606' ?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc include='reference.RFC.4684' ?> | FC.2119.xml"/> | |||
| <?rfc include='reference.RFC.2236' ?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc include='reference.RFC.8174' ?> | FC.7432.xml"/> | |||
| <?rfc include='reference.RFC.4364' ?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc include='reference.RFC.6625' ?> | FC.3376.xml"/> | |||
| <?rfc include='reference.RFC.6513' ?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc include='reference.RFC.6514' ?> | FC.2710.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.3810.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7606.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4684.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2236.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.4364.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6625.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6513.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6514.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4541.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.8126.xml"/> | ||||
| </references> | <!-- draft-ietf-bess-evpn-bum-procedure-updates-14: in MISSREF as of 5/26 | |||
| <references title="Informative References"> | /22--> | |||
| <?rfc include='reference.RFC.4541' ?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| <?rfc include="reference.I-D.ietf-bess-evpn-bum-procedure-updates"?> | .ietf-bess-evpn-bum-procedure-updates.xml"/> | |||
| </references> | </references> | |||
| </references> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t>The authors would like to thank <contact fullname="Stephane Litkowski"/ | ||||
| >, <contact | ||||
| fullname="Jorge Rabadan"/>, | ||||
| <contact fullname="Anoop Ghanwani"/>, <contact fullname="Jeffrey Haas"/>, | ||||
| <contact | ||||
| fullname="Krishna Muddenahally Ananthamurthy"/>, and <contact fullname="Sw | ||||
| adesh Agrawal"/> | ||||
| for their reviews and valuable comments.</t> | ||||
| </section> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Contributors</name> | ||||
| <contact fullname="Derek Yeung"> | ||||
| <organization>Arrcus</organization> | ||||
| <address> | ||||
| <email>derek@arrcus.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| </section> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 50 change blocks. | ||||
| 2565 lines changed or deleted | 1839 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/ | ||||