rfc9739.original | rfc9739.txt | |||
---|---|---|---|---|
Network Working Group H. Bidgoli, Ed. | Internet Engineering Task Force (IETF) H. Bidgoli, Ed. | |||
Internet-Draft Nokia | Request for Comments: 9739 Nokia | |||
Intended status: Standards Track S. Venaas | Category: Standards Track S. Venaas | |||
Expires: 8 June 2025 Cisco System, Inc. | ISSN: 2070-1721 M. Mishra | |||
M. Mishra | Cisco Systems, Inc. | |||
Cisco System | ||||
Z. Zhang | Z. Zhang | |||
Juniper Networks | Juniper Networks | |||
M. McBride | M. McBride | |||
Futurewei Technologies Inc. | Futurewei Technologies Inc. | |||
5 December 2024 | February 2025 | |||
Protocol Independent Multicast Light (PIM Light) | Protocol Independent Multicast Light (PIM Light) | |||
draft-ietf-pim-light-11 | ||||
Abstract | Abstract | |||
This document specifies Protocol Independent Multicast Light (PIM | This document specifies Protocol Independent Multicast Light (PIM | |||
Light) and PIM Light Interface (PLI) which does not need PIM Hello | Light) and the PIM Light Interface (PLI). A PLI does not need a PIM | |||
message to accept PIM Join/Prune messages. PLI can signal multicast | Hello message to accept PIM Join/Prune messages, and it can signal | |||
states over networks that can not support full PIM neighbor | multicast states over networks that cannot support full PIM neighbor | |||
discovery, as an example BIER networks that are connecting two or | discovery, such as Bit Index Explicit Replication (BIER) networks | |||
more PIM domains. This document outlines the PIM Light protocol and | that connect two or more PIM domains. This document outlines the PIM | |||
procedures to ensure loop-free multicast traffic between two or more | Light protocol and procedures to ensure loop-free multicast traffic | |||
PIM Light routers. | between two or more PIM Light routers. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 8 June 2025. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9739. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Terminology | |||
2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. PIM Light Interface | |||
3. PIM Light Interface . . . . . . . . . . . . . . . . . . . . . 3 | 3.1. Message Types Supported by PIM Light | |||
3.1. PLI supported Messages . . . . . . . . . . . . . . . . . 4 | 3.2. Considerations for the Absence of Hello Message | |||
3.2. Absence of Hello Message consideration . . . . . . . . . 4 | 3.2.1. Join Attribute | |||
3.2.1. Join Attribute . . . . . . . . . . . . . . . . . . . 4 | 3.2.2. DR Election | |||
3.2.2. DR Election . . . . . . . . . . . . . . . . . . . . . 5 | 3.2.3. PIM Assert | |||
3.2.3. PIM Assert . . . . . . . . . . . . . . . . . . . . . 5 | 3.3. PLI Configuration | |||
3.3. PLI Configuration . . . . . . . . . . . . . . . . . . . . 6 | 3.4. Failures in PLR Domain | |||
3.4. Failures in PLR domain . . . . . . . . . . . . . . . . . 6 | 3.5. Reliable Transport Mechanism for PIM Light | |||
3.5. Reliable Transport Mechanism for PIM LIGHT . . . . . . . 7 | 3.6. PIM Variants Not Supported | |||
3.6. PIM Variants not supported . . . . . . . . . . . . . . . 7 | 4. IANA Considerations | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 5. Security Considerations | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 6. References | |||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | 6.1. Normative References | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 6.2. Informative References | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 8 | Acknowledgments | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 9 | Authors' Addresses | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
1. Introduction | 1. Introduction | |||
This document specifies the Protocol Independent Multicast Light (PIM | This document specifies procedures for Protocol Independent Multicast | |||
Light) and PIM Light Interface (PLI) procedures. PLI is a new type | Light (PIM Light) and the PIM Light Interface (PLI). The PLI is a | |||
of PIM interface that allows signaling of PIM Join/Prune packets | new type of PIM interface that allows signaling of PIM Join/Prune | |||
without full PIM neighbor discovery. PLI is useful in scenarios | packets without full PIM neighbor discovery. A PLI is useful in | |||
where multicast states needs to be signalled over networks or media | scenarios where multicast states need to be signaled over networks or | |||
that cannot support full PIM neighborship between routers or | media that cannot support full PIM neighborship between routers or, | |||
alternatively full PIM neighborship is not desired. These type of | alternatively, where full PIM neighborship is not desired. These | |||
networks or medias are addressed as a PIM Light Domain within this | types of networks and media are called "PIM Light domains" within | |||
document. Lack of full PIM neighborship will remove some PIM | this document. Lack of full PIM neighborship will remove some PIM | |||
functionality as explained in section 3.2 of this document. PIM | functionality as explained in Section 3.2 of this document. PIM | |||
Light only supports Protocol Independent Multicast Sparse Mode (PIM- | Light only supports the PIM - Sparse Mode (PIM-SM) protocol, | |||
SM) protocol including PIM Source-Specific Multicast (PIM-SSM) as per | including PIM Source-Specific Multicast (PIM-SSM), as per [RFC7761]. | |||
[RFC7761]. The document details procedures and considerations needed | This document details procedures and considerations needed for PIM | |||
for PIM Light and PLI to ensure efficient routing of multicast groups | Light and the PLI to ensure efficient routing of multicast groups for | |||
for specific deployment environments. | specific deployment environments. | |||
2. Conventions used in this document | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2.1. Definitions | This document uses terminology from "Protocol Independent Multicast - | |||
Sparse Mode (PIM-SM): Protocol Specification (Revised)" [RFC7761]. | ||||
This document uses definitions used in Protocol Independent Multicast | ||||
- Sparse Mode (PIM-SM): Protocol Specification [RFC7761] | ||||
3. PIM Light Interface | 3. PIM Light Interface | |||
RFC [RFC7761] section 4.3.1 describes the PIM neighbor discovery via | Section 4.3.1 of [RFC7761] describes PIM neighbor discovery via Hello | |||
Hello messages. In section 4.5 it describes that if a router | messages. Section 4.5 of [RFC7761] notes that if a router receives a | |||
receives a Join/Prune message from a particular IP source address and | Join/Prune message from a particular IP source address and it has not | |||
it has not seen a PIM Hello message from that source address, then | seen a PIM Hello message from that source address, then the Join/ | |||
the Join/Prune message SHOULD be discarded without further | Prune message SHOULD be discarded without further processing. | |||
processing. | ||||
In certain scenarios, it is desirable to establish multicast states | In certain scenarios, it is desirable to establish multicast states | |||
between two layer-3 adjacent routers without forming a PIM | between two adjacent Layer 3 routers without forming a PIM | |||
neighborship. This can be necessary for various reasons, such as | neighborship. This can be necessary for various reasons, such as | |||
signaling multicast states upstream between multiple PIM domains over | signaling multicast states upstream between multiple PIM domains over | |||
a network that is not optimized for PIM or does not necessitate PIM | a network that is not optimized for PIM or that does not necessitate | |||
Neighbor establishment. For example, in a Bit Index Explicit | PIM neighbor establishment. For example, in a Bit Index Explicit | |||
Replication (BIER) [RFC8279] networks connecting multiple PIM | Replication (BIER) [RFC8279] network connecting multiple PIM domains, | |||
domains, where PIM Join/Prune messages are tunneled via BIER as | where PIM Join/Prune messages are tunneled via BIER as specified in | |||
specified in [draft-ietf-bier-pim-signaling]. | [BIER-PIM]. | |||
A PIM Light Interface (PLI) accepts Join/Prune messages from an | A PLI accepts Join/Prune messages from an unknown PIM router without | |||
unknown PIM router without requiring a PIM Hello message from the | requiring a PIM Hello message from the router. The absence of Hello | |||
router. The absence of Hello messages on a PLI means there is no | messages on a PLI means there is no mechanism to discover neighboring | |||
mechanism to discover neighboring PIM routers or their capabilities, | PIM routers or their capabilities or to execute basic algorithms such | |||
nor to execute basic algorithms such as Designated Router (DR) | as Designated Router (DR) election [RFC7761]. Consequently, the PIM | |||
election [RFC7761]. Consequently, the PIM Light router does not | Light router does not create any general-purpose state for | |||
create any general-purpose state for neighboring PIM routers and only | neighboring PIM routers and only processes Join/Prune messages from | |||
processes Join/Prune messages from downstream routers in its | downstream routers in its multicast routing table. Processing these | |||
multicast routing table. Processing these Join/Prune messages will | Join/Prune messages will introduce multicast states in a PIM Light | |||
introduce multicast states in a PIM Light router. | router. | |||
Due to these constraints, a PLI should be deployed in very specific | Due to these constraints, a PLI should be deployed in very specific | |||
scenarios where PIM-SM is not suitable. The applications or the | scenarios where PIM-SM is not suitable. The applications or the | |||
networks that PLIs are deployed on MUST ensure there is no multicast | networks on which PLIs are deployed MUST ensure that there is no | |||
packet duplication, such as multiple upstream routers sending the | multicast packet duplication, such as multiple upstream routers | |||
same multicast stream to a single downstream router. As an example | sending the same multicast stream to a single downstream router. For | |||
the implementation should ensure that DR election is done on upstream | example, an implementation should ensure that DR election is done on | |||
Redundant PIM routers that are at the edge of the PIM Light Domain to | upstream redundant PIM routers that are at the edge of the PIM Light | |||
ensure a single Designated Router to forward the PIM Join message | domain to ensure a single DR to forward the PIM Join message from | |||
from reviver to the Source. | reviver to the source. | |||
3.1. PLI supported Messages | 3.1. Message Types Supported by PIM Light | |||
IANA [iana_pim-parameters_message-types], lists the PIM supported | The "PIM Message Types" registry [IANA-PIM-Mess-Types] lists the | |||
message types. PIM Light only supports the following message types | message types supported by PIM. PIM Light only supports the | |||
from the table "PIM Message Types" | following message types in that registry: | |||
1. type 3 (Join/Prune) from the ALL-PIM-ROUTERS message types listed | * type 1 (Register) | |||
in [RFC7761]. | ||||
2. type 1 (Register) | * type 2 (Register Stop) | |||
3. type 2 (Register Stop) | * type 3 (Join/Prune) (Note that this type is from the ALL-PIM- | |||
ROUTERS message types listed in [RFC7761].) | ||||
4. type 8 (Candidate RP Advertisement) | * type 8 (Candidate RP Advertisement) | |||
5. type 13 (PIM Packed Null-Register) | * type 13 (PIM Packed Null-Register) | |||
6. type 13.1 (PIM Packed Register-Stop) | * type 13.1 (PIM Packed Register-Stop) | |||
7. Any future PIM message types that use unicast destination IP. | * Any future PIM message types that use unicast destination IP | |||
No other message types are supported for PIM Light and MUST NOT be | No other message types are supported by PIM Light; other message | |||
process if received on a PLI. | types MUST NOT be processed if received on a PLI. | |||
3.2. Absence of Hello Message consideration | 3.2. Considerations for the Absence of Hello Message | |||
In a PIM Light domain, the following considerations should be taken | Because Hello messages are not processed in a PIM Light domain, the | |||
into account due to the lack of processing Hello messages. | considerations in the subsections below should be taken into account. | |||
3.2.1. Join Attribute | 3.2.1. Join Attribute | |||
Since a PLI does not process PIM Hello messages, it also does not | Since a PLI does not process PIM Hello messages, it also does not | |||
support the join attributes option in PIM Hello as specified in | support the join attribute option in PIM Hello as specified in | |||
[RFC5384]. As such, PIM Light is unaware of its neighbor's | [RFC5384]. As such, PIM Light is unaware of its neighbor's | |||
capability to process join attributes and it SHOULD NOT process a | capability to process join attributes, and it SHOULD NOT process a | |||
join message containing it. | Join message containing it. | |||
For a PLI to send and process a join attributes there can be two | There are two cases in which a PLI can send and process a join | |||
cases: | attribute: | |||
1. It must be configured with appropriate join attribute type that | * The join attribute must be configured with an appropriate join | |||
the PLI is capable of processing as per | attribute type that the PLI is capable of processing as per the | |||
[iana_pim-parameters_join-attribute-types] table. | "PIM Join Attribute Types" registry [IANA-PIM-Attr-Types]. | |||
2. Separate IETF drafts or RFCs may dictate that certain join | * Internet-Drafts and RFCs may dictate that certain join attributes | |||
attributes are allowed to be used without explicit configuration | are allowed to be used without explicit configuration of the PLI | |||
of the PLI in certain scenarios. The details are left to those | in certain scenarios. The details are left to those Internet- | |||
drafts or RFCs. | Drafts and RFCs. | |||
3.2.2. DR Election | 3.2.2. DR Election | |||
Due to the absence of Hello messages, DR Election is not supported on | Due to the absence of Hello messages, DR Election is not supported on | |||
a PIM Light router. The network design must ensure DR Election | a PIM Light router. The network design must ensure DR Election | |||
occurs within the PIM domain, assuming the PIM Light domain | occurs within the PIM domain, assuming the PIM Light domain | |||
interconnects PIM domains. | interconnects PIM domains. | |||
Bier edge router Bier edge router (BER) | Bier edge router Bier edge router | |||
|--PIM Domain--|--BIER domain (PLI)--|--PIM domain--| | |--PIM domain--|--BIER domain (PLI)--|--PIM domain--| | |||
Source--( A )----------( B ) ---- ( C ) ---- ( D )----------( E )--host | Source--( A )----------( B ) ---- ( C ) ---- ( D )----------( E )--Host | |||
| PIM Adj| | | |PIM Adj | | | PIM Adj| | | |PIM Adj | | |||
|------------( E )-------| |-------( F )------------| | |------------( E )-------| |-------( F )------------| | |||
(DR Election) | (DR Election) | |||
For instance, in a BIER domain connecting two PIM networks, a PLI can | For instance, in a BIER domain connecting two PIM networks, a PLI can | |||
be used between BIER edge routers solely for multicast state | be used between BIER edge routers solely for multicast state | |||
communication and transmit only PIM Join/Prune messages. If there | communication and transmit only PIM Join/Prune messages. If there | |||
are redundant PIM routers at the edge of the BIER domain, to prevent | are redundant PIM routers at the edge of the BIER domain, to prevent | |||
multicast stream duplication, they MUST establish PIM adjacency as | multicast stream duplication, they MUST establish PIM adjacency as | |||
per [RFC7761] to ensure DR election at the edge of BIER domain. An | per [RFC7761] to ensure DR election at the edge of BIER domain. An | |||
example DR election could be DR election between router D and F in | example DR election could be DR election between router D and F in | |||
above figure. When the Join or Prune message arrives from a PIM | the figure above. When the Join or Prune message arrives from a PIM | |||
domain to the down stream BIER edge router, it can be forwarded over | domain to the downstream BIER edge router, it can be forwarded over | |||
the BIER tunnel to the upstream BIER edge router only via the | the BIER tunnel to the upstream BIER edge router only via the DR. | |||
designated router. | ||||
3.2.3. PIM Assert | 3.2.3. PIM Assert | |||
In scenarios where multiple PIM routers peer over a shared LAN or a | In scenarios where multiple PIM routers peer over a shared LAN or a | |||
Point-to-Multipoint medium, more than one upstream router may have | point-to-multipoint medium, more than one upstream router may have | |||
valid forwarding state for a packet, potentially causing packet | valid forwarding state for a packet, which can potentially cause | |||
duplication. PIM Assert is used to select a single transmitter when | packet duplication. PIM Assert is used to select a single | |||
such duplication is detected. According to [RFC7761] section 4.6, | transmitter when such duplication is detected. According to | |||
PIM Assert should only be accepted from a known PIM neighbor. | Section 4.6 of [RFC7761], PIM Assert should only be accepted from a | |||
known PIM neighbor. | ||||
In PIM Light implementations, care must be taken to avoid duplicate | In PIM Light implementations, care must be taken to avoid duplicate | |||
streams arriving from multiple upstream PIM Light routers to a single | streams arriving from multiple upstream PIM Light routers to a single | |||
downstream PIM Light router. If network design constraints prevent | downstream PIM Light router. If network design constraints prevent | |||
this, the implemented network architecture must take measures to | this, the implemented network architecture must take measures to | |||
avoid traffic duplication. For example, in a PIM Light over a BIER | avoid traffic duplication. For example, in a scenario with PIM Light | |||
domain scenario, downstream IBBR (Ingress BIER Border Router) in a | over a BIER domain, a downstream IBBR (Ingress BIER Border Router) in | |||
BIER domain can identify the nearest EBBRs (Egress BIER Border | a BIER domain can identify the nearest EBBRs (Egress BIER Border | |||
Routers) to the source using the Shortest Path First (SPF) algorithm | Routers) to the source using the Shortest Path First (SPF) algorithm | |||
with a post-processing as described in | with post-processing as described in Appendix A.1 of [BIER-PIM]. If | |||
[draft-ietf-bier-pim-signaling] Appendix A.1. If the downstream IBBR | the downstream IBBR identifies two EBBRs, it can select one using a | |||
identifies two EBBRs, it can select one using a unique IP selection | unique IP selection algorithm, such as choosing the EBBR with the | |||
algorithm, such as choosing the EBBR with the lowest or highest IP | lowest or highest IP address. If the selected EBBR goes offline, the | |||
address. If the selected EBBR goes offline, the downstream router | downstream router can use the next EBBR based on the IP selection | |||
can use the next EBBR based on the IP selection algorithm, which is | algorithm, which is beyond the scope of this document. | |||
beyond the scope of this document. | ||||
3.3. PLI Configuration | 3.3. PLI Configuration | |||
Since a PLI doesn't require PIM Hello Messages and PIM neighbor | Since a PLI doesn't require PIM Hello Messages and PIM neighbor | |||
adjacency is not checked for arriving Join/Prune messages, there | adjacency is not checked for arriving Join/Prune messages, there | |||
needs to be a mechanism to enable PLI on interfaces. If a router | needs to be a mechanism to enable PLIs on interfaces. If a router | |||
supports PIM Light, only when PLI is enabled on an interface, | supports PIM Light, arriving Join/Prune messages MUST be processed | |||
arriving Join/Prune messages MUST be processed, otherwise they MUST | only when a PLI is enabled on an interface; otherwise, they MUST be | |||
be dropped. While on some logical interfaces PLI maybe enabled | dropped. A PLI may be enabled automatically or via an underlying | |||
automatically or via an underlying mechanism, as an example the | mechanism on some logical interfaces (for example, the logical | |||
logical interface connecting two or more BIER edge routers in a BIER | interface connecting two or more BIER edge routers in a BIER | |||
subdomain [draft-ietf-bier-pim-signaling]. | subdomain [BIER-PIM]). | |||
3.4. Failures in PLR domain | 3.4. Failures in PLR Domain | |||
Because the Hello messages are not processed on the PLI, PIM Light | Because Hello messages are not processed on the PLI, PLI failures may | |||
Interface failures may not be discovered in a PIM Light domain and | not be discovered in a PIM Light domain, and multicast routes will | |||
multicast routes will not be pruned toward the source on the PIM | not be pruned toward the source on the PIM Light domain. This | |||
Light domain, leaving the upstream routers continuously sending | results in the upstream routers continuously sending multicast | |||
multicast streams until the outgoing interface (OIF) expires. | streams until the outgoing interface (OIF) expires. | |||
Other protocols can be used to detect these failures in the PIM Light | Other protocols can be used to detect these failures in the PIM Light | |||
domain and they can be implementation specific. As an example, the | domain, and they can be implementation specific. As an example, the | |||
interface that PIM Light is configured on can be protected via | interface on which PIM Light is configured can be protected via | |||
Bidirectional Forwarding Detection (BFD) or similar technology. If | Bidirectional Forwarding Detection (BFD) or similar technology. If | |||
BFD to the far-end PLI goes down, and the PIM Light Router is | BFD to the far-end PLI goes down and the PIM Light router is upstream | |||
upstream and has an OIF for a multicast route <S,G>, PIM must remove | and has an OIF for a multicast route <S,G>, PIM must remove that PLI | |||
that PLI from its OIF list. | from its OIF list. | |||
UBER DBER | UBER DBER | |||
|--PIM Domain--|--BIER domain (PLI)--|--PIM domain--| | |--PIM domain--|--BIER domain (PLI)--|--PIM domain--| | |||
Source--( A )----------( B ) ---- ( C ) ---- ( D )----------( E )--host | Source--( A )----------( B ) ---- ( C ) ---- ( D )----------( E )--Host | |||
<--Prune <S,G> <failure on D> | <--Prune <S,G> <failure on D> | |||
In another example, where the PLI is configured automatically between | In another example, the PLI is configured automatically between the | |||
the BIER Edge Routers (BER), when the downstream BIER Edge Router | BIER Edge Routers (BERs). When the Downstream BIER Edge Router | |||
(DBER) is no longer reachable on the upstream BIER Edge Router | (DBER) is no longer reachable on the Upstream BIER Edge Router | |||
(UBER), the UBER which is also a PIM Light Router can prune the <S,G> | (UBER), the UBER (which is also a PIM Light router) can prune the | |||
advertised toward the source on the PIM domain to stop the | <S,G> advertised toward the source on the PIM domain to stop the | |||
transmission of the multicast stream. | transmission of the multicast stream. | |||
3.5. Reliable Transport Mechanism for PIM LIGHT | 3.5. Reliable Transport Mechanism for PIM Light | |||
[RFC6559] defines a reliable transport mechanism for PIM transmission | [RFC6559] defines a reliable transport mechanism for PIM transmission | |||
of Join/Prune messages, using either TCP or SCTP as transport | of Join/Prune messages, using either TCP or SCTP as the transport | |||
protocol. For TCP, PIM over reliable transport (PORT) uses port 8471 | protocol. For TCP, PIM Over Reliable Transport (PORT) uses port | |||
which is assigned by IANA. SCTP is explained in [RFC9260], and it is | 8471, which was assigned by IANA. SCTP is explained in [RFC9260] and | |||
used as a second option for PORT. [RFC6559] mentions that when a | is used as a second option for PORT. [RFC6559] mentions that when a | |||
router is configured to use PIM over TCP on a given interface, it | router is configured to use PIM over TCP on a given interface, it | |||
MUST include the PIM-over-TCP-Capable Hello Option in its Hello | MUST include the PIM-over-TCP-Capable Hello Option in its Hello | |||
messages for that interface. The same is true for SCTP and the | messages for that interface. The same is true for SCTP; the router | |||
router must include PIM-over-SCTP-Capable Hello Option in its Hello | must include the PIM-over-SCTP-Capable Hello Option in its Hello | |||
messsage on that interface. | message on that interface. | |||
These Hello options contain a Connection ID which is an IPv4 or IPv6 | These Hello options contain a Connection ID, which is an IPv4 or IPv6 | |||
address used to establish the SCTP or TCP connection. For PORT using | address used to establish the SCTP or TCP connection. For PORT using | |||
TCP, the connection ID is used for determining which peer is doing an | TCP, the Connection ID is used to determine which peer is doing an | |||
active transport open to the neighbor and which peer is doing passive | active transport open to the neighbor and which peer is doing passive | |||
transport open, as per section 4 of [RFC6559] | transport open, as per Section 4 of [RFC6559]. | |||
When the router is using SCTP, the Connection ID IP address | When the router is using SCTP, the Connection ID IP address | |||
comparison need not be done since the SCTP protocol can handle call | comparison need not be done since SCTP can handle call collision. | |||
collision. | ||||
PIM Light lacks Hello messages, the PLI can be configured with the | Because PIM Light lacks Hello messages, the PLI can be configured | |||
Connection ID IPv4 or IPv6 addresses used to establish the SCTP or | with the Connection ID IPv4 or IPv6 addresses used to establish the | |||
TCP connection. For PIM Light using TCP PORT option each end of the | SCTP or TCP connection. For PIM Light using the TCP PORT option, | |||
PLI must be explicitly and correct configured as being active | each end of the PLI must be explicitly and correctly configured as | |||
transport open or passive transport open to ensure handle call | being either active transport open or passive transport open to | |||
collision is avoided. | ensure that call collision is avoided. | |||
3.6. PIM Variants not supported | 3.6. PIM Variants Not Supported | |||
The following PIM variants are not supported with PIM Light and not | The following PIM variants are not supported with PIM Light and not | |||
covered by this document: | covered by this document: | |||
1. Protocol Independent Multicast - Dense Mode (PIM-DM)[RFC3973] | * PIM - Dense Mode (PIM-DM) [RFC3973] | |||
2. Bidirectional Protocol Independent Multicast (BIDIR-PIM) | * Bidirectional PIM (BIDIR-PIM) [RFC5015] | |||
[RFC5015] | ||||
4. IANA Considerations | 4. IANA Considerations | |||
There are no new IANA considerations for this document. | This document has no IANA actions. | |||
5. Security Considerations | 5. Security Considerations | |||
Since PIM Light does not require PIM Hello messages and does not | Since PIM Light does not require PIM Hello messages and does not | |||
verify PIM neighbor adjacency for incoming Join/Prune messages, it is | verify PIM neighbor adjacency for incoming Join/Prune messages, for | |||
crucial for security reasons, that the implementation ensures only | security reasons, it is crucial that implementations ensure that only | |||
Join/Prune messages arriving at a configured PLI are processed. Any | Join/Prune messages arriving at a configured PLI are processed. Any | |||
Join/Prune messages received on an interface that is not configured | Join/Prune messages received on an interface that is not configured | |||
as a PLI MUST be discarded and not processed. Additionally, as a | as a PLI MUST be discarded and not processed. Additionally, as a | |||
secondary line of defense, route policies SHOULD be implemented to | secondary line of defense, route policies SHOULD be implemented to | |||
process only the Join/Prune messages associated with the desired | process only the Join/Prune messages associated with the desired | |||
(S,G) pairs, while all other (S,G) pairs MUST be discarded and not | (S,G) pairs, while all other (S,G) pairs MUST be discarded and not | |||
processed. | processed. | |||
Furthermore, because PIM Light can be used for signaling Source- | Furthermore, because PIM Light can be used for signaling Source- | |||
Specific and Sparse Mode Join/Prune messages, the security | Specific and Sparse Mode Join/Prune messages, the security | |||
considerations outlined in [RFC7761] and [RFC4607] SHOULD be | considerations outlined in [RFC7761] and [RFC4607] SHOULD be | |||
considered where appropriate. | considered where appropriate. | |||
In section 6.1.1 of [RFC7761], only forged join/prune message should | Per Section 6.1.1 of [RFC7761], only forged Join/Prune messages | |||
be considered as a potential attack vector, as PIM Light does not | should be considered as a potential attack vector, as PIM Light does | |||
process Hello or Assert messages. In addition, as detailed in | not process Hello or Assert messages. In addition, as detailed in | |||
Section 6.3, the authentication mechanisms described in [RFC5796] can | Section 6.3 of [RFC7761], the authentication mechanisms described in | |||
be applied to PIM Light via IPsec Encapsulating Security Payload | [RFC5796] can be applied to PIM Light via IPsec Encapsulating | |||
(ESP) or, optionally, the Authentication Header (AH). | Security Payload (ESP) or, optionally, the Authentication Header | |||
(AH). | ||||
6. Acknowledgments | 6. References | |||
Would like to thank Sandy <Zhang Zheng> and Tanmoy Kundu for their | 6.1. Normative References | |||
suggestions and contribution to this document. | ||||
7. References | [IANA-PIM-Attr-Types] | |||
IANA, "PIM Join Attribute Types", | ||||
<https://www.iana.org/assignments/pim-parameters>. | ||||
7.1. Normative References | [IANA-PIM-Mess-Types] | |||
IANA, "PIM Message Types", | ||||
<https://www.iana.org/assignments/pim-parameters>. | ||||
[iana_pim-parameters_join-attribute-types] | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
"", January 2022, <https://www.iana.org/assignments/pim- | Requirement Levels", BCP 14, RFC 2119, | |||
parameters/pim-parameters.xhtml#pim-parameters-2>. | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | ||||
[iana_pim-parameters_message-types] | [RFC4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for | |||
"", January 2022, <https://www.iana.org/assignments/pim- | IP", RFC 4607, DOI 10.17487/RFC4607, August 2006, | |||
parameters/pim-parameters.xhtml#message-types>. | <https://www.rfc-editor.org/info/rfc4607>. | |||
[RFC2119] "S. Brandner, "Key words for use in RFCs to Indicate | [RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano, | |||
Requirement Levels"", March 1997. | "Bidirectional Protocol Independent Multicast (BIDIR- | |||
PIM)", RFC 5015, DOI 10.17487/RFC5015, October 2007, | ||||
<https://www.rfc-editor.org/info/rfc5015>. | ||||
[RFC4607] "H. Holbrook, B. Cain "Source-Specific Multicast for IP"". | [RFC5384] Boers, A., Wijnands, I., and E. Rosen, "The Protocol | |||
Independent Multicast (PIM) Join Attribute Format", | ||||
RFC 5384, DOI 10.17487/RFC5384, November 2008, | ||||
<https://www.rfc-editor.org/info/rfc5384>. | ||||
[RFC5015] "M. Handley, I. Kouvelas, T. Speakman, L. Vicisano | [RFC5796] Atwood, W., Islam, S., and M. Siami, "Authentication and | |||
"Bidirectional Protocol Independent Multicast"". | Confidentiality in Protocol Independent Multicast Sparse | |||
Mode (PIM-SM) Link-Local Messages", RFC 5796, | ||||
DOI 10.17487/RFC5796, March 2010, | ||||
<https://www.rfc-editor.org/info/rfc5796>. | ||||
[RFC5384] "A. Boers, I. Wijnands, E. Rosen "PIM Join Attribute | [RFC6559] Farinacci, D., Wijnands, IJ., Venaas, S., and M. | |||
Format"", March 2016. | Napierala, "A Reliable Transport Mechanism for PIM", | |||
RFC 6559, DOI 10.17487/RFC6559, March 2012, | ||||
<https://www.rfc-editor.org/info/rfc6559>. | ||||
[RFC5796] "W. Atwood, S. Islam, M. Siami "Authentication and | [RFC7761] Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., | |||
Confidentiality in PIM-SM"". | Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent | |||
Multicast - Sparse Mode (PIM-SM): Protocol Specification | ||||
(Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, March | ||||
2016, <https://www.rfc-editor.org/info/rfc7761>. | ||||
[RFC6559] "D. Farinacci, I. Wijnands, S. Venaas, M. Napierala "A | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
reliable Transport Mechanism for PIM"". | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC7761] "B.Fenner, M.Handley, H. Holbrook, I. Kouvelas, R. Parekh, | [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., | |||
Z.Zhang "PIM Sparse Mode"", March 2016. | Przygienda, T., and S. Aldrin, "Multicast Using Bit Index | |||
Explicit Replication (BIER)", RFC 8279, | ||||
DOI 10.17487/RFC8279, November 2017, | ||||
<https://www.rfc-editor.org/info/rfc8279>. | ||||
[RFC8174] "B. Leiba, "ambiguity of Uppercase vs Lowercase in RFC | [RFC9260] Stewart, R., Tüxen, M., and K. Nielsen, "Stream Control | |||
2119 Key Words"", May 2017. | Transmission Protocol", RFC 9260, DOI 10.17487/RFC9260, | |||
June 2022, <https://www.rfc-editor.org/info/rfc9260>. | ||||
[RFC8279] "Wijnands, IJ., Rosen, E., Dolganow, A., Przygienda, T. | 6.2. Informative References | |||
and S. Aldrin, "Multicast using Bit Index Explicit | ||||
Replication"", October 2016. | ||||
[RFC9260] "R. Stewart, M. Tuxen, K. Nielsen, "Stream Control | [BIER-PIM] Bidgoli, H., Ed., Xu, F., Kotalwar, J., Wijnands, I., | |||
Transmission Protocol"", June 2022. | Mishra, M., and Z. Zhang, "PIM Signaling Through BIER | |||
Core", Work in Progress, Internet-Draft, draft-ietf-bier- | ||||
pim-signaling-12, 25 July 2021, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-bier- | ||||
pim-signaling-12>. | ||||
7.2. Informative References | [RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol | |||
Independent Multicast - Dense Mode (PIM-DM): Protocol | ||||
Specification (Revised)", RFC 3973, DOI 10.17487/RFC3973, | ||||
January 2005, <https://www.rfc-editor.org/info/rfc3973>. | ||||
[draft-ietf-bier-pim-signaling] | Acknowledgments | |||
"H.Bidgoli, F.XU, J. Kotalwar, I. Wijnands, M.Mishra, Z. | ||||
Zhang, "PIM Signaling Through BIER Core"", July 2021. | ||||
[RFC3973] "A. Adams, J. Nicholas, W. Siadak, "Protocol Independent | The authors would like to thank Zheng (Sandy) Zhang and Tanmoy Kundu | |||
Multicast - Dense Mode"". | for their suggestions and contributions to this document. | |||
Authors' Addresses | Authors' Addresses | |||
Hooman Bidgoli (editor) | Hooman Bidgoli (editor) | |||
Nokia | Nokia | |||
March Road | March Road | |||
Ottawa Ontario K2K 2T6 | Ottawa Ontario K2K 2T6 | |||
Canada | Canada | |||
Email: hooman.bidgoli@nokia.com | Email: hooman.bidgoli@nokia.com | |||
Stig Venaas | Stig Venaas | |||
Cisco System, Inc. | Cisco Systems, Inc. | |||
Tasman Drive | Tasman Drive | |||
San Jose, California 95134 | San Jose, CA 95134 | |||
United States of America | United States of America | |||
Email: stig@cisco.com | Email: stig@cisco.com | |||
Mankamana Mishra | Mankamana Mishra | |||
Cisco System | Cisco Systems, Inc. | |||
Tasman Drive | Tasman Drive | |||
San Jose, California 95134 | San Jose, CA 95134 | |||
United States of America | United States of America | |||
Email: mankamis@cisco.com | Email: mankamis@cisco.com | |||
Zhaohui Zhang | Zhaohui Zhang | |||
Juniper Networks | Juniper Networks | |||
Boston, | Boston, MA | |||
United States of America | United States of America | |||
Email: zzhang@juniper.com | Email: zzhang@juniper.com | |||
Mike McBride | Mike McBride | |||
Futurewei Technologies Inc. | Futurewei Technologies Inc. | |||
Santa Clara, | Santa Clara, CA | |||
United States of America | United States of America | |||
Email: michael.mcbride@futurewei.com | Email: michael.mcbride@futurewei.com | |||
End of changes. 88 change blocks. | ||||
257 lines changed or deleted | 273 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |