配置VXLAN虚拟网络实现相同网段用户通信的示例(BGP EVPN方式)
组网需求
- 将散落在不同部门的服务器构建成一个虚拟网络,实现资源整合和业务灵活部署。
- 各服务器上部署着大量的VM,相同网段的服务器之间实现二层互通。
本举例中VXLAN隧道侧接口以X系列单板为例。
数据准备
设备 |
EVPN实例 |
RD值 |
BD |
VNI |
Router id |
Peer IP |
---|---|---|---|---|---|---|
VTEP1 |
evpn10:
|
1:10 |
10 |
10 |
10.1.1.1 |
10.2.2.2 |
VTEP2 |
evpn10:
|
2:10 |
10 |
10 |
10.2.2.2 |
10.1.1.1 |
配置思路
采用如下思路配置相同网段用户通过VXLAN网关互通:
- 分别在Switch1、VTEP1、VTEP2上配置路由协议,保证网络三层互通。
- 分别在VTEP1、VTEP2上配置VXLAN接入业务部署方式,在Switch2、Switch3上配置VLAN。
- 分别在VTEP1、VTEP2上配置EVPN实例并绑定BD域。
- 分别在VTEP1、VTEP2上配置之间的BGP EVPN对等体关系。
- 分别在VTEP1、VTEP2上配置VXLAN隧道目的端地址。
园区网络的三层互通是构建虚拟网络的基础条件,现网中,如果园区网络已经实现三层网络的互通,那么该举例中的步骤1可以省略。
操作步骤
- 配置路由协议
# 配置VTEP1各接口IP地址。Switch1和VTEP2的配置与VTEP1类似,这里不再赘述。配置OSPF时,注意需要发布设备上的Loopback接口地址。
<HUAWEI> system-view [HUAWEI] sysname VTEP1 [VTEP1] interface loopback 1 [VTEP1-LoopBack1] ip address 10.1.1.1 32 [VTEP1-LoopBack1] quit [VTEP1] interface gigabitethernet 1/0/1 [VTEP1-GigabitEthernet1/0/1] undo portswitch [VTEP1-GigabitEthernet1/0/1] ip address 192.168.1.1 24 [VTEP1-GigabitEthernet1/0/1] quit [VTEP1] ospf router-id 10.1.1.1 [VTEP1-ospf-1] area 0 [VTEP1-ospf-1-area-0.0.0.0] network 10.1.1.1 0.0.0.0 [VTEP1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255 [VTEP1-ospf-1-area-0.0.0.0] quit [VTEP1-ospf-1] quit
# OSPF成功配置后,VTEP1和VTEP2之间可通过OSPF协议发现对方的Loopback接口的IP地址,并能互相ping通。以VTEP1 ping VTEP2的显示为例。
[VTEP1] ping 10.2.2.2 PING 10.2.2.2: 56 data bytes, press CTRL_C to break Reply from 10.2.2.2: bytes=56 Sequence=1 ttl=255 time=240 ms Reply from 10.2.2.2: bytes=56 Sequence=2 ttl=255 time=5 ms Reply from 10.2.2.2: bytes=56 Sequence=3 ttl=255 time=5 ms Reply from 10.2.2.2: bytes=56 Sequence=4 ttl=255 time=14 ms Reply from 10.2.2.2: bytes=56 Sequence=5 ttl=255 time=5 ms --- 10.2.2.2 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 5/53/240 ms
- 分别在Switch2、Switch3上进行VLAN接入的配置,在VTEP1、VTEP2上配置VXLAN业务接入点
# 配置Switch2。
<HUAWEI> system-view [HUAWEI] sysname Switch2 [Switch2] vlan batch 10 [Switch2] interface gigabitethernet 1/0/2 [Switch2-GigabitEthernet1/0/2] port link-type access [Switch2-GigabitEthernet1/0/2] port default vlan 10 [Switch2-GigabitEthernet1/0/2] quit [Switch2] interface gigabitethernet 1/0/1 [Switch2-GigabitEthernet1/0/1] port link-type trunk [Switch2-GigabitEthernet1/0/1] port trunk allow-pass vlan 10 [Switch2-GigabitEthernet1/0/1] quit
# 配置Switch3。
<HUAWEI> system-view [HUAWEI] sysname Switch3 [Switch3] vlan batch 10 [Switch3] interface gigabitethernet 1/0/2 [Switch3-GigabitEthernet1/0/2] port link-type access [Switch3-GigabitEthernet1/0/2] port default vlan 10 [Switch3-GigabitEthernet1/0/2] quit [Switch3] interface gigabitethernet 1/0/1 [Switch3-GigabitEthernet1/0/1] port link-type trunk [Switch3-GigabitEthernet1/0/1] port trunk allow-pass vlan 10 [Switch3-GigabitEthernet1/0/1] quit
# 配置VTEP1。
[VTEP1] bridge-domain 10 [VTEP1-bd10] quit [VTEP1] vcmp role silent [VTEP1] interface gigabitethernet 1/0/2 [VTEP1-GigabitEthernet1/0/2] port link-type trunk [VTEP1-GigabitEthernet1/0/2] quit [VTEP1] interface gigabitethernet 1/0/2.1 mode l2 [VTEP1-GigabitEthernet1/0/2.1] encapsulation dot1q vid 10 [VTEP1-GigabitEthernet1/0/2.1] bridge-domain 10 [VTEP1-GigabitEthernet1/0/2.1] quit
# 配置VTEP2。
[VTEP2] bridge-domain 10 [VTEP2-bd10] quit [VTEP2] vcmp role silent [VTEP2] interface gigabitethernet 1/0/2 [VTEP2-GigabitEthernet1/0/2] port link-type trunk [VTEP2-GigabitEthernet1/0/2] quit [VTEP2] interface gigabitethernet 1/0/2.1 mode l2 [VTEP2-GigabitEthernet1/0/2.1] encapsulation dot1q vid 10 [VTEP2-GigabitEthernet1/0/2.1] bridge-domain 10 [VTEP2-GigabitEthernet1/0/2.1] quit
- 分别在VTEP1、VTEP2上配置EVPN实例并绑定BD域
# 配置VTEP1。
[VTEP1] evpn vpn-instance evpn10 bd-mode [VTEP1-evpn-instance-evpn10] route-distinguisher 1:10 [VTEP1-evpn-instance-evpn10] vpn-target 10:1 both [VTEP1-evpn-instance-evpn10] quit [VTEP1] bridge-domain 10 [VTEP1-bd10] vxlan vni 10 [VTEP1-bd10] evpn binding vpn-instance evpn10 [VTEP1-bd10] quit
# 配置VTEP2。
[VTEP2] evpn vpn-instance evpn10 bd-mode [VTEP2-evpn-instance-evpn10] route-distinguisher 2:10 [VTEP2-evpn-instance-evpn10] vpn-target 10:1 both [VTEP2-evpn-instance-evpn10] quit [VTEP2] bridge-domain 10 [VTEP2-bd10] vxlan vni 10 [VTEP2-bd10] evpn binding vpn-instance evpn10 [VTEP2-bd10] quit
- 配置VTEP1、VTEP2之间的BGP EVPN对等体关系
#配置VTEP1。
[VTEP1] bgp 100 [VTEP1-bgp] router-id 10.1.1.1 [VTEP1-bgp] peer 10.2.2.2 as-number 100 [VTEP1-bgp] peer 10.2.2.2 connect-interface LoopBack1 [VTEP1-bgp] l2vpn-family evpn [VTEP1-bgp-af-evpn] peer 10.2.2.2 enable [VTEP1-bgp-af-evpn] quit [VTEP1-bgp] quit
#配置VTEP2。
[VTEP2] bgp 100 [VTEP2-bgp] router-id 10.2.2.2 [VTEP2-bgp] peer 10.1.1.1 as-number 100 [VTEP2-bgp] peer 10.1.1.1 connect-interface LoopBack1 [VTEP2-bgp] l2vpn-family evpn [VTEP2-bgp-af-evpn] peer 10.1.1.1 enable [VTEP2-bgp-af-evpn] quit [VTEP2-bgp] quit
- 在VTEP1、VTEP2上配置VXLAN隧道目的端地址
# 配置VTEP1。
[VTEP1] interface nve 1 [VTEP1-Nve1] source 10.1.1.1 [VTEP1-Nve1] vni 10 head-end peer-list protocol bgp [VTEP1-Nve1] quit
# 配置VTEP2。
[VTEP2] interface nve 1 [VTEP2-Nve1] source 10.2.2.2 [VTEP2-Nve1] vni 10 head-end peer-list protocol bgp [VTEP2-Nve1] quit
- 验证配置结果
# 上述配置成功后,在VTEP1、VTEP2上执行命令display vxlan vni可查看到VNI的状态是Up;执行命令display vxlan tunnel可查看到VXLAN隧道的信息。以VTEP1显示为例。
[VTEP1] display vxlan vni VNI BD-ID State ----------------------------------------- 10 10 up ----------------------------------------- Number of vxlan vni bound to BD is : 1 VNI VRF-ID ----------------------------------------- ----------------------------------------- Number of vxlan vni bound to VPN is : 0
[VTEP1] display vxlan tunnel Tunnel ID Source Destination State Type ---------------------------------------------------------------------------- 4026531841 10.1.1.1 10.2.2.2 up l2 dynamic ---------------------------------------------------------------------------- Number of vxlan tunnel : Total : 1 Static: 0 L2 dynamic: 1 L3 dynamic: 0
# 配置完成后,相同网段用户之间可以二层互通。以Server1上的VM1 ping Server2上的VM1的显示为例。
C:\Users\VM1>ping 192.168.10.11 Pinging 192.168.10.11 with 32 bytes of data: Reply from 192.168.10.11: bytes=32 time=1ms TTL=126 Reply from 192.168.10.11: bytes=32 time=1ms TTL=126 Reply from 192.168.10.11: bytes=32 time=1ms TTL=126 Reply from 192.168.10.11: bytes=32 time=1ms TTL=126 Ping statistics for 192.168.10.11: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 1ms, Average = 1ms
配置文件
Switch1的配置文件
# sysname Switch1 # interface GigabitEthernet1/0/1 undo portswitch ip address 192.168.1.2 255.255.255.0 # interface GigabitEthernet1/0/2 undo portswitch ip address 192.168.2.1 255.255.255.0 # ospf 1 router-id 192.168.2.1 area 0.0.0.0 network 192.168.1.0 0.0.0.255 network 192.168.2.0 0.0.0.255 # return
VTEP1的配置文件
# sysname VTEP1 # vcmp role silent # evpn vpn-instance evpn10 bd-mode route-distinguisher 1:10 vpn-target 10:1 export-extcommunity vpn-target 10:1 import-extcommunity # bridge-domain 10 vxlan vni 10 evpn binding vpn-instance evpn10 # interface GigabitEthernet1/0/1 undo portswitch ip address 192.168.1.1 255.255.255.0 # interface GigabitEthernet1/0/2 port link-type trunk # interface GigabitEthernet1/0/2.1 mode l2 encapsulation dot1q vid 10 bridge-domain 10 # interface LoopBack1 ip address 10.1.1.1 255.255.255.255 # interface Nve1 source 10.1.1.1 vni 10 head-end peer-list protocol bgp # bgp 100 router-id 10.1.1.1 peer 10.2.2.2 as-number 100 peer 10.2.2.2 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 10.2.2.2 enable # l2vpn-family evpn policy vpn-target peer 10.2.2.2 enable # ospf 1 router-id 10.1.1.1 area 0.0.0.0 network 10.1.1.1 0.0.0.0 network 192.168.1.0 0.0.0.255 # return
VTEP2的配置文件
# sysname VTEP2 # vcmp role silent # evpn vpn-instance evpn10 bd-mode route-distinguisher 2:10 vpn-target 10:1 export-extcommunity vpn-target 10:1 import-extcommunity # bridge-domain 10 vxlan vni 10 evpn binding vpn-instance evpn10 # interface GigabitEthernet1/0/1 undo portswitch ip address 192.168.2.2 255.255.255.0 # interface GigabitEthernet1/0/2 port link-type trunk # interface GigabitEthernet1/0/2.1 mode l2 encapsulation dot1q vid 10 bridge-domain 10 # interface LoopBack1 ip address 10.2.2.2 255.255.255.255 # interface Nve1 source 10.2.2.2 vni 10 head-end peer-list protocol bgp # bgp 100 router-id 10.2.2.2 peer 10.1.1.1 as-number 100 peer 10.1.1.1 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 10.1.1.1 enable # l2vpn-family evpn policy vpn-target peer 10.1.1.1 enable # ospf 1 router-id 10.2.2.2 area 0.0.0.0 network 10.2.2.2 0.0.0.0 network 192.168.2.0 0.0.0.255 # return
Switch2的配置文件
# sysname Switch2 # vlan batch 10 # interface GigabitEthernet1/0/1 port link-type trunk port trunk allow-pass vlan 10 # interface GigabitEthernet1/0/2 port link-type access port default vlan 10 # return
Switch3的配置文件
# sysname Switch3 # vlan batch 10 # interface GigabitEthernet1/0/1 port link-type trunk port trunk allow-pass vlan 10 # interface GigabitEthernet1/0/2 port link-type access port default vlan 10 # return