MSDP



 PIM DR-

ip multicast-routing
!
interface Loopback 0
 ip address 1.1.1.1 255.255.255.255
!
interface fastethernet 0/0
 ip address 172.16.1.1 255.255.255.252
 ip pim sparse-mode
!
interface fastethernet 0/1
 ip address 10.1.1.1 255.255.255.252
 ip pim sparse-mode
!
router ospf 1
 network 1.1.1.1 0.0.0.0 area 0
 network 172.16.1.0 0.0.0.3 area 0
 network 10.1.1.0 0.0.0.3 area 0
!
 Router A-

ip multicast-routing
!
interface Loopback 0
 ip address 2.2.2.2 255.255.255.255
 ip pim sparse-mode
!
interface fastethernet 0/0
 ip address 10.1.1.2 255.255.255.252
 ip pim sparse-mode
!
router ospf 1
 network 2.2.2.2 0.0.0.0 area 0
 network 10.1.1.0 0.0.0.3 area 0
 redistribute bgp 100 subnets metric 100
!
interface serial 0/0
 ip address 192.168.1.1 255.255.255.252
 ip pim sparse-mode
!
router bgp 100
 neighbor 192.168.1.2 remote-as 200
 redistribute ospf 1 metric 10 match internal external
 !
 address-family ipv4 multicast
 neighbor 192.168.1.2 activate
 network 192.168.1.0 mask 255.255.255.252

 exit-address-family
!
ip msdp peer 192.168.1.2
!
ip pim rp-address 2.2.2.2
!


Router B-

ip multicast-routing
!
interface Loopback 0
 ip address 3.3.3.3 255.255.255.255
 ip pim sparse-mode
!
interface fastethernet 0/0
 ip address 172.16.2.1 255.255.255.252
 ip pim sparse-mode
!
router ospf 1
 network 3.3.3.3 0.0.0.0 area 0
 network 172.16.2.0 0.0.0.3 area 0
 redistribute bgp 200 subnets metric 100
!
interface serial 0/0
 ip address 192.168.1.2 255.255.255.252
 ip pim sparse-mode
!
router bgp 200
 neighbor 192.168.1.1 remote-as 100
 redistribute ospf 1 metric 10 match internal external
 !
 address-family ipv4 multicast
 neighbor 192.168.1.1 activate
 network 192.168.1.0 mask 255.255.255.252
 exit-address-family

!
ip msdp peer 192.168.1.1
!
ip pim rp-address 3.3.3.3
!

To view MSDP peer status, use

RouterA# show ip msdp peer
MSDP Peer 192.168.1.2 (?), AS 200
  Connection status:
    State: Up, Resets: 1, Connection source: none configured
    Uptime(Downtime): 01:03:44, Messages sent/received: 72/71
    Output messages discarded: 0
    Connection and counters cleared 01:15:14 ago
  SA Filtering:
    Input (S,G) filter: none, route-map: none
    Input RP filter: none, route-map: none
    Output (S,G) filter: none, route-map: none
    Output RP filter: none, route-map: none
  SA-Requests:
    Input filter: none
  Peer ttl threshold: 0
  SAs learned from this peer: 0
    Input queue size: 0, Output queue size: 0
  Message counters:
    RPF Failure count: 0
    SA Messages in/out: 23/18
    SA Requests in: 0
    SA Responses out: 0
    Data Packets in/out: 5/6

Suppose RouterB already has a non-empty outgoing interface list for (*, 239.1.1.1) entry due to a member in the domain for group 239.1.1.1.

Now the source connected to PIM-DR starts sourcing multicast traffic for group 239.1.1.1. The DR connected to the source sends Register message to the RP. The RP sends Register-Stop message back to the DR. The RP also creates an SA message as (10.1.1.1, 239.1.1.1) with RP address as 2.2.2.2 and sends the SA message to its MSDP peer RouterB. Here, the RP address received by RouterB is 192.168.1.1. This is because RouterA sends the SA message to RouterB using its outgoing interface. To change this default behaviour, the ip msdp originator-id command can be used.

RouterB# show ip msdp sa-cache
MSDP Source-Active Cache - 1 entries
(10.1.1.1, 239.1.1.1), RP 192.168.1.1, MBGP/AS 200, 00:21:19/00:05:07, Peer 192.168.1.1

The mroute table on RouterA indicates that (10.1.1.1, 239.1.1.1) entry is a candidate to be advertised to its MSDP peer RouterB indicated by flag "A".

RouterA# 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:00:08/stopped, RP 2.2.2.2, flags: SP
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list: Null

(10.1.1.1, 239.1.1.1), 00:00:08/00:02:51, flags: TA
  Incoming interface: FastEthernet0/0, RPF nbr 172.16.1.1
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:00:07/00:03:22


Since RouterB has non-empty OIL for (*, 239.1.1.1), it creates an (S, G) entry i.e. (10.1.1.1, 239.1.1.1) in its multicast routing table with RPF neighbor as its MSDP peer and RPF interface as the Serial 0/0. It then forwards the multicast traffic to the receiver over its outgoing interface. The flag "M" indicates that the entry is learned via MSDP.

RouterB# 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:23:42/00:03:21, RP 3.3.3.3, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:23:42/00:03:21

(10.1.1.1, 239.1.1.1), 00:00:24/00:03:21, flags: MT
  Incoming interface: Serial0/0, RPF nbr 192.168.1.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:00:24/00:03:21