On the network shown in Figure 1, configure a QinQ VLAN tag termination sub-interface on PE1 to statically join multicast groups, to make the Receiver receive multicast data sent from the Source.
The configuration roadmap is as follows:
Configure Open Shortest Path First (OSPF) on the backbone network to implement interworking between PEs.
Configure the basic Multiprotocol Label Switching (MPLS) functions and MPLS Label Distribution Protocol (LDP) on the PEs and establish the MPLS Label Switched Paths (LSPs) between the PEs.
Configure the VPN instance on the PE and bind VPN instance with the interface to Source and the interface to Receiver.
Configure Multiprotocol Internal Border Gateway Protocol (MP-IBGP) to exchange the VPN routing information between the PEs.
Configure QinQ VLAN tag termination sub-interfaces to statically join multicast groups.
To configure QinQ VLAN tag termination sub-interfaces to statically join multicast groups, you need the following data:
PE's MPLS LSR-ID: 1.1.1.9; P's MPLS LSR-ID: 2.2.2.9,3.3.3.9
VPN instance name: vpna; RDs: 100:1 and 100:2; VPN-Target: 111:1
VLAN ID in an outer VLAN tag of the QinQ VLAN tag termination sub-interface: 1; VLAN ID in an inner VLAN tag of the QinQ VLAN tag termination sub-interface: 1 or 2
The specific configuration procedures are omitted here.
# Configure PE1.
# Configure a VPN instance.
[*PE1] ip vpn-instance vpna [*PE1-vpn-instance-vpna] ipv4-family [*PE1-vpn-instance-vpna-af-ipv4] route-distinguisher 100:1 [*PE1-vpn-instance-vpna-af-ipv4] vpn-target 111:1 both [*PE1-vpn-instance-vpna-af-ipv4] quit [*PE1-vpn-instance-vpna] commit [~PE1-vpn-instance-vpna] quit
# Bind the VPN instance with the interface to the Source.
[*PE1] interface gigabitethernet 0/1/0 [*PE1-GigabitEthernet0/1/0] ip binding vpn-instance vpna [*PE1-GigabitEthernet0/1/0] ip address 10.1.1.2 24 [*PE1-GigabitEthernet0/1/0] commit [~PE1-GigabitEthernet0/1/0] quit
# Create a QinQ VLAN tag termination sub-interface, bind the VPN instance to the QinQ VLAN tag termination sub-interface.
[*PE1] interface gigabitethernet 0/1/8.1 [*PE1-GigabitEthernet0/1/8.1] ip binding vpn-instance vpna [*PE1-GigabitEthernet0/1/8.1] commit [~PE1-GigabitEthernet0/1/8.1] quit
# Configure VLAN ID on the QinQ VLAN tag termination sub-interface.
[*PE1] interface gigabitethernet 0/1/8.1 [*PE1-GigabitEthernet0/1/8.1] control-vid 10 qinq-termination [*PE1-GigabitEthernet0/1/8.1] qinq termination pe-vid 1 ce-vid 1 to 2 [*PE1-GigabitEthernet0/1/8.1] ip address 10.2.1.2 24 [*PE1-GigabitEthernet0/1/8.1] commit [~PE1-GigabitEthernet0/1/8.1] quit
# Configure PE2.
# Configure a VPN instance.
[*PE2] ip vpn-instance vpna [*PE2-vpn-instance-vpna] ipv4-family [*PE2-vpn-instance-vpna-af-ipv4] route-distinguisher 100:2 [*PE2-vpn-instance-vpna-af-ipv4] vpn-target 111:1 both [*PE2-vpn-instance-vpna-af-ipv4] quit [*PE2-vpn-instance-vpna] commit [~PE2-vpn-instance-vpna] quit
# Bind the VPN instance with the GE 0/1/0 of PE2.
[*PE2] interface gigabitethernet 0/1/0 [*PE2-GigabitEthernet0/1/0] ip binding vpn-instance vpna [*PE2-GigabitEthernet0/1/0] ip address 10.3.1.2 24 [*PE2-GigabitEthernet0/1/0] commit [~PE2-GigabitEthernet0/1/0] quit
# Configure PE1.
[*PE1] bgp 100 [*PE1-bgp] ipv4-family vpn-instance vpna [*PE1-bgp-vpna] import-route direct [*PE1-bgp-vpna] quit [*PE1-bgp] quit [*PE1] commit
# Configure PE2.
[*PE2] bgp 100 [*PE2-bgp] ipv4-family vpn-instance vpna [*PE2-bgp-vpna] import-route direct [*PE2-bgp-vpna] quit [*PE2-bgp] quit [*PE2] commit
After the configuration above, run the display ip routing-table vpn-instance command on PE1. The route of the Source and the route of the Receiver are added to VPN routing-table.
[~PE1] display ip routing-table vpn-instance vpna Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route ------------------------------------------------------------------------------ Routing Table : vpna Destinations : 8 Routes : 8 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.1.1.0/24 Direct 0 0 D 10.1.1.2 GigabitEthernet0/1/0 10.1.1.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/1/0 10.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/1/0 10.2.1.0/24 Direct 0 0 D 10.2.1.2 GigabitEthernet0/1/8.1 10.2.1.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/1/8.1 10.2.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/1/8.1 10.3.1.0/24 IBGP 255 0 RD 3.3.3.9 LDP LSP 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
# Configure PE1.
[*PE1] multicast routing-enable [*PE1] commit
# Configure P.
[*P] multicast routing-enable [*P] commit
# Configure PE2.
[*PE2] multicast routing-enable [*PE2] commit
# Configure PIM-SM in the public network.
# Configure PE1.
[~PE1] interface gigabitethernet 0/1/16 [*PE1-GigabitEthernet0/1/16] pim sm [*PE1-GigabitEthernet0/1/16] quit [*PE1] interface loopback 1 [*PE1-LoopBack1] pim sm [*PE1-LoopBack1] quit [*PE1] commit
# Configure P.
[~P] interface gigabitethernet 0/1/0 [*P-GigabitEthernet0/1/0] pim sm [*P-GigabitEthernet0/1/0] quit [*P] interface gigabitethernet 0/1/8 [*P-GigabitEthernet0/1/8] pim sm [*P-GigabitEthernet0/1/8] quit [*P] interface loopback 1 [*P-LoopBack1] pim sm [*P-LoopBack1] quit [*P] commit
# Configure PE2.
[~PE2] interface gigabitethernet 0/1/16 [*PE2-GigabitEthernet0/1/16] pim sm [*PE2-GigabitEthernet0/1/16] quit [*PE2] interface loopback 1 [*PE2-LoopBack1] pim sm [*PE2-LoopBack1] quit [*PE2] commit
# Configure RP in the public network instance.
[~P] pim [*P] c-bsr loopback 1 [*P] c-rp loopback 1 [*P] commit
# Configure IGMP on the main interface to the Receiver.
[~PE1] interface gigabitethernet 0/1/8 [*PE1-GigabitEthernet0/1/8] igmp enable [*PE1-GigabitEthernet0/1/8] quit [*PE1] commit
[~PE1] interface gigabitethernet 0/1/8.1 [*PE1-GigabitEthernet0/1/8.1] igmp static-group 225.0.0.1 inc-step-mask 0.0.0.1 number 17 qinq pe-vid 1 ce-vid 1 to 2 [*PE1-GigabitEthernet0/1/8.1] quit [*PE1] commit
After the configuration, run the display pim vpn-instance vpna routing-table command on PE1 to check the multicast routing-table information.
Run the display igmp-snooping qinq-port-info interface gigabitethernet 0/1/8.1 to check the multicast group information on the QinQ VLAN tag termination sub-interface.
<PE1> display igmp-snooping qinq-port-info interface gigabitethernet 0/1/8.1 Interface GigabitEthernet0/1/8.1, 17 Group(s) (Source,Group) PE-VID/CE-VID LiveTime Flag ------------------------------------------------------------------------------- (*,225.0.0.1) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.2) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.3) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.4) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.5) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.6) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.7) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.8) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.9) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.10) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.11) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.12) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.13) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.14) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.15) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.16) 1/1 -------- S-- 1/2 -------- S-- (*,225.0.0.17) 1/1 -------- S-- 1/2 -------- S--
PE1 configuration file
# sysname PE1 # router id 1.1.1.9 # multicast routing-enable # ip vpn-instance vpna ipv4-family route-distinguisher 100:1 apply-label per-instance vpn-target 111:1 export-extcommunity vpn-target 111:1 import-extcommunity multicast routing-enable # mpls lsr-id 1.1.1.9 # mpls # mpls ldp # interface GigabitEthernet0/1/0 undo shutdown ip binding vpn-instance vpna ip address 10.1.1.2 255.255.255.0 pim sm # interface GigabitEthernet0/1/8 undo shutdown pim sm igmp enable dcn # interface GigabitEthernet0/1/8.1 ip binding vpn-instance vpna ip address 10.2.1.2 255.255.255.0 encapsulation qinq-termination qinq termination pe-vid 1 ce-vid 1 to 2 igmp static-group 225.0.0.1 inc-step-mask 0.0.0.1 number 17 qinq pe-vid 1 ce-vid 1 to 2 # interface GigabitEthernet0/1/16 undo shutdown ip address 172.16.1.1 255.255.255.0 pim sm mpls mpls ldp # interface LoopBack1 ip address 1.1.1.9 255.255.255.255 pim sm # bgp 100 peer 3.3.3.9 as-number 100 peer 3.3.3.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 3.3.3.9 enable # ipv4-family vpnv4 policy vpn-target peer 3.3.3.9 enable # ipv4-family vpn-instance vpna import-route direct # ospf 1 area 0.0.0.0 network 1.1.1.9 0.0.0.0 network 172.16.1.0 0.0.0.255 # return
P configuration file
# sysname P # router id 2.2.2.9 # multicast routing-enable # mpls lsr-id 2.2.2.9 # mpls # mpls ldp # interface GigabitEthernet0/1/8 undo shutdown ip address 172.17.1.1 255.255.255.0 pim sm mpls mpls ldp # interface GigabitEthernet0/1/0 undo shutdown ip address 172.16.1.2 255.255.255.0 pim sm mpls mpls ldp # interface LoopBack1 ip address 2.2.2.9 255.255.255.255 pim sm # ospf 1 area 0.0.0.0 network 2.2.2.9 0.0.0.0 network 172.16.1.0 0.0.0.255 network 172.17.1.0 0.0.0.255 # pim c-bsr LoopBack1 c-rp LoopBack1 # return
PE2 configuration file
# sysname PE2 # router id 3.3.3.9 # multicast routing-enable # ip vpn-instance vpna ipv4-family route-distinguisher 100:2 apply-label per-instance vpn-target 111:1 export-extcommunity vpn-target 111:1 import-extcommunity multicast routing-enable # mpls lsr-id 3.3.3.9 # mpls # mpls ldp # interface GigabitEthernet0/1/0 undo shutdown ip binding vpn-instance vpna ip address 10.3.1.2 255.255.255.0 pim sm undo dcn # interface GigabitEthernet0/1/16 undo shutdown ip address 172.17.1.2 255.255.255.0 pim sm mpls mpls ldp # interface LoopBack1 ip address 3.3.3.9 255.255.255.255 pim sm # bgp 100 peer 1.1.1.9 as-number 100 peer 1.1.1.9 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 1.1.1.9 enable # ipv4-family vpnv4 policy vpn-target peer 1.1.1.9 enable # ipv4-family vpn-instance vpna import-route direct peer 10.3.1.1 as-number 65430 # ospf 1 area 0.0.0.0 network 3.3.3.9 0.0.0.0 network 172.17.1.0 0.0.0.255 # return