IP Multicast: PIM Rendezvous Point (RP)
With shared tree, multicast distribution roots at RP.
RP Configuration
You can configure - for different groups - as many rendezvous points as you like. But you must note that all routers in the multicast domain agree on the RP for the group. There are different ways that RPs are defined:
- Static RP: You configure the address of RP on every single router in the multicast domain.
- Dynamic Active/Standby RP(s):
- Bootstrap Router (BSR): Makes sure that all routers in the multicast domain have the same RP as the BSR.
- Auto-RP: Cisco proprietary which was used prior to BSR standard.
- Active/Active RPs
- Anycast RP
- Phantom RP
Note: Static RP can coexist with Dynamic RP. But dynamic RP takes precedence over the static RP. Note: You cannot configure BSR and Auto-RP at the same time.
BSR
Some routers are configured as RPs (candidate RPs) and advertise themselves as such to other PIM routers. The BSR receives this information and distributes the RP-to-group mapping to downstream routers who are listening to these advertisements (224.0.0.13).
! On RP Candidate N9K01(config)# ip pim rp-candidate l1 group-list 224.0.0.0/4 ! On BSR N9K03(config)# ip pim bsr bsr-candidate Ethernet1/1 ! On Downstream routers N9K04(config)# ip pim bsr listen
Auto RP
Auto-RP propagates RP information via Auto-RP messages. RPs (Candidate RPs) announce their availability to the mapping agents who is listening on 224.0.1.39. Downstream routers listen to 224.0.1.40 for mapping advertisements from mapping agent.
RP Redundancy
There are two RP redundancy mechanisms used with static RPs which I want to cover here:
- Anycast RP
- Phantom RP
Anycast RP
Anycast RP achieves active/active RP distribution for PIM-SM. Anycast requires both RPs to use the same IP address. You assign a duplicate Loopback address and advertise into IGP domain. PIM Register and Join messages go to the closest unicast metric RP in the topology. What if PIM Register is sent to one anycast RP, and PIM Join is sent to another? There are two variants for Anycast RP:
- Multicast Source Discovery Protocol (MSDP) (RFC 3446)
- PIM Anycast RP (RFC 4610)
Multicast Source Discovery Protocol (MSDP)
MSDP (RFC 3618) was used for Inter-domain source active communication in the Internet. We can make use of this intra domain. MSDP listens to active sources in a network (PIM registers) and shares those sources with only explicitly configured neighbors (on TCP port 639). RPs then join to those active sources. We run MSDP between the RPs. Each device has a globally routable Loopback plus the anycast Loopback.
! On RP1 ! Loopback0 is not anycast loopback; not pim enabled N9K01(config)# feature msdp N9K01(config)# ip msdp originator-id loopback0 N9K01(config)# ip msdp peer 192.168.0.2 connect-source loopback0 N9K01(config)# ip pim rp-address 192.168.0.254 ! 192.168.0.254 is IP address of Loopback 1 which is PIM SM enabled ! On RP2 ! Loopback0 is not anycast loopback; not pim enabled N9K01(config)# feature msdp N9K02(config)# ip msdp originator-id loopback 0 N9K02(config)# ip msdp peer 192.168.0.1 connect-source loopback 0 N9K01(config)# ip pim rp-address 192.168.0.254 ! 192.168.0.254 is IP address of Loopback 1 which is PIM SM enabled
Verification:
N9K01# show ip msdp summary MSDP Peer Status Summary for VRF "default" Local ASN: 0, originator-id: 192.168.0.1 Number of configured peers: 1 Number of established peers: 1 Number of shutdown peers: 0 Peer Peer Connection Uptime/ Last msg (S,G)s Address ASN State Downtime Received Received 192.168.0.2 0 Established 00:11:30 00:00:24 1 N9K02# show ip msdp summary MSDP Peer Status Summary for VRF "default" Local ASN: 0, originator-id: 192.168.0.2 Number of configured peers: 1 Number of established peers: 1 Number of shutdown peers: 0 Peer Peer Connection Uptime/ Last msg (S,G)s Address ASN State Downtime Received Received 192.168.0.1 0 Established 00:11:31 00:00:47 1 N9K02# show ip msdp sa-cache MSDP SA Route Cache for VRF "default" - 1 entries Source Group RP ASN Uptime In_MRIB Peer address 172.16.1.2 239.0.1.2 192.168.0.1 0 00:02:19 True 192.168.0.1 N9K02# show ip mroute IP Multicast Routing Table for VRF "default" (*, 232.0.0.0/8), uptime: 00:13:38, pim ip Incoming interface: Null, RPF nbr: 0.0.0.0 Outgoing interface list: (count: 0) (*, 239.0.1.2/32), uptime: 00:13:19, pim ip Incoming interface: loopback1, RPF nbr: 192.168.0.254 Outgoing interface list: (count: 1) Ethernet1/2, uptime: 00:13:16, pim (172.16.1.2/32, 239.0.1.2/32), uptime: 00:13:27, ip pim msdp mrib Incoming interface: Ethernet1/1, RPF nbr: 10.1.1.9 Outgoing interface list: (count: 1) Ethernet1/2, uptime: 00:13:16, pim
On downstream routers, you tell who the RP is, remember to give them the anycast loopback IP (not the Lo0 with the example above).
PIM Anycast RP
Let us not enable MSDP feature. Let us do anycast RP technic with using only PIM protocol. Let us use PIM register message for synchronization. PIM Anycast RP uses PIM to build active/active distribution between the RPs. You need to configure a set of RP routers on each RP. Once one RP (let us say RP1), receives Register message, this router adds (S,G) to its forwarding table, then it sends Register message to all other RPs listed in the set of RPs.
Configuration on RPs
N9K01(config)# ip pim anycast-rp 192.168.0.254 192.168.0.1 N9K01(config)# ip pim anycast-rp 192.168.0.254 192.168.0.2 N9K01(config)# ip pim rp-address 192.168.0.254
Configuration on non-RPs remain unchanged
N9K03(config)# ip pim rp-address 192.168.0.254
Verification on an RP and a non-RP
N9K01# show ip pim rp PIM RP Status Information for VRF "default" BSR disabled Auto-RP disabled BSR RP Candidate policy: None BSR RP policy: None Auto-RP Announce policy: None Auto-RP Discovery policy: None Anycast-RP 192.168.0.254 members: 192.168.0.1* 192.168.0.2 RP: 192.168.0.254*, (0), uptime: 1d23h priority: 255, RP-source: (local), group ranges: 224.0.0.0/4 ! N9K03# show ip pim rp rp rp-hash N9K03# sho ip pim rp PIM RP Status Information for VRF "default" BSR disabled Auto-RP disabled BSR RP Candidate policy: None BSR RP policy: None Auto-RP Announce policy: None Auto-RP Discovery policy: None RP: 192.168.0.254, (0), uptime: 1d23h priority: 255, RP-source: (local), group ranges: 224.0.0.0/4
Below, you can see the mroute is synchronized between the two RPs:
N9K01# show ip mroute IP Multicast Routing Table for VRF "default" (*, 232.0.0.0/8), uptime: 00:07:53, pim ip Incoming interface: Null, RPF nbr: 0.0.0.0 Outgoing interface list: (count: 0) (*, 239.0.1.2/32), uptime: 00:07:29, pim ip Incoming interface: loopback1, RPF nbr: 192.168.0.254 Outgoing interface list: (count: 1) Ethernet1/2, uptime: 00:07:29, pim (172.16.1.2/32, 239.0.1.2/32), uptime: 00:00:04, pim mrib ip Incoming interface: Ethernet1/1, RPF nbr: 10.1.1.1, internal Outgoing interface list: (count: 1) Ethernet1/2, uptime: 00:00:04, pim ! N9K02# show ip mroute IP Multicast Routing Table for VRF "default" (*, 232.0.0.0/8), uptime: 1d23h, pim ip Incoming interface: Null, RPF nbr: 0.0.0.0 Outgoing interface list: (count: 0) (*, 239.0.1.2/32), uptime: 00:08:25, pim ip Incoming interface: loopback1, RPF nbr: 192.168.0.254 Outgoing interface list: (count: 0) (172.16.1.2/32, 239.0.1.2/32), uptime: 00:00:08, pim mrib ip Incoming interface: Ethernet1/1, RPF nbr: 10.1.1.9, internal Outgoing interface list: (count: 0)
The Nexus platform supports both Anycast PIM and MSDP modes. So, This is a good choice to use Anycast PIM as we are not enabling MSDP feature.
Phantom RP
PIM BiDir uses phantom RP or virtual RP for HA. It does not need to be a physical router because there is no PIM Register message with PIM BiDir; so, there is no unicast packet to the RP address. Unlike PIM ASM, with BiDir the RP does not handle any control plane load and RP information. It is just an indication towards the root of the RPT.