RFC 6226
PIM Group-to-Rendezvous-Point Mapping
RFC 6226: PIM Group-to-Rendezvous-Point Mapping π
Okay bestie, here's the whole vibe at a glance π
- Authors: B. Joshi (Infosys Technologies Ltd.), A. Kessler (Cisco Systems, Inc.), and D. McWalter (no affiliation listed) π§
- Category: Standards Track πΈ
- Date: May 2011 π¦
- ISSN: 2070-1721 β¨
- Updates: RFC 4601. It doesn't list anything it obsoletes π
Abstract π
Okay so every PIM-SM router in a PIM domain that supports Any Source Multicast (ASM) keeps a list of Group-to-RP mappings. It uses that list to figure out which Rendezvous Point (RP) handles a given multicast group π¦. PIM-SM already has an algorithm for picking an RP from mappings learned through different mechanisms, but it ignores the PIM mode and how the mapping was learned. Honestly kind of a miss π
This document defines a standard algorithm so routers can deterministically pick between several Group-to-RP mappings for one specific group β¨. It explains the requirements for extending the Group-to-RP mapping algorithm first, and then it proposes the new algorithm π.
Status of This Memo π
This is an Internet Standards Track document π.
It's a product of the Internet Engineering Task Force (IETF), so it represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check Section 2 of RFC 5741 πΈ.
For the current status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc6226 π.
Copyright Notice Β©οΈ
Copyright (c) 2011 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 (http://trustee.ietf.org/license-info) in effect on the date of publication. Please read these carefully, because they spell out your rights and restrictions for 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. They're provided without warranty, as described in the Simplified BSD License π«Ά.
Table of Contents π§Ύ
1. Introduction ....................................................2
2. Terminology .....................................................3
3. Existing Algorithm ..............................................4
4. Assumptions .....................................................5
5. Common Use Cases ................................................5
6. Proposed Algorithm ..............................................6
7. Interpretation of MIB Objects ...................................8
8. Clarification for MIB Objects ...................................8
9. Use of Dynamic Group-to-RP Mapping Protocols ....................9
10. Considerations for Bidirectional-PIM and BSR Hash ..............9
11. Filtering Group-to-RP Mappings at Domain Boundaries ............9
12. Security Considerations .......................................10
13. Acknowledgements ..............................................10
14. Normative References ..........................................10
1. Introduction π
Okay so there are multiple mechanisms out there to create and distribute Group-to-RP mappings π. Each PIM-SM router might learn Group-to-RP mappings through various mechanisms, as described in Section 4 π§.
It is critical that each router select the same 'RP' for a specific multicast group address. Otherwise, full multicast connectivity won't get established π. This is true even when you use an Anycast RP for redundancy. That RP address may point to a different physical router, but it's still one logical RP address, so it must be consistent across the PIM domain π . This is usually done by running the same algorithm to select the RP in every PIM router in a domain β¨.
PIM-SM [RFC4601] defines an algorithm to select a 'RP' for a given multicast group address. But it isn't flexible enough for an administrator to apply various policies. Check out Section 3 for more details π.
The PIM-STD-MIB [RFC5060] has a bunch of objects that let an administrator set the precedence for Group-to-RP mappings, whether they're learned statically or dynamically and stored in the pimGroupMappingTable π¦. The Management Information Base (MIB) module also defines an algorithm you can apply to the data in pimGroupMappingTable to determine Group-to-RP mappings. The catch is that this algorithm isn't completely deterministic, because it includes an implementation-specific precedence value π.
Network management stations can work out which RPs will be selected by running the algorithm from this document on the list of Group-to-RP mappings from pimGroupMappingTable π. The algorithm gives MIB visibility into how routers will apply Group-to-RP mappings. It also fixes the inconsistency caused by different vendors implementing the selection of Group-to-RP mappings to create multicast forwarding state, which is honestly iconic π«Ά.
Embedded-RP, as defined in Section 7.1 of "Embedding the Rendezvous Point (RP) Address in an IPv6 Multicast Address" [RFC3956], says this: "To avoid loops and inconsistencies, for addresses in the range ff70::/12, the Embedded-RP mapping MUST be considered the longest possible match and higher priority than any other mechanism" π₯.
2. Terminology π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] π.
This document also uses the following terms:
- PIM Mode
PIM Mode is the mode of operation a particular multicast group uses. Wherever this term shows up in the document, it means either Sparse Mode or Bidirectional (BIDIR) Mode πΈ.
- Dynamic Group-to-RP Mapping Mechanisms
The term "dynamic Group-to-RP mapping mechanisms" in this document refers to Bootstrap Router (BSR) [RFC5059] and Auto-RP π§.
- Dynamic Mappings and Dynamically Learned Mappings
The terms "dynamic mappings" and "dynamically learned mappings" refer to Group-to-RP mappings that were learned by either BSR or Auto-RP. Group-to-RP mappings learned by Embedded-RP are called Embedded Group-to-RP mappings π¦.
- Filtering
Filtering is the selective discarding of dynamic Group-to-RP mapping information. It's based on the group address, the type of Group-to-RP mapping message, and the interface the mapping message was received on π.
- Multicast Domain and Boundaries
The term "multicast domain" in this document refers to a network topology with a consistent set of Group-to-RP mappings. The interface between two or more multicast domains is a multicast domain boundary. Multicast boundaries are usually enforced by filtering the dynamic mapping messages, configuring different static RP mappings, or both π.
3. Existing Algorithm π°οΈ
The existing algorithm defined in PIM-SM (Section 4.7.1 of [RFC4601]) doesn't consider the following constraints π:
- It doesn't consider where a Group-to-RP mapping came from, so it treats all of them equally.
- It doesn't give you the flexibility to prioritize a specific PIM mode. For example, an entry learned for the PIM-BIDIR Mode gets the same priority as an entry learned for PIM-SM π .
The algorithm in this document updates the algorithm defined in PIM-SM (Section 4.7.1 of [RFC4601]) β¨. The new algorithm is backward compatible, and it only produces the same result if all the Group-to-RP mappings were learned from a single mapping source. You won't get the full benefits until it's widely deployed π.
4. Assumptions π§
We made the following assumptions when defining this algorithm π:
- A Group-to-RP mapping can be learned from various mechanisms. We assume the following list is ordered by decreasing preference for these mechanisms:
- Embedded Group-to-RP mappings
- Dynamically learned mappings
- Static configuration
- Other mapping method
- Embedded Group-to-RP mappings are special and always have the highest priority. Static configuration or dynamic Group-to-RP mappings can't override them π.
- Dynamic mappings will override a static RP configuration if they have overlapping ranges. You can still override dynamic Group-to-RP mappings with static configurations, either by filtering or by configuring longer static group addresses that win over dynamic mappings when longest prefix matching is applied π¦.
- A Group-to-RP mapping learned for PIM-BIDIR Mode is preferred over an entry learned for PIM-SM Mode, as stipulated in Section 3.3 of [RFC5059] π.
- Dynamic Group-to-RP mapping mechanisms are filtered at domain boundaries or for policy enforcement inside a domain π«Ά.
5. Common Use Cases πΈ
A network operator deploying IP Multicast will need a deterministic way to select the precedence for Group-to-RP mappings in the following use cases π :
- Default static Group-to-RP mappings with dynamically learned entries
Lots of network operators have dedicated infrastructure for the standard multicast group range (224/4), so they might be using statically configured Group-to-RP mappings for that range. But to support some specific applications, they might want to learn Group-to-RP mappings dynamically using either the BSR or Auto-RP mechanism. In that case, to select Group-to-RP mappings for those specific applications, a longer prefix match should be given preference over statically configured Group-to-RP mappings. For example, 239.100.0.0/16, an administratively scoped multicast address range, could be learned for a corporate communications application. Network operators may change the Group-to-RP mappings for these applications more often, so the mappings need to be learned dynamically. This isn't an issue for IPv6 Multicast address ranges π.
- Migration situations
Network operators occasionally go through a migration because of an acquisition or a change in their network design. To make that migration smooth, there's a need for deterministic behavior in Group-to-RP mapping selection for entries learned using the BSR and Auto-RP mechanisms. This helps avoid unforeseen interoperability issues between different vendors' network elements π§.
- Use by management systems
A network management station can determine the RP for a specific group in a specific router by running this algorithm on the Group-to-RP mapping table fetched using MIB objects π₯.
6. Proposed Algorithm β¨
okay bestie, this is the main event π the algorithm picks ONE Group-to-RP mapping for a group, every single time, deterministically. it also fixes the shortcomings we talked about in the old mechanism π
- if the multicast group address you're looking up has an embedded RP in it, the RP address pulled out of the group address is the Group-to-RP mapping. done π¦
- if the group is in the Source Specific Multicast (SSM) range, or it's configured for Dense Mode, no Group-to-RP mapping gets selected and the algorithm just terminates π you can show that "nothing was picked" in the PIM-STD-MIB module [RFC5060] by setting the RP's address type to 'unknown', as described in Section 8.
- from the full set of Group-to-RP mapping entries, grab the subset whose group prefix contains the multicast group you're looking up πΈ
- if there are no entries left, the Group-to-RP mapping is undefined and the algorithm terminates π
- do a longest prefix match on that subset π
- if only one entry is left, that's your Group-to-RP mapping β¨
- if there are multiple entries, keep going with the smaller set π«Ά
- from what's left, pick the entries based on the preference for the PIM mode the groups are assigned to. a Group-to-RP mapping entry with PIM Mode 'BIDIR' is preferred over an entry with PIM Mode 'PIM-SM' π₯
- if only one entry is left, it's selected π
- if multiple entries are left, keep going with the smaller set π
- from what's still left, pick based on the origin. dynamically learned Group-to-RP mappings beat static ones π§ and if the leftover dynamic ones came from BSR and Auto-RP, the BSR ones win π
- if only one entry is left, it's selected π¦
- if multiple entries are left, keep going with the smaller set π
- if the leftover mappings were learned through BSR, the RP gets picked by comparing the RP Priority values in the Candidate-RP-Advertisement messages. the lowest value means the highest priority [RFC5059] π
- if more than one RP ties for the highest priority (aka the same lowest value), keep going with those mappings π«Ά
- if the leftover mappings were NOT learned from BSR, move on to the next step π
- if the leftover mappings were learned through BSR and the group's PIM Mode is 'PIM-SM', the hash function from Section 4.7.2 of [RFC4601] picks the RP. the RP with the highest resulting hash value wins πΈ check Section 10 for how hash works with BIDIR-PIM and BSR π§
- if more than one RP ties for the highest hash value, keep going with those mappings π
- if the leftover mappings were NOT learned from BSR, move on to the next step π
- from whatever's left, the RP with the highest IP address (numerically greater) gets selected. this is the final tiebreaker, and it's the last word ππ
7. Interpretation of MIB Objects β¨
so the Group-to-RP mapping info gets summarized in the pimGroupMappingTable, as described in [RFC5060] πΈ the precedence value is stored in the 'pimGroupMappingPrecedence' object, which covers both the dynamically learned mappings AND the static config. for static configs, 'pimGroupMappingPrecedence' uses the value of the 'pimStaticRPPrecedence' object from the pimStaticRPTable π
BUT here's the tea π« the algorithm in this document doesn't use precedence at all. so the values set in 'pimGroupMappingPrecedence' and 'pimStaticRPPrecedence' in the PIM-STD-MIB module [RFC5060] don't apply to the new algorithm π those objects still mean something for 'legacy' implementations, but since this algorithm is meant to be used in preference to the ones in PIM-SM [RFC4601] and the PIM-STD-MIB [RFC5060], the values of these objects get ignored on implementations that support the new algorithm π
8. Clarification for MIB Objects β¨
an implementation of this spec can still be managed using the PIM-STD-MIB [RFC5060] π entries get created in the pimGroupMappingTable for group ranges that are SSM or Dense mode. for those, the pimGroupMappingRPAddressType object is set to unknown(0), and the PIM Mode in the pimGroupMappingPimMode object is set to either ssm(2) or dm(5) to match the type of the group range π¦
also, all the entries already in the SSM Range table in the IP Multicast MIB [RFC5132] get copied into the pimGroupMappingTable π those entries have their type in the pimGroupMappingOrigin object set to configSsm(3), and their RP address type in the pimGroupMappingRPAddressType object set to unknown(0), as described above π«Ά
9. Use of Dynamic Group-to-RP Mapping Protocols β¨
it's usually not necessary to run several dynamic Group-to-RP mapping mechanisms in one administrative domain π specifically, interoperation of BSR and Auto-RP is OPTIONAL π
BUT if a router does get two overlapping sets of Group-to-RP mappings (like from Auto-RP AND BSR), then some algorithm is needed to deterministically resolve it π the algorithm in this document MUST be used on all routers in the domain π₯ this can matter a lot at domain border routers, and it's likely to avoid conflicts caused by misconfiguration (when routers get overlapping sets of mappings) and when the config is changing πΈ
an implementation of PIM that supports only one mechanism for learning Group-to-RP mappings MUST also use this algorithm π§ the algorithm was chosen so that existing standard implementations are already compliant β¨
10. Considerations for Bidirectional-PIM and BSR Hash β¨
BIDIR-PIM [RFC5015] is designed to avoid any data-driven events π¦ this is especially true for a source-only branch π the RP mapping is determined based on a group mask when the mapping comes in through a dynamic mapping protocol or is statically configured π
so, based on the algorithm in this document, the hash in BSR is ignored for PIM-BIDIR RP mappings π it is RECOMMENDED that network operators configure only one PIM-BIDIR RP for each RP Priority π
11. Filtering Group-to-RP Mappings at Domain Boundaries β¨
an implementation of PIM SHOULD support configuration to filter specific dynamic mechanisms for a valid group prefix range π for example, it should be possible to allow an administratively scoped address range, such as 239/8, for the Auto-RP protocol, but to filter out the BSR advertisement for the same range π«Ά similarly, it should be possible to filter out all Group-to-RP mappings learned from BSR or the Auto-RP protocol π
12. Security Considerations β¨
π okay this one is SERIOUS, bestie, read it carefully π₯
this document enhances an existing algorithm to deterministically choose between several Group-to-RP mappings for a specific group πΈ different routers may pick a different Group-to-RP mapping for the same group if the mappings they learned aren't consistent π for example, say BSR isn't enabled on one of the routers, so it doesn't learn any mappings from BSR π then the mappings that router learned may not match the other routers in the network. it might pick a different RP, or it might not pick any RP for a given group π± these situations can be avoided if the mechanisms used to learn Group-to-RP mappings are secure and consistent across the network π«Ά secure transport of the mapping protocols can be done using authentication with IPsec, as described in Section 6.3 of [RFC4601] πβ¨
13. Acknowledgements β¨
this document was created based on discussion during work on the PIM-STD-MIB [RFC5060] π huge thanks to Stig Venaas, Yiqun Cai, and Toerless Eckert for providing useful comments π«Άπ
14. Normative References β¨
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3956] Savola, P. and B. Haberman, "Embedding the Rendezvous Point (RP) Address in an IPv6 Multicast Address", RFC 3956, November 2004.
[RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas, "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", RFC 4601, August 2006.
[RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano, "Bidirectional Protocol Independent Multicast (BIDIR-PIM)", RFC 5015, October 2007.
[RFC5059] Bhaskar, N., Gall, A., Lingard, J., and S. Venaas, "Bootstrap Router (BSR) Mechanism for Protocol Independent Multicast (PIM)", RFC 5059, January 2008.
[RFC5060] Sivaramu, R., Lingard, J., McWalter, D., Joshi, B., and A. Kessler, "Protocol Independent Multicast MIB", RFC 5060, January 2008.
[RFC5132] McWalter, D., Thaler, D., and A. Kessler, "IP Multicast MIB", RFC 5132, December 2007.
Authors' Addresses β¨
Bharat Joshi Infosys Technologies Ltd. 44 Electronics City, Hosur Road Bangalore 560 100 India
EMail: bharat_joshi@infosys.com URI: http://www.infosys.com/
Andy Kessler Cisco Systems, Inc. 425 E. Tasman Drive San Jose, CA 95134 USA
EMail: kessler@cisco.com URI: http://www.cisco.com/
David McWalter
EMail: david@mcwalter.eu
π¦ where this page comes from
- ietf: rfc6226 2011-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms