Example for Configuring Anycast RP Using IPv4 PIM
Applicable Products and Versions
This example applies to all models (except the CE6810LI) and all versions.
For details about the mapping between software versions and switch models, see the Hardware Query Tool.
Networking Requirements
HostA and HostB in Figure 2-29 receive VoD information in multicast mode. When the network is overloaded or traffic is concentrated on a rendezvous point (RP), the RP may be overburdened or fails and the route convergence may be slow. HostB is required to join the closest RP to fast receive the multicast data.
Device |
VLAN and IP Address |
Interface Number |
Description |
---|---|---|---|
SwitchA |
VLAN: 11 IP Address: 10.110.1.1/24 |
10GE1/0/1 |
Source |
VLAN: 10 IP Address: 192.168.1.1/24 |
10GE2/0/2 |
SwitchC |
|
SwitchB |
VLAN: 20 IP Address: 192.168.2.1/24 |
10GE1/0/1 |
SwitchD |
SwitchC |
VLAN: 30 IP Address: 192.168.3.1/24 |
10GE1/0/1 |
SwitchD |
VLAN: 10 IP Address: 192.168.1.2/24 |
10GE2/0/2 |
SwitchA |
|
VLAN: 21 IP Address: 10.110.2.1/24 |
10GE3/0/3 |
HostA |
|
192.168.150.1/32 |
Loopback0 |
NA |
|
192.168.150.2/32 |
Loopback1 |
NA |
|
SwitchD |
VLAN: 20 IP Address: 192.168.2.2/24 |
10GE1/0/1 |
SwitchB |
VLAN: 31 IP Address: 10.110.3.1/24 |
10GE2/0/2 |
HostB |
|
VLAN: 30 IP Address: 192.168.3.2/24 |
10GE3/0/3 |
SwitchC |
|
192.168.150.1/32 |
Loopback0 |
NA |
|
192.168.150.3/32 |
Loopback1 |
NA |
Configuration Roadmap
Configuring Anycast RP using IPv4 PIM reduces the burden on an RP and hosts can join the closest RP.
Configure IP addresses and unicast routes for interfaces on each switch to ensure connectivity at the network layer.
Configure basic multicast functions so that multicast data can be forwarded. Enable multicast, enable PIM-SM and configure candidate bootstrap router (C-BSR) and candidate rendezvous point (C-RP) on each interface, and enable Internet Group Management Protocol (IGMP) on interfaces that connect the switch and hosts.
Configure anycast RP to allow HostB to fast receive multicast data. Configure SwitchC and SwitchD as the anycast RP peers. HostB joins the closest SwitchD. After receiving the source multicast data, SwitchA encapsulates the data into Register messages and sends the message to SwitchC. SwitchC forwards the Register message to SwitchD. Host B then receives the multicast source data.
Procedure
- Configure an IP address for each interface on the switch and a unicast routing protocol.
Configure the IP address and mask for each interface on the switch shown in Table 2-7, and configure Open Shortest Path First (OSPF) on each switch to ensure that switches can communicate.
# Add interfaces of SwitchC to VLANs. The configuration of SwitchA, SwitchB, and SwitchD are similar to the configuration of SwitchC, and are not mentioned.
<HUAWEI> system-view [~HUAWEI] sysname SwitchC [*HUAWEI] commit [~SwitchC] vlan batch 10 21 30 [*SwitchC] interface 10ge 1/0/1 [*SwitchC-10GE1/0/1] port link-type trunk [*SwitchC-10GE1/0/1] undo port trunk allow-pass vlan 1 [*SwitchC-10GE1/0/1] port trunk allow-pass vlan 30 [*SwitchC-10GE1/0/1] quit [*SwitchC] interface 10ge 2/0/2 [*SwitchC-10GE2/0/2] port link-type trunk [*SwitchC-10GE2/0/2] undo port trunk allow-pass vlan 1 [*SwitchC-10GE2/0/2] port trunk allow-pass vlan 10 [*SwitchC-10GE2/0/2] quit [*SwitchC] interface 10ge 2/0/3 [*SwitchC-10GE2/0/3] port default vlan 21 [*SwitchC-10GE2/0/3] quit [*SwitchC] commit
# Assign IP addresses to interfaces on SwitchC. The configuration of SwitchA, SwitchB, and SwitchD are similar to the configuration of SwitchC, and are not mentioned.
[~SwitchC] interface vlanif 10 [*SwitchC-Vlanif10] ip address 192.168.1.2 24 [*SwitchC-Vlanif10] quit [*SwitchC] interface vlanif 21 [*SwitchC-Vlanif21] ip address 10.110.2.1 24 [*SwitchC-Vlanif21] quit [*SwitchC] interface vlanif 30 [*SwitchC-Vlanif30] ip address 192.168.3.1 24 [*SwitchC-Vlanif30] quit [*SwitchC] interface loopback 0 [*SwitchC-LoopBack0] ip address 192.168.150.1 32 [*SwitchC-LoopBack0] quit [*SwitchC] interface loopback 1 [*SwitchC-LoopBack1] ip address 192.168.150.2 32 [*SwitchC-LoopBack1] quit [*SwitchC] commit
# Configure a routing protocol on SwitchC. OSPF is used in this example. The configuration of SwitchA, SwitchB, and SwitchD are similar to the configuration of SwitchC, and are not mentioned.
[~SwitchC] ospf [*SwitchC-ospf-1] area 0 [*SwitchC-ospf-1-area-0.0.0.0] network 10.110.2.0 0.0.0.255 [*SwitchC-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255 [*SwitchC-ospf-1-area-0.0.0.0] network 192.168.3.0 0.0.0.255 [*SwitchC-ospf-1-area-0.0.0.0] network 192.168.150.1 0.0.0.0 [*SwitchC-ospf-1-area-0.0.0.0] network 192.168.150.2 0.0.0.0 [*SwitchC-ospf-1-area-0.0.0.0] commit [~SwitchC-ospf-1-area-0.0.0.0] quit [~SwitchC-ospf-1] quit
- Configure basic multicast functions on each switch.
# Enable multicast routing on SwitchC and PIM-SM on interfaces. The configuration of SwitchA, SwitchB, and SwitchD are similar to the configuration of SwitchC, and are not mentioned here.
[~SwitchC] multicast routing-enable [*SwitchC] interface vlanif 10 [*SwitchC-Vlanif10] pim sm [*SwitchC-Vlanif10] quit [*SwitchC] interface vlanif 21 [*SwitchC-Vlanif21] pim sm [*SwitchC-Vlanif21] quit [*SwitchC] interface vlanif 30 [*SwitchC-Vlanif30] pim sm [*SwitchC-Vlanif30] quit [*SwitchC] interface loopback 0 [*SwitchC-LoopBack0] pim sm [*SwitchC-LoopBack0] quit [*SwitchC] interface loopback 1 [*SwitchC-LoopBack1] pim sm [*SwitchC-LoopBack1] quit [*SwitchC] commit
# Configure the Loopback0 interface of SwitchC and SwitchD as C-RP and C-BSR. The configuration of SwitchD is similar to the configuration of SwitchC, and is not mentioned here.
[~SwitchC] pim [*SwitchC-pim] c-bsr loopback 0 [*SwitchC-pim] c-rp loopback 0 [*SwitchC-pim] commit [~SwitchC-pim] quit
# Enable IGMP on interfaces that connect SwitchC, SwitchD and hosts. The configuration of SwitchD is similar to the configuration of SwitchC, and is not mentioned.
[~SwitchC] interface vlanif 21 [~SwitchC-Vlanif21] igmp enable [*SwitchC-Vlanif21] commit [~SwitchC-Vlanif21] quit
- Configure anycast RP.
# On SwitchC and SwitchD, configure Loopback0 as an anycast RP and specify the address of Loopback1 as the local anycast address. The configuration of SwitchD is similar to the configuration of SwitchC, and is not mentioned.
[~SwitchC] pim [~SwitchC-pim] anycast-rp 192.168.150.1 [*SwitchC-pim-anycast-rp-192.168.150.1] local-address 192.168.150.2 [*SwitchC-pim-anycast-rp-192.168.150.1] commit [~SwitchC-pim-anycast-rp-192.168.150.1] quit [~SwitchC-pim] quit
# Configure SwitchC and SwitchD as anycast RP peers.
[~SwitchC-pim] anycast-rp 192.168.150.1 [~SwitchC-pim-anycast-rp-192.168.150.1] peer 192.168.150.3 [*SwitchC-pim-anycast-rp-192.168.150.1] commit [~SwitchC-pim-anycast-rp-192.168.150.1] quit [~SwitchC-pim] quit
[~SwitchD-pim] anycast-rp 192.168.150.1 [~SwitchD-pim-anycast-rp-192.168.150.1] peer 192.168.150.2 [*SwitchD-pim-anycast-rp-192.168.150.1] commit [~SwitchD-pim-anycast-rp-192.168.150.1] quit [~SwitchD-pim] quit
Verifying the Configuration
# Run the display pim rp-info command to check information about the RP on SwitchC and SwitchD.
[~SwitchC] display pim rp-info VPN-Instance: public net PIM-SM BSR RP Number:1 Group/MaskLen: 224.0.0.0/4 RP: 192.168.150.1 (local) Priority: 0 Uptime: 00:45:19 Expires: 00:02:11 BIDIR: N
[~SwitchD] display pim rp-info VPN-Instance: public net PIM-SM BSR RP Number:1 Group/MaskLen: 224.0.0.0/4 RP: 192.168.150.1 (local) Priority: 0 Uptime: 02:27:56 Expires: 00:01:39 BIDIR: N
The preceding information shows that SwitchC and SwitchD serve as the RPs and can forward the Register message from the multicast source to each other.
# Run the display pim routing-table command to check PIM entries on each switch. The multicast source 10.110.1.2/24 in the PIM-SM domain sends multicast data to multicast group G 226.1.1.1, and HostB joins G and receives the multicast data sent to G. The multicast source sends a Register message to Switch C and Host B sends a Join message to Switch D.
[~SwitchC] display pim routing-table VPN-Instance: public net Total 0 (*, G) entry; 1 (S, G) entry (10.110.1.2, 226.1.1.1) RP: 192.168.150.1 (local) Protocol: pim-sm, Flag: SPT 2MSDP ACT UpTime: 00:00:38 Upstream interface: Vlanif10 Upstream neighbor: NULL RPF prime neighbor: NULL Downstream interface(s) information: Total number of downstreams: 1 1: Vlanif30 Protocol: pim-sm, UpTime: 00:01:15, Expires: -
[~SwitchD] display pim routing-table VPN-Instance: public net Total 1 (*, G) entry; 1 (S, G) entry (*, 226.1.1.1) RP: 192.168.150.1 (local) Protocol: pim-sm, Flag: WC UpTime: 00:01:25 Upstream interface: Register Upstream neighbor: NULL RPF prime neighbor: NULL Downstream interface(s) information: Total number of downstreams: 1 1: Vlanif31 Protocol: igmp, UpTime: 00:01:25, Expires: - (10.110.1.2, 226.1.1.1) RP: 192.168.150.1 (local) Protocol: pim-sm, Flag: SPT 2MSDP ACT UpTime: 00:00:02 Upstream interface: Vlanif30 Upstream neighbor: 192.168.3.1 RPF prime neighbor: 192.168.3.1 Downstream interface(s) information: Total number of downstreams: 1 1: Vlanif31 Protocol: pim-sm, UpTime: 00:00:02, Expires: -
Configuration Files
SwitchA configuration file
# sysname SwitchA # vlan batch 10 to 11 # multicast routing-enable # interface Vlanif10 ip address 192.168.1.1 255.255.255.0 pim sm # interface Vlanif11 ip address 10.110.1.1 255.255.255.0 pim sm # interface 10GE1/0/1 port default vlan 11 # interface 10GE2/0/2 port link-type trunk undo port trunk allow-pass vlan 1 port trunk allow-pass vlan 10 # 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
SwitchB configuration file
# sysname SwitchB # vlan batch 20 # multicast routing-enable # interface Vlanif20 ip address 192.168.2.1 255.255.255.0 pim sm # interface 10GE1/0/1 port link-type trunk undo port trunk allow-pass vlan 1 port trunk allow-pass vlan 20 # ospf 1 area 0.0.0.0 network 192.168.2.0 0.0.0.255 # return
SwitchC configuration file
# sysname SwitchC # vlan batch 10 21 30 # multicast routing-enable # interface Vlanif10 ip address 192.168.1.2 255.255.255.0 pim sm # interface Vlanif21 ip address 10.110.2.1 255.255.255.0 pim sm igmp enable # interface Vlanif30 ip address 192.168.3.1 255.255.255.0 pim sm # interface 10GE1/0/1 port link-type trunk undo port trunk allow-pass vlan 1 port trunk allow-pass vlan 30 # interface 10GE2/0/2 port link-type trunk undo port trunk allow-pass vlan 1 port trunk allow-pass vlan 10 # interface 10GE3/0/3 port default vlan 21 # interface LoopBack0 ip address 192.168.150.1 255.255.255.255 pim sm # interface LoopBack1 ip address 192.168.150.2 255.255.255.255 pim sm # ospf 1 area 0.0.0.0 network 10.110.2.0 0.0.0.255 network 192.168.1.0 0.0.0.255 network 192.168.3.0 0.0.0.255 network 192.168.150.1 0.0.0.0 network 192.168.150.2 0.0.0.0 # pim c-bsr LoopBack0 c-rp LoopBack0 anycast-rp 192.168.150.1 local-address 192.168.150.2 peer 192.168.150.3 # return
SwitchD configuration file
# sysname SwitchD # vlan batch 20 30 to 31 # multicast routing-enable # interface Vlanif20 ip address 192.168.2.2 255.255.255.0 pim sm # interface Vlanif30 ip address 192.168.3.2 255.255.255.0 pim sm # interface Vlanif31 ip address 10.110.3.1 255.255.255.0 pim sm igmp enable # interface 10GE1/0/1 port link-type trunk undo port trunk allow-pass vlan 1 port trunk allow-pass vlan 20 # interface 10GE2/0/2 port default vlan 31 # interface 10GE3/0/3 port link-type trunk undo port trunk allow-pass vlan 1 port trunk allow-pass vlan 30 # interface LoopBack0 ip address 192.168.150.1 255.255.255.255 pim sm # interface LoopBack1 ip address 192.168.150.3 255.255.255.255 pim sm # ospf 1 area 0.0.0.0 network 10.110.3.0 0.0.0.255 network 192.168.2.0 0.0.0.255 network 192.168.3.0 0.0.0.255 network 192.168.150.1 0.0.0.0 network 192.168.150.3 0.0.0.0 # pim c-bsr LoopBack0 c-rp LoopBack0 anycast-rp 192.168.150.1 local-address 192.168.150.3 peer 192.168.150.2 # return