Saturday, January 10, 2009

MSDP - Multicast Source Discovery Protocol




Consider the above scenario where there are two separate Multicast domains. In the left hand side domain the RP is statically configured as 22.22.22.22. On the right hand side domain the RP is statically configured as 33.33.33.33

On the left the workstation has joined multicast group 224.99.99.99
From R2
Router_2#p 224.99.99.99

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 224.99.99.99, timeout is 2 seconds:

Reply to request 0 from 10.0.0.1, 120 ms


On the right the workstation has joined multicast group 225.0.0.1
Router_3#p 225.0.0.1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 225.0.0.1, timeout is 2 seconds:

Reply to request 0 from 150.50.5.69, 80 ms




Now I join the two multicast domains using MSDP. The MSDP configuration reminds me of BGP neighbor configuration.

R2
ip msdp peer 3.3.3.3 connect-source Loopback0

R3
ip msdp peer 2.2.2.2 connect-source Loopback0
Router_2#s ip msdp summary
MSDP Peer Status Summary
Peer Address AS State Uptime/ Reset SA Peer Name
Downtime Count Count
3.3.3.3 ? Up 00:00:17 2 0 ?

Router_3#show ip msdp summary
MSDP Peer Status Summary
Peer Address AS State Uptime/ Reset SA Peer Name
Downtime Count Count
2.2.2.2 ? Up 00:00:08 2 0 ?
Router_3#


Now to test the power of MSDP!! From R3 on the right hand side of the multicast domain I try and ping the host on the left hand side of the multicast domain that is a member of 224.99.99.99

Router_3#p 224.99.99.99

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 224.99.99.99, timeout is 2 seconds:

Reply to request 0 from 10.0.0.1, 232 ms

Success!!!!

From R2 on the left hand side of the multicast domain I try and ping the host on the left hand side of the multicast domain that is a member of 225.0.0.1

Router_2#p 225.0.0.1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 225.0.0.1, timeout is 2 seconds:

Reply to request 0 from 150.50.5.69, 208 ms

Success!!!




Now to take things one step further and introduce MSDP Anycast. MSDP Anycast in the words of CISCO is ‘an intradomain feature that provides redundancy and load-sharing capabilities’. In my own words this features allows two separate Multicast domains to be configured with RPs sharing the same ip address. Should the RP in one domain become unavailable then the RP in the other domain transparently takes over.

In the given scenario I change the RP on the right hand side to share the same ip address (22.22.22.22) as the left hand side domain.

From R3 I can still ping both multicast hosts. To test the redundancy I take down the loopback interface on R3 that has the RP address.

Router_3(config)#int lo1
Router_3(config-if)#shut

I now check I can still ping the muticast host on the left hand side (even though there is actually no active RP in the original right hand side multicast domain).

Router_3#p 224.99.99.99

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 224.99.99.99, timeout is 2 seconds:

Reply to request 0 from 10.0.0.1, 276 ms

Success!!

No comments: