Skip to content

Example: multicast routing with pim over bier

Alt text

r1

hostname r1
vrf def v1
 rd 1:1
 label-mode per-prefix
 exit
router lsrp4 1
 vrf v1
 router 4.4.4.1
 bier 256 10 1
 exit
router lsrp6 1
 vrf v1
 router 6.6.6.1
 bier 256 10 1
 exit
int lo1
 vrf for v1
 ipv4 addr 2.2.2.1 255.255.255.255
 ipv6 addr 4321::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 router lsrp4 1 ena
 router lsrp6 1 ena
 ipv4 pim ena
 ipv6 pim ena
 ipv4 pim join lo1
 ipv6 pim join lo1
 ipv4 pim bier 1
 ipv6 pim bier 1
 exit
int lo2
 vrf for v1
 ipv4 addr 2.2.2.11 255.255.255.255
 ipv6 addr 4321::11 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 exit
int eth1
 vrf for v1
 ipv4 addr 1.1.1.1 255.255.255.0
 ipv6 addr 1234::1 ffff::
 mpls enable
 mpls ldp4
 mpls ldp6
 router lsrp4 1 ena
 router lsrp6 1 ena
 ipv4 pim ena
 ipv6 pim ena
 ipv4 pim join lo1
 ipv6 pim join lo1
 ipv4 pim bier 1
 ipv6 pim bier 1
 exit
router bgp4 1
 vrf v1
 address uni multi
 local-as 1
 router-id 4.4.4.1
 neigh 2.2.2.4 remote-as 1
 neigh 2.2.2.4 update lo1
 neigh 2.2.2.5 remote-as 1
 neigh 2.2.2.5 update lo1
 red conn
 exit
router bgp6 1
 vrf v1
 address uni multi
 local-as 1
 router-id 6.6.6.1
 neigh 4321::4 remote-as 1
 neigh 4321::4 update lo1
 neigh 4321::5 remote-as 1
 neigh 4321::5 update lo1
 red conn
 exit

r2

hostname r2
vrf def v1
 rd 1:1
 label-mode per-prefix
 exit
router lsrp4 1
 vrf v1
 router 4.4.4.2
 bier 256 10 2
 red conn
 exit
router lsrp6 1
 vrf v1
 router 6.6.6.2
 bier 256 10 2
 red conn
 exit
int lo1
 vrf for v1
 ipv4 addr 2.2.2.2 255.255.255.255
 ipv6 addr 4321::2 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 exit
int eth1
 vrf for v1
 ipv4 addr 1.1.1.2 255.255.255.0
 ipv6 addr 1234::2 ffff::
 mpls enable
 mpls ldp4
 mpls ldp6
 router lsrp4 1 ena
 router lsrp6 1 ena
 exit
int eth2
 vrf for v1
 ipv4 addr 1.1.2.2 255.255.255.0
 ipv6 addr 1235::2 ffff::
 mpls enable
 mpls ldp4
 mpls ldp6
 router lsrp4 1 ena
 router lsrp6 1 ena
 exit

r3

hostname r3
vrf def v1
 rd 1:1
 label-mode per-prefix
 exit
router lsrp4 1
 vrf v1
 router 4.4.4.3
 bier 256 10 3
 red conn
 exit
router lsrp6 1
 vrf v1
 router 6.6.6.3
 bier 256 10 3
 red conn
 exit
int lo1
 vrf for v1
 ipv4 addr 2.2.2.3 255.255.255.255
 ipv6 addr 4321::3 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 exit
int eth1
 vrf for v1
 ipv4 addr 1.1.2.3 255.255.255.0
 ipv6 addr 1235::3 ffff::
 mpls enable
 mpls ldp4
 mpls ldp6
 router lsrp4 1 ena
 router lsrp6 1 ena
 exit
int eth2
 vrf for v1
 ipv4 addr 1.1.3.3 255.255.255.0
 ipv6 addr 1236::3 ffff::
 mpls enable
 mpls ldp4
 mpls ldp6
 router lsrp4 1 ena
 router lsrp6 1 ena
 exit
