rfc9739v1.txt   rfc9739.txt 
skipping to change at line 115 skipping to change at line 115
3. PIM Light Interface 3. PIM Light Interface
Section 4.3.1 of [RFC7761] describes PIM neighbor discovery via Hello Section 4.3.1 of [RFC7761] describes PIM neighbor discovery via Hello
messages. Section 4.5 of [RFC7761] notes that if a router receives a messages. Section 4.5 of [RFC7761] notes that if a router receives a
Join/Prune message from a particular IP source address and it has not Join/Prune message from a particular IP source address and it has not
seen a PIM Hello message from that source address, then the Join/ seen a PIM Hello message from that source address, then the Join/
Prune message SHOULD be discarded without further processing. Prune message SHOULD be discarded without further processing.
In certain scenarios, it is desirable to establish multicast states In certain scenarios, it is desirable to establish multicast states
between two adjacent Layer 3 routers without forming a PIM between two routers without forming a PIM neighborship. This can be
neighborship. This can be necessary for various reasons, such as necessary for various reasons, such as signaling multicast states
signaling multicast states upstream between multiple PIM domains over upstream between multiple PIM domains over a network that is not
a network that is not optimized for PIM or that does not necessitate optimized for PIM or that does not necessitate PIM neighbor
PIM neighbor establishment. For example, in a Bit Index Explicit establishment. An example is a Bit Index Explicit Replication (BIER)
Replication (BIER) [RFC8279] network connecting multiple PIM domains, [RFC8279] network connecting multiple PIM domains, where PIM Join/
where PIM Join/Prune messages are tunneled via BIER as specified in Prune messages are tunneled via BIER as specified in [BIER-PIM].
[BIER-PIM].
A PLI accepts Join/Prune messages from an unknown PIM router without A PLI accepts Join/Prune messages from an unknown PIM router without
requiring a PIM Hello message from the router. The absence of Hello requiring a PIM Hello message from the router. The absence of Hello
messages on a PLI means there is no mechanism to discover neighboring messages on a PLI means there is no mechanism to discover neighboring
PIM routers or their capabilities or to execute basic algorithms such PIM routers or their capabilities or to execute basic algorithms such
as Designated Router (DR) election [RFC7761]. Consequently, the PIM as Designated Router (DR) election [RFC7761]. Consequently, the PIM
Light router does not create any general-purpose state for Light router does not create any general-purpose state for
neighboring PIM routers and only processes Join/Prune messages from neighboring PIM routers and only processes Join/Prune messages from
downstream routers in its multicast routing table. Processing these downstream routers in its multicast routing table. Processing these
Join/Prune messages will introduce multicast states in a PIM Light Join/Prune messages will 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 on which PLIs are deployed MUST ensure that there is no networks on which PLIs are deployed MUST ensure that there is no
multicast packet duplication, such as multiple upstream routers multicast packet duplication, such as multiple upstream routers
sending the same multicast stream to a single downstream router. For sending the same multicast stream to a single downstream router. For
example, an implementation should ensure that DR election is done on example, an implementation should ensure that DR election is done on
upstream redundant PIM routers that are at the edge of the PIM Light upstream redundant PIM routers that are at the edge of the PIM Light
domain to ensure a single DR to forward the PIM Join message from domain to ensure that a single DR forwards the PIM Join message from
reviver to the source. the receiver to the source.
3.1. Message Types Supported by PIM Light 3.1. Message Types Supported by PIM Light
The "PIM Message Types" registry [IANA-PIM-Mess-Types] lists the The "PIM Message Types" registry [IANA-PIM-Mess-Types] lists the
message types supported by PIM. PIM Light only supports the message types supported by PIM. PIM Light only supports the
following message types in that registry: following message types in that registry:
* type 1 (Register) * type 1 (Register)
* type 2 (Register Stop) * type 2 (Register Stop)
* type 3 (Join/Prune) (Note that this type is from the ALL-PIM- * type 3 (Join/Prune)
ROUTERS message types listed in [RFC7761].)
* type 8 (Candidate RP Advertisement) * type 8 (Candidate RP Advertisement)
* type 13 (PIM Packed Null-Register) * type 13.0 (PIM Packed Null-Register)
* type 13.1 (PIM Packed Register-Stop) * type 13.1 (PIM Packed Register-Stop)
* Any future PIM message types that use unicast destination IP * Any future PIM message types where the destination is a unicast IP
address
No other message types are supported by PIM Light; other message No other message types are supported by PIM Light; other message
types MUST NOT be processed if received on a PLI. types MUST NOT be processed if received on a PLI.
3.2. Considerations for the Absence of Hello Message 3.2. Considerations for the Absence of Hello Message
Because Hello messages are not processed in a PIM Light domain, the Because Hello messages are not processed in a PIM Light domain, the
considerations in the subsections below should be taken into account. 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 attribute 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 send Join Attributes and SHOULD NOT process a Join
Join message containing it. message containing a Join Attribute.
There are two cases in which a PLI can send and process a join There are two cases in which a PLI can send and process a Join
attribute: Attribute:
* The join attribute must be configured with an appropriate join * The Join Attribute must be configured with an appropriate Join
attribute type that the PLI is capable of processing as per the Attribute type that the PLI is capable of processing as per the
"PIM Join Attribute Types" registry [IANA-PIM-Attr-Types]. "PIM Join Attribute Types" registry [IANA-PIM-Attr-Types].
* Internet-Drafts and RFCs may dictate that certain join attributes * Internet-Drafts and RFCs may dictate that certain join attributes
are allowed to be used without explicit configuration of the PLI are allowed to be used without explicit configuration of the PLI
in certain scenarios. The details are left to those Internet- in certain scenarios. The details are left to those Internet-
Drafts and 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.
For instance, in a BIER domain connecting two PIM domains as in the
figure below, a PLI can be used between BIER edge routers solely for
multicast state communication and transmit only PIM Join/Prune
messages. If there are redundant PIM routers at the edge of the BIER
domain, they MUST establish PIM adjacency as per [RFC7761] to prevent
multicast stream duplication and to ensure DR election at the edge of
the BIER domain. For example, DR election could be between router D
and F in the figure below. When the Join or Prune message arrives
from a PIM domain to the downstream BIER edge router, it can be
forwarded over the BIER tunnel to the upstream BIER edge router only
via the DR.
Bier edge router Bier edge router 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
be used between BIER edge routers solely for multicast state
communication and transmit only PIM Join/Prune messages. If there
are redundant PIM routers at the edge of the BIER domain, to prevent
multicast stream duplication, they MUST establish PIM adjacency as
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
the figure above. When the Join or Prune message arrives from a PIM
domain to the downstream BIER edge router, it can be forwarded over
the BIER tunnel to the upstream BIER edge router only via the DR.
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, which can potentially cause valid forwarding state for a packet, which can potentially cause
packet duplication. PIM Assert is used to select a single packet duplication. PIM Assert is used to select a single
transmitter when such duplication is detected. According to transmitter when such duplication is detected. According to
Section 4.6 of [RFC7761], PIM Assert should only be accepted from a Section 4.6 of [RFC7761], PIM Assert should only be accepted from a
known PIM neighbor. known PIM neighbor.
skipping to change at line 251 skipping to change at line 251
downstream router can use the next EBBR based on the IP selection downstream router can use the next EBBR based on the IP selection
algorithm, which is beyond the scope of this document. algorithm, which is 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 PLIs on interfaces. If a router needs to be a mechanism to enable PLIs on interfaces. If a router
supports PIM Light, arriving Join/Prune messages MUST be processed supports PIM Light, arriving Join/Prune messages MUST be processed
only when a PLI is enabled on an interface; otherwise, they MUST be only when a PLI is enabled on an interface; otherwise, they MUST be
dropped. A PLI may be enabled automatically or via an underlying dropped. In some cases, a PLI may be enabled automatically via an
mechanism on some logical interfaces (for example, the logical underlying mechanism on a logical interface. For example, in a BIER
interface connecting two or more BIER edge routers in a BIER domain, a logical interface can connect two or more BIER edge routers
subdomain [BIER-PIM]). as per [BIER-PIM]).
3.4. Failures in PLR Domain 3.4. Failures in PLR Domain
Because Hello messages are not processed on the PLI, PLI failures may Because Hello messages are not processed on the PLI, PLI failures may
not be discovered in a PIM Light domain, and multicast routes will not be discovered in a PIM Light domain, and multicast routes will
not be pruned toward the source on the PIM Light domain. This not be pruned toward the source on the PIM Light domain. This
results in the upstream routers continuously sending multicast results in the upstream routers continuously sending 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 on which PIM Light is configured 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 upstream BFD to the far-end PLI goes down and the PIM Light router is upstream
and has an OIF for a multicast route <S,G>, PIM must remove that PLI and has an OIF for a multicast route (S,G), PIM must remove that PLI
from its OIF list. from its OIF list.
In another example, the PLI is configured automatically between the
BIER Edge Routers (BERs) as in the figure below. When the Downstream
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) advertised toward the source on the PIM domain to
stop the transmission of the multicast stream.
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, the PLI is configured automatically between the
BIER Edge Routers (BERs). When the Downstream 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> advertised toward the source on the PIM domain to stop the
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 called PIM Over
of Join/Prune messages, using either TCP or SCTP as the transport Reliable Transport (PORT) for PIM transmission of Join/Prune
protocol. For TCP, PIM Over Reliable Transport (PORT) uses port messages, using either TCP or SCTP as the transport protocol. Both
8471, which was assigned by IANA. SCTP is explained in [RFC9260] and TCP and SCTP use destination port number 8471. SCTP is explained in
is used as a second option for PORT. [RFC6559] mentions that when a [RFC9260] and is used as a second option for PORT. [RFC6559]
router is configured to use PIM over TCP on a given interface, it mentions that when a router is configured to use PIM over TCP on a
MUST include the PIM-over-TCP-Capable Hello Option in its Hello given interface, it MUST include the PIM-over-TCP-Capable Hello
messages for that interface. The same is true for SCTP; the router Option in its Hello messages for that interface. The same is true
must include the PIM-over-SCTP-Capable Hello Option in its Hello for SCTP; the router MUST include the PIM-over-SCTP-Capable Hello
message on that interface. Option in its Hello messages 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 to determine 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 is not used to determine the active and
When the router is using SCTP, the Connection ID IP address passive peer since SCTP can handle call collision.
comparison need not be done since SCTP can handle call collision.
Because PIM Light lacks Hello messages, the PLI can be configured Because PIM Light lacks Hello messages, the PLI can be configured
with the Connection ID IPv4 or IPv6 addresses used to establish the with the Connection ID (i.e., the IPv4 or IPv6 address used to
SCTP or TCP connection. For PIM Light using the TCP PORT option, establish the SCTP or TCP connection). For PIM Light using the TCP
each end of the PLI must be explicitly and correctly configured as PORT option, each end of the PLI must be explicitly and correctly
being either active transport open or passive transport open to configured as being either active transport open or passive transport
ensure that call collision is avoided. open to 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:
* PIM - Dense Mode (PIM-DM) [RFC3973] * PIM - Dense Mode (PIM-DM) [RFC3973]
* Bidirectional PIM (BIDIR-PIM) [RFC5015] * Bidirectional PIM (BIDIR-PIM) [RFC5015]
skipping to change at line 339 skipping to change at line 338
verify PIM neighbor adjacency for incoming Join/Prune messages, for verify PIM neighbor adjacency for incoming Join/Prune messages, for
security reasons, it is crucial that implementations ensure that 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 PIM-SM Join/
Specific and Sparse Mode Join/Prune messages, the security Prune messages, the security considerations outlined in [RFC7761] and
considerations outlined in [RFC7761] and [RFC4607] SHOULD be [RFC4607] SHOULD be considered where appropriate.
considered where appropriate.
Per Section 6.1.1 of [RFC7761], only forged Join/Prune messages Per Section 6.1.1 of [RFC7761], only forged Join/Prune messages
should be considered as a potential attack vector, as PIM Light does should be considered as a potential attack vector, as PIM Light does
not process Hello or Assert messages. In addition, as detailed in not process Hello or Assert messages. In addition, as detailed in
Section 6.3 of [RFC7761], the authentication mechanisms described in Section 6.3 of [RFC7761], the authentication mechanisms described in
[RFC5796] can be applied to PIM Light via IPsec Encapsulating [RFC5796] can be applied to PIM Light via IPsec Encapsulating
Security Payload (ESP) or, optionally, the Authentication Header Security Payload (ESP) or, optionally, the Authentication Header
(AH). (AH).
6. References 6. References
 End of changes. 20 change blocks. 
71 lines changed or deleted 69 lines changed or added

This html diff was produced by rfcdiff 1.48.