Multicast, one of the most interesting topics and for me one of the most challenging topics
In this lab, I am going to use PIM with Dense & Spare mode to achieve successful join for the multicast ip 239.5.5.5
The network has the basic:
- Interfaces configurations
- OSPF to ping any interface from any router
- loopback for each router
Dense mode
configurations for this mode are quite simple and includes two steps (For each router)
- Define the multicast globally
- Enable the dense mode for each physical interface that will use it
Router1(config)#ip multicast-routing
Router3(config)#int e 0/1
Router3(config-if)#ip pim dense-mode
Router3(config-if)#end
*Dec 24 18:24:35.925: %PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to 192.168.3.1 on interface Ethernet0/1
Now to test, I want router 3 to join the IP 239.5.5.5 (using loopback) and will ping this address from router 1 where the PC is connected
Router3(config)#int loopback 30
Router3(config-if)#ip igmp join-group 239.5.5.5
Multicast has neighbors and table, just like anything else in routers ๐
Router2#show ip pim neighbor
PIM Neighbor Table
Mode: B – Bidir Capable, DR – Designated Router, N – Default DR Priority,
P – Proxy Capable, S – State Refresh Capable, G – GenID Capable
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
192.168.2.1 Ethernet0/1 00:00:24/00:01:20 v2 1 / S P G
192.168.3.1 Ethernet0/2 00:00:53/00:01:21 v2 1 / S P G
Router3#show ip mroute
IP Multicast Routing Table
Flags: D – Dense, S – Sparse, B – Bidir Group, s – SSM Group, C – Connected,
L – Local, P – Pruned, R – RP-bit set, F – Register flag,
T – SPT-bit set, J – Join SPT, M – MSDP created entry, E – Extranet,
X – Proxy Join Timer Running, A – Candidate for MSDP Advertisement,
U – URD, I – Received Source Specific Host Report,
Z – Multicast Tunnel, z – MDT-data group sender,
Y – Joined MDT-data group, y – Sending to MDT-data group,
V – RD & Vector, v – Vector
Outgoing interface flags: H – Hardware switched, A – Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode(*, 239.5.5.5), 00:05:05/stopped, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Ethernet0/1, Forward/Dense, 00:02:38/stopped
Loopback30, Forward/Dense, 00:05:05/stopped(192.168.10.1, 239.5.5.5), 00:00:40/00:02:19, flags: LT
Incoming interface: Ethernet0/1, RPF nbr 192.168.3.2
Outgoing interface list:
Loopback30, Forward/Dense, 00:00:40/stopped(192.168.2.1, 239.5.5.5), 00:00:40/00:02:19, flags: LT
Incoming interface: Ethernet0/1, RPF nbr 192.168.3.2
Outgoing interface list:
Loopback30, Forward/Dense, 00:00:40/stopped(*, 224.0.1.40), 00:08:50/00:02:10, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Ethernet0/1, Forward/Dense, 00:02:38/stopped
Loopback30, Forward/Dense, 00:08:50/stoppedRouter3#
Now ping from Router 1 where the PC is connected
Router1#ping 239.5.5.5 source e 0/2
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 239.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 192.168.40.1Reply to request 0 from 192.168.30.1, 42 ms
Awesome ๐ Getting a reply form Router 3 loopback IP (which joined this mutlicast IP)
Sparse mode:
Now, I want to remove the configurations for dense in each physical interface and add spare mode instead – for all routers
Router2(config)#int range e 0/1 – 2
Router2(config-if-range)#no ip pim dense-mode
*Dec 24 18:37:12.366: %PIM-5-NBRCHG: neighbor 192.168.2.1 DOWN on interface Ethernet0/1 non DR
*Dec 24 18:37:12.392: %PIM-5-NBRCHG: neighbor 192.168.3.1 DOWN on interface Ethernet0/2 non DR
Router2(config-if-range)#ip pim sparse-mode
Router2(config-if-range)#
*Dec 24 18:37:20.041: %PIM-5-NBRCHG: neighbor 192.168.3.1 UP on interface Ethernet0/2
*Dec 24 18:37:20.055: %PIM-5-NBRCHG: neighbor 192.168.2.1 UP on interface Ethernet0/1
*Dec 24 18:37:21.047: %PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to 192.168.2.2 on interface Ethernet0/1
*Dec 24 18:37:21.048: %PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to 192.168.3.2 on interface Ethernet0/2
Let us try to see, what if I ping like dense mode
Router1#ping 239.5.5.5
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 239.5.5.5, timeout is 2 seconds:
.
The ping failed as I haven’t created RP .. all what I need to do is to create the RP and manually enter it for all other routers in the network
Router2(config)#ip pim rp-address 192.168.20.1
Router2(config)#
*Dec 24 18:40:56.086: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
*Dec 24 18:40:56.086: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to up
Test with the ping, and its working … and just for fun, I added loopback 20 (Router 2) to join the same multicast group so we can see multiple replies
Router1#ping 239.5.5.5 source e 0/2
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 239.5.5.5, timeout is 2 seconds:
Packet sent with a source address of 192.168.40.1Reply to request 0 from 192.168.20.1, 8 ms
Reply to request 0 from 192.168.30.1, 9 ms
Reply to request 0 from 192.168.20.1, 8 ms
Reply to request 0 from 192.168.30.1, 8 ms
These are basic configurations to run PIM in both modes ๐