用Arista的veos做了个DCI(hand-off)实验。模拟了VxLAN数据中心hand-off方式做L2互通。
 在此分享。
实现思路
分别在DC1、DC2内配置BGP EVPN协议创建VXLAN隧道,实现各数据中心内部VM之间的通信,DC1-BL和DC2-BL通过二层接口方式接入DCI-VTEP1和DCI-VTEP2,DCI-VTEP1和DCI-VTEP2之间配置EVPN协议创建VXLAN隧道,实现数据中心之间的通信。DC1-BL和DC2-BL将收到的数据中心侧的VXLAN报文进行解封装,然后发送到DCI-VTEP,DCI-VTEP将收到的VLAN报文重新封装成VXLAN报文后发送给对端DCI-VTEP,实现VXLAN隧道对跨数据中心的报文端到端的承载,保证跨数据中心VM之间的通信。
 
拓扑图

实验拓扑里直接在DCI-VTEP之间做L3互连,省略了WAN。
 实验完成后,使DC1中的主机VPC6、VPC34和DC2中的主机VPC35、VPC7在一个大二层内。
配置步骤
1.配置各节点IP地址。
 2.配置路由实现各节点之间的互通。
 3.在DC1和DC2内分别创建EBGP邻居,配置BGP EVPN协议创建VXLAN隧道。
 4.在DCI-VTEP之间配置BGP EVPN协议创建VXLAN隧道。
 5.在DC-BL与DCI-VTEP通过二层接口方式互连。
