Example for Configuring IPv6 Multicast Load Splitting
Networking Requirements
On an IPv6 multicast network as shown in Figure 8-8, RouterE connects to HostA and has three equal-cost routes to the multicast source (Source). According to the default reverse path forwarding (RPF) check policy, RouterE will select one of these equal-cost routes to transmit multicast data. When the rate of multicast traffic is high, the network may become congested, lowering the quality of multicast services. To ensure the quality of multicast services, IPv6 multicast load splitting needs to be configured so that multicast data can be transmitted through multiple equal-cost routes.
Configuration Roadmap
The configuration roadmap is as follows:
Configure IPv6 addresses for interfaces on the routers.
Configure an IPv6 unicast routing protocol, IPv6 Intermediate System-Intermediate System (IS-IS) in this example, to implement interworking among all routers and ensure that route costs are the same.
Enable IPv6 multicast routing on all routers and enable IPv6 Protocol Independent Multicast - Sparse Mode (PIM-SM) on all interfaces. Configure the loopback interface on RouterA as a candidate bootstrap router (C-BSR) and candidate rendezvous point (C-RP).
On RouterE, configure stable-preferred IPv6 multicast load splitting to ensure stable transmission of multicast services.
On RouterE, configure static multicast groups on the interface connected to the network segment of HostA, because HostA needs to receive data of these groups for a long time.
On RouterE, configure different IPv6 multicast load splitting weights for the interfaces connected to the upstream routers to implement unbalanced load splitting, because HostA needs to receive multicast data of new groups.
Procedure
- Configure IPv6 addresses for interfaces on the routers. RouterA is used as an example, and configurations of the other routers are similar.
<Huawei> system-view [Huawei] sysname RouterA [RouterA] ipv6 [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] ipv6 enable [RouterA-GigabitEthernet1/0/0] ipv6 address 2001::2 64 [RouterA-GigabitEthernet1/0/0] quit [RouterA] interface gigabitethernet 2/0/1 [RouterA-GigabitEthernet2/0/1] ipv6 enable [RouterA-GigabitEthernet2/0/1] ipv6 address 2002::1 64 [RouterA-GigabitEthernet2/0/1] quit [RouterA] interface gigabitethernet 2/0/2 [RouterA-GigabitEthernet2/0/2] ipv6 enable [RouterA-GigabitEthernet2/0/2] ipv6 address 2003::1 64 [RouterA-GigabitEthernet2/0/2] quit [RouterA] interface gigabitethernet 2/0/3 [RouterA-GigabitEthernet2/0/3] ipv6 enable [RouterA-GigabitEthernet2/0/3] ipv6 address 2004::1 64 [RouterA-GigabitEthernet2/0/3] quit [RouterA] interface loopback0 [RouterA-LoopBack0] ipv6 enable [RouterA-LoopBack0] ipv6 address 2000::1 64 [RouterA-LoopBack0] quit
- Configure IPv6 IS-IS to implement interworking among all the routers and ensure that route costs are the same (RouterA as an example).
[RouterA] isis [RouterA-isis-1] ipv6 enable topology standard [RouterA-isis-1] network-entity 10.0000.0000.0001.00 [RouterA-isis-1] quit [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] isis ipv6 enable [RouterA-GigabitEthernet1/0/0] quit [RouterA] interface gigabitethernet 2/0/1 [RouterA-GigabitEthernet2/0/1] isis ipv6 enable [RouterA-GigabitEthernet2/0/1] quit [RouterA] interface gigabitethernet 2/0/2 [RouterA-GigabitEthernet2/0/2] isis ipv6 enable [RouterA-GigabitEthernet2/0/2] quit [RouterA] interface gigabitethernet 2/0/3 [RouterA-GigabitEthernet2/0/3] isis ipv6 enable [RouterA-GigabitEthernet2/0/3] quit [RouterA] interface loopback0 [RouterA-Loopback0] isis ipv6 enable [RouterA-Loopback0] quit
- Enable IPv6 multicast routing on all the routers and enable IPv6 PIM-SM on all interfaces (RouterA as an example).
[RouterA] multicast ipv6 routing-enable [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] pim ipv6 sm [RouterA-GigabitEthernet1/0/0] quit [RouterA] interface gigabitethernet 2/0/1 [RouterA-GigabitEthernet2/0/1] pim ipv6 sm [RouterA-GigabitEthernet2/0/1] quit [RouterA] interface gigabitethernet 2/0/2 [RouterA-GigabitEthernet2/0/2] pim ipv6 sm [RouterA-GigabitEthernet2/0/2] quit [RouterA] interface gigabitethernet 2/0/3 [RouterA-GigabitEthernet2/0/3] pim ipv6 sm [RouterA-GigabitEthernet2/0/3] quit [RouterA] interface loopback 0 [RouterA-LoopBack0] pim ipv6 sm [RouterA-LoopBack0] quit
- Configure a C-BSR and C-RP on RouterA.
# Configure Loopback0 on RouterA as a C-BSR and C-RP.
[RouterA] pim-ipv6 [RouterA-pim6] c-bsr 2000::1 [RouterA-pim6] c-rp 2000::1 [RouterA-pim6] quit
- Configure stable-preferred multicast load splitting on RouterE.
[RouterE] multicast ipv6 load-splitting stable-preferred
- Configure static multicast groups on the interface of RouterE connected to the network segment of HostA.
# Configure static multicast groups FF13::1 to FF13::3 on GE2/0/0.
[RouterE] interface gigabitethernet 2/0/0 [RouterE-GigabitEthernet2/0/0] mld static-group ff13::1 inc-step-mask 128 number 3 [RouterE-GigabitEthernet2/0/0] quit
- Verify the configuration of stable-preferred multicast load splitting.
# Source (2001::1/64) sends multicast data to multicast groups FF13::1 to FF13::3. HostA can receive multicast data from Source. Brief information about the IPv6 PIM routing table on RouterE is as follows:
<RouterE> display pim ipv6 routing-table brief VPN-Instance: public net Total 3 (*, G) entries; 3 (S, G) entries 00001.(*, FF13::1) Upstream interface:GE1/0/1 Number of downstream:1 00002.(2001::1, FF13::1) Upstream interface:GE1/0/1 Number of downstream:1 00003.(*, FF13::2) Upstream interface:GE1/0/2 Number of downstream:1 00004.(2001::1, FF13::2) Upstream interface:GE1/0/2 Number of downstream:1 00005.(*, FF13::3) Upstream interface:GE1/0/3 Number of downstream:1 00006.(2001::1, FF13::3) Upstream interface:GE1/0/3 Number of downstream:1
(*, G) and (S, G) entries are evenly distributed on the three equal-cost routes. The upstream interfaces of the routes are GE1/0/1, GE1/0/2, and GE1/0/3, respectively.
The load splitting algorithm processes (*, G) and (S, G) entries separately using the same rule.
- Set different multicast load splitting weights for upstream interfaces of RouterE to implement uneven multicast load splitting.
# Set the multicast load splitting weight of GE1/0/1 to 3.
[RouterE] interface gigabitethernet 1/0/1 [RouterE-GigabitEthernet1/0/1] multicast ipv6 load-splitting weight 3 [RouterE-GigabitEthernet1/0/1] quit
# Set the multicast load splitting weight of GE1/0/2 to 2.
[RouterE] interface gigabitethernet 1/0/2 [RouterE-GigabitEthernet1/0/2] multicast ipv6 load-splitting weight 2 [RouterE-GigabitEthernet1/0/2] quit
- Configure new static multicast groups on the interface of RouterE connected to the network segment of HostA.
# Configure static multicast groups FF13::4 to FF13::6 on GE2/0/0.
[RouterE] interface gigabitethernet 2/0/0 [RouterE-GigabitEthernet2/0/0] mld static-group FF13::4 inc-step-mask 128 number 3 [RouterE-GigabitEthernet2/0/0] quit
- Verify the configuration of uneven multicast load splitting.
# Source (2001::1/64) sends multicast data to multicast groups FF13::1 to FF13::6. HostA can receive multicast data from Source. Brief information about the IPv6 PIM routing table on RouterE is as follows:
<RouterE>display pim ipv6 routing-table brief VPN-Instance: public net Total 6 (*, G) entries; 6 (S, G) entries 00001.(*, FF13::1) Upstream interface:GE1/0/1 Number of downstream:1 00002.(2001::1, FF13::1) Upstream interface:GE1/0/1 Number of downstream:1 00003.(*, FF13::2) Upstream interface:GE1/0/2 Number of downstream:1 00004.(2001::1, FF13::2) Upstream interface:GE1/0/2 Number of downstream:1 00005.(*, FF13::3) Upstream interface:GE1/0/3 Number of downstream:1 00006.(2001::1, FF13::3) Upstream interface:GE1/0/3 Number of downstream:1 00007.(*, FF13::4) Upstream interface:GE1/0/1 Number of downstream:1 00008.(2001::1, FF13::4) Upstream interface:GE1/0/1 Number of downstream:1 00009.(*, FF13::5) Upstream interface:GE1/0/1 Number of downstream:1 00010.(2001::1, FF13::5) Upstream interface:GE1/0/1 Number of downstream:1 00011.(*, FF13::6) Upstream interface:GE1/0/2 Number of downstream:1 00012.(2001::1, FF13::6) Upstream interface:GE1/0/2 Number of downstream:1
The upstream interfaces of existing (*, G) and (S, G) entries remain unchanged. GE1/0/1 has a larger multicast load splitting weight than GE1/0/2. Therefore, more new (*, G) and (S, G) entries are distributed to the route with GE1/0/1 as the upstream interface. The multicast load splitting weight of GE1/0/3 is the default value 1, which is smaller than that of GE1/0/1 and GE1/0/2. Therefore, GE1/0/3 does not participate in load splitting for new entries.
Configuration Files
RouterA configuration file
# sysname RouterA # ipv6 # multicast ipv6 routing-enable # isis 1 network-entity 10.0000.0000.0001.00 # ipv6 enable topology standard # # interface GigabitEthernet1/0/0 ipv6 enable ipv6 address 2001::2/64 isis ipv6 enable 1 pim ipv6 sm # interface GigabitEthernet2/0/1 ipv6 enable ipv6 address 2002::1/64 isis ipv6 enable 1 pim ipv6 sm # interface GigabitEthernet2/0/2 ipv6 enable ipv6 address 2003::1/64 isis ipv6 enable 1 pim ipv6 sm # interface GigabitEthernet2/0/3 ipv6 enable ipv6 address 2004::1/64 isis ipv6 enable 1 pim ipv6 sm # interface LoopBack0 ipv6 enable ipv6 address 2000::1/64 isis ipv6 enable 1 pim ipv6 sm # pim-ipv6 c-bsr 2000::1 c-rp 2000::1 # return
RouterB configuration file
# sysname RouterB # ipv6 # multicast ipv6 routing-enable # isis 1 network-entity 10.0000.0000.0002.00 # ipv6 enable topology standard # # interface GigabitEthernet1/0/0 ipv6 enable ipv6 address 2002::2/64 isis ipv6 enable 1 pim ipv6 sm # interface GigabitEthernet2/0/0 ipv6 enable ipv6 address 2005::1/64 isis ipv6 enable 1 pim ipv6 sm # return
RouterC configuration file
# sysname RouterC # ipv6 # multicast ipv6 routing-enable # isis 1 network-entity 10.0000.0000.0003.00 # ipv6 enable topology standard # # interface GigabitEthernet1/0/0 ipv6 enable ipv6 address 2003::2/64 isis ipv6 enable 1 pim ipv6 sm # interface GigabitEthernet2/0/0 ipv6 enable ipv6 address 2006::1/64 isis ipv6 enable 1 pim ipv6 sm # return
RouterD configuration file
# sysname RouterD # ipv6 # multicast ipv6 routing-enable # isis 1 network-entity 10.0000.0000.0004.00 # ipv6 enable topology standard # # interface GigabitEthernet1/0/0 ipv6 enable ipv6 address 2004::2/64 isis ipv6 enable 1 pim ipv6 sm # interface GigabitEthernet2/0/0 ipv6 enable ipv6 address 2007::1/64 isis ipv6 enable 1 pim ipv6 sm # return
RouterE configuration file
# sysname RouterE # ipv6 # multicast ipv6 routing-enable multicast ipv6 load-splitting stable-preferred # isis 1 network-entity 10.0000.0000.0005.00 # ipv6 enable topology standard # # interface GigabitEthernet1/0/1 ipv6 enable ipv6 address 2005::2/64 isis ipv6 enable 1 pim ipv6 sm multicast ipv6 load-splitting weight 3 # interface GigabitEthernet1/0/2 ipv6 enable ipv6 address 2006::2/64 isis ipv6 enable 1 pim ipv6 sm multicast ipv6 load-splitting weight 2 # interface GigabitEthernet1/0/3 ipv6 enable ipv6 address 2007::2/64 isis ipv6 enable 1 pim ipv6 sm # interface GigabitEthernet2/0/0 ipv6 enable ipv6 address 3001::1/64 isis ipv6 enable 1 pim ipv6 sm mld static-group FF13::1 inc-step-mask 128 number 3 mld static-group FF13::4 inc-step-mask 128 number 3 # return