网络扑图
在现代数据中心网络中,VXLAN(Virtual eXtensible Local Area Network)技术因其突破传统 VLAN 4096 个 ID 限制的能力,广泛应用于大规模、多租户环境的二层网络扩展。集中式网关模式作为 VXLAN 的一种典型部署方式,通过在核心交换机上集中处理三层路由和 VXLAN 隧道,简化了网络架构设计,提高了管理效率。本文通过一个基于 VXLAN 集中式网关的实验,详细讲解如何利用集中式网关实现跨站点二层通信及三层路由功能。
实验基于五台 H3C 交换机(SW-A、SW-B、SW-C、SW-D 和 Access-1)的配置,模拟一个数据中心网络场景,其中 SW-D 作为集中式网关交换机,负责 VXLAN 隧道的终止和三层路由;SW-A、SW-B、SW-C 作为边缘交换机,通过 VXLAN 隧道与 SW-D 互联,承载客户端设备的二层流量;H3C 作为 SW-B 下接入的交换机,扩展客户端接入能力。Underlay 网络通过 OSPF 协议建立,确保 IP 连通性。
实验目标与内容
本文的目标是通过一个精心设计的实验,展示 VXLAN 集中式网关的工作原理、配置方法及其在数据中心网络中的应用。实验将重点讲解以下内容:
-
VXLAN 集中式网关概念:介绍集中式网关的架构、VNI(VXLAN Network Identifier)、VTEP 角色以及与分布式网关的区别,帮助读者理解其核心优势。
-
网络拓扑设计:详细描述实验的网络架构,包括 SW-D 作为集中式网关,SW-A、SW-B、SW-C 通过 VXLAN 隧道连接,Access-1 作为接入层交换机扩展客户端接入,客户端设备通过 VLAN 接入二层广播域。
-
Underlay 网络搭建:展示如何使用 OSPF 协议在 SW-A、SW-B、SW-C、SW-D、Access-1 上配置 IP 路由,确保 VTEP 之间的三层连通性,为 VXLAN 隧道提供可靠的底层网络。
-
VXLAN 隧道及网关配置:深入讲解 SW-D 上的集中式网关配置,包括 VSI、隧道及三层网关接口,以及 SW-A、SW-B、SW-C、Access-1 的边缘和接入配置,突出配置的关键点和注意事项。
-
二层和三层通信验证:通过客户端设备测试,验证 VXLAN 网络内二层互通及三层路由功能,展示 PC 间在 VNI 10 和 VNI 20 内的通信。
实验背景与意义
本实验模拟了一个数据中心场景,SW-A、SW-B、SW-C 代表不同站点,连接虚拟机或服务器;SW-D 作为集中式网关,统一处理 VXLAN 隧道的封装/解封装及三层路由需求;Access-1 作为接入层交换机,扩展 SW-B 的客户端接入能力。实验使用 VXLAN ID 10(VSI vpna)和 VXLAN ID 20(VSI vpnb)构建两个二层广播域,客户端通过 VLAN 1000 和 2000 接入,映射到 VXLAN 网络,实现跨站点通信及与外部网络的互联。
通过本文的讲解,读者将:
-
掌握 VXLAN 集中式网关的基本原理和应用场景,理解其在简化网络管理的价值。
-
学习如何在 H3C 设备上配置集中式网关,包括 Underlay 网络、VXLAN 隧道及三层网关设置。
-
了解如何验证和调试集中式网关网络,解决常见的配置和通信问题。
-
获得可复现的实验指导,适合网络工程师、数据中心管理员或学习网络虚拟化的学生。
实验步骤
1、接口 IP 地址配置
SW-D
vlan 10 to 12 // 创建 VLAN 10 到 12,用于划分 Underlay 网络的逻辑接口
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255 // 配置 Loopback0 作为 VTEP 的标识 IP,保持唯一性
#
interface Vlan-interface10
ip address 10.1.1.1 255.255.255.252 // 配置 VLAN 10 接口 IP,与 SW-A 建立直接链路
#
interface Vlan-interface11
ip address 10.1.1.5 255.255.255.252 // 配置 VLAN 11 接口 IP,与 SW-B 建立直接链路
#
interface Vlan-interface12
ip address 10.1.1.9 255.255.255.252 // 配置 VLAN 12 接口 IP,与 SW-C 建立直接链路
#
interface Vsi-interface1
ip address 192.168.1.254 255.255.255.0 // 配置 VSI 接口 1 作为 VNI 10 的三层网关地址
#
interface Vsi-interface2
ip address 192.168.2.254 255.255.255.0 // 配置 VSI 接口 2 作为 VNI 20 的三层网关地址
SW-A
vlan 10 // 创建 VLAN 10,用于 Underlay 网络与 SW-D 的连接
#
interface LoopBack0
ip address 1.1.1.2 255.255.255.255 // 配置 Loopback0 作为本地 VTEP 的标识 IP
#
interface Vlan-interface10
ip address 10.1.1.2 255.255.255.252 // 配置 VLAN 10 接口 IP,与 SW-D 匹配建立链路
SW-B
vlan 11 // 创建 VLAN 11,用于 Underlay 网络与 SW-D 的连接
#
interface LoopBack0
ip address 1.1.1.3 255.255.255.255 // 配置 Loopback0 作为本地 VTEP 的标识 IP
#
interface Vlan-interface11
ip address 10.1.1.6 255.255.255.252 // 配置 VLAN 11 接口 IP,与 SW-D 匹配建立链路
SW-C
vlan 12 // 创建 VLAN 12,用于 Underlay 网络与 SW-D 的连接
#
interface LoopBack0
ip address 1.1.1.4 255.255.255.255 // 配置 Loopback0 作为本地 VTEP 的标识 IP
#
interface Vlan-interface12
ip address 10.1.1.10 255.255.255.252 // 配置 VLAN 12 接口 IP,与 SW-D 匹配建立链路
Access-1
vlan 1000 // 创建 VLAN 1000,用于客户端接入
#
vlan 2000 // 创建 VLAN 2000,用于客户端接入
#
interface GigabitEthernet1/0/1
port link-mode bridge // 将接口设置为二层桥接模式,处理二层帧
port link-type trunk // 配置接口为 Trunk 模式,允许传输多个 VLAN 流量
undo port trunk permit vlan 1 // 移除默认允许的 VLAN 1 流量
port trunk permit vlan 1000 2000 // 允许 VLAN 1000 和 2000 的流量通过
combo enable fiber // 启用接口的光纤模式,适配物理连接
#
interface GigabitEthernet1/0/2
port link-mode bridge // 将接口设置为二层桥接模式
port access vlan 2000 // 配置接口为 Access 模式,指定默认 VLAN 为 2000
combo enable fiber // 启用接口的光纤模式
#
interface GigabitEthernet1/0/3
port link-mode bridge // 将接口设置为二层桥接模式
port access vlan 1000 // 配置接口为 Access 模式,指定默认 VLAN 为 1000
combo enable fiber // 启用接口的光纤模式
IP 配置完成后,完成了 Underlay 网络的基本连通性准备,接下来配置 OSPF。
2、OSPF 配置
SW-D
ospf 1 router-id 1.1.1.1 // 启用 OSPF 进程 1,并设置路由器 ID 为 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0 // 宣布 Loopback0 IP 进入 OSPF,供 VTEP 识别
network 10.1.1.0 0.0.0.3 // 宣布 VLAN 10 网段,连接 SW-A
network 10.1.1.4 0.0.0.3 // 宣布 VLAN 11 网段,连接 SW-B
network 10.1.1.8 0.0.0.3 // 宣布 VLAN 12 网段,连接 SW-C
network 192.168.1.0 0.0.0.255 // 宣布 VSI 接口 1 网段,作为三层网关
network 192.168.2.0 0.0.0.255 // 宣布 VSI 接口 2 网段,作为三层网关
SW-A
ospf 1 router-id 1.1.1.2 // 启用 OSPF 进程 1,并设置路由器 ID 为 1.1.1.2
area 0.0.0.0
network 1.1.1.2 0.0.0.0 // 宣布 Loopback0 IP 进入 OSPF
network 10.1.1.0 0.0.0.3 // 宣布 VLAN 10 网段,连接 SW-D
SW-B
ospf 1 router-id 1.1.1.3 // 启用 OSPF 进程 1,并设置路由器 ID 为 1.1.1.3
area 0.0.0.0
network 1.1.1.3 0.0.0.0 // 宣布 Loopback0 IP 进入 OSPF
network 10.1.1.4 0.0.0.3 // 宣布 VLAN 11 网段,连接 SW-D
SW-C
ospf 1 router-id 1.1.1.4 // 启用 OSPF 进程 1,并设置路由器 ID 为 1.1.1.4
area 0.0.0.0
network 1.1.1.4 0.0.0.0 // 宣布 Loopback0 IP 进入 OSPF
network 10.1.1.8 0.0.0.3 // 宣布 VLAN 12 网段,连接 SW-D
验证 OSPF 邻居关系正常建立,确保 Underlay 网络可达后,继续 VXLAN 配置。
验证
3、VXLAN 核心及网关配置
SW-D
l2vpn enable // 全局启用二层虚拟专用网络功能,激活 VXLAN 支持
#
interface Tunnel1 mode vxlan // 创建 Tunnel1 接口并配置为 VXLAN 模式,定义隧道
source 1.1.1.1 // 设置隧道源 IP 为本地 Loopback0,标识本地 VTEP
destination 1.1.1.2 // 设置隧道目标 IP 为 SW-A 的 Loopback0,连接远程 VTEP
#
interface Tunnel2 mode vxlan // 创建 Tunnel2 接口并配置为 VXLAN 模式
source 1.1.1.1 // 设置隧道源 IP 为本地 Loopback0
destination 1.1.1.3 // 设置隧道目标 IP 为 SW-B 的 Loopback0
#
interface Tunnel3 mode vxlan // 创建 Tunnel3 接口并配置为 VXLAN 模式
source 1.1.1.1 // 设置隧道源 IP 为本地 Loopback0
destination 1.1.1.4 // 设置隧道目标 IP 为 SW-C 的 Loopback0
#
vsi vpna // 创建 VSI vpna,作为 VNI 10 的虚拟交换实例
gateway vsi-interface 1 // 指定 VSI 接口 1 作为三层网关,处理 VNI 10 的路由
vxlan 10 // 指定 VSI 关联的 VXLAN 网络标识为 10,标识二层广播域
tunnel 1 // 绑定 Tunnel1 到 VSI vpna,处理 SW-A 的流量
tunnel 2 // 绑定 Tunnel2 到 VSI vpna,处理 SW-B 的流量
tunnel 3 // 绑定 Tunnel3 到 VSI vpna,处理 SW-C 的流量
#
vsi vpnb // 创建 VSI vpnb,作为 VNI 20 的虚拟交换实例
gateway vsi-interface 2 // 指定 VSI 接口 2 作为三层网关,处理 VNI 20 的路由
vxlan 20 // 指定 VSI 关联的 VXLAN 网络标识为 20
tunnel 1 // 绑定 Tunnel1 到 VSI vpnb
tunnel 2 // 绑定 Tunnel2 到 VSI vpnb
tunnel 3 // 绑定 Tunnel3 到 VSI vpnb
SW-A
l2vpn enable // 全局启用二层虚拟专用网络功能
#
interface Tunnel1 mode vxlan // 创建 Tunnel1 接口并配置为 VXLAN 模式
source 1.1.1.2 // 设置隧道源 IP 为本地 Loopback0
destination 1.1.1.1 // 设置隧道目标 IP 为 SW-D 的 Loopback0
#
vsi vpna // 创建 VSI vpna,关联本地 VXLAN 网络
vxlan 10 // 指定 VSI 关联的 VXLAN 网络标识为 10
tunnel 1 // 绑定 Tunnel1 到 VSI vpna,连接 SW-D
SW-B
l2vpn enable // 全局启用二层虚拟专用网络功能
#
interface Tunnel1 mode vxlan // 创建 Tunnel1 接口并配置为 VXLAN 模式
source 1.1.1.3 // 设置隧道源 IP 为本地 Loopback0
destination 1.1.1.1 // 设置隧道目标 IP 为 SW-D 的 Loopback0
#
interface Tunnel2 mode vxlan // 创建 Tunnel2 接口并配置为 VXLAN 模式
source 1.1.1.3 // 设置隧道源 IP 为本地 Loopback0
destination 1.1.1.2 // 设置隧道目标 IP 为 SW-A 的 Loopback0,用于扩展测试
#
interface Tunnel3 mode vxlan // 创建 Tunnel3 接口并配置为 VXLAN 模式
source 1.1.1.3 // 设置隧道源 IP 为本地 Loopback0
destination 1.1.1.4 // 设置隧道目标 IP 为 SW-C 的 Loopback0
#
vsi vpna // 创建 VSI vpna,关联本地 VXLAN 网络
vxlan 10 // 指定 VSI 关联的 VXLAN 网络标识为 10
tunnel 1 // 绑定 Tunnel1 到 VSI vpna,连接 SW-D
tunnel 2 // 绑定 Tunnel2 到 VSI vpna,连接 SW-A
#
vsi vpnb // 创建 VSI vpnb,关联本地 VXLAN 网络
vxlan 20 // 指定 VSI 关联的 VXLAN 网络标识为 20
tunnel 1 // 绑定 Tunnel1 到 VSI vpnb,连接 SW-D
tunnel 3 // 绑定 Tunnel3 到 VSI vpnb,连接 SW-C
SW-C
l2vpn enable // 全局启用二层虚拟专用网络功能
#
interface Tunnel1 mode vxlan // 创建 Tunnel1 接口并配置为 VXLAN 模式
source 1.1.1.4 // 设置隧道源 IP 为本地 Loopback0
destination 1.1.1.1 // 设置隧道目标 IP 为 SW-D 的 Loopback0
#
interface Tunnel3 mode vxlan // 创建 Tunnel3 接口并配置为 VXLAN 模式
source 1.1.1.4 // 设置隧道源 IP 为本地 Loopback0
destination 1.1.1.3 // 设置隧道目标 IP 为 SW-B 的 Loopback0
#
vsi vpnb // 创建 VSI vpnb,关联本地 VXLAN 网络
vxlan 20 // 指定 VSI 关联的 VXLAN 网络标识为 20
tunnel 1 // 绑定 Tunnel1 到 VSI vpnb,连接 SW-D
tunnel 3 // 绑定 Tunnel3 到 VSI vpnb,连接 SW-B
配置完成后,SW-D 作为集中式网关,处理 VNI 10 和 VNI 20 的二层广播及三层路由,SW-A、SW-B、SW-C 通过隧道与 SW-D 互联,H3C 扩展接入能力。
验证
4、VXLAN 接入配置
SW-A
vlan 1000 // 创建 VLAN 1000,用于客户端接入
#
interface GigabitEthernet1/0/2
port link-mode bridge // 将接口设置为二层桥接模式,处理二层帧
port link-type trunk // 配置接口为 Trunk 模式,允许传输多个 VLAN 流量
port trunk permit vlan 1 1000 // 允许 VLAN 1 和 VLAN 1000 的流量通过
port trunk pvid vlan 1000 // 设置无标签帧的默认 VLAN 为 1000
combo enable fiber // 启用接口的光纤模式,适配物理连接
#
service-instance 1000
encapsulation s-vid 1000 // 定义服务实例 1000,处理带 VLAN 1000 标签的帧
xconnect vsi vpna // 将服务实例绑定到 VSI vpna,将 VLAN 1000 流量映射到 VXLAN 网络
SW-B
vlan 1000 // 创建 VLAN 1000,用于客户端接入
#
vlan 2000 // 创建 VLAN 2000,用于客户端接入
#
interface GigabitEthernet1/0/2
port link-mode bridge // 将接口设置为二层桥接模式
port link-type trunk // 配置接口为 Trunk 模式,允许传输多个 VLAN 流量
port trunk permit vlan 1 1000 2000 // 允许 VLAN 1、1000 和 2000 的流量通过
combo enable fiber // 启用接口的光纤模式
#
service-instance 1000
encapsulation s-vid 1000 // 定义服务实例 1000,处理带 VLAN 1000 标签的帧
xconnect vsi vpna // 将服务实例绑定到 VSI vpna,将 VLAN 1000 流量映射到 VXLAN 网络
#
service-instance 2000
encapsulation s-vid 2000 // 定义服务实例 2000,处理带 VLAN 2000 标签的帧
xconnect vsi vpnb // 将服务实例绑定到 VSI vpnb,将 VLAN 2000 流量映射到 VXLAN 网络
SW-C
vlan 2000 // 创建 VLAN 2000,用于客户端接入
#
interface GigabitEthernet1/0/2
port link-mode bridge // 将接口设置为二层桥接模式
port access vlan 2000 // 配置接口为 Access 模式,指定默认 VLAN 为 2000
combo enable fiber // 启用接口的光纤模式
#
service-instance 1000
encapsulation untagged // 定义服务实例 1000,处理无 VLAN 标签的帧(因 Access 模式已剥离标签)
xconnect vsi vpnb // 将服务实例绑定到 VSI vpnb,将 VLAN 2000 流量映射到 VXLAN 网络
Access-1
interface GigabitEthernet1/0/1
port link-mode bridge // 将接口设置为二层桥接模式
port link-type trunk // 配置接口为 Trunk 模式,允许传输多个 VLAN 流量
undo port trunk permit vlan 1 // 移除默认允许的 VLAN 1 流量
port trunk permit vlan 1000 2000 // 允许 VLAN 1000 和 2000 的流量通过
combo enable fiber // 启用接口的光纤模式
#
interface GigabitEthernet1/0/2
port link-mode bridge // 将接口设置为二层桥接模式
port access vlan 2000 // 配置接口为 Access 模式,指定默认 VLAN 为 2000
combo enable fiber // 启用接口的光纤模式
#
interface GigabitEthernet1/0/3
port link-mode bridge // 将接口设置为二层桥接模式
port access vlan 1000 // 配置接口为 Access 模式,指定默认 VLAN 为 1000
combo enable fiber // 启用接口的光纤模式
说明
-
SW-A 和 SW-B 的 Trunk 模式:适合连接带标签流量的服务器,port trunk pvid vlan 1000/2000 确保无标签帧分配到对应 VLAN。服务实例使用 encapsulation s-vid 匹配带标签帧。
-
SW-C 的 Access 模式:适合连接无标签流量的客户端,encapsulation untagged 匹配接口剥离标签后的帧。
-
Access-1 的设计:作为接入层交换机,GigabitEthernet1/0/1 向上连接 SW-B 的 Trunk 口,汇总 VLAN 1000 和 2000 流量;GigabitEthernet1/0/2 和 1/0/3 向下连接客户端,分别分配 VLAN 2000 和 1000。
-
注意事项:模拟器中,交换机与 PC 互联可能需要调整标签配置,实际环境中根据服务器是否发送带标签帧选择 Trunk 或 Access 模式。
5、PC配置
6、连通性验证
7、抓包验证
在Switch-D的G0/2口抓包,从Vm1访问Vm4
在Switch-D的G0/2口抓包,从Vm3访问Vm2