int eth3
 vrf for v1
 ipv4 addr 1.1.4.3 255.255.255.0
 ipv6 addr 1237::3 ffff::
 mpls enable
 mpls ldp4
 mpls ldp6
 router lsrp4 1 ena
 router lsrp6 1 ena
 exit

r4

hostname r4
vrf def v1
 rd 1:1
 label-mode per-prefix
 exit
router lsrp4 1
 vrf v1
 router 4.4.4.4
 bier 256 10 4
 exit
router lsrp6 1
 vrf v1
 router 6.6.6.4
 bier 256 10 4
 exit
int lo1
 vrf for v1
 ipv4 addr 2.2.2.4 255.255.255.255
 ipv6 addr 4321::4 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 router lsrp4 1 ena
 router lsrp6 1 ena
 ipv4 pim ena
 ipv6 pim ena
 ipv4 pim join lo1
 ipv6 pim join lo1
 ipv4 pim bier 4
 ipv6 pim bier 4
 exit
int lo2
 vrf for v1
 ipv4 addr 2.2.2.14 255.255.255.255
 ipv6 addr 4321::14 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 exit
int eth1
 vrf for v1
 ipv4 addr 1.1.3.4 255.255.255.0
 ipv6 addr 1236::4 ffff::
 mpls enable
 mpls ldp4
 mpls ldp6
 router lsrp4 1 ena
 router lsrp6 1 ena
 ipv4 pim ena
 ipv6 pim ena
 ipv4 pim join lo1
 ipv6 pim join lo1
 ipv4 pim bier 4
 ipv6 pim bier 4
 exit
router bgp4 1
 vrf v1
 address uni multi
 local-as 1
 router-id 4.4.4.4
 neigh 2.2.2.1 remote-as 1
 neigh 2.2.2.1 update lo1
 red conn
 exit
router bgp6 1
 vrf v1
 address uni multi
 local-as 1
 router-id 6.6.6.4
 neigh 4321::1 remote-as 1
 neigh 4321::1 update lo1
 red conn
 exit
ipv4 multi v1 join 232.2.2.2 2.2.2.1
ipv6 multi v1 join ff06::1 4321::1

r5

hostname r5
vrf def v1
 rd 1:1
 label-mode per-prefix
 exit
router lsrp4 1
 vrf v1
 router 4.4.4.5
 bier 256 10 5
 exit
router lsrp6 1
 vrf v1
 router 6.6.6.5
 bier 256 10 5
 exit
int lo1
 vrf for v1
 ipv4 addr 2.2.2.5 255.255.255.255
 ipv6 addr 4321::5 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 router lsrp4 1 ena
 router lsrp6 1 ena
 ipv4 pim ena
 ipv6 pim ena
 ipv4 pim join lo1
 ipv6 pim join lo1
 ipv4 pim bier 5
 ipv6 pim bier 5
 exit
int lo2
 vrf for v1
 ipv4 addr 2.2.2.15 255.255.255.255
 ipv6 addr 4321::15 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 exit
int eth1
 vrf for v1
 ipv4 addr 1.1.4.5 255.255.255.0
 ipv6 addr 1237::5 ffff::
 mpls enable
 mpls ldp4
 mpls ldp6
 router lsrp4 1 ena
 router lsrp6 1 ena
 ipv4 pim ena
 ipv6 pim ena
 ipv4 pim join lo1
 ipv6 pim join lo1
 ipv4 pim bier 5
 ipv6 pim bier 5
 exit
router bgp4 1
 vrf v1
 address uni multi
 local-as 1
 router-id 4.4.4.5
 neigh 2.2.2.1 remote-as 1
 neigh 2.2.2.1 update lo1
 red conn
 exit
router bgp6 1
 vrf v1
 address uni multi
 local-as 1
 router-id 6.6.6.5
 neigh 4321::1 remote-as 1
 neigh 4321::1 update lo1
 red conn
 exit
