This section provides an example for configuring intra-AS NG MVPN over an mLDP P2MP tunnel passing through Ps.
NG MVPN is deployed on the service provider's backbone network to solve multicast service issues that arise due to traffic congestion, transmission reliability, and data security. On the network shown in Figure 1, BGP/MPLS IP VPN services that are carried by MPLS LDP LSPs have been deployed. The customer requires that MVPN services be provided using the existing network. To meet this requirement, configure intra-AS NG MVPN over an mLDP P2MP tunnel passing through Ps.
The configuration roadmap is as follows:
Configure BGP/MPLS IP VPN and ensure that unicast VPN services are properly transmitted. In this example, CE1 and CE2 can communicate with each other.
Enable mLDP globally on the PEs and P so that the PEs use mLDP to establish a P2MP tunnel.
Establish a BGP MVPN peer relationship between PE1 and PE2 so that they use BGP to exchange A-D and C-multicast routes.
Configure PE1 to use mLDP to establish an I-PMSI tunnel so that an mLDP P2MP tunnel is established.
Configure PIM on the PE interfaces bound to a VPN instance and on the CE interfaces connected to PEs so that VPN multicast routing entries are generated for multicast traffic forwarding.
Configure IGMP on CE2's interface connected to the multicast receiver so that CE2 manages the receiver (multicast group member).
To complete the configuration, you need the following data:
IS-IS process ID (2) on the public network; system IDs of PE1, P, and PE2 (45.0005.0005.0005.00, 45.0005.0005.0006.00, and 45.0005.0005.0007.00, respectively)
On PE1 and PE2: VPN instance name (VPNA), VPN target (100:100), RD (100:1) of PE1, and RD (200:1) of PE2
# Configure PE1.
[~PE1] mpls ldp [*PE1-mpls-ldp] mldp p2mp [*PE1-mpls-ldp] quit [*PE1-mpls-ldp] commit
# Configure PE2.
[~PE2] mpls ldp [*PE2-mpls-ldp] mldp p2mp [*PE2-mpls-ldp] quit [*PE2-mpls-ldp] commit
# Configure the P.
[~P] mpls ldp [*P-mpls-ldp] mldp p2mp [*P-mpls-ldp] quit [*P-mpls-ldp] commit
# Configure PE1.
[~PE1] bgp 100 [*PE1-bgp] ipv4-family mvpn [*PE1-bgp-af-mvpn] peer 3.3.3.3 enable [*PE1-bgp-af-mvpn] quit [*PE1-bgp] quit [*PE1] commit
# Configure PE2.
[~PE2] bgp 100 [*PE2-bgp] ipv4-family mvpn [*PE2-bgp-af-mvpn] peer 1.1.1.1 enable [*PE2-bgp-af-mvpn] quit [*PE2-bgp] quit [*PE2] commit
# Configure PE1.
[~PE1] multicast mvpn 1.1.1.1 [*PE1] ip vpn-instance VPNA [*PE1-vpn-instance-VPNA] ipv4-family [*PE1-vpn-instance-VPNA-af-ipv4] multicast routing-enable [*PE1-vpn-instance-VPNA-af-ipv4] mvpn [*PE1-vpn-instance-VPNA-af-ipv4-mvpn] sender-enable [*PE1-vpn-instance-VPNA-af-ipv4-mvpn] c-multicast signaling bgp [*PE1-vpn-instance-VPNA-af-ipv4-mvpn] rpt-spt mode [*PE1-vpn-instance-VPNA-af-ipv4-mvpn] ipmsi-tunnel [*PE1-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi] mldp [*PE1-vpn-instance-VPNA-af-ipv4-mvpn-spmsi] quit [*PE1-vpn-instance-VPNA-af-ipv4-mvpn] quit [*PE1-vpn-instance-VPNA-af-ipv4] quit [*PE1-vpn-instance-VPNA] quit [*PE1] commit
# Configure PE2.
[~PE2] multicast mvpn 3.3.3.3 [*PE2] ip vpn-instance VPNA [*PE2-vpn-instance-VPNA] ipv4-family [*PE2-vpn-instance-VPNA-af-ipv4] multicast routing-enable [*PE2-vpn-instance-VPNA-af-ipv4] mvpn [*PE2-vpn-instance-VPNA-af-ipv4-mvpn] c-multicast signaling bgp [*PE2-vpn-instance-VPNA-af-ipv4-mvpn] quit [*PE2-vpn-instance-VPNA-af-ipv4] quit [*PE2-vpn-instance-VPNA] quit [*PE2] commit
After the configurations are complete, run the display mvpn vpn-instance ipmsi command on the PEs to check I-PMSI tunnel information.
[~PE1] display mvpn vpn-instance VPNA ipmsi MVPN local i-PMSI information for VPN-Instance: VPNA Tunnel type: mLDP P2MP LSP Tunnel state: Up Root-ip: 1.1.1.1 Opaque value: 0x01000400008021 Root: 1.1.1.1 (local) Leaf: 1: 3.3.3.3
The command output shows that an mLDP P2MP tunnel has been established, with PE1 as the root and PE2 as a leaf.
# Configure PE1.
[~PE1] interface gigabitethernet0/1/1 [~PE1-GigabitEthernet0/1/1] pim sm [*PE1-GigabitEthernet0/1/1] quit [*PE1] commit
# Configure CE1.
[~CE1] multicast routing-enable [*CE1] interface gigabitethernet0/1/1 [*CE1-GigabitEthernet0/1/1] pim sm [*CE1-GigabitEthernet0/1/1] quit [*CE1] interface gigabitethernet0/1/2 [*CE1-GigabitEthernet0/1/2] pim sm [*CE1-GigabitEthernet0/1/2] quit [*CE1] commit
# Configure PE2.
[~PE2] interface gigabitethernet0/1/1 [~PE2-GigabitEthernet0/1/1] pim sm [*PE2-GigabitEthernet0/1/1] quit [*PE2] commit
# Configure CE2.
[~CE2] multicast routing-enable [*CE2] interface gigabitethernet0/1/1 [*CE2-GigabitEthernet0/1/1] pim sm [*CE2-GigabitEthernet0/1/1] quit [*CE2] interface gigabitethernet0/1/2 [*CE2-GigabitEthernet0/1/2] pim sm [*CE2-GigabitEthernet0/1/2] quit [*CE2] commit
# Configure CE2.
[~CE2] interface gigabitethernet0/1/1 [*CE2-GigabitEthernet0/1/1] pim sm [*CE2-GigabitEthernet0/1/1] igmp enable [*CE2-GigabitEthernet0/1/1] quit [*CE2] commit
After the configurations are complete, NG MVPN functions have been configured. If CE2 has access users, CE1 can use the BGP/MPLS IP VPN to forward multicast data to the users. Run the display pim routing-table command on CE2 and CE1 to check the PIM routing tables. Run the display pim vpn-instance routing-table command on PE2 and PE1 to check the PIM routing tables of the VPN instance.
[~CE2] display pim routing-table VPN-Instance: public net Total 0 (*, G) entry; 1 (S, G) entry (172.16.1.2, 239.1.1.1) RP:NULL Protocol: pim-sm, Flag: SPT SG_RCVR ACT UpTime: 00:54:11 Upstream interface: GigabitEthernet0/1/2, Refresh time: 00:54:11 Upstream neighbor: 192.168.2.1 RPF prime neighbor: 192.168.2.1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet0/1/1 Protocol: igmp, UpTime: 00:54:11, Expires: - [~PE2] display pim vpn-instance VPNA routing-table VPN-Instance: VPNA Total 0 (*, G) entry; 1 (S, G) entry (172.16.1.2, 239.1.1.1) RP:NULL Protocol: pim-sm, Flag: SPT ACT UpTime: 00:48:18 Upstream interface: through-BGP, Refresh time: 00:48:18 Upstream neighbor: 1.1.1.1 RPF prime neighbor: 1.1.1.1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet0/1/1 Protocol: pim-sm, UpTime: 00:48:18, Expires: 00:03:12
The command outputs show that CE1 has received PIM Join messages from CE2 and that a PIM routing entry is generated.
CE1
# sysname CE1 # multicast routing-enable # interface GigabitEthernet0/1/1 undo shutdown ip address 172.16.1.1 255.255.255.0 pim sm # interface GigabitEthernet0/1/2 undo shutdown ip address 192.168.1.2 255.255.255.0 pim sm # ospf 2 area 0.0.0.0 network 172.16.1.0 0.0.0.255 network 192.168.1.0 0.0.0.255 # return
PE1
# sysname PE1 # multicast mvpn 1.1.1.1 # ip vpn-instance VPNA ipv4-family route-distinguisher 100:100 vpn-target 100:100 export-extcommunity vpn-target 100:100 import-extcommunity multicast routing-enable mvpn sender-enable c-multicast signaling bgp ipmsi-tunnel mldp # mpls lsr-id 1.1.1.1 # mpls # mpls ldp mldp p2mp # ipv4-family # isis 2 network-entity 45.0005.0005.0005.00 # interface GigabitEthernet0/1/1 undo shutdown ip binding vpn-instance VPNA ip address 192.168.1.2 255.255.255.0 pim sm # interface GigabitEthernet0/1/2 undo shutdown ip address 10.1.1.1 255.255.255.0 isis enable 2 mpls mpls ldp # interface LoopBack1 ip address 1.1.1.1 255.255.255.255 isis enable 2 # bgp 100 peer 3.3.3.3 as-number 100 peer 3.3.3.3 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 3.3.3.3 enable # ipv4-family mvpn policy vpn-target peer 3.3.3.3 enable # ipv4-family vpnv4 policy vpn-target peer 3.3.3.3 enable # ipv4-family vpn-instance VPNA import-route ospf 2 # ospf 2 vpn-instance VPNA import-route bgp area 0.0.0.0 network 192.168.1.0 0.0.0.255 # return
CE2
# sysname CE2 # multicast routing-enable # interface GigabitEthernet0/1/1 undo shutdown ip address 172.16.2.1 255.255.255.0 pim sm igmp enable # interface GigabitEthernet0/1/2 undo shutdown ip address 192.168.2.2 255.255.255.0 pim sm # ospf 2 area 0.0.0.0 network 172.16.2.0 0.0.0.255 network 192.168.2.0 0.0.0.255 # return
PE2
# sysname PE2 # multicast mvpn 3.3.3.3 # ip vpn-instance VPNA ipv4-family route-distinguisher 200:1 vpn-target 100:100 export-extcommunity vpn-target 100:100 import-extcommunity multicast routing-enable mvpn c-multicast signaling bgp # mpls lsr-id 3.3.3.3 # mpls # mpls ldp mldp p2mp # ipv4-family # isis 2 network-entity 45.0005.0005.0007.00 # interface GigabitEthernet0/1/1 undo shutdown ip binding vpn-instance VPNA ip address 192.168.2.1 255.255.255.0 pim sm igmp enable # interface GigabitEthernet0/1/2 undo shutdown ip address 10.2.1.2 255.255.255.0 isis enable 2 mpls mpls ldp # interface LoopBack1 ip address 3.3.3.3 255.255.255.255 isis enable 2 # bgp 100 peer 1.1.1.1 as-number 100 peer 1.1.1.1 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 1.1.1.1 enable # ipv4-family mvpn policy vpn-target peer 1.1.1.1 enable # ipv4-family vpnv4 policy vpn-target peer 1.1.1.1 enable # ipv4-family vpn-instance VPNA import-route ospf 2 # ospf 10 area 0.0.0.0 network 3.3.3.3 0.0.0.0 network 10.2.1.0 0.0.0.255 # ospf 2 vpn-instance VPNA import-route bgp area 0.0.0.0 network 192.168.2.0 0.0.0.255 # return
P
# sysname P # mpls lsr-id 2.2.2.2 # mpls # mpls ldp mldp p2mp # ipv4-family # isis 2 network-entity 45.0005.0005.0006.00 # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.1.2 255.255.255.0 isis enable 2 mpls mpls ldp # interface GigabitEthernet0/1/2 undo shutdown ip address 10.2.1.1 255.255.255.0 isis enable 2 mpls mpls ldp # return