Multicast PIM-ASM/SSM Configuration Guide
35 min
\<font color="#1d50a2">introduction\</font> this guide provides a comprehensive, step by step tutorial for establishing ipv4 multicast networks on the asterfusion open intelligent gateway by leveraging the high performance vpp data plane, you will learn how to build multicast routing architectures that are both highly efficient and scalable for enterprise and data center environments \<font color="#1d50a2">what this guide will accomplish\</font> by following this guide, you will learn how to deploy robust multicast architectures the configuration scenarios are structured into two distinct phases \<font color="#1d50a2">phase 1 establish asm underlay\</font> scenario 1 basic pim sm with static rp establishing a foundational pim asm network using ospf as the underlay routing protocol with a central rendezvous point scenario 2 multicast over bgp deploying pim asm over a bgp underlay to validate advanced rpf checks within a typical spine leaf topology \<font color="#1d50a2">phase 2 \</font> \<font color="#1d50a2">advanced capabilities\</font> scenario 3 pim ssm built directly upon the underlay established in phase 1, this scenario demonstrates how to migrate to a highly efficient, rp less architecture using igmpv3 and explicit (s, g) tree building \<font color="#1d50a2">scenario 1 basic pim sm with static rp\</font> \<font color="#1d50a2">scenario overview\</font> in this scenario, we establish a standard pim sm domain without using loopback interfaces the spine's ethernet1 ip (10 0 1 2) serves as the static rp for the entire domain device roles source dr (leaf1) gateway for the multicast source rp (spine) the central rendezvous point its downlink interface ip (10 0 1 2) is used as the rp address receiver dr (leaf2) gateway for the receiver, running igmpv3 \<font color="#1d50a2">network topology plan\</font> role device interface ip address function source dr leaf1 ethernet 1 (downlink) 192 168 10 1/24 connects to source pc ethernet 2 (uplink) 10 0 1 1/30 connects to spine (ethernet1) rp / spine spine ethernet 1 (downlink) 10 0 1 2/30 connects to leaf1 (rp address) ethernet 3 (downlink) 10 0 2 1/30 connects to leaf2 receiver dr leaf2 ethernet 1 (uplink) 10 0 2 2/30 connects to spine (ethernet3) ethernet 2 (downlink) 192 168 20 1/24 connects to receiver pc \<font color="#1d50a2">configuration steps\</font> \<font color="#1d50a2">configure source dr (leaf1)\</font> leaf1 connects to the source pc via ethernet 1 and the spine via ethernet 2 the critical step is enabling the unknown multicast trap to ensure the first multicast packet is sent to the cpu for pim registration sonic# configure terminal \<font color="#5fd74e"># 1 configure interfaces\</font> sonic(config)# interface ethernet 1 sonic(config if 1)# description link to source pc sonic(config if 1)# ip address 192 168 10 1/24 sonic(config if 1)# ip pim sonic(config if 1)# exit sonic(config)# interface ethernet 2 sonic(config if 2)# description link to spine sonic(config if 2)# ip address 10 0 1 1/30 sonic(config if 2)# ip pim sonic(config if 2)# exit \<font color="#5fd74e"># \</font> \<font color="#5fd74e">2 \</font> \<font color="#5fd74e">enable control plane trap\</font> sonic(config)# unknown multicast trap \<font color="#5fd74e"># 3 configure static rp\</font> sonic(config)# ip pim rp 10 0 1 2 224 0 0 0/4 \<font color="#5fd74e"># 4 configure underlay routing (ospf)\</font> sonic(config)# router ospf sonic(config router)# network 10 0 1 0/30 area 0 sonic(config router)# network 192 168 10 0/24 area 0 sonic(config router)# exit \<font color="#1d50a2">configure spine (rp)\</font> the spine acts as the rendezvous point we use the ip address of ethernet 1 (10 0 1 2) as the rp address for the entire network \<font color="#5fd74e"># 1 configure interfaces\</font> sonic(config)# interface ethernet 1 sonic(config if 1)# description link to leaf1 sonic(config if 1)# ip address 10 0 1 2/30 sonic(config if 1)# ip pim sonic(config if 1)# exit sonic(config)# interface ethernet 3 sonic(config if 3)# description link to leaf2 sonic(config if 3)# ip address 10 0 2 1/30 sonic(config if 3)# ip pim sonic(config if 3)# exit \<font color="#5fd74e"># 2 configure static rp\</font> sonic(config)# ip pim rp 10 0 1 2 224 0 0 0/4 \<font color="#5fd74e"># 3 configure underlay routing (ospf)\</font> sonic(config)# router ospf sonic(config router)# network 10 0 1 0/30 area 0 sonic(config router)# network 10 0 2 0/30 area 0 sonic(config router)# exit \<font color="#1d50a2">configure receiver dr (leaf2)\</font> leaf2 connects to the spine via ethernet 1 and the receiver pc via ethernet 2 igmpv3 is explicitly enabled on the receiver facing interface \<font color="#5fd74e"># 1 configure interfaces\</font> sonic(config)# interface ethernet 1 sonic(config if 1)# description link to spine sonic(config if 1)# ip address 10 0 2 2/30 sonic(config if 1)# ip pim sonic(config if 1)# exit sonic(config)# interface ethernet 2 sonic(config if 2)# description link to receiver pc sonic(config if 2)# ip address 192 168 20 1/24 sonic(config if 2)# ip igmp sonic(config if 2)# ip pim sonic(config if)# exit \<font color="#5fd74e"># 2 configure static rp\</font> sonic(config)# ip pim rp 10 0 1 2 224 0 0 0/4 \<font color="#5fd74e"># 3 configure underlay routing (ospf)\</font> sonic(config)# router ospf sonic(config router)# network 10 0 2 0/30 area 0 sonic(config router)# network 192 168 20 0/24 area 0 sonic(config router)# exit \<font color="#1d50a2">verification\</font> \<font color="#1d50a2">control plane\</font> \<font color="#1d50a2">verification\</font> \<font color="#1d50a2">verify pim neighbors (on spine)\</font> sonic# show ip pim neighbor \<font color="#1d50a2">verify rp mapping (any device)\</font> sonic# show ip pim rp info \<font color="#1d50a2">data plane verification\</font> send multicast traffic from source ( 192 168 10 10 ) to group ( 239 1 1 1 ) and have the receiver join the group \<font color="#1d50a2">leaf1 (source dr) verify registration\</font> sonic# show ip mroute \<font color="#1d50a2">spine (rp) verify forwarding tree\</font> sonic# show ip mroute \<font color="#1d50a2">leaf2 (receiver dr) verify reception\</font> sonic# show ip mroute \<font color="#1d50a2">scenario 2 multicast over bgp (data center architecture)\</font> \<font color="#1d50a2">scenario overview\</font> this scenario replicates a typical data center spine leaf architecture using bgp as the underlay routing protocol unlike ospf, bgp does not automatically flood routing information this scenario validates that the asternos pim stack can correctly perform rpf (reverse path forwarding) checks based on bgp routing tables key changes underlay protocol replaced ospf with bgp routing logic leaf2 must learn the rp address via bgp to send pim join messages \<font color="#1d50a2">configuration steps\</font> \<font color="#1d50a2">configure source dr (leaf1)\</font> leaf1 connects to the source (192 168 10 10) it must advertise the source subnet into bgp so the spine knows where the multicast source is located \<font color="#5fd74e"># 1 interface configuration\</font> sonic(config)# interface ethernet 1 sonic(config if 1)# ip address 192 168 10 1/24 sonic(config if 1)# ip pim sonic(config if 1)# exit sonic(config)# interface ethernet 2 sonic(config if 2)# ip address 10 0 1 1/30 sonic(config if 2)# ip pim sonic(config if 2)# exit \<font color="#5fd74e"># 2 enable control plane trap\</font> sonic#(config)# unknown multicast trap \<font color="#5fd74e"># 3 static rp configuration\</font> sonic(config)# ip pim rp 10 0 1 2 224 0 0 0/4 \<font color="#5fd74e"># 4 bgp configuration (as 65001)\</font> sonic(config)# router bgp 65001 sonic(config router)# bgp router id 1 1 1 1 sonic(config router)# no bgp ebgp requires policy sonic(config router)# bgp default ipv4 unicast sonic(config router)# neighbor 10 0 1 2 remote as 65000 sonic(config router)# address family ipv4 unicast sonic(config router af)# neighbor 10 0 1 2 activate sonic(config router af)# network 192 168 10 0/24 sonic(config router af)# exit sonic(config router)# exit \<font color="#1d50a2">configure spine (rp)\</font> \<font color="#5fd74e"># 1 interface configuration\</font> sonic(config)# interface ethernet 1 sonic(config if 1)# ip address 10 0 1 2/30 sonic(config if 1)# ip pim sonic(config if 1)# exit sonic(config)# interface ethernet 3 sonic(config if 3)# ip address 10 0 2 1/30 sonic(config if 3)# ip pim sonic(config if 3)# exit \<font color="#5fd74e"># 2 static rp configuration\</font> sonic(config)# ip pim rp 10 0 1 2 224 0 0 0/4 \<font color="#5fd74e"># 3 bgp configuration (as 65000)\</font> sonic(config)# router bgp 65000 sonic(config router)# bgp router id 2 2 2 2 sonic(config router)# no bgp ebgp requires policy sonic(config router)# bgp default ipv4 unicast sonic(config router)# neighbor 10 0 1 1 remote as 65001 sonic(config router)# neighbor 10 0 2 2 remote as 65002 sonic(config router)# address family ipv4 unicast sonic(config router af)# neighbor 10 0 1 1 activate sonic(config router af)# neighbor 10 0 2 2 activate sonic(config router af)# network 10 0 1 0/30 sonic(config router af)# exit sonic(config router)# exit \<font color="#1d50a2">configure receiver dr (leaf2)\</font> leaf2 (as 65002) connects to the receiver it learns the rp route via bgp \<font color="#5fd74e"># 1 interface configuration\</font> sonic(config)# interface ethernet 1 sonic(config if 1)# ip address 10 0 2 2/30 sonic(config if 1)# ip pim sonic(config if 1)# exit sonic(config)# interface ethernet 2 sonic(config if 2)# ip address 192 168 20 1/24 sonic(config if 2)# ip pim sonic(config if 2)# ip igmp sonic(config if 2)# exit \<font color="#5fd74e"># 2 static rp configuration\</font> sonic(config)# ip pim rp 10 0 1 2 224 0 0 0/4 \<font color="#5fd74e"># 3 bgp configuration (as 65002)\</font> sonic(config)# router bgp 65002 sonic(config router)# bgp router id 3 3 3 3 sonic(config router)# no bgp ebgp requires policy sonic(config router)# bgp default ipv4 unicast sonic(config router)# neighbor 10 0 2 1 remote as 65000 sonic(config router)# address family ipv4 unicast sonic(config router af)# neighbor 10 0 2 1 activate sonic(config router af)# network 192 168 20 0/24 sonic(config router af)# exit sonic(config router)# exit \<font color="#1d50a2">verification\</font> \<font color="#1d50a2">verify underlay routing (bgp)\</font> sonic# show ip route leaf1 rp leaf2 \<font color="#1d50a2">verify multicast routing (pim over bgp)\</font> check the multicast routing table after the receiver joins the group sonic# show ip mroute leaf1 rp leaf2 \<font color="#1d50a2">scenario 3 pim ssm (source specific multicast)\</font> \<font color="#1d50a2">scenario overview\</font> this scenario demonstrates the transition from asm to pim ssm in this mode, the rp is eliminated, and the multicast distribution tree is built directly from the receiver to the source using igmpv3 \<font color="#1d50a2">configuration steps\</font> this configuration assumes the physical underlay (scenario 1 or 2) is already functional \<font color="#1d50a2">upgrade to igmpv3(leaf2 only)\</font> to process source specific joins, the receiver facing interface on leaf2 must be upgraded to igmp version 3 sonic(config)# interface ethernet 2 sonic(config if)# ip igmp version 3 sonic(config if)# exit \<font color="#1d50a2">global rp cleanup (all devices)\</font> the core of ssm is the complete absence of a rendezvous point you must remove the static rp configuration from leaf1, spine, and leaf2 to tear down the asm shared tree mechanism sonic(config)# no ip pim rp 10 0 1 2 224 0 0 0/4 note (no further router configuration is needed the network is now ready for ssm ) \<font color="#1d50a2">flow triggering requirements\</font> to establish the ssm shortest path tree (spt), the following conditions must be met by the end stations source side outbound multicast traffic must target a destination ip within 232 0 0 0/8 receiver side the host must issue an igmpv3 membership report that includes the specific source ip (192 168 10 10) and group ip \<font color="#1d50a2">verification\</font> \<font color="#1d50a2">verify igmpv3 join\</font> check the igmp groups on leaf2 to ensure the receiver has successfully sent an igmpv3 source specific join sonic# show ip igmp groups \<font color="#1d50a2">verify pim ssm routing table\</font> check the multicast routing table on leaf2 to confirm the shortest path tree (spt) has been established directly to the source sonic# show ip mroute \<font color="#1d50a2">conclusion\</font> this guide has verified the comprehensive multicast routing capabilities of asternos, enabling highly efficient traffic distribution across diverse topologies the completed scenarios demonstrate that asternos provides the essential flexibility required for modern networks, seamlessly supporting both traditional pim asm and advanced, rp less pim ssm architectures