数据准备
IP
| DC1设备 | 接口 | IP | 对端设备 | 接口 | IP | 
|---|---|---|---|---|---|
| DC1-Spine1 | eth1 | 10.1.2.1/30 | DC1-Leaf1 | eth1 | 10.1.2.2/30 | 
| DC1-Spine1 | eth2 | 10.1.3.1/30 | DC1-Leaf2 | eth1 | 10.1.3.2/30 | 
| DC1-Spine1 | eth3 | 10.1.4.1/30 | DC1-BL1 | eth1 | 10.1.4.2/30 | 
| DC1-Spine1 | eth4 | 10.1.5.1/30 | DC1-BL2 | eth1 | 10.1.5.2/30 | 
| DC1-Spine2 | eth1 | 10.2.2.1/30 | DC1-Leaf1 | eth2 | 10.2.2.2/30 | 
| DC1-Spine2 | eth2 | 10.2.3.1/30 | DC1-Leaf2 | eth2 | 10.2.3.2/30 | 
| DC1-Spine2 | eth3 | 10.2.4.1/30 | DC1-BL1 | eth2 | 10.2.4.2/30 | 
| DC1-Spine2 | eth4 | 10.2.5.1/30 | DC1-BL2 | eth2 | 10.2.5.2/30 | 
| DC1-BL1 | eth4 | 172.16.0.1/30 | DC1-BL2 | eth4 | 172.16.0.2/30 | 
| DC1-Spine1 | Lo0 | 10.0.0.1/32 | DC1-Spine2 | Lo0 | 10.0.0.2/32 | 
| DC1-Leaf1 | Lo0 | 10.0.0.3/32 | DC1-Leaf2 | Lo0 | 10.0.0.4/32 | 
| DC1-BL1 | Lo0 | 10.0.0.5/32 | DC1-BL2 | Lo0 | 10.0.0.6/32 | 
| DC1-BL1/2 | Lo1 | 1.1.1.1/32 BL1&2Lo1相同 | |||
| VPC6 | eth0 | 192.168.100.6 | VPC34 | eth0 | 192.168.100.34 | 
| DCI设备 | 接口 | IP | 对端设备 | 接口 | IP | 
|---|---|---|---|---|---|
| DCI-VTEP1 | Po2 | 172.17.0.0/31 | DCI-VTEP2 | Po2 | 172.17.0.1/31 | 
| DCI-VTEP1 | Lo0 | 10.0.0.26/32 | DCI-VTEP2 | Lo0 | 10.0.0.50/32 | 
| DC2设备 | 接口 | IP | 对端设备 | 接口 | IP | 
|---|---|---|---|---|---|
| DC2-Spine1 | eth1 | 20.1.1.1/30 | DC2-BL1 | eth1 | 20.1.1.2/30 | 
| DC2-Spine1 | eth2 | 20.1.2.1/30 | DC2-BL2 | eth1 | 20.1.2.2/30 | 
| DC2-Spine1 | eth3 | 20.1.3.1/30 | DC2-Leaf1 | eth1 | 20.1.3.2/30 | 
| DC2-Spine1 | eth4 | 20.1.4.1/30 | DC2-Leaf2 | eth1 | 20.1.4.2/30 | 
| DC2-Spine2 | eth1 | 20.2.1.1/30 | DC2-BL1 | eth2 | 20.2.1.2/30 | 
| DC2-Spine2 | eth2 | 20.2.2.1/30 | DC2-BL2 | eth2 | 20.2.2.2/30 | 
| DC2-Spine2 | eth3 | 20.2.3.1/30 | DC2-Leaf1 | eth2 | 20.2.3.2/30 | 
| DC2-Spine2 | eth4 | 20.2.4.1/30 | DC2-Leaf2 | eth2 | 20.2.4.2/30 | 
| DC2-BL1 | eth4 | 192.168.2.1/30 | DC1-BL2 | eth4 | 192.168.2.2/30 | 
| DC2-Spine1 | Lo0 | 10.0.0.51/32 | DC2-Spine2 | Lo0 | 10.0.0.52/32 | 
| DC2-Leaf1 | Lo0 | 10.0.0.53/32 | DC2-Leaf2 | Lo0 | 10.0.0.54/32 | 
| DC2-BL1 | Lo0 | 10.0.0.28/32 | DC1-BL2 | Lo0 | 10.0.0.29/32 | 
| DC2-BL1/2 | Lo1 | 2.2.2.2/32 BL1&2Lo1相同 | |||
| VPC35 | eth0 | 192.168.100.35 | VPC7 | eth0 | 192.168.100.7 | 
AS
| 设备 | AS | 设备 | AS | 
|---|---|---|---|
| DC1-Spine1 | 100 | DC1-Spine2 | 99 | 
| DC1-Leaf1 | 101 | DC1-Leaf2 | 102 | 
| DC1-BL1 | 103 | DC1-BL2 | 104 | 
| DCI-VTEP1 | 60026 | DCI-VTEP2 | 65050 | 
| DC2-Spine1 | 65051 | DC2-Spine2 | 65052 | 
| DC2-Leaf1 | 65053 | DC2-Leaf2 | 65054 | 
| DC2-BL1 | 65028 | DC2-BL2 | 65029 | 
详细配置
Spine
 以DC1-Spine1为例:
 service routing protocols model multi-agent
 spanning-tree mode none
 interface Ethernet1
 mtu 9200
 no switchport
 ip address 10.1.2.1/30
 interface Ethernet2
 mtu 9200
 switchport access vlan 1800
 no switchport
 ip address 10.1.3.1/30
 interface Ethernet3
 mtu 9200
 no switchport
 ip address 10.1.4.1/30
 interface Ethernet4
 mtu 9200
 no switchport
 ip address 10.1.5.1/30
 interface Loopback0
 ip address 10.0.0.1/32
 ip routing
 router bgp 100
 router-id 10.0.0.1
 no bgp default ipv4-unicast
 maximum-paths 128
 neighbor overlay peer group
 neighbor overlay update-source Loopback0
 neighbor overlay ebgp-multihop
 neighbor overlay send-community extended
 neighbor overlay maximum-routes 0
 neighbor underlay peer group
 neighbor underlay maximum-routes 0
 neighbor 10.0.0.3 peer group overlay
 neighbor 10.0.0.3 remote-as 101
 neighbor 10.0.0.4 peer group overlay
 neighbor 10.0.0.4 remote-as 102
 neighbor 10.0.0.5 peer group overlay
 neighbor 10.0.0.5 remote-as 103
 neighbor 10.0.0.6 peer group overlay
 neighbor 10.0.0.6 remote-as 103
 neighbor 10.1.2.2 peer group underlay
 neighbor 10.1.2.2 remote-as 101
 neighbor 10.1.3.2 peer group underlay
 neighbor 10.1.3.2 remote-as 102
 neighbor 10.1.4.2 peer group underlay
 neighbor 10.1.4.2 remote-as 103
 neighbor 10.1.5.2 peer group underlay
 neighbor 10.1.5.2 remote-as 103
 address-family evpn
 neighbor overlay activate
 address-family ipv4
 neighbor underlay activate
 network 10.0.0.1/32
