Example for Configuring Basic MLD Functions
Networking Requirements
As shown in Figure 3-14, network segments N1 and N2 composed of different user groups exist on an IPv6 network. RouterA connects to N1, and RouterB and RouterC connect to N2. The IPv6 Protocol Independent Multicast (PIM) network uses multicast addresses FF16::1 to FF16::5 to transmit video streams.
HostA on N1 and HostB on N2 want to receive video streams in multicast mode. HostA has ordered the program only from FF16::1, and HostB has ordered programs from all multicast groups. You need to perform configurations on the multicast devices to allow HostA to receive video streams only from FF16::1 and HostB to receive all video streams.
Configuration Roadmap
To meet the preceding requirements, configure basic MLD functions and limit the range of multicast groups that the RouterA interface connected to N1 can join.
- To ensure that data sent from multicast sources can be correctly forwarded to the user network segments, configure an IPv6 unicast routing protocol on the network to implement IP interworking. Multicast routing protocols work depending on unicast routing protocols.
- To enable the multicast devices to forward video streams to receiver hosts in multicast mode, configure basic multicast functions on the multicast devices.
- To enable HostA to receive video streams only from FF16::1, configure an ACL6 on the RouterA interface connected to N1 to filter multicast data.
Procedure
- Configure IPv6 addresses for interfaces and configure an IPv6 unicast routing protocol on the interfaces.
# Configure an IPv6 address and subnet mask for the interface on each router. Configure Open Shortest Path First Version 3 (OSPFv3) on the routers to implement IP interworking and dynamic route update. The configurations on RouterB, RouterC, and RouterD are similar to those on RouterA and are not mentioned here.
<Huawei> system-view [Huawei] sysname RouterA [RouterA] ipv6 [RouterA] ospfv3 100 [RouterA-ospfv3-100] router-id 1.1.1.1 [RouterA-ospfv3-100] quit [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] ipv6 enable [RouterA-GigabitEthernet1/0/0] ipv6 address 3000::12 64 [RouterA-GigabitEthernet1/0/0] ospfv3 100 area 0 [RouterA-GigabitEthernet1/0/0] quit [RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] ipv6 enable [RouterA-GigabitEthernet2/0/0] ipv6 address 2002::1 64 [RouterA-GigabitEthernet2/0/0] ospfv3 100 area 0 [RouterA-GigabitEthernet2/0/0] quit
- Configure the basic IPv6 multicast functions on each router.
# Enable IPv6 multicast on RouterA and enable IPv6 PIM-SM on all its interfaces. The configurations on RouterB, RouterC, and RouterD are similar to those on RouterA and are not mentioned here.
[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/0 [RouterA-GigabitEthernet2/0/0] pim ipv6 sm [RouterA-GigabitEthernet2/0/0] quit
# Configure the rendezvous point (RP). On RouterD, configure GE1/0/0 as a C-BSR and a C-RP.
[RouterD] pim-ipv6 [RouterD-pim6] c-bsr 2000::1 [RouterD-pim6] c-rp 2000::1 [RouterD-pim6] quit
# On RouterA, enable MLD on GE1/0/0 connected to the user network segment. The configurations on RouterB and RouterC are similar to those on RouterA and are not mentioned here.
[RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] mld enable [RouterA-GigabitEthernet1/0/0] quit
- Enable GE1/0/0 on RouterA to join only multicast group FF16::1.
# Create an IPv6 access control list (ACL6) to allow messages from only FF16::1. Apply the ACL6 on GE1/0/0 of RouterA.
[RouterA] acl ipv6 number 2001 [RouterA-acl6-basic-2001] rule permit source ff16::1 128 [RouterA-acl6-basic-2001] quit [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] mld group-policy 2001 [RouterA-GigabitEthernet1/0/0] quit
- Verify the configuration.
# Run the display mld interface command to check the MLD configuration and running status on each interface of the router.
# MLD information on GE1/0/0 of RouterA is as follows:
<RouterA> display mld interface gigabitethernet 1/0/0 verbose Interface information GigabitEthernet1/0/0(FE80::200:5EFF:FE66:5100): MLD is enabled Current MLD version is 2 MLD state: up MLD group policy: 2001 MLD limit: - Value of query interval for MLD (negotiated): 125 s Value of query interval for MLD (configured): 125 s Value of other querier timeout for MLD: 0 s Value of maximum query response time for MLD: 10 s Value of last listener query time: 2 s Value of last listener query interval: 1 s Value of startup query interval: 31 s Value of startup query count: 2 General query timer expiry (hours:minutes:seconds): 00:00:28 Querier for MLD: FE80::200:5EFF:FE66:5100 (this router) MLD activity: 1 joins, 0 dones Robustness (negotiated): 2 Robustness (configured): 2 Require-router-alert: disabled Send-router-alert: enabled Ip-source-policy: disabled Query Ip-source-policy: disabled Prompt-leave: disabled SSM-Mapping: disabled Startup-query-timer-expiry: off Other-querier-present-timer-expiry: off Total 1 MLD Group reported
The command output shows that GE1/0/0 on RouterA is enabled with MLD and has ACL6 2001 applied. In addition, GE1/0/0 has received Multicast Listener Report messages of a multicast group.
# MLD information on GE1/0/0 of RouterB is as follows:
<RouterB> display mld interface gigabitethernet 1/0/0 verbose Interface information GigabitEthernet1/0/0(FE80::4E1F:CCFF:FE47:C8A0): MLD is enabled Current MLD version is 2 MLD state: up MLD group policy: none MLD limit: - Value of query interval for MLD (negotiated): 125 s Value of query interval for MLD (configured): 125 s Value of other querier timeout for MLD: 0 s Value of maximum query response time for MLD: 10 s Value of last listener query time: 2 s Value of last listener query interval: 1 s Value of startup query interval: 31 s Value of startup query count: 2 General query timer expiry (hours:minutes:seconds): 00:00:28 Querier for MLD: FE80::4E1F:CCFF:FE47:C8A0 (this router) MLD activity: 2 joins, 0 dones Robustness (negotiated): 2 Robustness (configured): 2 Require-router-alert: disabled Send-router-alert: enabled Ip-source-policy: disabled Query Ip-source-policy: disabled Prompt-leave: disabled SSM-Mapping: disabled Startup-query-timer-expiry: off Other-querier-present-timer-expiry: off Total 2 MLD Groups reported
The command output shows that RouterB is the querier. This is because the IPv6 address of GE1/0/0 on RouterB is the smallest on the network segment. In addition, GE1/0/0 has received Multicast Listener Report messages of two multicast groups.
# Run the display pim ipv6 routing-table command to check the IPv6 PIM-SM multicast routing table on each router.
# On the shared network segment where RouterB and RouterC are located, RouterB is elected as the multicast data forwarder. The IPv6 PIM-SM multicast routing table on RouterB is as follows:
<RouterB> display pim ipv6 routing-table VPN-Instance: public net Total 2 (*, G) entries; 2 (S, G) entries (*, FF16::1) RP: 2000::1 Protocol: pim-sm, Flag: WC UpTime: 00:21:35 Upstream interface: GigabitEthernet2/0/0 Upstream neighbor: FE80::A01:100:1 RPF prime neighbor: FE80::A01:100:1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet1/0/0 Protocol: mld, UpTime: 00:21:35, Expires: - (2003::5, FF16::1) RP: 2000::1 Protocol: pim-sm, Flag: SPT ACT UpTime: 00:42:46 Upstream interface: GigabitEthernet2/0/0 Upstream neighbor: FE80::A01:100:1 RPF prime neighbor: FE80::A01:100:1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet1/0/0 Protocol: pim-sm, UpTime: 00:21:35, Expires: - (*, FF16::2) RP: 2000::1 Protocol: pim-sm, Flag: WC UpTime: 00:06:02 Upstream interface: GigabitEthernet2/0/0 Upstream neighbor: FE80::A01:100:1 RPF prime neighbor: FE80::A01:100:1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet1/0/0 Protocol: mld, UpTime: 00:06:02, Expires: - (2003::5, FF16::2) RP: 2000::1 Protocol: pim-sm, Flag: SPT ACT UpTime: 00:15:12 Upstream interface: GigabitEthernet2/0/0 Upstream neighbor: FE80::A01:100:1 RPF prime neighbor: FE80::A01:100:1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet1/0/0 Protocol: pim-sm, UpTime: 00:06:04, Expires: -
The command output shows that (*, FF16::1), (2003::5, FF16::1), (*, FF16::2), and (2003::5, FF16::2) entries exist on RouterB. This indicates that GE1/0/0 has joined multicast groups FF16::1 and FF16::2, and can receive multicast data from multicast source 2003::5.
# The IPv6 PIM-SM multicast routing table on RouterA is as follows:
<RouterA> display pim ipv6 routing-table VPN-Instance: public net Total 1 (*, G) entry; 1 (S, G) entry (*, FF16::1) RP: 2000::1 Protocol: pim-sm, Flag: WC UpTime: 00:21:35 Upstream interface: GigabitEthernet2/0/0 Upstream neighbor: FE80::7A1D:BAFF:FECD:909D RPF prime neighbor: FE80::7A1D:BAFF:FECD:909D Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet1/0/0 Protocol: mld, UpTime: 00:21:35, Expires: - (2003::5, FF16::1) RP: 2000::1 Protocol: pim-sm, Flag: SPT ACT UpTime: 00:42:46 Upstream interface: GigabitEthernet2/0/0 Upstream neighbor: FE80::7A1D:BAFF:FECD:909D RPF prime neighbor: FE80::7A1D:BAFF:FECD:909D Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet1/0/0 Protocol: pim-sm, UpTime: 00:21:35, Expires: -
The command output shows that (*, FF16::1) and (2003::5, FF16::1) entries exist on RouterA. This is because that an ACL6 is configured on GE1/0/0 of RouterA to filter out multicast data.
Configuration Files
RouterA configuration file
# sysname RouterA # acl ipv6 number 2001 rule 5 permit source FF16::1/128 # ipv6 # multicast ipv6 routing-enable # ospfv3 100 router-id 1.1.1.1 # interface GigabitEthernet1/0/0 ipv6 enable ipv6 address 3000::12/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm mld enable mld group-policy 2001 # interface GigabitEthernet2/0/0 ipv6 enable ipv6 address 2002::1/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm # return
RouterB configuration file
# sysname RouterB # ipv6 # multicast ipv6 routing-enable # ospfv3 100 router-id 2.2.2.2 # interface GigabitEthernet1/0/0 ipv6 enable ipv6 address 3001::10/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm mld enable # interface GigabitEthernet2/0/0 ipv6 enable ipv6 address 2003::1/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm # return
RouterC configuration file
# sysname RouterC # ipv6 # multicast ipv6 routing-enable # ospfv3 100 router-id 3.3.3.3 # interface GigabitEthernet1/0/0 ipv6 enable ipv6 address 3001::12/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm mld enable # interface GigabitEthernet2/0/0 ipv6 enable ipv6 address 2004::1/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm # return
RouterD configuration file
# sysname RouterD # ipv6 # multicast ipv6 routing-enable # ospfv3 100 router-id 4.4.4.4 # interface GigabitEthernet1/0/0 ipv6 enable ipv6 address 2000::1/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm # interface GigabitEthernet2/0/0 ipv6 enable ipv6 address 2002::2/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm # interface GigabitEthernet3/0/0 ipv6 enable ipv6 address 2003::2/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm # interface GigabitEthernet4/0/0 ipv6 enable ipv6 address 2004::2/64 ospfv3 100 area 0.0.0.0 pim ipv6 sm # pim-ipv6 c-bsr 2000::1 c-rp 2000::1 # return