This section provides an example for configuring NG MVPN over BIER dual-root 1+1 protection.
In an NG MVPN over BIER scenario shown in Figure 1, if Root1 fails, the subsequent forwarding of multicast services depends on unicast route convergence. However, this is unacceptable for multicast services that require high reliability, because the convergence takes a long time to complete. To address this problem, configure flow-based dual-root 1+1 protection. When both the primary and secondary links are working properly, the same multicast data flow is forwarded along both the primary tunnel (over the primary link) and the secondary tunnel (over the secondary link). The leaf node accepts the multicast flow received from the primary tunnel (with Root1 as the root) and discards the multicast flow received from the secondary tunnel (with Root2 as the root). If Root1 fails, the leaf node uses flow-based dual-root 1+1 protection to quickly detect the tunnel fault and accepts the multicast flow received from the secondary tunnel. Flow-based dual-root 1+1 protection accelerates the convergence of multicast services and improves reliability.
The configuration roadmap is as follows:
Configure BGP/MPLS IP VPN to ensure that unicast VPN services are properly transmitted. In this example, MPLS LDP is configured on the public network, and IS-IS is deployed as the unicast routing protocol. In addition, an IS-IS neighbor relationship is established in a VPN instance between the CE and Root1 and between the CE and Root2.
Configure BIER on Root1, Root2, and the leaf node, and configure IS-IS as an underlay protocol of BIER.
Establish a BGP MVPN peer relationship between Root1 and the leaf node and between Root2 and the leaf node so that the peers can use BGP to transmit A-D and C-multicast routes.
Configure PIM-SM on the interfaces bound to the VPN instance on Root1, Root2, and the leaf node and on CE interfaces.
To complete the configuration, you need the following data:
IS-IS process ID (1000) of the public network, and VPN instance name (bier) on Root1, Root2, and the leaf node
# Configure Root1.
[~Root1] interface LoopBack1 [*Root1-LoopBack1] ip address 3.3.3.1 32 [*Root1-LoopBack1] isis enable 1000 [*Root1-LoopBack1] commit [~Root1-LoopBack1] quit [~Root1] bier [*Root1-bier] sub-domain 0 [*Root1-bier-sub-domain-0] bfr-id 1 [*Root1-bier-sub-domain-0] bfr-prefix interface loopback1 [*Root1-bier-sub-domain-0] protocol isis [*Root1-bier-sub-domain-0] encapsulation-type mpls bsl 256 max-si 2 [*Root1-bier-sub-domain-0] quit [*Root1-bier] quit [*Root1] isis 1000 [*Root1-isis-1000] cost-style wide [*Root1-isis-1000] bier enable [*Root1-isis-1000] quit
The configurations of the leaf node and Root2 are similar to the configuration of Root1. For configuration details, see Configuration Files in this section.
# Configure Root1.
[~Root1] bgp 1000 [*Root1-bgp] ipv4-family mvpn [*Root1-bgp-af-mvpn] peer 2.2.2.1 enable [*Root1-bgp-af-mvpn] commit [~Root1-bgp-af-mvpn] quit [~Root1-bgp] quit
The configurations of the leaf node and Root2 are similar to the configuration of Root1. For configuration details, see Configuration Files in this section.
After completing the configurations, run the display bgp mvpn all peer command on the leaf node to check information about BGP MVPN peer relationships. The command output shows that the leaf node has established a BGP MVPN peer relationship with Root1 and Root2.
[~Leaf] display bgp mvpn all peer
BGP local router ID : 2.2.2.1
Local AS number : 1000
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.1 4 1000 163 165 0 02:10:22 Established 4
4.4.4.1 4 1000 288 289 0 03:44:42 Established 4
# Configure Root1.
[~Root1] multicast mvpn 3.3.3.1 [*Root1] ip vpn-instance bier [*Root1-vpn-instance-bier] ipv4-family [*Root1-vpn-instance-bier-af-ipv4] multicast routing-enable [*Root1-vpn-instance-bier-af-ipv4] mvpn [*Root1-vpn-instance-bier-af-ipv4-mvpn] sender-enable [*Root1-vpn-instance-bier-af-ipv4-mvpn] c-multicast signaling bgp [*Root1-vpn-instance-bier-af-ipv4-mvpn] rpt-spt mode [*Root1-vpn-instance-bier-af-ipv4-mvpn] ipmsi-tunnel [*Root1-vpn-instance-bier-af-ipv4-mvpn-ipmsi] bier [*Root1-vpn-instance-bier-af-ipv4-mvpn-ipmsi] quit [*Root1-vpn-instance-bier-af-ipv4-mvpn] quit [*Root1-vpn-instance-bier-af-ipv4] quit [*Root1-vpn-instance-bier] quit [*Root1] commit
The configuration of Root2 is similar to the configuration of Root1. For configuration details, see Configuration Files in this section.
# Configure the leaf node.
[~Leaf] ip vpn-instance VPNA [~Leaf-vpn-instance-VPNA] ipv4-family [~Leaf-vpn-instance-VPNA-af-ipv4] vpn frr [*Leaf-vpn-instance-VPNA-af-ipv4] quit [*Leaf-vpn-instance-VPNA] quit [*Leaf] commit [~Leaf] acl number 2166 [*Leaf-acl4-basic-2166] rule 5 permit [*Leaf-acl4-basic-2166] quit [*Leaf] multicast mvpn 2.2.2.1 [*Leaf] ip vpn-instance bier [*Leaf-vpn-instance-bier] ipv4-family [*Leaf-vpn-instance-bier-af-ipv4] multicast routing-enable [*Leaf-vpn-instance-bier-af-ipv4] mvpn [*Leaf-vpn-instance-bier-af-ipv4-mvpn] c-multicast signaling bgp [*Leaf-vpn-instance-bier-af-ipv4-mvpn] c-multicast frr [*Leaf-vpn-instance-bier-af-ipv4-mvpn] c-multicast frr flow-detection-based 2166 [*Leaf-vpn-instance-bier-af-ipv4-mvpn] rpt-spt mode [*Leaf-vpn-instance-bier-af-ipv4-mvpn] quit [*Leaf-vpn-instance-bier-af-ipv4] quit [*Leaf-vpn-instance-bier] quit [*Leaf1] commit
# Configure Root1.
[~Root1] interface gigabitethernet0/1/0 [*Root1-GigabitEthernet0/1/0] pim sm [*Root1-GigabitEthernet0/1/0] quit [*Root1] commit
The configurations of the leaf node and Root2 are similar to the configuration of Root1. For configuration details, see Configuration Files in this section.
# Configure the CE.
[~CE] interface gigabitethernet0/1/0 [*CE-GigabitEthernet0/1/0] pim sm [*CE-GigabitEthernet0/1/0] quit [*CE] interface gigabitethernet0/1/1 [*CE-GigabitEthernet0/1/1] pim sm [*CE-GigabitEthernet0/1/1] quit [*CE] interface gigabitethernet0/1/2 [*CE-GigabitEthernet0/1/2] pim sm [*CE-GigabitEthernet0/1/2] quit [*CE] commit
[~Root1] pim vpn-instance bier [*Root1-pim-bier] static-rp 10.1.5.2 [*Root1-pim-bier] quit [*Root1-pim-bier] commit
The configurations of the leaf node and Root2 are similar to the configuration of Root1. For configuration details, see Configuration Files in this section.
[~CE] pim [*CE-pim] static-rp 10.1.5.2 [*CE-pim] quit [*CE-pim] commit
If users connected to Receiver join the multicast group, Source uses the BGP/MPLS IP VPN to forward multicast data to the users.
Run the display pim vpn-instance routing-table command on the receiver leaf node to check the PIM routing table of the VPN instance.
[~Leaf]display pim vpn-instance bier routing-table VPN-Instance: bier Total 1 (*, G) entry; 1 (S, G) entry (*, 226.0.0.1) RP: 10.1.5.2 Protocol: pim-sm, Flag: WC UpTime: 00:42:24 Upstream interface: GigabitEthernet0/1/2, Refresh time: 00:42:24 Upstream neighbor: 10.1.5.2 RPF prime neighbor: 10.1.5.2 Downstream interface(s) information: none (10.1.6.100, 226.0.0.1) RP: 10.1.5.2 Protocol: pim-sm, Flag: RPT SPT ACT BGP UpTime: 00:37:45 Upstream interface: through-BGP, Refresh time: 00:37:45 Upstream neighbor: 3.3.3.1 RPF prime neighbor: 3.3.3.1 Backup upstream interface: through-BGP Backup upstream neighbor: 4.4.4.1 Backup RPF prime neighbor: 4.4.4.1 Downstream interface(s) information: Total number of downstreams: 1 1: GigabitEthernet0/1/2 Protocol: pim-sm, UpTime: 00:37:45, Expires: -
The preceding command output shows that the IP address of the upstream neighbor on the primary link and that on the secondary link is 3.3.3.1 and 4.4.4.1, respectively. In normal cases, the leaf node receives a multicast flow from both links and accepts the multicast flow received from the primary link based on its PIM routing table. If the primary link fails, the leaf node accepts the multicast flow received from the secondary link.
CE configuration file
# sysname CE # multicast routing-enable # isis 1000 network-entity 10.1234.6e9f.0001.00 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.1.1 255.255.255.0 pim sm isis enable 1000 # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.2.1 255.255.255.0 pim sm isis enable 1000 # interface GigabitEthernet0/1/2 undo shutdown ip address 10.1.6.1 255.255.255.0 pim sm isis enable 1000 # pim static-rp 10.1.5.2 # return
Root1 configuration file
# sysname Root1 # multicast mvpn 3.3.3.1 # ip vpn-instance bier ipv4-family route-distinguisher 1000:10000 apply-label per-instance vpn-target 1000:1000 export-extcommunity vpn-target 1000:1000 import-extcommunity multicast routing-enable mvpn sender-enable c-multicast signaling bgp rpt-spt mode ipmsi-tunnel bier # mpls lsr-id 3.3.3.1 # mpls # mpls ldp # ipv4-family # isis 100 vpn-instance bier network-entity 10.1334.6e9f.0001.00 import-route bgp # isis 1000 cost-style wide network-entity 10.1234.8e9f.0001.00 bier enable # interface GigabitEthernet0/1/0 undo shutdown ip binding vpn-instance bier ip address 10.1.1.2 255.255.255.0 pim sm isis enable 100 # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.3.1 255.255.255.0 isis enable 1000 mpls mpls ldp # interface LoopBack1 ip address 3.3.3.1 255.255.255.255 isis enable 1000 # bgp 1000 peer 2.2.2.1 as-number 1000 peer 2.2.2.1 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 2.2.2.1 enable # ipv4-family mvpn policy vpn-target peer 2.2.2.1 enable # ipv4-family vpnv4 policy vpn-target peer 2.2.2.1 enable # ipv4-family vpn-instance bier import-route direct import-route isis 100 # pim vpn-instance bier static-rp 10.1.5.2 # bier sub-domain 0 bfr-id 1 bfr-prefix interface LoopBack1 protocol isis encapsulation-type mpls bsl 256 max-si 2 # return
# sysname Root2 # multicast mvpn 4.4.4.1 # ip vpn-instance bier ipv4-family route-distinguisher 1000:1000 apply-label per-instance vpn-target 1000:1000 export-extcommunity vpn-target 1000:1000 import-extcommunity multicast routing-enable mvpn sender-enable c-multicast signaling bgp rpt-spt mode ipmsi-tunnel bier # mpls lsr-id 4.4.4.1 # mpls # mpls ldp # ipv4-family # isis 100 vpn-instance bier network-entity 10.1434.6e9f.0001.00 import-route bgp # isis 1000 cost-style wide network-entity 10.1234.9e9f.0001.00 bier enable # interface GigabitEthernet0/1/0 undo shutdown ip binding vpn-instance bier ip address 10.1.2.2 255.255.255.0 pim sm isis enable 100 undo dcn # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.4.1 255.255.255.0 isis enable 1000 mpls mpls ldp # interface LoopBack1 ip address 4.4.4.1 255.255.255.255 isis enable 1000 # bgp 1000 peer 2.2.2.1 as-number 1000 peer 2.2.2.1 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 2.2.2.1 enable # ipv4-family mvpn policy vpn-target peer 2.2.2.1 enable # ipv4-family vpnv4 policy vpn-target peer 2.2.2.1 enable # ipv4-family vpn-instance bier import-route direct import-route isis 100 # pim vpn-instance bier static-rp 10.1.5.2 # bier sub-domain 0 bfr-id 2 bfr-prefix interface LoopBack1 protocol isis encapsulation-type mpls bsl 256 max-si 2 # return
# sysname Leaf # multicast mvpn 2.2.2.1 # ip vpn-instance bier ipv4-family vpn frr route-distinguisher 72:72 apply-label per-instance vpn-target 1000:1000 export-extcommunity vpn-target 1000:1000 import-extcommunity multicast routing-enable mvpn c-multicast signaling bgp c-multicast frr c-multicast frr flow-detection-based 2166 rpt-spt mode # mpls lsr-id 2.2.2.1 # mpls # mpls ldp # ipv4-family # acl number 2166 rule 5 permit # isis 1000 cost-style wide network-entity 10.1234.7e9f.0001.00 traffic-eng level-2 bier enable # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.3.2 255.255.255.0 isis enable 1000 mpls mpls ldp # interface GigabitEthernet0/1/1 undo shutdown ip address 10.1.4.2 255.255.255.0 isis enable 1000 mpls mpls ldp # interface GigabitEthernet0/1/2 undo shutdown ip binding vpn-instance bier ip address 10.1.5.2 255.255.255.0 pim sm igmp enable igmp static-group 226.0.0.1 # interface LoopBack1 ip address 2.2.2.1 255.255.255.255 isis enable 1000 # bgp 1000 peer 3.3.3.1 as-number 1000 peer 3.3.3.1 connect-interface LoopBack1 peer 4.4.4.1 as-number 1000 peer 4.4.4.1 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 3.3.3.1 enable peer 4.4.4.1 enable # ipv4-family mvpn policy vpn-target peer 3.3.3.1 enable peer 4.4.4.1 enable # ipv4-family vpnv4 policy vpn-target peer 3.3.3.1 enable peer 4.4.4.1 enable # ipv4-family vpn-instance bier import-route direct auto-frr # pim vpn-instance bier static-rp 10.1.5.2 # bier sub-domain 0 bfr-id 3 bfr-prefix interface LoopBack1 protocol isis encapsulation-type mpls bsl 256 max-si 2 # return