Leaf
 以DC1-Leaf1为例:
 service routing protocols model multi-agent
 spanning-tree mode none
 vlan 2-4000
 interface Ethernet1
 mtu 9200
 no switchport
 ip address 10.1.2.2/30
 interface Ethernet2
 mtu 9200
 no switchport
 ip address 10.2.2.2/30
 interface Ethernet3
 mtu 9200
 switchport access vlan 100
 interface Loopback0
 ip address 10.0.0.3/32
 interface Vxlan1
 vxlan source-interface Loopback0
 vxlan udp-port 4789
 vxlan vlan 100,200 vni 10100,10200
 ip routing
 router bgp 101
 router-id 10.0.0.3
 no bgp default ipv4-unicast
 maximum-paths 128
 neighbor overlay peer group
 neighbor overlay update-source Loopback0
 neighbor overlay ebgp-multihop
 neighbor overlay send-community extended
 neighbor overlay maximum-routes 0
 neighbor underlay peer group
 neighbor underlay maximum-routes 0
 neighbor 10.0.0.1 peer group overlay
 neighbor 10.0.0.1 remote-as 100
 neighbor 10.0.0.2 peer group overlay
 neighbor 10.0.0.2 remote-as 99
 neighbor 10.1.2.1 peer group underlay
 neighbor 10.1.2.1 remote-as 100
 neighbor 10.2.2.1 peer group underlay
 neighbor 10.2.2.1 remote-as 99
 vlan-aware-bundle vlans-1
 rd 1:101
 route-target both 1:1
 redistribute learned
 vlan 100,200
 address-family evpn
 neighbor overlay activate
 address-family ipv4
 neighbor underlay activate
 network 10.0.0.3/32
