This section provides an example for configuring a DCI scenario with a VXLAN EVPN L3VPNv6 accessing common L3VPNv6. In this example, DC-GWs are connected to DCI-PEs over VXLAN tunnels, and the common L3VPNv6 function is deployed on the DCI network to achieve IPv6 service interworking between DCs.
On the network shown in Figure 1, DC-GW1 and DC-GW2 are connected to the DCI backbone network. The BGP/MPLS IPv6 VPN function is deployed on the DCI backbone network and EVPN is deployed between the DC-GWs and DCI-PEs to exchange VM host IPv6 routes over VXLAN tunnels, implementing communication between DC A and DC B (such as the communication between VMa1 and VMb2).
Interfaces 1 and 2 in this example represent GE 0/1/0 and GE 0/1/8, respectively.
Device |
Interface |
IP Address |
---|---|---|
DCI-PE1 |
GigabitEthernet 0/1/0 |
192.168.20.1/24 |
GigabitEthernet 0/1/8 |
192.168.1.1/24 |
|
LoopBack1 |
1.1.1.1/32 |
|
LoopBack2 |
11.11.11.11/32 |
|
RR |
GigabitEthernet 0/1/0 |
192.168.1.2/24 |
GigabitEthernet 0/1/8 |
192.168.10.1/24 |
|
LoopBack1 |
2.2.2.2/32 |
|
DCI-PE2 |
GigabitEthernet 0/1/0 |
192.168.30.1/24 |
GigabitEthernet 0/1/8 |
192.168.10.2/24 |
|
LoopBack1 |
3.3.3.3/32 |
|
LoopBack2 |
33.33.33.33/32 |
The configuration roadmap is as follows:
Configure OSPF on the DCI backbone network to implement communication between DCI-PEs.
Configure an MPLS TE tunnel on the DCI backbone network.
On each DCI-PE, configure a static route destined for the loopback interface address of the connected DC-GW.
Configure an EVPN instance and a BD on each DCI-PE.
Configure an EVPN source address on each DCI-PE.
Configure VXLAN tunnels between the DCI-PEs and DC-GWs.
Configure a VPN instance on each DCI-PE and bind the VPN instance to the DCI-PE interface that connects to a DC-GW.
Configure MP-IBGP between the DCI-PEs and an RR used to reflect EVPN routes to exchange VPNv6 routes.
Configure route regeneration on each DCI-PE.
To complete the configuration, you need the following data:
MPLS LSR IDs of the DCI-PEs and RRs
RDs of VPN instances
Import and export VPN targets of VPN instances
For details about how to configure IP addresses and masks of interfaces, see Configuration Files in this section.
For configuration details, see Configuration Files in this section.
For configuration details, see Configuration Files in this section.
For configuration details, see Configuration Files in this section.
# Configure DCI-PE1.
[~DCI-PE1] evpn vpn-instance evrf1 bd-mode [*DCI-PE1-evpn-instance-evrf1] route-distinguisher 10:1 [*DCI-PE1-evpn-instance-evrf1] vpn-target 11:1 both [*DCI-PE1-evpn-instance-evrf1] quit [*DCI-PE1] bridge-domain 10 [*DCI-PE1-bd10] vxlan vni 5010 split-horizon-mode [*DCI-PE1-bd10] evpn binding vpn-instance evrf1 [*DCI-PE1-bd10] esi 0000.1111.1111.4444.5555 [*DCI-PE1-bd10] quit [*DCI-PE1] interface GigabitEthernet 0/1/0.1 mode l2 [*DCI-PE1-GigabitEthernet0/1/0.1] encapsulation qinq [*DCI-PE1-GigabitEthernet0/1/0.1] bridge-domain 10 [*DCI-PE1-GigabitEthernet0/1/0.1] quit [*DCI-PE1] commit
# Configure DCI-PE2.
[~DCI-PE2] evpn vpn-instance evrf1 bd-mode [*DCI-PE2-evpn-instance-evrf1] route-distinguisher 20:1 [*DCI-PE2-evpn-instance-evrf1] vpn-target 11:1 both [*DCI-PE2-evpn-instance-evrf1] quit [*DCI-PE2] bridge-domain 10 [*DCI-PE2-bd10] vxlan vni 5020 split-horizon-mode [*DCI-PE2-bd10] evpn binding vpn-instance evrf1 [*DCI-PE2-bd10] esi 0000.1111.3333.4444.5555 [*DCI-PE2-bd10] quit [*DCI-PE2] interface GigabitEthernet 0/1/0.1 mode l2 [*DCI-PE2-GigabitEthernet0/1/0.1] encapsulation qinq [*DCI-PE2-GigabitEthernet0/1/0.1] bridge-domain 10 [*DCI-PE2-GigabitEthernet0/1/0.1] quit [*DCI-PE2] commit
# Configure DCI-PE1.
[~DCI-PE1] evpn source-address 1.1.1.1 [*DCI-PE1] commit
# Configure DCI-PE2.
[~DCI-PE2] evpn source-address 3.3.3.3 [*DCI-PE2] commit
# Configure DCI-PE1.
[~DCI-PE1] tunnel-policy te-lsp1 [*DCI-PE1-tunnel-policy-te-lsp1] tunnel select-seq cr-lsp load-balance-number 1 [*DCI-PE1-tunnel-policy-te-lsp1] quit [*DCI-PE1] ip vpn-instance vpn1 [*DCI-PE1-vpn-instance-vpn1] ipv6-family [*DCI-PE1-vpn-instance-vpn1-af-ipv6] tnl-policy te-lsp1 [*DCI-PE1-vpn-instance-vpn1-af-ipv6] quit [*DCI-PE1-vpn-instance-vpn1] quit [*DCI-PE1] commit
# Configure DCI-PE2.
[~DCI-PE2] tunnel-policy te-lsp1 [*DCI-PE2-tunnel-policy-te-lsp1] tunnel select-seq cr-lsp load-balance-number 1 [*DCI-PE2-tunnel-policy-te-lsp1] quit [*DCI-PE2] ip vpn-instance vpn1 [*DCI-PE2-vpn-instance-vpn1] ipv6-family [*DCI-PE2-vpn-instance-vpn1-af-ipv6] tnl-policy te-lsp1 [*DCI-PE2-vpn-instance-vpn1-af-ipv6] quit [*DCI-PE2-vpn-instance-vpn1] quit [*DCI-PE2] commit
# Configure DCI-PE1.
[~DCI-PE1] bgp 100 [*DCI-PE1-bgp] peer 2.2.2.2 as-number 100 [*DCI-PE1-bgp] peer 2.2.2.2 connect-interface loopback 1 [*DCI-PE1-bgp] ipv6-family vpnv6 [*DCI-PE1-bgp-af-vpnv6] peer 2.2.2.2 enable [*DCI-PE1-bgp-af-vpnv6] quit [*DCI-PE1-bgp] ipv6-family vpn-instance vpn1 [*DCI-PE1-bgp-6-vpn1] import-route direct [*DCI-PE1-bgp-6-vpn1] advertise l2vpn evpn [*DCI-PE1-bgp-6-vpn1] quit [*DCI-PE1-bgp] quit [*DCI-PE1] commit
# Configure an RR.
[~RR] bgp 100 [*RR-bgp] peer 1.1.1.1 as-number 100 [*RR-bgp] peer 1.1.1.1 connect-interface loopback 1 [*RR-bgp] peer 3.3.3.3 as-number 100 [*RR-bgp] peer 3.3.3.3 connect-interface loopback 1 [*RR-bgp] ipv6-family vpnv6 [*RR-bgp-af-vpnv6] undo policy vpn-target [*RR-bgp-af-vpnv6] peer 1.1.1.1 enable [*RR-bgp-af-vpnv6] peer 1.1.1.1 reflect-client [*RR-bgp-af-vpnv6] peer 3.3.3.3 enable [*RR-bgp-af-vpnv6] peer 3.3.3.3 reflect-client [*RR-bgp-af-vpnv6] quit [*RR-bgp] quit [*RR] commit
# Configure DCI-PE2.
[~DCI-PE2] bgp 100 [*DCI-PE2-bgp] peer 2.2.2.2 as-number 100 [*DCI-PE2-bgp] peer 2.2.2.2 connect-interface loopback 1 [*DCI-PE2-bgp] ipv6-family vpnv6 [*DCI-PE2-bgp-af-vpnv6] peer 2.2.2.2 enable [*DCI-PE2-bgp-af-vpnv6] quit [*DCI-PE2-bgp] ipv6-family vpn-instance vpn1 [*DCI-PE2-bgp-6-vpn1] import-route direct [*DCI-PE2-bgp-6-vpn1] advertise l2vpn evpn [*DCI-PE2-bgp-6-vpn1] quit [*DCI-PE2-bgp] quit [*DCI-PE2] commit
# Configure DCI-PE1.
[~DCI-PE1] bgp 100 [*DCI-PE1-bgp] l2vpn-family evpn [*DCI-PE1-bgp-af-evpn] peer 4.4.4.4 import reoriginate [*DCI-PE1-bgp-af-evpn] peer 4.4.4.4 advertise route-reoriginated vpnv6 [*DCI-PE1-bgp-af-evpn] quit [*DCI-PE1-bgp] ipv6-family vpnv6 [*DCI-PE1-bgp-af-vpnv6] peer 2.2.2.2 advertise route-reoriginated evpn ipv6 [*DCI-PE1-bgp-af-vpnv6] peer 2.2.2.2 import reoriginate [*DCI-PE1-bgp-af-vpnv6] quit [*DCI-PE1-bgp] quit [*DCI-PE1] commit
# Configure DCI-PE2.
[~DCI-PE2] bgp 100 [*DCI-PE1-bgp] l2vpn-family evpn [*DCI-PE1-bgp-af-evpn] peer 5.5.5.5 import reoriginate [*DCI-PE1-bgp-af-evpn] peer 5.5.5.5 advertise route-reoriginated vpnv6 [*DCI-PE1-bgp-af-evpn] quit [*DCI-PE2-bgp] ipv6-family vpnv6 [*DCI-PE2-bgp-af-vpnv6] peer 2.2.2.2 import reoriginate [*DCI-PE2-bgp-af-vpnv6] peer 2.2.2.2 advertise route-reoriginated evpn ipv6 [*DCI-PE2-bgp-af-vpnv6] quit [*DCI-PE2-bgp] quit [*DCI-PE2] commit
After completing the configurations, run the display ipv6 routing-table vpn-instance command on each DCI-PE to view the routes destined for the loopback interface on the connected DC-GW. The following example uses the command output on DCI-PE1.
[~DCI-PE1] display ipv6 routing-table vpn-instance vpn1
Routing Table : vpn1
Destinations : 2 Routes : 2
Destination : 2001:DB8:1:: PrefixLength : 64
NextHop : ::FFFF:4.4.4.4 Preference : 255
Cost : 0 Protocol : EBGP
RelayNextHop : :: TunnelID : 0x0000000027f0000001
Interface : VXLAN Flags : RD
Destination : 2001:DB8:2:: PrefixLength : 64
NextHop : ::FFFF:3.3.3.3 Preference : 255
Cost : 0 Protocol : IBGP
RelayNextHop : ::FFFF:0.0.0.0 TunnelID : 0x000000000300000001
Interface : Tunnel1 Flags : RD
Run the display vxlan tunnel command on each DC-PE to view information about the VXLAN tunnels. The following example uses the command output on DCI-PE1.
[~DCI-PE1] display vxlan tunnel
Number of vxlan tunnel : 1
Tunnel ID Source Destination State Type Uptime
-----------------------------------------------------------------------------------
4026531841 11.11.11.11 4.4.4.4 up dynamic 01:16:54
DCI-PE1 configuration file
# sysname DCI-PE1 # evpn vpn-instance evrf1 bd-mode route-distinguisher 10:1 tnl-policy te-lsp1 vpn-target 11:1 export-extcommunity vpn-target 11:1 import-extcommunity # ip vpn-instance vpn1 ipv6-family route-distinguisher 11:11 apply-label per-instance tnl-policy te-lsp1 vpn-target 1:1 export-extcommunity vpn-target 11:1 export-extcommunity evpn vpn-target 1:1 import-extcommunity vpn-target 11:1 import-extcommunity evpn vxlan vni 555 # mpls lsr-id 1.1.1.1 # mpls mpls te mpls rsvp-te mpls te cspf # bridge-domain 10 vxlan vni 5010 split-horizon-mode esi 0000.1111.1111.4444.5555 evpn binding vpn-instance evrf1 # interface Vbdif10 ip binding vpn-instance vpn1 ipv6 enable ipv6 address 2001:DB8:10::1/64 ipv6 nd collect host enable # interface GigabitEthernet0/1/0 undo shutdown ip address 192.168.20.1 255.255.255.0 # interface GigabitEthernet0/1/0.1 mode l2 encapsulation qinq bridge-domain 10 # interface GigabitEthernet0/1/8 undo shutdown ip address 192.168.1.1 255.255.255.0 mpls mpls te mpls rsvp-te # interface LoopBack1 ip address 1.1.1.1 255.255.255.255 # interface LoopBack2 ip address 11.11.11.11 255.255.255.255 # interface Nve1 source 11.11.11.11 # interface Tunnel1 ip address unnumbered interface LoopBack1 tunnel-protocol mpls te destination 3.3.3.3 mpls te tunnel-id 100 # bgp 100 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack1 peer 4.4.4.4 as-number 65410 peer 4.4.4.4 ebgp-max-hop 255 peer 4.4.4.4 connect-interface LoopBack2 # ipv4-family unicast undo synchronization peer 2.2.2.2 enable peer 4.4.4.4 enable # ipv6-family vpnv6 policy vpn-target peer 2.2.2.2 enable peer 2.2.2.2 import reoriginate peer 2.2.2.2 advertise route-reoriginated evpn ipv6 # ipv6-family vpn-instance vpn1 import-route direct advertise l2vpn evpn # l2vpn-family evpn undo policy vpn-target peer 4.4.4.4 enable peer 4.4.4.4 advertise irbv6 peer 4.4.4.4 advertise encap-type vxlan peer 4.4.4.4 import reoriginate peer 4.4.4.4 advertise route-reoriginated vpnv6 # ospf 1 opaque-capability enable area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 192.168.1.0 0.0.0.255 mpls-te enable # ip route-static 4.4.4.4 255.255.255.255 192.168.20.2 # tunnel-policy te-lsp1 tunnel select-seq cr-lsp load-balance-number 1 # evpn source-address 1.1.1.1 # return
RR configuration file
# sysname RR # mpls lsr-id 2.2.2.2 # mpls mpls te mpls rsvp-te mpls te cspf # interface GigabitEthernet0/1/0 undo shutdown ip address 192.168.1.2 255.255.255.0 mpls mpls te mpls rsvp-te # interface GigabitEthernet0/1/8 undo shutdown ip address 192.168.10.1 255.255.255.0 mpls mpls te mpls rsvp-te # interface LoopBack1 ip address 2.2.2.2 255.255.255.255 # bgp 100 peer 1.1.1.1 as-number 100 peer 1.1.1.1 connect-interface LoopBack1 peer 3.3.3.3 as-number 100 # ipv4-family unicast undo synchronization peer 1.1.1.1 enable peer 3.3.3.3 enable # ipv6-family vpnv6 undo policy vpn-target peer 1.1.1.1 enable peer 1.1.1.1 reflect-client peer 3.3.3.3 enable peer 3.3.3.3 reflect-client # ospf 1 opaque-capability enable area 0.0.0.0 network 2.2.2.2 0.0.0.0 network 192.168.1.0 0.0.0.255 network 192.168.10.0 0.0.0.255 mpls-te enable # return
DCI-PE2 configuration file
# sysname DCI-PE2 # evpn vpn-instance evrf1 bd-mode route-distinguisher 10:1 tnl-policy te-lsp1 vpn-target 11:1 export-extcommunity vpn-target 11:1 import-extcommunity # ip vpn-instance vpn1 ipv6-family route-distinguisher 11:11 apply-label per-instance tnl-policy te-lsp1 vpn-target 1:1 export-extcommunity vpn-target 11:1 export-extcommunity evpn vpn-target 1:1 import-extcommunity vpn-target 11:1 import-extcommunity evpn vxlan vni 555 # mpls lsr-id 3.3.3.3 # mpls mpls te mpls rsvp-te mpls te cspf # bridge-domain 10 vxlan vni 5020 split-horizon-mode esi 0000.1111.3333.4444.5555 evpn binding vpn-instance evrf1 # interface Vbdif10 ip binding vpn-instance vpn1 ipv6 enable ipv6 address 2001:DB8:20::1/64 ipv6 nd collect host enable # interface GigabitEthernet0/1/0 undo shutdown ip address 192.168.30.1 255.255.255.0 # interface GigabitEthernet0/1/0.1 mode l2 encapsulation qinq bridge-domain 10 # interface GigabitEthernet0/1/8 undo shutdown ip address 192.168.10.2 255.255.255.0 mpls mpls te mpls rsvp-te # interface LoopBack1 ip address 3.3.3.3 255.255.255.255 # interface LoopBack2 ip address 33.33.33.33 255.255.255.255 # interface Nve1 source 33.33.33.33 # interface Tunnel1 ip address unnumbered interface LoopBack1 tunnel-protocol mpls te destination 1.1.1.1 mpls te tunnel-id 100 # bgp 100 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack1 peer 5.5.5.5 as-number 65420 peer 5.5.5.5 ebgp-max-hop 255 peer 5.5.5.5 connect-interface LoopBack2 # ipv4-family unicast undo synchronization peer 2.2.2.2 enable peer 5.5.5.5 enable # ipv6-family vpnv6 policy vpn-target peer 2.2.2.2 enable peer 2.2.2.2 import reoriginate peer 2.2.2.2 advertise route-reoriginated evpn ipv6 # ipv6-family vpn-instance vpn1 import-route direct advertise l2vpn evpn # l2vpn-family evpn undo policy vpn-target peer 5.5.5.5 enable peer 5.5.5.5 advertise irbv6 peer 5.5.5.5 advertise encap-type vxlan peer 5.5.5.5 import reoriginate peer 5.5.5.5 advertise route-reoriginated vpnv6 # ospf 1 opaque-capability enable area 0.0.0.0 network 3.3.3.3 0.0.0.0 network 192.168.10.0 0.0.0.255 mpls-te enable # ip route-static 5.5.5.5 255.255.255.255 192.168.30.2 # tunnel-policy te-lsp1 tunnel select-seq cr-lsp load-balance-number 1 # evpn source-address 3.3.3.3 # return
DC-GW1 configuration file
See the configuration file of a DC device.
Device 1 configuration file
See the configuration file of a DC device.
Device 2 configuration file
See the configuration file of a DC device.
DC-GW2 configuration file
See the configuration file of a DC device.
Device 3 configuration file
See the configuration file of a DC device.
Device 4 configuration file
See the configuration file of a DC device.