This section provides an example for configuring dual-root 1+1 protection for NG MVPN in intra-AS segmented tunnel scenarios.
In an NG MVPN scenario, if a sender PE on a P2MP tunnel fails, the VPN multicast service will be interrupted. The network can rely only on unicast route convergence for recovery. However, unicast route convergence takes a long time and may fail to meet the high reliability requirements of some multicast services. To resolve this issue, configure dual-root 1+1 protection based on traffic detection. On the network shown in Figure 1, a primary tunnel is established with PE1 as the root node, and a backup tunnel is established with PE2 as the root node. When the links are working properly, the same multicast traffic is forwarded through both the primary and backup tunnels. The leaf node PE3 selects the multicast traffic received from the primary tunnel and discards the multicast traffic received from the backup tunnel. If PE1 fails, the leaf nodes can use traffic detection technology to quickly detect the tunnel fault and choose to accept the multicast traffic received from the backup tunnel. This accelerates multicast service convergence and improves reliability.
The configuration roadmap is as follows:
Configure BGP/MPLS IP VPN and ensure that unicast VPN services are properly transmitted.
Enable P2MP TE globally on PE1, PE2, ABR1, and ABR2, and configure a P2MP TE template so that PE1, PE2, ABR1, and ABR2 can use RSVP-TE to establish P2MP tunnels.
Enable mLDP globally on ABR1, ABR2, and PE3 so that ABR1, ABR2, and PE3 can use mLDP to establish P2MP tunnels.
Enable all PEs and ABRs to establish BGP MVPN peer relationships and configure BGP to transmit A-D and C-multicast routes.
Configure PE1 and PE2 as sender PEs. Configure P2MP TE on PE1 and PE2 so that two P2MP TE tunnels rooted at PE1 and PE2 respectively can be established. Configure ABR1 and ABR2 as leaf nodes of the two tunnels.
Configure ABR1 and ABR2 to support segmented tunnels and configure tunnel stitching so that two mLDP P2MP LSPs rooted at ABR1 and ABR2 respectively can be established. Configure PE3 as a leaf node of both LSPs.
Configure VPN FRR on PE3 so that PE3 can have two routes to the multicast source. PE3 uses the route advertised by PE1 as the primary route and the route advertised by PE2 as the backup route.
Configure MVPN FRR on PE3, and set the detection mode to traffic-based detection.
Configure PIM on the PE interfaces bound to VPN instances and on the CEs' interfaces connected to PEs to allow a VPN multicast routing table to be established to guide multicast traffic forwarding.
Configure IGMP on the interfaces connecting a multicast device to a user network segment to allow the device to manage multicast group members on the network segment.
To complete the configuration, you need the following data:
IS-IS process ID of the public network: 1; OSPF process ID: 10; area ID: 0.0.0.1OSPF multi-process ID: 2; area ID: 0.0.0.0
Device |
Loopback 0 Interface Address |
MPLS LSR-ID |
MVPN ID |
RD |
VPN-Target |
AS Number |
---|---|---|---|---|---|---|
CE1 |
1.1.1.1 |
- |
- |
- |
- |
AS100 |
PE1 |
2.2.2.2 |
2.2.2.2 |
2.2.2.2 |
200:1 |
3:3 |
AS100 |
PE2 |
3.3.3.3 |
3.3.3.3 |
3.3.3.3 |
300:1 |
3:3 |
AS100 |
ABR1 |
4.4.4.4 |
4.4.4.4 |
4.4.4.4 |
400:1 |
3:3 |
AS100 |
ABR2 |
5.5.5.5 |
5.5.5.5 |
5.5.5.5 |
500:1 |
3:3 |
AS100 |
PE3 |
6.6.6.6 |
6.6.6.6 |
6.6.6.6 |
600:1 |
3:3 |
AS100 |
CE2 |
7.7.7.7 |
- |
- |
- |
- |
AS100 |
# Configure PE1.
[~PE1] bgp 100 [*PE1-bgp] ipv4-family mvpn [*PE1-bgp-af-mvpn] policy vpn-target [*PE1-bgp-af-mvpn] peer 4.4.4.4 enable [*PE1-bgp-af-mvpn] peer 5.5.5.5 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] policy vpn-target [*PE2-bgp-af-mvpn] peer 4.4.4.4 enable [*PE2-bgp-af-mvpn] peer 5.5.5.5 enable [*PE2-bgp-af-mvpn] quit [*PE2-bgp] quit [*PE2] commit
# Configure ABR1.
[~ABR1] route-policy policy_name1 permit node 1 [*ABR1-route-policy-rp1]apply stitch-pmsi mldp [*ABR1-route-policy-rp1]quit [*ABR1] bgp 100 [*ABR1-bgp] ipv4-family mvpn [*ABR1-bgp-af-mvpn] reflect change-path-attribute [*ABR1-bgp-af-mvpn] undo policy vpn-target [*ABR1-bgp-af-mvpn] peer 2.2.2.2 enable [*ABR1-bgp-af-mvpn] peer 2.2.2.2 reflect-client [*ABR1-bgp-af-mvpn] peer 3.3.3.3 enable [*ABR1-bgp-af-mvpn] peer 3.3.3.3 reflect-client [*ABR1-bgp-af-mvpn] peer 6.6.6.6 enable [*ABR1-bgp-af-mvpn] peer 6.6.6.6 route-policy policy_name1 export [*ABR1-bgp-af-mvpn] peer 6.6.6.6 reflect-client [*ABR1-bgp-af-mvpn] quit [*ABR1-bgp] quit [*ABR1] commit
# Configure ABR2.
[~ABR2] route-policy policy_name1 permit node 1 [*ABR2-route-policy-rp1] apply stitch-pmsi mldp [*ABR2-route-policy-rp1] quit [*ABR2] bgp 100 [*ABR2-bgp] ipv4-family mvpn [*ABR2-bgp-af-mvpn] reflect change-path-attribute [*ABR2-bgp-af-mvpn] undo policy vpn-target [*ABR2-bgp-af-mvpn] peer 2.2.2.2 enable [*ABR2-bgp-af-mvpn] peer 2.2.2.2 reflect-client [*ABR2-bgp-af-mvpn] peer 3.3.3.3 enable [*ABR2-bgp-af-mvpn] peer 3.3.3.3 reflect-client [*ABR2-bgp-af-mvpn] peer 6.6.6.6 enable [*ABR2-bgp-af-mvpn] peer 6.6.6.6 route-policy policy_name1 export [*ABR2-bgp-af-mvpn] peer 6.6.6.6 reflect-client [*ABR2-bgp-af-mvpn] quit [*ABR2-bgp] quit [*ABR2] commit
# Configure PE3.
[~PE3] ip ip-prefix PE1 index 10 permit 2.2.2.2 32 [~PE3] ip ip-prefix PE2 index 10 permit 3.3.3.3 32 [~PE3] ip extcommunity-list segmented-nh basic ABR1 index 10 permit 4.4.4.4:0 [~PE3] ip extcommunity-list segmented-nh basic ABR2 index 10 permit 5.5.5.5:0 [~PE3] route-policy rp1 permit node 10 [*PE3-route-policy-ABR1] if-match route-type mvpn 3 [*PE3-route-policy-ABR1] if-match ip route-originator ip-prefix PE1 [*PE3-route-policy-ABR1] if-match extcommunity-list segmented-nh ABR1 [*PE3-route-policy-ABR1] apply local-preference 200 [*PE3-route-policy-ABR1] quit [~PE3] route-policy rp1 permit node 11 [*PE3-route-policy-ABR1] if-match route-type mvpn 1 [*PE3-route-policy-ABR1] if-match ip route-originator ip-prefix PE1 [*PE3-route-policy-ABR1] if-match extcommunity-list segmented-nh ABR1 [*PE3-route-policy-ABR1] apply local-preference 200 [*PE3-route-policy-ABR1] quit [~PE3] route-policy rp2 permit node 10 [*PE3-route-policy-ABR2] if-match route-type mvpn 3 [*PE3-route-policy-ABR2] if-match ip route-originator ip-prefix PE2 [*PE3-route-policy-ABR2] if-match extcommunity-list segmented-nh ABR2 [*PE3-route-policy-ABR2] apply local-preference 200 [*PE3-route-policy-ABR2] quit [~PE3] route-policy rp2 permit node 11 [*PE3-route-policy-ABR2] if-match route-type mvpn 1 [*PE3-route-policy-ABR2] if-match ip route-originator ip-prefix PE2 [*PE3-route-policy-ABR2] if-match extcommunity-list segmented-nh ABR2 [*PE3-route-policy-ABR2] apply local-preference 200 [*PE3-route-policy-ABR2] quit [*PE3] bgp 100 [*PE3-bgp] ipv4-family mvpn [*PE3-bgp-af-mvpn] policy vpn-target [*PE3-bgp-af-mvpn] peer 4.4.4.4 enable [*PE3-bgp-af-mvpn] peer 5.5.5.5 enable [*PE3-bgp-af-mvpn] peer 4.4.4.4 route-policy rp1 import [*PE3-bgp-af-mvpn] peer 5.5.5.5 route-policy rp2 import [*PE3-bgp-af-mvpn] quit [*PE3-bgp] quit [*PE3] commit
# Configure ABR1.
[~ABR1] route-policy policy_name1 permit node 1 [*ABR1-route-policy-rp1] apply stitch-pmsi mldp [*ABR1-route-policy-rp1]quit [*ABR1] bgp 100 [*ABR1-bgp] ipv4-family mvpn [*ABR1-bgp-af-mvpn] reflect change-path-attribute [*ABR1-bgp-af-mvpn] undo policy vpn-target [*ABR1-bgp-af-mvpn] peer 2.2.2.2 enable [*ABR1-bgp-af-mvpn] peer 2.2.2.2 reflect-client [*ABR1-bgp-af-mvpn] peer 3.3.3.3 enable [*ABR1-bgp-af-mvpn] peer 3.3.3.3 reflect-client [*ABR1-bgp-af-mvpn] peer 6.6.6.6 enable [*ABR1-bgp-af-mvpn] peer 6.6.6.6 route-policy policy_name1 export [*ABR1-bgp-af-mvpn] peer 6.6.6.6 reflect-client [*ABR1-bgp-af-mvpn] quit [*ABR1-bgp] quit [*ABR1] commit
# Configure ABR2.
[~ABR2] route-policy policy_name1 permit node 1 [*ABR2-route-policy-rp1]apply stitch-pmsi mldp [*ABR2-route-policy-rp1]quit [*ABR2] bgp 100 [*ABR2-bgp] ipv4-family mvpn [*ABR2-bgp-af-mvpn] reflect change-path-attribute [*ABR2-bgp-af-mvpn] undo policy vpn-target [*ABR2-bgp-af-mvpn] peer 2.2.2.2 enable [*ABR2-bgp-af-mvpn] peer 2.2.2.2 reflect-client [*ABR2-bgp-af-mvpn] peer 3.3.3.3 enable [*ABR2-bgp-af-mvpn] peer 3.3.3.3 reflect-client [*ABR2-bgp-af-mvpn] peer 6.6.6.6 enable [*ABR2-bgp-af-mvpn] peer 6.6.6.6 route-policy policy_name1 export [*ABR2-bgp-af-mvpn] peer 6.6.6.6 reflect-client [*ABR2-bgp-af-mvpn] quit [*ABR2-bgp] quit [*ABR2] commit
# Configure PE1.
[*PE1] ip vpn-instance vpn1 [*PE1-vpn-instance-vpn1] ipv4-family [*PE1-vpn-instance-vpn1-af-ipv4] mvpn [*PE1-vpn-instance-vpn1-af-ipv4-mvpn] inter-area-segmented enable [*PE1-vpn-instance-vpn1-af-ipv4-mvpn] quit [*PE1-vpn-instance-vpn1-af-ipv4] quit [*PE1-vpn-instance-vpn1] quit [*PE1] commit
# Configure PE2.
[*PE2] ip vpn-instance vpn1 [*PE2-vpn-instance-vpn1] ipv4-family [*PE2-vpn-instance-vpn1-af-ipv4] mvpn [*PE2-vpn-instance-vpn1-af-ipv4-mvpn] inter-area-segmented enable [*PE2-vpn-instance-vpn1-af-ipv4-mvpn] quit [*PE2-vpn-instance-vpn1-af-ipv4] quit [*PE2-vpn-instance-vpn1] quit [*PE2] commit
# Configure ABR1.
[~ABR1] multicast mvpn inter-area-segmented enable [*ABR1] commit
# Configure ABR2.
[~ABR2] multicast mvpn inter-area-segmented enable [*ABR2] commit
# Configure PE1.
[~PE1] multicast mvpn 2.2.2.2 [*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] ipmsi-tunnel [*PE1-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi] mpls te [*PE1-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi-mpls-te] p2mp-template t1 [*PE1-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi-mpls-te] quit [*PE1-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi] 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] sender-enable [*PE2-vpn-instance-VPNA-af-ipv4-mvpn] ipmsi-tunnel [*PE2-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi] mpls te [*PE2-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi-mpls-te] p2mp-template t1 [*PE2-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi-mpls-te] quit [*PE2-vpn-instance-VPNA-af-ipv4-mvpn-ipmsi] quit [*PE2-vpn-instance-VPNA-af-ipv4-mvpn] quit [*PE2-vpn-instance-VPNA-af-ipv4] quit [*PE2-vpn-instance-VPNA] quit [*PE2] commit
# Configure ABR1.
[~ABR1] multicast mvpn 4.4.4.4 [*ABR1] commit
# Configure ABR2.
[~ABR2] multicast mvpn 5.5.5.5 [*ABR2] commit
# Configure PE1.
[*PE1] ip vpn-instance vpn1 [*PE1-vpn-instance-vpn1] ipv4-family [*PE1-vpn-instance-vpn1-af-ipv4] mvpn [*PE1-vpn-instance-vpn1-af-ipv4-mvpn] spmsi-tunnel [*PE1-vpn-instance-vpn1-af-ipv4-mvpn-ipmsi-mpls-te] group 225.1.1.1 255.255.255.255 source 10.1.3.2 255.255.255.255 rsvp-te p2mp-template t1 [*PE1-vpn-instance-vpn1-af-ipv4-mvpn-spmsi-mpls-te] quit [*PE1-vpn-instance-vpn1-af-ipv4-mvpn-ipmsi] quit [*PE1-vpn-instance-vpn1-af-ipv4-mvpn] quit [*PE1-vpn-instance-vpn1-af-ipv4] quit [*PE1-vpn-instance-vpn1] quit [*PE1] commit
# Configure PE2.
[*PE2] ip vpn-instance vpn1 [*PE2-vpn-instance-vpn1] ipv4-family [*PE2-vpn-instance-vpn1-af-ipv4] mvpn [*PE2-vpn-instance-vpn1-af-ipv4-mvpn] spmsi-tunnel [*PE2-vpn-instance-vpn1-af-ipv4-mvpn-ipmsi-mpls-te] group 225.1.1.1 255.255.255.255 source 10.1.3.2 255.255.255.255 rsvp-te p2mp-template t1 [*PE2-vpn-instance-vpn1-af-ipv4-mvpn-spmsi-mpls-te] quit [*PE2-vpn-instance-vpn1-af-ipv4-mvpn-ipmsi] quit [*PE2-vpn-instance-vpn1-af-ipv4-mvpn] quit [*PE2-vpn-instance-vpn1-af-ipv4] quit [*PE2-vpn-instance-vpn1] quit [*PE2] commit
[~PE3] bgp 100 [*PE3-bgp] ipv4-family vpn-instance VPNA [*PE3-bgp-VPNA] auto-frr [*PE3-bgp-VPNA] quit [*PE3-bgp] quit [*PE3] commit
[~PE3] acl 2222 [*PE3-acl4-basic-2222] rule permit source 225.1.1.0 0.0.0.255 [*PE3-acl4-basic-2222] quit [*PE3] ip vpn-instance VPNA [*PE3-vpn-instance-VPNA] ipv4-family [*PE3-vpn-instance-VPNA-af-ipv4] mvpn [*PE3-vpn-instance-VPNA-af-ipv4-mvpn] c-multicast frr 2222 [*PE3-vpn-instance-VPNA-af-ipv4-mvpn] c-multicast frr flow-detection-based 2222 [*PE3-vpn-instance-VPNA-af-ipv4-mvpn] quit [*PE3-vpn-instance-VPNA-af-ipv4] quit [*PE3-vpn-instance-VPNA] quit [*PE3] commit
# 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/0 [*CE1-GigabitEthernet0/1/0] pim sm [*CE1-GigabitEthernet0/1/0] quit [*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 PE3.
[*PE3] interface gigabitethernet0/1/0 [*PE3-GigabitEthernet0/1/0] pim sm [*PE3-GigabitEthernet0/1/0] quit [*PE3] commit
# Configure CE2.
[~CE2] multicast routing-enable [*CE2] interface gigabitethernet0/1/0 [*CE2-GigabitEthernet0/1/0] pim sm [*CE2-GigabitEthernet0/1/0] quit [*CE2] interface gigabitethernet0/1/1 [*CE2-GigabitEthernet0/1/1] pim sm [*CE2-GigabitEthernet0/1/1] quit [*CE2] commit
[~CE2] interface gigabitethernet0/1/1 [*CE2-GigabitEthernet0/1/1] pim sm [*CE2-GigabitEthernet0/1/1] igmp enable [*CE2-GigabitEthernet0/1/1] igmp version 3 [*CE2-GigabitEthernet0/1/1] quit [*CE2] commit
After the configuration is complete, mLDP P2MP LSPs have dual-root 1+1 protection. After users of CE2 send IGMPv3 Report messages and the multicast source at 10.1.3.2 sends multicast traffic, you can check multicast routing entries.
When the links are working properly:
[~PE3] display pim vpn-instance VPNA routing-table VPN-Instance: VPNA Total 0 (*, G) entry; 1 (S, G) entry (10.1.3.2, 225.1.1.1) RP: NULL Protocol: pim-sm, Flag: SPT ACT UpTime: 03:12:27 Upstream interface: through-BGP, Refresh time: 03:12:27 Upstream neighbor: 4.4.4.4 RPF prime neighbor: 4.4.4.4 Backup Upstream neighbor: 5.5.5.5 Backup RPF prime neighbor: 5.5.5.5 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet0/1/0 Protocol: pim-sm, UpTime: 03:12:27, Expires: 00:03:05
If a link fails:
[~PE1] interface gigabitethernet0/1/0 [~PE1-GigabitEthernet0/1/0] shutdown [*PE1-GigabitEthernet0/1/0] quit [*PE1] commit
# Run the display pim routing-table command on receiver CE2 and sender CE1 to check the PIM routing table. Run the display pim vpn-instance routing-table command on receiver PE3 and sender PE2 to check the PIM routing table of the VPN instance.
[~CE2] display pim routing-table VPN-Instance: public net Total 0 (*, G) entry; 1 (S, G) entry (10.1.3.2, 225.1.1.1) RP: NULL Protocol: pim-sm, Flag: SPT SG_RCVR ACT UpTime: 05:39:14 Upstream interface: GigabitEthernet0/1/0, Refresh time: 05:39:14 Upstream neighbor: 192.168.3.1 RPF prime neighbor: 192.168.3.1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet0/1/1 Protocol: igmp, UpTime: 05:39:14, Expires: - [~PE3] display pim vpn-instance VPNA routing-table VPN-Instance: VPNA Total 0 (*, G) entry; 1 (S, G) entry (10.1.3.2, 225.1.1.1) RP: NULL Protocol: pim-sm, Flag: SPT ACT UpTime: 03:32:13 Upstream interface: through-BGP, Refresh time: 03:32:13 Upstream neighbor: 5.5.5.5 RPF prime neighbor: 5.5.5.5 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet0/1/0 Protocol: pim-sm, UpTime: 03:32:13, Expires: 00:03:19 [~PE2] display pim vpn-instance VPNA routing-table VPN-Instance: VPNA Total 0 (*, G) entry; 1 (S, G) entry (10.1.3.2, 225.1.1.1) RP: NULL Protocol: pim-sm, Flag: SPT SG_RCVR ACT UpTime: 03:25:51 Upstream interface: GigabitEthernet0/1/1, Refresh time: 03:25:51 Upstream neighbor: 192.168.2.1 RPF prime neighbor: 192.168.2.1 Downstream interface(s) information: Total number of downstreams: 1 1: pseudo Protocol: BGP, UpTime: 03:25:51, Expires: - [~CE1] display pim routing-table VPN-Instance: public net Total 0 (*, G) entry; 1 (S, G) entry (10.1.3.2, 225.1.1.1) RP: NULL Protocol: pim-sm, Flag: SPT LOC ACT UpTime: 03:35:37 Upstream interface: GigabitEthernet0/1/0, Refresh time: 03:35:37 Upstream neighbor: NULL RPF prime neighbor: NULL Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet0/1/2 Protocol: pim-sm, UpTime: 03:28:03, Expires: 00:03:28
The command outputs show that traffic exists in the backup mLDP P2MP LSP because a backup upstream device is available. Therefore, multicast traffic in the backup tunnel can be forwarded to receivers immediately after the primary tunnel fault is detected through multicast traffic-based detection.
CE1 configuration file
# sysname CE1 # multicast routing-enable # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.3.1 255.255.255.0 pim sm # interface GigabitEthernet0/1/1 undo shutdown ip address 192.168.1.1 255.255.255.0 pim sm # interface GigabitEthernet0/1/2 undo shutdown ip address 192.168.2.1 255.255.255.0 pim sm # interface LoopBack0 ip address 1.1.1.1 255.255.255.255 # ospf 2 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 10.1.3.0 0.0.0.255 network 192.168.1.0 0.0.0.255 network 192.168.2.0 0.0.0.255 # return
PE1 configuration file
# sysname PE1 # multicast mvpn 2.2.2.2 # ip vpn-instance VPNA ipv4-family route-distinguisher 200:1 apply-label per-instance vpn-target 3:3 export-extcommunity vpn-target 3:3 import-extcommunity multicast routing-enable mvpn sender-enable c-multicast signaling bgp inter-area-segmented enable ipmsi-tunnel mpls-te p2mp-template t1 spmsi-tunnel group 225.1.1.1 255.255.255.255 source 10.1.3.2 255.255.255.255 rsvp-te p2mp-template t1 # mpls lsr-id 2.2.2.2 # mpls mpls te mpls te p2mp-te mpls rsvp-te mpls te cspf # mpls te p2mp-template t1 record-route label bandwidth ct0 100 fast-reroute bandwidth bypass-attributes bandwidth 10 priority 7 7 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.15.2 255.255.255.0 ospf enable 10 area 0.0.0.1 mpls mpls te mpls rsvp-te # interface GigabitEthernet0/1/1 undo shutdown ip address 10.0.7.1 255.255.255.0 ospf enable 10 area 0.0.0.1 mpls mpls te mpls rsvp-te # interface GigabitEthernet0/1/2 undo shutdown ip binding vpn-instance VPNA ip address 192.168.1.2 255.255.255.0 pim sm # interface LoopBack0 ip address 2.2.2.2 255.255.255.255 ospf enable 10 area 0.0.0.1 # bgp 100 peer 4.4.4.4 as-number 100 peer 4.4.4.4 connect-interface LoopBack0 peer 5.5.5.5 as-number 100 peer 5.5.5.5 connect-interface LoopBack0 # ipv4-family unicast undo synchronization peer 4.4.4.4 enable peer 5.5.5.5 enable # ipv4-family mvpn policy vpn-target peer 4.4.4.4 enable peer 5.5.5.5 enable # ipv4-family vpnv4 policy vpn-target peer 4.4.4.4 enable peer 5.5.5.5 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 # ospf 10 opaque-capability enable area 0.0.0.1 mpls-te enable # return
ABR1 configuration file
# sysname ABR1 # multicast mvpn 4.4.4.4 # multicast mvpn inter-area-segmented enable # mpls lsr-id 4.4.4.4 # mpls mpls te mpls te p2mp-te mpls rsvp-te mpls te cspf lsp-trigger all # mpls ldp mldp p2mp # ipv4-family # isis 1 is-level level-2 network-entity 46.0006.0006.0004.00 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.15.1 255.255.255.0 ospf enable 10 area 0.0.0.1 mpls mpls te mpls rsvp-te # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.1.1 255.255.255.0 isis enable 1 mpls mpls ldp # interface GigabitEthernet0/1/2 undo shutdown ip address 10.1.7.3 255.255.255.0 ospf enable 10 area 0.0.0.1 mpls mpls te mpls rsvp-te # interface LoopBack0 ip address 4.4.4.4 255.255.255.255 ospf enable 10 area 0.0.0.1 isis enable 1 # bgp 100 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack0 peer 3.3.3.3 as-number 100 peer 3.3.3.3 connect-interface LoopBack0 peer 6.6.6.6 as-number 100 peer 6.6.6.6 connect-interface LoopBack0 # ipv4-family unicast undo synchronization import-route direct peer 2.2.2.2 enable peer 2.2.2.2 reflect-client peer 3.3.3.3 enable peer 3.3.3.3 reflect-client peer 6.6.6.6 enable peer 6.6.6.6 reflect-client # ipv4-family mvpn reflect change-path-attribute undo policy vpn-target peer 2.2.2.2 enable peer 2.2.2.2 reflect-client peer 3.3.3.3 enable peer 3.3.3.3 reflect-client peer 6.6.6.6 enable peer 6.6.6.6 route-policy policy_name1 export peer 6.6.6.6 reflect-client # ipv4-family vpnv4 undo policy vpn-target peer 2.2.2.2 enable peer 2.2.2.2 reflect-client peer 2.2.2.2 next-hop-local peer 3.3.3.3 enable peer 3.3.3.3 reflect-client peer 3.3.3.3 next-hop-local peer 6.6.6.6 enable peer 6.6.6.6 reflect-client peer 6.6.6.6 next-hop-local # ospf 10 opaque-capability enable area 0.0.0.1 mpls-te enable # route-policy policy_name1 permit node 1 apply stitch-pmsi mldp # ip ip-prefix 1 index 10 permit 2.2.2.2 32 # return
PE2 configuration file
# sysname PE2 # multicast mvpn 3.3.3.3 # ip vpn-instance VPNA ipv4-family route-distinguisher 300:1 apply-label per-instance vpn-target 3:3 export-extcommunity vpn-target 3:3 import-extcommunity multicast routing-enable mvpn sender-enable c-multicast signaling bgp inter-area-segmented enable ipmsi-tunnel mpls-te p2mp-template t1 spmsi-tunnel group 225.1.1.1 255.255.255.255 source 10.1.3.2 255.255.255.255 rsvp-te p2mp-template t1 # mpls lsr-id 3.3.3.3 # mpls mpls te mpls te p2mp-te mpls rsvp-te mpls te cspf # mpls te p2mp-template t1 record-route label bandwidth ct0 100 fast-reroute bandwidth bypass-attributes bandwidth 10 priority 7 7 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.16.2 255.255.255.0 ospf enable 10 area 0.0.0.1 mpls mpls te mpls rsvp-te # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.7.1 255.255.255.0 ospf enable 10 area 0.0.0.1 mpls mpls te mpls rsvp-te # interface GigabitEthernet0/1/2 undo shutdown ip binding vpn-instance VPNA ip address 192.168.2.2 255.255.255.0 pim sm # interface LoopBack0 ip address 3.3.3.3 255.255.255.255 ospf enable 10 area 0.0.0.1 # bgp 100 peer 4.4.4.4 as-number 100 peer 4.4.4.4 connect-interface LoopBack0 peer 5.5.5.5 as-number 100 peer 5.5.5.5 connect-interface LoopBack0 # ipv4-family unicast undo synchronization peer 4.4.4.4 enable peer 5.5.5.5 enable # ipv4-family mvpn policy vpn-target peer 5.5.5.5 enable # ipv4-family vpnv4 policy vpn-target peer 4.4.4.4 enable peer 5.5.5.5 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.2.0 0.0.0.255 # ospf 10 opaque-capability enable area 0.0.0.1 mpls-te enable # return
ABR2 configuration file
# sysname ABR2 # multicast mvpn 5.5.5.5 # multicast mvpn inter-area-segmented enable mpls lsr-id 5.5.5.5 # mpls mpls te mpls te p2mp-te mpls rsvp-te mpls te cspf lsp-trigger all # mpls ldp mldp p2mp # ipv4-family # isis 1 is-level level-2 network-entity 46.0006.0006.0005.00 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.16.1 255.255.255.0 ospf enable 10 area 0.0.0.1 mpls mpls te mpls rsvp-te # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.2.1 255.255.255.0 isis enable 1 mpls mpls ldp # interface GigabitEthernet0/1/2 undo shutdown ip address 10.0.7.3 255.255.255.0 ospf enable 10 area 0.0.0.1 mpls mpls te mpls rsvp-te # interface LoopBack0 ip address 5.5.5.5 255.255.255.255 ospf enable 10 area 0.0.0.1 isis enable 1 # bgp 100 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack0 peer 3.3.3.3 as-number 100 peer 3.3.3.3 connect-interface LoopBack0 peer 6.6.6.6 as-number 100 peer 6.6.6.6 connect-interface LoopBack0 # ipv4-family unicast undo synchronization import-route direct peer 2.2.2.2 enable peer 2.2.2.2 reflect-client peer 3.3.3.3 enable peer 3.3.3.3 reflect-client peer 6.6.6.6 enable peer 6.6.6.6 reflect-client # ipv4-family mvpn reflect change-path-attribute undo policy vpn-target peer 2.2.2.2 enable peer 2.2.2.2 reflect-client peer 3.3.3.3 enable peer 3.3.3.3 reflect-client peer 6.6.6.6 enable peer 6.6.6.6 route-policy policy_name1 export peer 6.6.6.6 reflect-client # ipv4-family vpnv4 undo policy vpn-target peer 2.2.2.2 enable peer 2.2.2.2 reflect-client peer 2.2.2.2 next-hop-local peer 3.3.3.3 enable peer 3.3.3.3 reflect-client peer 3.3.3.3 next-hop-local peer 6.6.6.6 enable peer 6.6.6.6 reflect-client peer 6.6.6.6 next-hop-local # ospf 10 opaque-capability enable area 0.0.0.1 mpls-te enable # route-policy policy_name1 permit node 1 apply stitch-pmsi mldp # ip ip-prefix 1 index 10 permit 3.3.3.3 32 # return
PE3 configuration file
# sysname PE3 # multicast mvpn 6.6.6.6 # ip vpn-instance VPNA ipv4-family route-distinguisher 600:1 apply-label per-instance vpn-target 3:3 export-extcommunity vpn-target 3:3 import-extcommunity multicast routing-enable mvpn c-multicast signaling bgp c-multicast frr 2222 c-multicast frr flow-detection-based 2222 # acl 2222 rule permit source 225.1.1.0 0.0.0.255 # mpls lsr-id 6.6.6.6 # mpls # mpls ldp mldp p2mp # isis 1 is-level level-2 cost-style wide network-entity 46.0006.0006.0006.00 traffic-eng level-1-2 # interface GigabitEthernet0/1/0 undo shutdown ip binding vpn-instance VPNA ip address 192.168.3.1 255.255.255.0 pim sm # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.1.2 255.255.255.0 isis enable 1 mpls mpls ldp # interface GigabitEthernet0/1/2 undo shutdown ip address 10.1.2.2 255.255.255.0 isis enable 1 mpls mpls ldp # interface LoopBack0 ip address 6.6.6.6 255.255.255.255 isis enable 1 # bgp 100 peer 4.4.4.4 as-number 100 peer 4.4.4.4 connect-interface LoopBack0 peer 5.5.5.5 as-number 100 peer 5.5.5.5 connect-interface LoopBack0 # ipv4-family unicast undo synchronization peer 4.4.4.4 enable peer 5.5.5.5 enable # ipv4-family mvpn policy vpn-target peer 4.4.4.4 enable peer 4.4.4.4 route-policy rp1 import peer 5.5.5.5 enable peer 5.5.5.5 route-policy rp2 import # ipv4-family vpnv4 policy vpn-target peer 4.4.4.4 enable peer 5.5.5.5 enable # ipv4-family vpn-instance VPNA import-route isis 1 import-route ospf 2 auto-frr # ospf 2 vpn-instance VPNA import-route bgp area 0.0.0.0 network 192.168.3.0 0.0.0.255 # route-policy rp1 permit node 10 if-match route-type mvpn 3 if-match ip route-originator ip-prefix PE1 if-match extcommunity-list segmented-nh ABR1 apply local-preference 200 # route-policy rp1 permit node 11 if-match route-type mvpn 1 if-match ip route-originator ip-prefix PE1 if-match extcommunity-list segmented-nh ABR1 apply local-preference 200 # route-policy rp2 permit node 10 if-match route-type mvpn 3 if-match ip route-originator ip-prefix PE2 if-match extcommunity-list segmented-nh ABR2 apply local-preference 200 # route-policy rp2 permit node 11 if-match route-type mvpn 1 if-match ip route-originator ip-prefix PE2 if-match extcommunity-list segmented-nh ABR2 apply local-preference 200 # ip ip-prefix PE1 index 10 permit 2.2.2.2 32 ip ip-prefix PE2 index 10 permit 3.3.3.3 32 ip extcommunity-list segmented-nh basic ABR1 index 10 permit 4.4.4.4:0 ip extcommunity-list segmented-nh basic ABR2 index 10 permit 5.5.5.5:0 # return
CE2 configuration file
# sysname CE2 # multicast routing-enable # interface GigabitEthernet0/1/0 undo shutdown ip address 192.168.3.2 255.255.255.0 pim sm # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.4.1 255.255.255.0 pim sm igmp enable igmp version 3 igmp static-group 225.1.1.1 source 10.1.3.2 # interface LoopBack0 ip address 7.7.7.7 255.255.255.255 # ospf 2 area 0.0.0.0 network 7.7.7.7 0.0.0.0 network 10.1.4.0 0.0.0.255 network 192.168.3.0 0.0.0.255 # return