summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4610.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc4610.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc4610.txt')
-rw-r--r--doc/rfc/rfc4610.txt675
1 files changed, 675 insertions, 0 deletions
diff --git a/doc/rfc/rfc4610.txt b/doc/rfc/rfc4610.txt
new file mode 100644
index 0000000..7a1804e
--- /dev/null
+++ b/doc/rfc/rfc4610.txt
@@ -0,0 +1,675 @@
+
+
+
+
+
+
+Network Working Group D. Farinacci
+Request for Comments: 4610 Y. Cai
+Category: Standards Track Cisco Systems
+ August 2006
+
+
+ Anycast-RP Using Protocol Independent Multicast (PIM)
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2006).
+
+Abstract
+
+ This specification allows Anycast-RP (Rendezvous Point) to be used
+ inside a domain that runs Protocol Independent Multicast (PIM) only.
+ Other multicast protocols (such as Multicast Source Discovery
+ Protocol (MSDP), which has been used traditionally to solve this
+ problem) are not required to support Anycast-RP.
+
+1. Introduction
+
+ Anycast-RP as described in [I1] is a mechanism that ISP-based
+ backbones have used to get fast convergence when a PIM Rendezvous
+ Point (RP) router fails. To allow receivers and sources to
+ Rendezvous to the closest RP, the packets from a source need to get
+ to all RPs to find joined receivers.
+
+ This notion of receivers finding sources is the fundamental problem
+ of source discovery that MSDP was intended to solve. However, if one
+ would like to retain the Anycast-RP benefits from [I1] with less
+ protocol machinery, removing MSDP from the solution space is an
+ option.
+
+ This memo extends the Register mechanism in PIM so Anycast-RP
+ functionality can be retained without using MSDP.
+
+
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 1]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+1.1. 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 [N2].
+
+2. Overview
+
+ o A unicast IP address is chosen to use as the RP address. This
+ address is statically configured, or distributed using a dynamic
+ protocol, to all PIM routers throughout the domain.
+
+ o A set of routers in the domain is chosen to act as RPs for this RP
+ address. These routers are called the Anycast-RP set.
+
+ o Each router in the Anycast-RP set is configured with a loopback
+ interface using the RP address.
+
+ o Each router in the Anycast-RP set also needs a separate IP address,
+ to be used for communication between the RPs.
+
+ o The RP address, or a prefix that covers the RP address, is injected
+ into the unicast routing system inside of the domain.
+
+ o Each router in the Anycast-RP set is configured with the addresses
+ of all other routers in the Anycast-RP set. This must be
+ consistently configured in all RPs in the set.
+
+3. Mechanism
+
+ The following diagram illustrates a domain using 3 RPs where
+ receivers are joining to the closest RP according to where unicast
+ routing metrics take them and 2 sources sending packets to their
+ respective RPs.
+
+ The rules described in this section do not override the rules in
+ [N1]. They are intended to blend with the rules in [N1]. If there
+ is any question on the interpretation, precedent is given to [N1].
+
+
+ S1-----RP1 RP2 RP3------S3
+ / \ |
+ / \ |
+ R1 R1' R2
+
+
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 2]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+ Assume the above scenario is completely connected where R1, R1', and
+ R2 are receivers for a group, and S1 and S3 send to that group.
+ Assume RP1, RP2, and RP3 are all assigned the same IP address, which
+ is used as the Anycast-RP address (let's say the IP address is RPA).
+
+ Note, the address used for the RP address in the domain (the
+ Anycast-RP address) needs to be different than the addresses used by
+ the Anycast-RP routers to communicate with each other.
+
+ The following procedure is used when S1 starts sourcing traffic:
+
+ o S1 sends a multicast packet.
+
+ o The designated router (DR) directly attached to S1 will form a PIM
+ Register message to send to the Anycast-RP address (RPA). The
+ unicast routing system will deliver the PIM Register message to the
+ nearest RP, in this case RP1.
+
+ o RP1 will receive the PIM Register message, decapsulate it, and send
+ the packet down the shared-tree to get the packet to receivers R1
+ and R1'.
+
+ o RP1 is configured with RP2 and RP3's IP address. Since the
+ Register message did not come from one of the RPs in the anycast-RP
+ set, RP1 assumes the packet came from a DR. If the Register is not
+ addressed to the Anycast-RP address, an error has occurred and it
+ should be rate-limited logged.
+
+ o RP1 will then send a copy of the Register message from S1's DR to
+ both RP2 and RP3. RP1 will use its own IP address as the source
+ address for the PIM Register message.
+
+ o RP1 MAY join back to the source-tree by triggering a (S1,G) Join
+ message toward S1. However, RP1 MUST create (S1,G) state.
+
+ o RP1 sends a Register-Stop back to the DR. If, for some reason, the
+ Register messages to RP2 and RP3 are lost, then when the Register
+ suppression timer expires in the DR, it will resend Registers to
+ allow another chance for all RPs in the Anycast-RP set to obtain
+ the (S,G) state.
+
+ o RP2 receives the Register message from RP1, decapsulates it, and
+ also sends the packet down the shared-tree to get the packet to
+ receiver R2.
+
+ o RP2 sends a Register-Stop back to RP1. RP2 MAY wait to send the
+ Register-Stop if it decides to join the source-tree. RP2 should
+ wait until it has received data from the source on the source-tree
+
+
+
+Farinacci & Cai Standards Track [Page 3]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+ before sending the Register-Stop. If RP2 decides to wait, the
+ Register-Stop will be sent when the next Register is received. If
+ RP2 decides not to wait, the Register-Stop is sent now.
+
+ o RP2 MAY join back to the source-tree by triggering a (S1,G) Join
+ message toward S1. However, RP2 MUST create (S1,G) state.
+
+ o RP3 receives the Register message from RP1, decapsulates it, but
+ since there are no receivers joined for the group, it can discard
+ the packet.
+
+ o RP3 sends a Register-Stop back to RP1.
+
+ o RP3 creates (S1,G) state so when a receiver joins after S1 starts
+ sending, RP3 can join quickly to the source-tree for S1.
+
+ o RP1 processes the Register-Stop from each of RP2 and RP3. There is
+ no specific action taken when processing Register-Stop messages.
+
+ The procedure for S3 sending follows the same as above but it is RP3
+ that sends a copy of the Register originated by S3's DR to RP1 and
+ RP2. Therefore, this example shows how sources anywhere in the
+ domain, associated with different RPs, can reach all receivers, also
+ associated with different RPs, in the same domain.
+
+4. Observations and Guidelines about This Proposal
+
+ o An RP will send a copy of a Register only if the Register is
+ received from an IP address not in the Anycast-RP list (i.e., the
+ Register came from a DR and not another RP). An implementation
+ MUST safeguard against inconsistently configured Anycast-RP sets in
+ each RP by copying the Time to Live (TTL) from a Register message
+ to the Register messages it copies and sends to other RPs.
+
+ o Each DR that PIM registers for a source will send the message to
+ the Anycast-RP address (which results in the packet getting to the
+ closest physical RP). Therefore, there are no changes to the DR
+ logic.
+
+ o Packets flow to all receivers no matter what RP they have joined
+ to.
+
+ o The source gets Registered to a single RP by the DR. It's the
+ responsibility of the RP that receives the PIM Register messages
+ from the DR (the closest RP to the DR based on routing metrics) to
+ get the packet to all other RPs in the Anycast-RP set.
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 4]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+ o Logic is changed only in the RPs. The logic change is for sending
+ copies of Register messages. Register-Stop processing is
+ unchanged. However, an implementation MAY suppress sending
+ Register-Stop messages in response to a Register received from an
+ RP.
+
+ o The rate-limiting of Register and Register-Stop messages are done
+ end-to-end. That is from DR -> RP1 -> {RP2 and RP3}. There is no
+ need for specific rate-limiting logic between the RPs.
+
+ o When topology changes occur, the existing source-tree adjusts as it
+ does today according to [N1]. The existing shared-trees, as well,
+ adjust as they do today according to [N1].
+
+ o Physical RP changes are as fast as unicast route convergence,
+ retaining the benefit of [I1].
+
+ o An RP that doesn't support this specification can be mixed with RPs
+ that do support this specification. However, the non-supporter RP
+ should not have sources registering to it, but may have receivers
+ joined to it.
+
+ o If Null Registers are sent (Registers with an IP header and no IP
+ payload), they MUST be replicated to all of the RPs in the
+ Anycast-RP set so that source state remains alive for active
+ sources.
+
+ o The number of RPs in the Anycast-RP set should remain small so the
+ amount of non-native replication is kept to a minimum.
+
+ o Since the RP, who receives a Register from the DR, will send copies
+ of the Register to the other RPs at the same time it sends a
+ Register-Stop to the DR, there could be packet loss and lost state
+ in the other RPs until the time the DR sends Register messages
+ again.
+
+5. Interaction with MSDP Running in an Anycast-PIM Router
+
+ The objective of this Anycast-PIM proposal is to remove the
+ dependence on using MSDP. This can be achieved by removing MSDP
+ peering between the Anycast-RPs. However, to advertise internal
+ sources to routers outside of a PIM routing domain and to learn
+ external sources from other routing domains, MSDP may still be
+ required.
+
+
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 5]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+5.1. Anycast-PIM Stub Domain Functionality
+
+ In this capacity, when there are internal sources that need to be
+ advertised externally, an Anycast-RP that receives a Register
+ message, either from a DR or an Anycast-RP, should process it as
+ described in this specification as well as how to process a Register
+ message as described in [N1]. That means a Source-Active (SA) for
+ the same internal source could be originated by multiple Anycast-RPs
+ doing the MSDP peering. There is nothing inherently wrong with this
+ other than that the source is being advertised into the MSDP
+ infrastructure from multiple places from the source domain. However,
+ if this is not desirable, configuration of one or more (rather than
+ all) Anycast-RP MSDP routers would allow only those routers to
+ originate SAs for the internal source. And in some situations, there
+ is a good possibility not all Anycast-RPs in the set will have MSDP
+ peering sessions so this issue can be mitigated to a certain extent.
+
+ From an Anycast-RP perspective, a source should be considered
+ internal to a domain when it is discovered by an Anycast-RP through a
+ received Register message, regardless of whether the Register message
+ was sent by a DR, another Anycast-RP member, or the router itself.
+
+ For learning sources external to a domain, the MSDP SA messages could
+ arrive at multiple MSDP-peering Anycast-RPs. The rules for
+ processing an SA, according to [I1], should be followed. That is, if
+ G is joined in the domain, an (S,G) join is sent towards the source.
+ And if data accompanies the SA, each Anycast-PIM RP doing MSDP
+ peering will forward the data down each of its respective shared-
+ trees.
+
+ The above assumes each Anycast-RP has external MSDP peering
+ connections. If this is not the case, the Anycast-PIM routers with
+ the MSDP peering connections would follow the same procedure as if a
+ Data-Register or Null-Register was received from either a DR or
+ another Anycast-RP. That is, they would send Registers to the other
+ members of the Anycast-RP set.
+
+ If there is a mix of Anycast-RPs that do and do not have external
+ MSDP peering connections, then the ones that do must be configured
+ with the set that do not. So Register messages are sent only to the
+ members of the Anycast-RP set that do not have external MSDP peering
+ connections.
+
+ The amount of Register traffic generated by this MSDP-peering RP
+ would be equal to the number of active sources external to the
+ domain. The Source-Active state would have to be conveyed to all
+ other RPs in the Anycast-RP set since the MSDP-peering RP would not
+ know about the group membership associated with the other RPs. To
+
+
+
+Farinacci & Cai Standards Track [Page 6]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+ avoid this periodic control traffic, it is recommended that all
+ Anycast-RPs be configured with external MSDP peering sessions so no
+ RP in the Anycast-RP set will have to originate Register messages on
+ behalf of external sources.
+
+5.2. Anycast-PIM Transit Domain Functionality
+
+ Within a routing domain, it is recommended that an Anycast-RP set
+ defined in this specification should not be mixed with MSDP peering
+ among the members. In some cases, the source discovery will work but
+ it may not be obvious to the implementations which sources are local
+ to the domain and which are not. This may affect external MSDP
+ advertisement of internal sources.
+
+ Having said that, this document makes no attempt to connect MSDP
+ peering domains together by using Anycast-PIM inside a transit
+ domain.
+
+6. Security Consideration
+
+ This section describes the security consideration for Register and
+ Register-Stop messages between Anycast-RPs. For PIM messages between
+ DR and RP, please see [N1].
+
+6.1. Attack Based On Forged Messages
+
+ An attacker may forge a Register message using one of the addresses
+ in the Anycast-RP list in order to achieve one or more of the
+ following effects:
+
+ 1. Overwhelm the target RP in a denial-of-service (DoS) attack
+ 2. Inject unauthorized data to receivers served by the RP
+ 3. Inject unauthorized data and create bogus SA entries in other
+ PIM domains if the target RP has external MSDP peerings
+
+ An attacker may also forge a Register-Stop message using one of the
+ addresses in the Anycast-RP list. However, besides denial-of-
+ service, the effect of such an attack is limited because an RP
+ usually ignores Register-Stop messages.
+
+6.2. Protect Register and Register-Stop Messages
+
+ The DoS attack using forged Register or Register-Stop messages cannot
+ be prevented. But the RP can still be protected. For example, the
+ RP can rate-limit incoming messages. It can also choose to refuse to
+ process any Register-Stop messages. The actual protection mechanism
+ is implementation specific.
+
+
+
+
+Farinacci & Cai Standards Track [Page 7]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+ The distribution of unauthorized data and bogus Register messages can
+ be prevented using the method described in section 6.3.2 of [N1].
+ When RP1 sends a copy of a register to RP2, RP1 acts as [N1]
+ describes the DR and RP2 acts as [N1] describes the RP.
+
+ As described in [N1], an RP can be configured using a unique SA and
+ Security Parameter Index (SPI) for traffic (Registers or Register-
+ Stops) to each member of Anycast-RPs in the list, but this results in
+ a key management problem; therefore, it may be preferable in PIM
+ domains where all Rendezvous Points are under a single administrative
+ control to use the same authentication algorithm parameters
+ (including the key) for all Registered packets in a domain.
+
+7. Acknowledgements
+
+ The authors prototyped this document in the cisco IOS and Procket
+ implementations, respectively.
+
+ The authors would like to thank John Zwiebel for doing
+ interoperability testing of the two prototype implementations.
+
+ The authors would like to thank Thomas Morin from France Telecom for
+ having an extensive discussion on Multicast the Registers to an SSM-
+ based full mesh among the Anycast-RP set. This idea may come in a
+ subsequent document.
+
+ And finally, the authors would like to thank the following for their
+ comments on earlier drafts:
+
+ Greg Shepherd (Procket Networks (now Cisco Systems))
+ Lenny Giuliano (Juniper Networks)
+ Prashant Jhingran (Huawei Technologies)
+ Pekka Savola (CSC/FUNET)
+ Bill Fenner (AT&T)
+ James Lingard (Data Connection)
+ Amit Shukla (Juniper Networks)
+ Tom Pusateri (Juniper Networks)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 8]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+8. References
+
+8.1. Normative References
+
+ [N1] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
+ "Protocol Independent Multicast - Sparse Mode (PIM-SM):
+ Protocol Specification (Revised)", RFC 4601, August 2006.
+
+ [N2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+8.2. Informative References
+
+ [I1] Kim, D., Meyer, D., Kilmer, H., and D. Farinacci, "Anycast
+ Rendevous Point (RP) mechanism using Protocol Independent
+ Multicast (PIM) and Multicast Source Discovery Protocol (MSDP)",
+ RFC 3446, January 2003.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 9]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+Appendix A: Possible Configuration Language
+
+ A possible set of commands to be used could be:
+
+ ip pim anycast-rp <anycast-rp-addr> <rp-addr>
+
+ Where:
+
+ <anycast-rp-addr> describes the Anycast-RP set for the RP that is
+ assigned to the group range. This IP address is the address that
+ first-hop and last-hop PIM routers use to register and join to.
+
+ <rp-addr> describes the IP address where Register messages copies
+ are sent to. This IP address is any address assigned to the RP
+ router not including the <anycast-rp-addr>.
+
+ Example:
+
+ From the illustration above, the configuration commands would be:
+
+ ip pim anycast-rp RPA RP1
+ ip pim anycast-rp RPA RP2
+ ip pim anycast-rp RPA RP3
+
+ Comment:
+
+ It may be useful to include the local router IP address in the
+ command set so the above lines can be cut-and-pasted or scripted
+ into all the RPs in the Anycast-RP set.
+
+ But the implementation would have to be aware of its own address
+ and not inadvertently send a Register to itself.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 10]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+Authors' Addresses
+
+ Dino Farinacci
+ Cisco Systems
+
+ EMail: dino@cisco.com
+
+
+ Yiqun Cai
+ Cisco Systems
+
+ EMail: ycai@cisco.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 11]
+
+RFC 4610 Anycast-RP using PIM August 2006
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2006).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is provided by the IETF
+ Administrative Support Activity (IASA).
+
+
+
+
+
+
+
+Farinacci & Cai Standards Track [Page 12]
+