Example for Configuring PIM-SM Inter-domain Multicast Using MSDP
Networking Requirements
As shown in Figure 6-10, two autonomous systems (ASs) exist on the network. Each AS contains at least one Protocol Independent Multicast Sparse Mode (PIM-SM) domain, and each PIM-SM domain may contain no or one multicast source and receiver. The receiver in PIM-SM2 domain wants to receive the multicast data sent by both S3 in PIM-SM3 and S1 in PIM-SM1.
Configuration Roadmap
The configuration roadmap is as follows:
Configure IP addresses for the interfaces on each router. Configure Open Shortest Path First (OSPF) in the ASs to ensure route reachability within each AS.
Configure External Border Gateway Protocol (EBGP) peers between ASs and import BGP and OSPF routes into each other's routing table to ensure route reachability between ASs.
Enable multicast and PIM-SM on each interface. Configure a BSR boundary to divide the PIM-SM domain and enable IGMP on interfaces connected to network segments of receiver hosts.
Configure C-BSRs and C-RPs. Configure the RPs in PIM-SM1 and PIM-SM2 on the ASBRs.
Set up MSDP peer relationships between RPs in PIM-SM domains. Configure MSDP peers and EBGP peers between ASs to use the same interface address. According to the RPF rule, routers receive SA messages from the next hop destined for the source RP.
Procedure
- Configure IP addresses for interfaces and configure a unicast routing protocol on each router.
# According to Figure 6-10, configure IP addresses and masks for the interfaces on each router. Configure OSPF between routers. Ensure network connectivity in each AS and enable each router to update routes using the unicast routing protocol. The configuration details are not mentioned here.
- Configure EBGP peers between ASs and import routes of BGP and OSPF into each other's routing table.
# Configure EBGP on RouterB and import OSPF routes to BGP.
[RouterB] bgp 100 [RouterB-bgp] router-id 10.10.1.1 [RouterB-bgp] peer 192.168.2.2 as-number 200 [RouterB-bgp] ipv4-family multicast [RouterB-bgp-af-multicast] peer 192.168.2.2 enable [RouterB-bgp-af-multicast] quit [RouterB-bgp] import-route ospf 1 [RouterB-bgp] quit
# Configure EBGP on RouterC and import OSPF routes to BGP.
[RouterC] bgp 200 [RouterC-bgp] router-id 10.10.1.2 [RouterC-bgp] peer 192.168.2.1 as-number 100 [RouterC-bgp] ipv4-family multicast [RouterC-bgp-af-multicast] peer 192.168.2.1 enable [RouterC-bgp-af-multicast] quit [RouterC-bgp] import-route ospf 1 [RouterC-bgp] quit
# Import BGP routes to OSPF on RouterB. The configuration on RouterC is similar to the configuration on RouterB, and is not mentioned here.
[RouterB] ospf 1 [RouterB-ospf-1] import-route bgp [RouterB-ospf-1] quit
- Enable multicast and PIM-SM on each interface. Configure a BSR boundary to divide the PIM-SM domain and enable IGMP on interfaces connected to network segments of receiver hosts.
# Enable multicast on RouterB and enable PIM-SM on each interface. The configurations on other routers are similar to the configuration on RouterB, and are not mentioned here.
[RouterB] multicast routing-enable [RouterB] interface gigabitethernet 2/0/0 [RouterB-GigabitEthernet2/0/0] pim sm [RouterB-GigabitEthernet2/0/0] quit [RouterB] interface gigabitethernet 1/0/0 [RouterB-GigabitEthernet1/0/0] pim sm
# Configure a BSR boundary on GE1/0/0 of RouterB.
[RouterB-GigabitEthernet1/0/0] pim bsr-boundary [RouterB-GigabitEthernet1/0/0] quit
# Configure BSR boundaries on GE1/0/0 and GE3/0/0 of RouterC. Configure a BSR boundary on GE3/0/0 of RouterE. The configurations on RouterC and RouterE are similar to the configuration on RouterB, and are not mentioned here.
# Enable IGMP on the interface connecting to RouterD to the user network segment.
[RouterD] interface gigabitethernet 1/0/0 [RouterD-GigabitEthernet1/0/0] igmp enable
- Configure C-BSRs and C-RPs.
# Create a Loopback0 interface, and then configure the C-BSR and C-RP on Loopback0 of RouterB. The configurations on RouterC and RouterE are similar to the configuration on RouterB, and are not mentioned here.
[RouterB] interface loopback 0 [RouterB-LoopBack0] ip address 10.10.1.1 255.255.255.255 [RouterB-LoopBack0] pim sm [RouterB-LoopBack0] quit [RouterB] pim [RouterB-pim] c-bsr loopback 0 [RouterB-pim] c-rp loopback 0 [RouterB-pim] quit
- Configuring MSDP peers.
# Configure an MSDP peer on RouterB.
[RouterB] msdp [RouterB-msdp] peer 192.168.2.2 connect-interface gigabitethernet 1/0/0 [RouterB-msdp] quit
# Configure MSDP peers on RouterC.
[RouterC] msdp [RouterC-msdp] peer 192.168.2.1 connect-interface gigabitethernet 1/0/0 [RouterC-msdp] peer 192.168.4.2 connect-interface gigabitethernet 3/0/0 [RouterC-msdp] quit
# Configure an MSDP peer on RouterE.
[RouterE] msdp [RouterE-msdp] peer 192.168.4.1 connect-interface gigabitethernet 3/0/0 [RouterE-msdp] quit
- Verify the configuration.
# Run the display bgp peer command to view the BGP peer relationships among routers. The following output shows the BGP peers of RouterB and RouterC:
<RouterB> display bgp peer BGP local router ID : 10.10.1.1 Local AS number : 100 Total number of peers : 1 Peers in established state : 1 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 192.168.2.2 4 200 24 21 0 00:13:09 Established 6
<RouterC> display bgp peer BGP local router ID : 10.10.1.2 Local AS number : 200 Total number of peers : 1 Peers in established state : 1 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 192.168.2.1 4 100 18 16 0 00:12:04 Established 1
# Run the display bgp routing-table command to view the BGP routing table on a router. The following output shows the BGP routing table on RouterC:
[RouterC] display bgp routing-table BGP Local router ID is 10.10.1.2 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 22 Network NextHop MED LocPrf PrefVal Path/Ogn *> 10.10.1.1/32 0.0.0.0 1 0 ? * 192.168.2.1 0 0 100? *> 10.10.1.2/32 0.0.0.0 0 0 ? * 192.168.2.1 1 0 100? *> 10.10.1.3/32 0.0.0.0 1 0 ? * 192.168.2.1 2 0 100? *> 10.110.1.0/24 0.0.0.0 3 0 ? * 192.168.2.1 2 0 100? *> 10.110.2.0/24 0.0.0.0 2 0 ? * 192.168.2.1 3 0 100? *> 10.110.3.0/24 0.0.0.0 3 0 ? * 192.168.2.1 4 0 100? *> 192.168.1.0 0.0.0.0 2 0 ? * 192.168.2.1 0 0 100? *> 192.168.2.0 0.0.0.0 0 0 ? 192.168.2.1 0 0 100? *> 192.168.3.0 0.0.0.0 0 0 ? * 192.168.2.1 2 0 100? *> 192.168.4.0 0.0.0.0 0 0 ? * 192.168.2.1 2 0 100? *> 192.168.5.0 0.0.0.0 2 0 ? * 192.168.2.1 3 0 100?
# Run the display msdp brief command to view the status of the MSDP peers on routers. The following output shows summary information about MSDP peers on RouterB, RouterC and RouterE:
<RouterB> display msdp brief MSDP Peer Brief Information of VPN-Instance: public net Configured Up Listen Connect Shutdown Down 1 1 0 0 0 0 Peer's Address State Up/Down time AS SA Count Reset Count 192.168.2.2 Up 00:12:27 200 13 0
<RouterC> display msdp brief MSDP Peer Brief Information of VPN-Instance: public net Configured Up Listen Connect Shutdown Down 2 2 0 0 0 0 Peer's Address State Up/Down time AS SA Count Reset Count 192.168.2.1 Up 01:07:08 100 8 0 192.168.4.2 Up 00:06:39 ? 13 0
<RouterE> display msdp brief MSDP Peer Brief Information of VPN-Instance: public net Configured Up Listen Connect Shutdown Down 1 1 0 0 0 0 Peer's Address State Up/Down time AS SA Count Reset Count 192.168.4.1 Up 00:15:32 ? 8 0
# Run the display msdp peer-status command to view the details about MSDP peers on routers. The following output shows the details about the MSDP peer of RouterB:
<RouterB> display msdp peer-status MSDP Peer Information of VPN-Instance: public net MSDP Peer 192.168.2.2, AS 200 Description: Information about connection status: State: Up Up/down time: 00:15:47 Resets: 0 Connection interface: Gigabitethernet1/0/0 (192.168.2.1) Number of sent/received messages: 16/16 Number of discarded output messages: 0 Elapsed time since last connection or counters clear: 00:17:51 Information about (Source, Group)-based SA filtering policy: Import policy: none Export policy: none Information about SA-Requests: Policy to accept SA-Request messages: none Sending SA-Requests status: disable Minimum TTL to forward SA with encapsulated data: 0 SAs learned from this peer: 0, SA-cache maximum for the peer: none Input queue size: 0, Output queue size: 0 Counters for MSDP message: Count of RPF check failure: 0 Incoming/outgoing SA messages: 0/0 Incoming/outgoing SA requests: 0/0 Incoming/outgoing SA responses: 0/0 Incoming/outgoing data packets: 0/0 Peer authentication: unconfigured Peer authentication type: none
# Run the display pim routing-table command to view the PIM routing table on a router. When S1 (10.110.1.2/24) in PIM-SM1 and S3 (10.110.3.2/24) in PIM-SM3 send multicast data to multicast group G (225.1.1.1), Receiver (10.110.2.2/24) in PIM-SM2 receives the multicast data sent to G. The following output shows the PIM routing tables on RouterB and RouterC:
<RouterB> display pim routing-table VPN-Instance: public net Total 0 (*, G) entry; 1 (S, G) entry (10.110.1.2, 225.1.1.1) RP: 10.10.1.1(local) Protocol: pim-sm, Flag: SPT EXT ACT UpTime: 00:00:42 Upstream interface: gigabitethernet2/0/0 Upstream neighbor: 192.168.1.1 RPF prime neighbor: 192.168.1.1 Downstream interface(s) information: Total number of downstreams: 1 1: Gigabitethernet1/0/0 Protocol: pim-sm, UpTime: 00:00:42, Expires:-
<RouterC> display pim routing-table VPN-Instance: public net Total 1 (*, G) entry; 2 (S, G) entries (*, 225.1.1.1) RP: 10.10.1.2(local) Protocol: pim-sm, Flag: WC RPT UpTime: 00:13:46 Upstream interface: NULL, Upstream neighbor: NULL RPF prime neighbor: NULL Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet2/0/0, Protocol: pim-sm, UpTime: 00:13:46, Expires:- (10.110.1.2, 225.1.1.1) RP: 10.10.1.2 Protocol: pim-sm, Flag: SPT MSDP ACT UpTime: 00:00:42 Upstream interface: GigabitEthernet1/0/0 Upstream neighbor: 192.168.2.1 RPF prime neighbor: 192.168.2.1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet2/0/0 Protocol: pim-sm, UpTime: 00:00:42, Expires:- (10.110.3.2, 225.1.1.1) RP: 10.10.1.2 Protocol: pim-sm, Flag: SPT MSDP ACT UpTime: 00:00:42 Upstream interface: GigabitEthernet3/0/0 Upstream neighbor: 192.168.4.2 RPF prime neighbor: 192.168.4.2 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet2/0/0 Protocol: pim-sm, UpTime: 00:00:42, Expires:-
Configuration Files
RouterA configuration file
# sysname RouterA # multicast routing-enable # interface Gigabitethernet 1/0/0 ip address 10.110.1.1 255.255.255.0 pim sm # interface Gigabitethernet 2/0/0 ip address 192.168.1.1 255.255.255.0 pim sm # ospf 1 area 0.0.0.0 network 10.110.1.0 0.0.0.255 network 192.168.1.0 0.0.0.255 # return
RouterB configuration file
# sysname RouterB # multicast routing-enable # interface GigabitEthernet1/0/0 ip address 192.168.2.1 255.255.255.0 pim bsr-boundary pim sm # interface GigabitEthernet2/0/0 ip address 192.168.1.2 255.255.255.0 pim sm # interface LoopBack0 ip address 10.10.1.1 255.255.255.255 pim sm # bgp 100 router-id 10.10.1.1 peer 192.168.2.2 as-number 200 # ipv4-family unicast undo synchronization import-route ospf 1 peer 192.168.2.2 enable # ipv4-family multicast undo synchronization peer 192.168.2.2 enable # ospf 1 import-route bgp area 0.0.0.0 network 10.10.1.1 0.0.0.0 network 192.168.1.0 0.0.0.255 # pim c-bsr LoopBack0 c-rp LoopBack0 # msdp peer 192.168.2.2 connect-interface GigabitEthernet1/0/0 # return
RouterC configuration file
# sysname RouterC # multicast routing-enable # interface GigabitEthernet1/0/0 ip address 192.168.2.2 255.255.255.0 pim bsr-boundary pim sm # interface GigabitEthernet2/0/0 ip address 192.168.3.1 255.255.255.0 pim sm # interface GigabitEthernet3/0/0 ip address 192.168.4.1 255.255.255.0 pim bsr-boundary pim sm # interface LoopBack0 ip address 10.10.1.2 255.255.255.255 pim sm # bgp 200 router-id 10.10.1.2 peer 192.168.2.1 as-number 100 # ipv4-family unicast undo synchronization import-route ospf 1 peer 192.168.2.1 enable # ipv4-family multicast undo synchronization peer 192.168.2.1 enable # ospf 1 import-route bgp area 0.0.0.0 network 10.10.1.2 0.0.0.0 network 192.168.3.0 0.0.0.255 network 192.168.4.0 0.0.0.255 # pim c-bsr LoopBack0 c-rp LoopBack0 # msdp peer 192.168.2.1 connect-interface GigabitEthernet1/0/0 peer 192.168.4.2 connect-interface GigabitEthernet3/0/0 # return
RouterD configuration file
# sysname RouterD # multicast routing-enable # interface GigabitEthernet1/0/0 ip address 10.110.2.1 255.255.255.0 pim sm igmp enable # interface GigabitEthernet2/0/0 ip address 192.168.3.2 255.255.255.0 pim sm # ospf 1 area 0.0.0.0 network 10.110.2.0 0.0.0.255 network 192.168.3.0 0.0.0.255 # return
RouterE configuration file
# sysname RouterE # multicast routing-enable # interface GigabitEthernet2/0/0 ip address 192.168.5.1 255.255.255.0 pim sm # interface GigabitEthernet3/0/0 ip address 192.168.4.2 255.255.255.0 pim bsr-boundary pim sm # interface LoopBack0 ip address 10.10.1.3 255.255.255.255 pim sm # ospf 1 area 0.0.0.0 network 10.10.1.3 0.0.0.0 network 192.168.4.0 0.0.0.255 network 192.168.5.0 0.0.0.255 # pim c-bsr LoopBack0 c-rp LoopBack0 # msdp peer 192.168.4.1 connect-interface GigabitEthernet3/0/0 # return
RouterF configuration file
# sysname RouterF # multicast routing-enable # interface GigabitEthernet1/0/0 ip address 10.110.3.1 255.255.255.0 pim sm # interface GigabitEthernet2/0/0 ip address 192.168.5.2 255.255.255.0 pim sm # ospf 1 area 0.0.0.0 network 10.110.3.0 0.0.0.255 network 192.168.5.0 0.0.0.255 # return