Protocol Implementation Report for "Anycast-RP using PIM" --------------------------------------------------------- Dino Farinacci August 27, 2005 Introduction ------------ This note provides a brief implemenation report of the protcool implementations of "Anycast-RP using PIM" as specified in draft-ietf-pim-anycast-rp-04.txt. Vendors ------- Two vendors were involved, cisco Systems and Procket Networks. Each provided independent implementations. Three people were involved. Yiqun Cai did a prototype implementation for cisco. Dino Farinacci shipped an implementation for Procket. John Zwiebel performed interoperability testing of the two implementations at Procket's facilities in the spring of 2003. Statement of testing from cisco ------------------------------- Cisco IOS has a prototype implementation based on an earlier version of the draft. The functionality that is implemented and tested includes the following: 1. PIM registers (including both data and NULL regisetrs) are forwarded to other RPs in the anycast RP set. 2. Register-stops are not sent by RPs receiving a register from one in its anycast RP set; Register-stops are ignored and silently discarded if received from other RPs in the anycast RP set. 3. The RP address can be configured statically, or learned via AUTORP or BSR. The functionality specificied in Section 5.0, "interaction with MSDP running in an Anycast-PIM Router" was not implemented. Statement of testing from Procket --------------------------------- PIM anycast-RP interop testing was accomplished between Procket and Cisco in 2003. The test topology and router configurations used in this test are shown below. PIM registers sent by the source DR (first-hop router) were replicated to all other routers participating in the test as PIM-RPs. All RPs created and maintained (S,G) state while the source was sending. When the source stopped sending, all state timed out on all participating routers. [src] 26a |e1/0 vrrp: 192.1.2.254 | [LAN1] --+-------------+--------------+- | | [LAN3] [RP] |e0/0/4|e0/0/1 e0/0/1| e0/0/3| e1/2 pr4-----+-----pr5 pr6------+-----26b e0/0/1| |e0/0/2 e0/0/4| | [LAN4] | | | 0/0/1 --+-------------+--------------+- +-----rp3 vrrp: 192.1.3.254 | [LAN2] | .200 |e0/0/4 pr7[RP] |e0/0/2 | --+--[LAN5] | |e1/1 26c [RP] NOTE: 11.1.0.1 and 12.1.0.2 were RPs in a different testbed accessed through a GRE tunnel. Configuartions: PR4: interface Loopback0 ip address 1.1.1.1/32 ip pim sparse-mode ip igmp join-group 224.1.1.1 ! interface Ethernet0/0/1 ip address 192.1.5.4/24 ip router ospf 1 ip ospf area 0 no ip ospf cost 10 ip pim sparse-mode no shut ! ip pim rp-address 1.1.1.1 group-list 224.0.0.0/4 ip pim anycast-rp 1.1.1.1 11.1.0.1 ip pim anycast-rp 1.1.1.1 12.1.0.2 ip pim anycast-rp 1.1.1.1 192.1.3.7 ip pim anycast-rp 1.1.1.1 192.1.5.4 ------------------------------ 26c: interface Loopback1 ip address 1.1.1.1 255.255.255.255 ip pim sparse-mode no shut ! interface Ethernet1/1 ip address 192.1.6.28 255.255.255.0 ip pim sparse-dense-mode no ip mroute-cache half-duplex no shutdown ! ip pim anycast-rp Ethernet1/1 11.1.0.1 ip pim anycast-rp Ethernet1/1 12.1.0.2 ip pim anycast-rp Ethernet1/1 192.1.3.7 ip pim anycast-rp Ethernet1/1 192.1.5.4 ip pim anycast-rp Ethernet1/1 192.1.6.28 ip pim rp-address 1.1.1.1 ------------------------------ pr7: interface Loopback1 ip address 1.1.1.1/32 ip pim sparse-mode ip igmp join-group 224.1.1.1 ! interface Ethernet0/0/2 ip address 192.1.6.7/24 ip router ospf 1 ip ospf area 0 ip pim sparse no shutdown ! ip pim rp-address 1.1.1.1 group-list 224.0.0.0/4 ip pim anycast-rp 1.1.1.1 11.1.0.1 ip pim anycast-rp 1.1.1.1 12.1.0.2 ip pim anycast-rp 1.1.1.1 192.1.3.7 ip pim anycast-rp 1.1.1.1 192.1.5.4 ! ----------------------------------------------------------------------------