Border-Leaf
 以DC1-BL1为例:
 service routing protocols model multi-agent
 hostname DC1-BL1
 spanning-tree mode mstp #BL开启生成树
 no spanning-tree vlan-id 4094
 vlan 100,200
 vlan 4094
 name mlag
 trunk group mlagpeer
 interface Port-Channel1 #互连DCI-VTEP1
 mtu 9200
 switchport mode trunk
 mlag 1 #BL1、BL2相同
 interface Ethernet1
 mtu 9200
 no switchport
 ip address 10.1.4.2/30
 interface Ethernet2
 mtu 9200
 no switchport
 ip address 10.2.4.2/30
 interface Ethernet3
 channel-group 1 mode active
 interface Ethernet4
 mtu 9200
 switchport mode trunk
 switchport trunk group mlagpeer
 interface Loopback0
 ip address 10.0.0.5/32
 interface Loopback1
 ip address 1.1.1.1/32 #BL1、BL2相同
 interface Management1
 interface Vlan4094
 ip address 172.16.0.1/30 #peer-link 互连IP
 interface Vxlan1
 vxlan source-interface Loopback1 #BL1、BL2 VTEP源IP相同
 vxlan udp-port 4789
 vxlan vlan 100,200 vni 10100,10200
 ip routing
 mlag configuration
 domain-id mlag-domain
 local-interface Vlan4094
 peer-address 172.16.0.2
 peer-link Ethernet4
 dual-primary detection delay 5 action errdisable all-interfaces
 router bgp 103
 router-id 10.0.0.5
 no bgp default ipv4-unicast
 maximum-paths 128
 neighbor overlay peer group
 neighbor overlay update-source Loopback0
 neighbor overlay ebgp-multihop
 neighbor overlay send-community extended
 neighbor overlay maximum-routes 0
 neighbor underlay peer group
 neighbor underlay maximum-routes 0
 neighbor 10.0.0.1 peer group overlay
 neighbor 10.0.0.1 remote-as 100
 neighbor 10.0.0.2 peer group overlay
 neighbor 10.0.0.2 remote-as 99
 neighbor 10.1.4.1 peer group underlay
 neighbor 10.1.4.1 remote-as 100
 neighbor 10.2.4.1 peer group underlay
 neighbor 10.2.4.1 remote-as 99
 neighbor 172.16.0.2 remote-as 104 #BL1与BL2 BGP 通过peer-link建邻居,作为上联BGP冗余
 vlan-aware-bundle vlans-1
 rd 1:103
 route-target both 1:1
 redistribute learned
 vlan 100,200
 address-family evpn
 neighbor overlay activate
 address-family ipv4
 neighbor underlay activate
 neighbor 172.16.0.2 activate
 network 1.1.1.1/32
 network 10.0.0.5/32
DCI-VTEP
 以DCI-VTEP1为例:
 service routing protocols model multi-agent
 spanning-tree mode none
 vlan 100,200
 interface Port-Channel1 #DCI-VTEP 互连DC-BL
 mtu 9200
 switchport trunk allowed vlan 100
 switchport mode trunk
 interface Port-Channel2 #DCI-VTEP 间互连
 mtu 9200
 no switchport
 ip address 172.17.0.0/31
 interface Ethernet1
 no switchport
 channel-group 1 mode active
 !
 interface Ethernet2
 channel-group 1 mode active
 !
 interface Ethernet3
 channel-group 2 mode active
 !
 interface Ethernet4
 channel-group 2 mode active
 interface Loopback0
 ip address 10.0.0.26/32
 interface Vxlan1
 vxlan source-interface Loopback0
 vxlan udp-port 4789
 vxlan vlan 100,200 vni 10100,10200
 ip routing
 router bgp 65026
 no bgp default ipv4-unicast
 neighbor over-ebgp peer group
 neighbor 10.0.0.50 remote-as 65050
 neighbor 10.0.0.50 update-source Loopback0
 neighbor 10.0.0.50 ebgp-multihop
 neighbor 10.0.0.50 send-community extended
 neighbor 10.0.0.50 maximum-routes 0
 neighbor 172.17.0.1 remote-as 65050
 neighbor 172.17.0.1 maximum-routes 0
 vlan-aware-bundle vlans-1
 rd 26:1
 route-target both 1:1
 redistribute learned
 vlan 100,200
 address-family evpn
 neighbor 10.0.0.50 activate
 address-family ipv4
 neighbor 172.17.0.1 activate
 network 10.0.0.26/32
状态检查
DC内部bgp ipv4、evpn地址族建立
 
 DC内VTEP
 
 DC-Leaf1 mac-table,本地MAC 6806,其余MAC从Vx1学到
 
 DCI-VTEP mac-table,DC1 的两个MAC 6806、6822从Po1学到(不带vxlan 封装),DC2两个MAC 6807、6823从Vx1学到(vxlan封装)
 
 从VM vpc6 ping其它主机,可以通。
 
适用场景
当DC和WAN是不同的提供商时,可以用这种比较简单的解决方案。
 但是由于两个DC属于不同EVPN-VXLAN域,所以 不能支持TYPE2 Mac mobility、ARP suppression。



















