diff options
Diffstat (limited to 'doc/rfc/rfc8364.txt')
-rw-r--r-- | doc/rfc/rfc8364.txt | 1011 |
1 files changed, 1011 insertions, 0 deletions
diff --git a/doc/rfc/rfc8364.txt b/doc/rfc/rfc8364.txt new file mode 100644 index 0000000..4a0f31c --- /dev/null +++ b/doc/rfc/rfc8364.txt @@ -0,0 +1,1011 @@ + + + + + + +Internet Engineering Task Force (IETF) IJ. Wijnands +Request for Comments: 8364 S. Venaas +Category: Experimental Cisco Systems, Inc. +ISSN: 2070-1721 M. Brig + Aegis BMD Program Office + A. Jonasson + FMV + March 2018 + + + PIM Flooding Mechanism (PFM) and Source Discovery (SD) + +Abstract + + Protocol Independent Multicast - Sparse Mode (PIM-SM) uses a + Rendezvous Point (RP) and shared trees to forward multicast packets + from new sources. Once Last-Hop Routers (LHRs) receive packets from + a new source, they may join the Shortest Path Tree (SPT) for the + source for optimal forwarding. This document defines a new mechanism + that provides a way to support PIM-SM without the need for PIM + registers, RPs, or shared trees. Multicast source information is + flooded throughout the multicast domain using a new generic PIM + Flooding Mechanism (PFM). This allows LHRs to learn about new + sources without receiving initial data packets. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for examination, experimental implementation, and + evaluation. + + This document defines an Experimental Protocol for the Internet + community. This document is a product of the Internet Engineering + Task Force (IETF). It represents the consensus of the IETF + community. It has received public review and has been approved for + publication by the Internet Engineering Steering Group (IESG). Not + all documents approved by the IESG are candidates for any level of + Internet Standard; see Section 2 of RFC 7841. + + 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/rfc8364. + + + + + + + + + +Wijnands, et al. Experimental [Page 1] + +RFC 8364 PFM and SD March 2018 + + +Copyright Notice + + Copyright (c) 2018 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 + 1.1. Conventions Used in This Document . . . . . . . . . . . . 4 + 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 + 2. Testing and Deployment Experiences . . . . . . . . . . . . . 5 + 3. A Generic PIM Flooding Mechanism . . . . . . . . . . . . . . 5 + 3.1. PFM Message Format . . . . . . . . . . . . . . . . . . . 6 + 3.2. Administrative Boundaries . . . . . . . . . . . . . . . . 7 + 3.3. Originating PFM Messages . . . . . . . . . . . . . . . . 7 + 3.4. Processing PFM Messages . . . . . . . . . . . . . . . . . 9 + 3.4.1. Initial Checks . . . . . . . . . . . . . . . . . . . 9 + 3.4.2. Processing and Forwarding of PFM Messages . . . . . . 10 + 4. Distributing SG Mappings . . . . . . . . . . . . . . . . . . 11 + 4.1. Group Source Holdtime TLV . . . . . . . . . . . . . . . . 11 + 4.2. Originating Group Source Holdtime TLVs . . . . . . . . . 12 + 4.3. Processing GSH TLVs . . . . . . . . . . . . . . . . . . . 13 + 4.4. The First Packets and Bursty Sources . . . . . . . . . . 13 + 4.5. Resiliency to Network Partitioning . . . . . . . . . . . 14 + 5. Configurable Parameters . . . . . . . . . . . . . . . . . . . 15 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 15 + 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 + 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 + 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 + 8.2. Informative References . . . . . . . . . . . . . . . . . 17 + Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 18 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 + + + + + + + + + +Wijnands, et al. Experimental [Page 2] + +RFC 8364 PFM and SD March 2018 + + +1. Introduction + + Protocol Independent Multicast - Sparse Mode (PIM-SM) [RFC7761] uses + a Rendezvous Point (RP) and shared trees to forward multicast packets + to Last-Hop Routers (LHRs). After the first packet is received by an + LHR, the source of the multicast stream is learned and the Shortest + Path Tree (SPT) can be joined. This document defines a new mechanism + that provides a way to support PIM-SM without the need for PIM + registers, RPs, or shared trees. Multicast source information is + flooded throughout the multicast domain using a new generic PIM + flooding mechanism. By removing the need for RPs and shared trees, + the PIM-SM procedures are simplified, thus improving router + operations and management, and making the protocol more robust. + Also, the data packets are only sent on the SPTs, providing optimal + forwarding. + + This mechanism has some similarities to Protocol Independent + Multicast - Dense Mode (PIM-DM) with its State-Refresh signaling + [RFC3973], except that there is no initial flooding of data packets + for new sources. It provides the traffic efficiency of PIM-SM, while + being as easy to deploy as PIM-DM. The downside is that it cannot + provide forwarding of initial packets from a new source, see + Section 4.4. PIM-DM is very different from PIM-SM; it's not as + mature, it is categorized as Experimental not an Internet Standard, + and there are only a few implementations of it. The solution in this + document consists of a lightweight source discovery mechanism on top + of the Source-Specific Multicast (SSM) [RFC4607] parts of PIM-SM. It + is feasible to implement only a subset of PIM-SM to provide SSM + support and, in addition, implement the mechanism in this document to + offer a source discovery mechanism for applications that do not + provide their own source discovery. + + This document defines a generic flooding mechanism for distributing + information throughout a PIM domain. While the forwarding rules are + largely similar to the Bootstrap Router (BSR) mechanism [RFC5059], + any router can originate information; this allows for flooding of any + kind of information. Each message contains one or more pieces of + information encoded as TLVs. This document defines one TLV used for + distributing information about active multicast sources. Other + documents may define additional TLVs. + + Note that this document is an Experimental RFC. While the flooding + mechanism is largely similar to BSR, there are some concerns about + scale as there can be multiple routers distributing information, and + potentially a larger amount of data that needs to be processed and + stored. Distributing knowledge of active sources in this way is new; + there are some concerns, mainly regarding potentially large amounts + of source states that need to be distributed. While there has been + + + +Wijnands, et al. Experimental [Page 3] + +RFC 8364 PFM and SD March 2018 + + + some testing in the field, we need to learn more about the forwarding + efficiency, both the amount of processing per router, propagation + delay, and the amount of state that can be distributed. In + particular, how many active sources one can support without consuming + too many resources. There are also parameters, see Section 5, that + can be tuned regarding how frequently information is distributed. It + is not clear what parameters are useful for different types of + networks. + +1.1. Conventions Used in This Document + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + +1.2. Terminology + + RP: Rendezvous Point + + BSR: Bootstrap Router + + RPF: Reverse Path Forwarding + + SPT: Shortest Path Tree + + FHR: First-Hop Router, directly connected to the source + + LHR: Last-Hop Router, directly connected to the receiver + + PFM: PIM Flooding Mechanism + + PFM-SD: PFM Source Discovery + + SG Mapping: Multicast source group (SG) mapping + + + + + + + + + + + + + + + +Wijnands, et al. Experimental [Page 4] + +RFC 8364 PFM and SD March 2018 + + +2. Testing and Deployment Experiences + + A prototype of this specification has been implemented, and there has + been some limited testing in the field. The prototype was tested in + a network with low-bandwidth radio links. The network has frequent + topology changes, including frequent link or router failures. + Previously existing mechanisms were tested (for example, PIM-SM and + PIM-DM). + + With PIM-SM, the existing RP election mechanisms were found to be too + slow. With PIM-DM, issues were observed with new multicast sources + starving low-bandwidth links even when there were no receivers; in + some cases, so much so that there was no bandwidth left for prune + messages. + + For the PFM-SD prototype tests, all routers were configured to send + PFM-SD for the directly connected source and to cache received + announcements. Applications such as SIP with multicast subscriber + discovery, multicast voice conferencing, position tracking, and NTP + were successfully tested. The tests went quite well. Packets were + rerouted as needed; there was no unnecessary forwarding of packets. + Ease of configuration was seen as a plus. + +3. A Generic PIM Flooding Mechanism + + The Bootstrap Router (BSR) mechanism [RFC5059] is a commonly used + mechanism for distributing dynamic Group-to-RP mappings in PIM. It + is responsible for flooding information about such mappings + throughout a PIM domain so that all routers in the domain can have + the same information. BSR, as defined, is only able to distribute + Group-to-RP mappings. This document defines a more generic mechanism + that can flood any kind of information. Administrative boundaries, + see Section 3.2, may be configured to limit to which parts of a + network the information is flooded. + + The forwarding rules are identical to BSR, except that one can + control whether routers should forward unsupported data types. For + some types of information, it is quite useful that it can be + distributed without all routers having to support the particular + type, while there may also be types where it is necessary for every + single router to support it. The mechanism includes an originator + address that is used for RPF checking to restrict the flooding and + prevent loops, just like BSR. Like BSR, messages are forwarded hop- + by-hop; the messages are link-local, and each router will process and + resend the messages. Note that there is no equivalent to the BSR + election mechanism; there can be multiple originators. This + mechanism is named the PIM Flooding Mechanism (PFM). + + + + +Wijnands, et al. Experimental [Page 5] + +RFC 8364 PFM and SD March 2018 + + +3.1. PFM Message Format + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |PIM Ver| Type |N| Reserved | Checksum | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Originator Address (Encoded-Unicast format) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |T| Type 1 | Length 1 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Value 1 | + | . | + | . | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | . | + | . | + |T| Type n | Length n | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Value n | + | . | + | . | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + PIM Version, Reserved, and Checksum: As specified in [RFC7761]. + + Type: PIM Message Type. Value 12 for a PFM message. + + [N]o-Forward bit: When set, this bit means that the PFM message is + not to be forwarded. This bit is defined to prevent Bootstrap + message forwarding in [RFC5059]. + + Originator Address: The address of the router that originated the + message. This can be any address assigned to the originating + router, but it MUST be routable in the domain to allow successful + forwarding. The format for this address is given in the Encoded- + Unicast address in [RFC7761]. + + [T]ransitive bit: Each TLV in the message includes a bit called the + "Transitive" bit that controls whether the TLV is forwarded by + routers that do not support the given type. See Section 3.4.2. + + Type 1..n: A message contains one or more TLVs, in this case n TLVs. + The Type specifies what kind of information is in the Value. The + Type range is from 0 to 32767 (15 bits). + + + + + + +Wijnands, et al. Experimental [Page 6] + +RFC 8364 PFM and SD March 2018 + + + Length 1..n: The length of the Value field in octets. + + Value 1..n: The value associated with the type and of the specified + length. + +3.2. Administrative Boundaries + + PFM messages are generally forwarded hop-by-hop to all PIM routers. + However, similar to BSR, one may configure administrative boundaries + to limit the information to certain domains or parts of the network. + Implementations MUST have a way of defining a set of interfaces on a + router as administrative boundaries for all PFM messages or, + optionally, for certain TLVs, allowing for different boundaries for + different TLVs. Usually, one wants boundaries to be bidirectional, + but an implementation MAY also provide unidirectional boundaries. + When forwarding a message, a router MUST NOT send it out on an + interface that is an outgoing boundary, including a bidirectional + boundary, for all PFM messages. If an interface is an outgoing + boundary for certain TLVs, the message MUST NOT be sent out on the + interface if it is a boundary for all the TLVs in the message. + Otherwise, the router MUST remove all the boundary TLVs from the + message and send the message with the remaining TLVs. Also, when + receiving a PFM message on an interface, the message MUST be + discarded if the interface is an incoming boundary, including a + bidirectional boundary, for all PFM messages. If the interface is an + incoming boundary for certain TLVs, the router MUST ignore all + boundary TLVs. If all the TLVs in the message are boundary TLVs, + then the message is effectively ignored. Note that when forwarding + an incoming message, the boundary is applied before forwarding. If + the message was discarded or all the TLVs were ignored, then no + message is forwarded. When a message is forwarded, it MUST NOT + contain any TLVs for which the incoming interface is an incoming or + bidirectional boundary. + +3.3. Originating PFM Messages + + A router originates a PFM message when it needs to distribute + information using a PFM message to other routers in the network. + When a message is originated depends on what information is + distributed. For instance, this document defines a TLV to distribute + information about active sources. When a router has a new active + source, a PFM message should be sent as soon as possible. Hence, a + PFM message should be sent every time there is a new active source. + However, the TLV also contains a holdtime and PFM messages need to be + sent periodically. Generally speaking, a PFM message would typically + be sent when there is a local state change, causing information to be + distributed with the PFM to change. Also, some information may need + to be sent periodically. These messages are called "triggered" and + + + +Wijnands, et al. Experimental [Page 7] + +RFC 8364 PFM and SD March 2018 + + + "periodic" messages, respectively. Each TLV definition will need to + define when a triggered PFM message needs to be originated, whether + or not to send periodic messages, and how frequently to send them. + + A router MUST NOT originate more than Max_PFM_Message_Rate messages + per minute. This document does not mandate how this should be + implemented; some possible ways could be having a minimal time + between each message, counting the number of messages originated and + resetting the count every minute, or using a leaky bucket algorithm. + One benefit of using a leaky bucket algorithm is that it can handle + bursts better. The default value of Max_PFM_Message_Rate is 6. The + value MUST be configurable. Depending on the network, one may want + to use a larger value of Max_PFM_Message_Rate to favor propagation of + new information, but with a large number of routers and many updates, + the total number of messages might become too large and require too + much processing. + + There MUST be a minimum of Min_PFM_Message_Gap milliseconds between + each originated message. The default value of Min_PFM_Message_Gap is + 1000 (1 second). The value MUST be configurable. + + Unless otherwise specified by the TLV definitions, there is no + relationship between different TLVs, and an implementation can choose + whether to combine TLVs in one message or across separate messages. + It is RECOMMENDED to combine multiple TLVs in one message to reduce + the number of messages, but it is also RECOMMENDED that the message + be small enough to avoid fragmentation at the IP layer. When a + triggered PFM message needs to be sent due to a state change, a + router MAY send a message containing only the information that + changed. If there are many changes occurring at about the same time, + it might be possible to combine multiple changes in one message. In + the case where periodic messages are also needed, an implementation + MAY include periodic PFM information in a triggered PFM. For + example, if some information needs to be sent every 60 seconds and a + triggered PFM message is about to be sent 20 seconds before the next + periodic PFM message was scheduled, the triggered PFM message might + include the periodic information and the next periodic PFM message + can then be scheduled 60 seconds after that rather than 20 seconds + later. + + When a router originates a PFM message, it puts one of its own + addresses in the originator field. An implementation MUST allow an + administrator to configure which address is used. For a message to + be received by all routers in a domain, all the routers need to have + a route for this address due to the RPF-based forwarding. Hence, an + administrator needs to be careful about which address to choose. + When this is not configured, an implementation MUST NOT use a link- + + + + +Wijnands, et al. Experimental [Page 8] + +RFC 8364 PFM and SD March 2018 + + + local address. It is RECOMMENDED to use an address of a virtual + interface such that the originator can remain unchanged and routable + independent of which physical interfaces or links may go down. + + The No-Forward bit MUST NOT be set, except for the case when a router + receives a PIM Hello from a new neighbor or a PIM Hello with a new + Generation Identifier (GenID), defined in [RFC7761], is received from + an existing neighbor. In that case, an implementation MAY send PFM + messages containing relevant information so that the neighbor can + quickly get the correct state. The definition of the different PFM + message TLVs needs to specify what, if anything, needs to be sent in + this case. If such a PFM message is sent, the No-Forward bit MUST be + set, and the message must be sent within 60 seconds after the + neighbor state change. The processing rules for PFM messages will + ensure that any other neighbors on the same link ignore the message. + This behavior (and the choice of 60 seconds) is similar to what is + defined for the No-Forward bit in [RFC5059]. + +3.4. Processing PFM Messages + + A router that receives a PFM message MUST perform the initial checks + specified here. If the checks fail, the message MUST be dropped. An + error MAY be logged; otherwise, the message MUST be dropped silently. + If the checks pass, the contents are processed according to the + processing rules of the included TLVs. + +3.4.1. Initial Checks + + In order to do further processing, a message MUST meet the following + requirements. The message MUST be from a directly connected PIM + neighbor and the destination address MUST be ALL-PIM-ROUTERS. Also, + the interface MUST NOT be an incoming, nor a bidirectional, + administrative boundary for PFM messages, see Section 3.2. If the + No-Forward bit is not set, the message MUST be from the RPF neighbor + of the originator address. If the No-Forward bit is set, this + system, the router doing these checks, MUST have enabled the PIM + protocol within the last 60 seconds. See Section 3.3 for details. + In pseudocode, the algorithm is as follows: + + + + + + + + + + + + + +Wijnands, et al. Experimental [Page 9] + +RFC 8364 PFM and SD March 2018 + + + if ((DirectlyConnected(PFM.src_ip_address) == FALSE) OR + (PFM.src_ip_address is not a PIM neighbor) OR + (PFM.dst_ip_address != ALL-PIM-ROUTERS) OR + (Incoming interface is admin boundary for PFM)) { + drop the message silently, optionally log error. + } + if (PFM.no_forward_bit == 0) { + if (PFM.src_ip_address != + RPF_neighbor(PFM.originator_ip_address)) { + drop the message silently, optionally log error. + } + } else if (more than 60 seconds elapsed since PIM enabled)) { + drop the message silently, optionally log error. + } + + Note that "src_ip_address" is the source address in the IP header of + the PFM message. "Originator" is the originator field inside the PFM + message and is the router that originated the message. When the + message is forwarded hop-by-hop, the originator address never + changes, while the source address will be an address belonging to the + router that last forwarded the message. + +3.4.2. Processing and Forwarding of PFM Messages + + When the message is received, the initial checks above must be + performed. If it passes the checks, then for each included TLV, + perform processing according to the specification for that TLV. + + After processing, the message is forwarded. Some TLVs may be omitted + or modified in the forwarded message. This depends on administrative + boundaries (see Section 3.2), the type specification, and the setting + of the Transitive bit for the TLV. If a router supports the type, + then the TLV is forwarded with no changes unless otherwise specified + by the type specification. A router not supporting the given type + MUST include the TLV in the forwarded message if and only if the + Transitive bit is set. Whether or not a router supports the type, + the value of the Transitive bit MUST be preserved if the TLV is + included in the forwarded message. The message is forwarded out of + all interfaces with PIM neighbors (including the interface it was + received on). As specified in Section 3.2, if an interface is an + outgoing boundary for any TLVs, the message MUST NOT be sent out on + the interface if it is an outgoing boundary for all the TLVs in the + message. Otherwise, the router MUST remove any outgoing boundary + TLVs of the interface from the message and send the message out that + interface with the remaining TLVs. + + + + + + +Wijnands, et al. Experimental [Page 10] + +RFC 8364 PFM and SD March 2018 + + +4. Distributing SG Mappings + + The generic PFM defined in the previous section can be used for + distributing SG mappings about active multicast sources throughout a + PIM domain. A Group Source Holdtime (GSH) TLV is defined for this + purpose. + +4.1. Group Source Holdtime TLV + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |1| Type = 1 | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Group Address (Encoded-Group format) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Src Count | Src Holdtime | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Src Address 1 (Encoded-Unicast format) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Src Address 2 (Encoded-Unicast format) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | . | + | . | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Src Address m (Encoded-Unicast format) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 1: The Transitive bit is set to 1. This means that this type will + be forwarded even if a router does not support it. See + Section 3.4.2. + + Type: This TLV has type 1. + + Length: The length of the value in octets. + + Group Address: The group that sources are to be announced for. The + format for this address is given in the Encoded-Group format in + [RFC7761]. + + Src Count: The number of source addresses that are included. + + Src Holdtime: The holdtime (in seconds) for the included source(s). + + Src Address: The source address for the corresponding group. The + format for these addresses is given in the Encoded-Unicast address + in [RFC7761]. + + + + +Wijnands, et al. Experimental [Page 11] + +RFC 8364 PFM and SD March 2018 + + +4.2. Originating Group Source Holdtime TLVs + + A PFM message MAY contain one or more Group Source Holdtime (GSH) + TLVs. This is used to flood information about active multicast + sources. Each FHR that is directly connected to an active multicast + source originates PFM messages containing GSH TLVs. How a multicast + router discovers the source of the multicast packet, and when it + considers itself the FHR, follows the same procedures as the + registering process described in [RFC7761]. When an FHR has decided + that a register needs to be sent per [RFC7761], the SG is not + registered via the PIM-SM register procedures, but the SG mapping is + included in a GSH TLV in a PFM message. Note that only the SG + mapping is distributed in the message: not the entire packet as would + have been done with a PIM register. + + The PFM messages containing the GSH TLV are sent periodically for as + long as the multicast source is active, similar to how PIM registers + are sent periodically. This means that as long as the source is + active, it is included in a PFM message originated every + Group_Source_Holdtime_Period seconds, within the general PFM timing + requirements in Section 3.3. The default value of + Group_Source_Holdtime_Period is 60. The value MUST be configurable. + The holdtime for the source MUST be set to either zero or + Group_Source_Holdtime_Holdtime. The value of the + Group_Source_Holdtime_Holdtime parameter MUST be larger than + Group_Source_Holdtime_Period. It is RECOMMENDED to be 3.5 times the + Group_Source_Holdtime_Period. The default value is 210 (seconds). + The value MUST be configurable. A source MAY be announced with a + holdtime of zero to indicate that the source is no longer active. + + If an implementation supports originating GSH TLVs with different + holdtimes for different sources, it can (if needed) send multiple + TLVs with the same group address. Due to the format, all the sources + in the same TLV have the same holdtime. + + When a new source is detected, an implementation MAY send a PFM + message containing just that particular source. However, it MAY also + include information about other sources that were just detected, + sources that are scheduled for periodic announcement later, or other + types of information. See Section 3.3 for details. Note that when a + new source is detected, one should trigger the sending of a PFM + message as soon as possible; whereas if a source becomes inactive, + there is no reason to trigger a message. There is no urgency in + removing state for inactive sources. Note that the message timing + requirements in Section 3.3 apply. This means that one cannot always + send a triggered message immediately when a new source is detected. + In order to meet the timing requirements, the sending of the message + may have to be delayed for a small amount of time. + + + +Wijnands, et al. Experimental [Page 12] + +RFC 8364 PFM and SD March 2018 + + + When a new PIM neighbor is detected or an existing neighbor changes + GenID, an implementation MAY send a triggered PFM message containing + GSH TLVs for any SG mappings it has learned by receiving PFM GSH TLVs + as well as any active directly connected sources. See Section 3.3 + for further details. + +4.3. Processing GSH TLVs + + A router that receives a PFM message containing GSH TLVs MUST parse + the GSH TLVs and store each of them as SG mappings with an Expiry + Timer started with the advertised holdtime, that is, unless the + implementation specifically does not support GSH TLVs, the router is + configured to ignore GSH TLVs in general, or it is configured to + ignore GSH TLVs for certain sources or groups. In particular, an + administrator might configure a router not to process GSH TLVs if the + router is known never to have any directly connected receivers. + + For each group that has directly connected receivers, this router + SHOULD send PIM (S,G) joins for all the SG mappings advertised in the + message for the group. Generally, joins are sent, but there could + be, for instance, an administrative policy limiting which sources and + groups to join. The SG mappings are kept alive for as long as the + Expiry Timer for the source is running. Once the Expiry Timer + expires, a PIM router MAY send a PIM (S,G) prune to remove itself + from the tree. However, when this happens, there should be no more + packets sent by the source, so it may be desirable to allow the state + to time out rather than sending a prune. + + Note that a holdtime of zero has a special meaning. It is to be + treated as if the source just expired, and then the state should be + removed. Source information MUST NOT be removed due to the source + being omitted in a message. For instance, if there are a large + number of sources for a group, there may be multiple PFM messages, + each message containing a different list of sources for the group. + +4.4. The First Packets and Bursty Sources + + The PIM register procedure is designed to deliver multicast packets + to the RP in the absence of an SPT from the RP to the source. The + register packets received on the RP are decapsulated and forwarded + down the shared tree to the LHRs. As soon as an SPT is built, + multicast packets would flow natively over the SPT to the RP or LHR + and the register process would stop. The PIM register process + ensures packet delivery until an SPT is in place reaching the FHR. + If the packets were not unicast encapsulated to the RP, they would be + dropped by the FHR until the SPT is set up. This functionality is + important for applications where the initial packet(s) must be + received for the application to work correctly. Another reason would + + + +Wijnands, et al. Experimental [Page 13] + +RFC 8364 PFM and SD March 2018 + + + be for bursty sources. If the application sends out a multicast + packet every 4 minutes (or longer), the SPT is torn down (typically + after 3:30 minutes of inactivity) before the next packet is forwarded + down the tree. This will prevent multicast packets from ever being + forwarded. A well-behaved application should be able to deal with + packet loss since IP is a best-effort-based packet delivery system. + But in reality, this is not always the case. + + With the procedures defined in this document, the packet(s) received + by the FHR will be dropped until the LHR has learned about the source + and the SPT is built. For bursty sources or applications sensitive + for the delivery of the first packet, that means this solution would + not be very applicable. This solution is mostly useful for + applications that don't have a strong dependency on the initial + packet(s) and have a fairly constant data rate, like video + distribution, for example. For applications with strong dependency + on the initial packet(s), using BIDIR-PIM [RFC5015] or SSM [RFC4607] + is recommended. The protocol operations are much simpler compared to + PIM-SM; they will cause less churn in the network. Both guarantee + best-effort delivery for the initial packet(s). + +4.5. Resiliency to Network Partitioning + + In a PIM-SM deployment where the network becomes partitioned due to + link or node failure, it is possible that the RP becomes unreachable + to a certain part of the network. New sources that become active in + that partition will not be able to register to the RP and receivers + within that partition will not be able to receive the traffic. + Ideally, having a candidate RP in each partition is desirable, but + which routers will form a partitioned network is something unknown in + advance. In order to be fully resilient, each router in the network + may end up being a candidate RP. This would increase the operational + complexity of the network. + + The solution described in this document does not suffer from that + problem. If a network becomes partitioned and new sources become + active, the receivers in that partition will receive the SG mappings + and join the source tree. Each partition works independently of the + other partitions and will continue to have access to sources within + that partition. Once the network has healed, the periodic flooding + of SG mappings ensures that they are reflooded into the other + partitions and then other receivers can join the newly learned + sources. + + + + + + + + +Wijnands, et al. Experimental [Page 14] + +RFC 8364 PFM and SD March 2018 + + +5. Configurable Parameters + + This document contains a number of configurable parameters. These + parameters are formally defined in Sections 3.3 and 4.2, but they are + repeated here for ease of reference. These parameters all have + default values as noted below. + + Max_PFM_Message_Rate: The maximum number of PFM messages a router is + allowed to originate per minute; see Section 3.3 for details. The + default value is 6. + + Min_PFM_Message_Gap: The minimum amount of time between each PFM + message originated by a router in milliseconds; see Section 3.3 + for details. The default is 1000. + + Group_Source_Holdtime_Period: The announcement period for Group + Source Holdtime TLVs in seconds; see Section 4.2 for details. The + default value is 60. + + Group_Source_Holdtime_Holdtime: The holdtime for Group Source + Holdtime TLVs in seconds; see Section 4.2 for details. The + default value is 210. + +6. Security Considerations + + For general PIM message security, see [RFC7761]. PFM messages MUST + only be accepted from a PIM neighbor, but as discussed in [RFC7761], + any router can become a PIM neighbor by sending a Hello message. To + control from where to accept PFM packets, one can limit on which + interfaces PIM is enabled. Also, one can configure interfaces as + administrative boundaries for PFM messages, see Section 3.2. The + implications of forged PFM messages depend on which TLVs they + contain. Documents defining new TLVs will need to discuss the + security considerations for the specific TLVs. In general though, + the PFM messages are flooded within the network; by forging a large + number of PFM messages, one might stress all the routers in the + network. + + If an attacker can forge PFM messages, then such messages may contain + arbitrary GSH TLVs. An issue here is that an attacker might send + such TLVs for a huge amount of sources, potentially causing every + router in the network to store huge amounts of source state. Also, + if there is receiver interest for the groups specified in the GSH + TLVs, routers with directly connected receivers will build SPTs for + the announced sources, even if the sources are not actually active. + Building such trees will consume additional resources on routers that + the trees pass through. + + + + +Wijnands, et al. Experimental [Page 15] + +RFC 8364 PFM and SD March 2018 + + + PIM-SM link-local messages can be authenticated using IPsec, see + Section 6.3 of [RFC7761] and [RFC5796]. Since PFM messages are link- + local messages sent hop-by-hop, a link-local PFM message can be + authenticated using IPsec such that a router can verify that a + message was sent by a trusted neighbor and has not been modified. + However, to verify that a received message contains correct + information announced by the originator specified in the message, one + will have to trust every router on the path from the originator and + that each router has authenticated the received message. + +7. IANA Considerations + + This document registers a new PIM message type for the PIM Flooding + Mechanism (PFM) with the name "PIM Flooding Mechanism" in the "PIM + Message Types" registry with the value of 12. + + IANA has also created a registry for PFM TLVs called "PIM Flooding + Mechanism Message Types". Assignments for the registry are to be + made according to the policy "IETF Review" as defined in [RFC8126]. + The initial content of the registry is as follows: + + Type Name Reference + --------------------------------------------- + 0 Reserved [RFC8364] + 1 Source Group Holdtime [RFC8364] + 2-32767 Unassigned + +8. References + +8.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <https://www.rfc-editor.org/info/rfc2119>. + + [RFC5059] Bhaskar, N., Gall, A., Lingard, J., and S. Venaas, + "Bootstrap Router (BSR) Mechanism for Protocol Independent + Multicast (PIM)", RFC 5059, DOI 10.17487/RFC5059, January + 2008, <https://www.rfc-editor.org/info/rfc5059>. + + [RFC5796] Atwood, W., Islam, S., and M. Siami, "Authentication and + 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>. + + + + + +Wijnands, et al. Experimental [Page 16] + +RFC 8364 PFM and SD March 2018 + + + [RFC7761] Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., + 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>. + + [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for + Writing an IANA Considerations Section in RFCs", BCP 26, + RFC 8126, DOI 10.17487/RFC8126, June 2017, + <https://www.rfc-editor.org/info/rfc8126>. + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, <https://www.rfc-editor.org/info/rfc8174>. + +8.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>. + + [RFC4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for + IP", RFC 4607, DOI 10.17487/RFC4607, August 2006, + <https://www.rfc-editor.org/info/rfc4607>. + + [RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano, + "Bidirectional Protocol Independent Multicast (BIDIR- + PIM)", RFC 5015, DOI 10.17487/RFC5015, October 2007, + <https://www.rfc-editor.org/info/rfc5015>. + + + + + + + + + + + + + + + + + + + + + +Wijnands, et al. Experimental [Page 17] + +RFC 8364 PFM and SD March 2018 + + +Acknowledgments + + The authors would like to thank Arjen Boers for contributing to the + initial idea, and David Black, Stewart Bryant, Yiqun Cai, + Papadimitriou Dimitri, Toerless Eckert, Dino Farinacci, Alvaro + Retana, and Liang Xia for their very helpful comments on the + document. + +Authors' Addresses + + IJsbrand Wijnands + Cisco Systems, Inc. + De kleetlaan 6a + Diegem 1831 + Belgium + + Email: ice@cisco.com + + + Stig Venaas + Cisco Systems, Inc. + Tasman Drive + San Jose CA 95134 + United States of America + + Email: stig@cisco.com + + + Michael Brig + Aegis BMD Program Office + 17211 Avenue D, Suite 160 + Dahlgren VA 22448-5148 + United States of America + + Email: michael.brig@mda.mil + + + Anders Jonasson + Swedish Defence Material Administration (FMV) + Loennvaegen 4 + Vaexjoe 35243 + Sweden + + Email: anders@jomac.se + + + + + + + +Wijnands, et al. Experimental [Page 18] + |