ipv4 multi v1 join 232.2.2.2 2.2.2.1
ipv6 multi v1 join ff06::1 4321::1
r1 tping 100 20 2.2.2.2 vrf v1 sou lo1
r1 tping 100 20 4321::2 vrf v1 sou lo1
r1 tping 100 20 2.2.2.3 vrf v1 sou lo1
r1 tping 100 20 4321::3 vrf v1 sou lo1
r1 tping 100 20 2.2.2.4 vrf v1 sou lo1
r1 tping 100 20 4321::4 vrf v1 sou lo1
r1 tping 100 20 2.2.2.5 vrf v1 sou lo1
r1 tping 100 20 4321::5 vrf v1 sou lo1
r2 tping 100 20 2.2.2.1 vrf v1 sou lo1
r2 tping 100 20 4321::1 vrf v1 sou lo1
r2 tping 100 20 2.2.2.3 vrf v1 sou lo1
r2 tping 100 20 4321::3 vrf v1 sou lo1
r2 tping 100 20 2.2.2.4 vrf v1 sou lo1
r2 tping 100 20 4321::4 vrf v1 sou lo1
r2 tping 100 20 2.2.2.5 vrf v1 sou lo1
r2 tping 100 20 4321::5 vrf v1 sou lo1
r3 tping 100 20 2.2.2.1 vrf v1 sou lo1
r3 tping 100 20 4321::1 vrf v1 sou lo1
r3 tping 100 20 2.2.2.2 vrf v1 sou lo1
r3 tping 100 20 4321::2 vrf v1 sou lo1
r3 tping 100 20 2.2.2.4 vrf v1 sou lo1
r3 tping 100 20 4321::4 vrf v1 sou lo1
r3 tping 100 20 2.2.2.5 vrf v1 sou lo1
r3 tping 100 20 4321::5 vrf v1 sou lo1
r4 tping 100 20 2.2.2.1 vrf v1 sou lo1
r4 tping 100 20 4321::1 vrf v1 sou lo1
r4 tping 100 20 2.2.2.2 vrf v1 sou lo1
r4 tping 100 20 4321::2 vrf v1 sou lo1
r4 tping 100 20 2.2.2.3 vrf v1 sou lo1
r4 tping 100 20 4321::3 vrf v1 sou lo1
r4 tping 100 20 2.2.2.5 vrf v1 sou lo1
r4 tping 100 20 4321::5 vrf v1 sou lo1
r5 tping 100 20 2.2.2.1 vrf v1 sou lo1
r5 tping 100 20 4321::1 vrf v1 sou lo1
r5 tping 100 20 2.2.2.2 vrf v1 sou lo1
r5 tping 100 20 4321::2 vrf v1 sou lo1
r5 tping 100 20 2.2.2.3 vrf v1 sou lo1
r5 tping 100 20 4321::3 vrf v1 sou lo1
r5 tping 100 20 2.2.2.4 vrf v1 sou lo1
r5 tping 100 20 4321::4 vrf v1 sou lo1
r1 tping 100 20 2.2.2.14 vrf v1 sou lo2
r1 tping 100 20 4321::14 vrf v1 sou lo2
r1 tping 100 20 2.2.2.15 vrf v1 sou lo2
r1 tping 100 20 4321::15 vrf v1 sou lo2
r4 tping 100 20 2.2.2.11 vrf v1 sou lo2
r4 tping 100 20 4321::11 vrf v1 sou lo2
r5 tping 100 20 2.2.2.11 vrf v1 sou lo2
r5 tping 100 20 4321::11 vrf v1 sou lo2
r1 tping 200 10 232.2.2.2 vrf v1 sou lo1 multi
r1 tping 200 10 ff06::1 vrf v1 sou lo1 multi
  1. Install ContainerLab as described here
  2. Fetch rout-mcast13 file
  3. Launch ContainerLab rout-mcast13.yml topology:

   containerlab deploy --topo rout-mcast13.yml  
4. Destroy ContainerLab rout-mcast13.yml topology:

   containerlab destroy --topo rout-mcast13.yml  
5. Copy-paste configuration for each node in the lab topology

  1. Fetch or compile freeRtr rtr.jar file.
    You can grab it here
  2. Fetch rout-mcast13.tst file here
  3. Launch rout-mcast13.tst test:

   java -jar ../../rtr.jar test tester rout-mcast13 path ./ temp ./ wait
4. Destroy freeRtr rout-mcast13.tst test:

   Ctrl-C (In freeRtr test window)