第274篇:Overlay 网络中隧道终结与网关
关键词:Overlay、隧道终结、VTEP、集中网关、分布式网关、东西向、南北向
一、引言
在Overlay网络架构中,隧道终结(Tunnel Termination)和网关(Gateway)是实现虚拟网络与物理网络互通的核心机制。隧道终结点(VTEP)负责Overlay报文的封装和解封装,而网关则负责虚拟网络与外部物理网络之间的路由转发。
理解隧道终结与网关的工作原理和部署模式,是设计和运维Overlay数据中心网络的关键。
二、核心概念
2.1 隧道终结(Tunnel Termination)
隧道终结是指Overlay报文在VTEP设备上的封装(Encapsulation)和解封装(Decapsulation)过程:
封装过程(发送端VTEP): 1. 收到VM的原始以太网帧 2. 查找VNI映射,确定目的VTEP 3. 添加VXLAN头(VNI) 4. 添加外层UDP/IP/以太网头 5. 通过Underlay网络发送
解封装过程(接收端VTEP): 1. 收到VXLAN报文(UDP 4789) 2. 剥除外层以太网/IP/UDP头 3. 提取VXLAN头中的VNI 4. 根据VNI查找虚拟转发条目 5. 将原始以太网帧转发到目的VM

2.2 隧道终结点类型
| 类型 | 部署位置 | 说明 |
|---|---|---|
| Hypervisor VTEP | 虚拟化主机(ESXi/KVM) | 虚拟交换机(OVS)作为VTEP |
| ToR VTEP | Top-of-Rack物理交换机 | Leaf交换机作为VTEP |
| 分布式VTEP | Hypervisor + ToR | 两者协同作为VTEP |
| 集中VTEP | 核心交换机 | Spine/Border作为VTEP |
2.3 Overlay 网关
Overlay网关是虚拟网络与外部物理网络之间的桥梁:
| 网关类型 | 位置 | 功能 |
|---|---|---|
| 集中式网关 | Spine/Bridge Leaf | 所有南北向流量的汇聚点 |
| 分布式网关 | 每个Leaf/ToR | 本地南北向流量转发 |
| 混合网关 | Leaf+Spine | 东西向分布式+南北向集中式 |
| 外部网关 | 防火墙/路由器 | 与外部网络的NAT/路由 |
2.4 网关流量路径
| 流量类型 | 集中式网关路径 | 分布式网关路径 |
|---|---|---|
| VM→外部(南北向) | VM→Leaf→Spine(GW)→外部 | VM→Leaf(GW)→外部 |
| 外部→VM(南北向) | 外部→Spine(GW)→Leaf→VM | 外部→Leaf(GW)→VM |
| 同VNI VM间(东西向) | VM→Leaf→Spine→Leaf→VM | VM→Leaf→VXLAN→Leaf→VM |
| 跨VNI VM间 | VM→Leaf→Spine(GW)→Leaf→VM | VM→Leaf(GW)→VXLAN→Leaf→VM |
三、技术细节
3.1 集中式网关的工作原理
集中式网关的核心特点: - 网关功能集中部署在少数核心设备 - 所有VM的默认网关指向集中式网关 - 南北向流量统一经过核心层
集中式网关的路由设计:
| 路由类型 | 说明 |
|---|---|
| 汇总路由 | 集中式网关通告VXLAN网段的汇总路由 |
| 主机路由 | 可选,通告每台VM的/32路由 |
| 默认路由 | 集中式网关通告默认路由到所有Leaf |
3.2 分布式网关的工作原理
分布式网关的核心特点: - 每台Leaf交换机都作为VXLAN网关 - VM的默认网关为本地Leaf的VXLAN SVI接口 - 南北向流量在本地Leaf完成路由转发
分布式网关的挑战: - ARP广播无法跨VTEP泛洪 - 外部网络需要知道每台VM的路由 - 安全策略需要在每台Leaf上部署
3.3 隧道终结与网关的协同

3.4 分布式网关的 ARP 代理机制
分布式网关面临的核心挑战是ARP广播无法跨越VTEP泛洪。解决方案是ARP代理(ARP Proxy):

ARP代理的核心流程: 1. VM发送ARP请求查询网关MAC → 本地Leaf的SVI响应(ARP代理回复) 2. Leaf收到目的IP为同网段VM的报文 → 通过EVPN Type2路由查���目的VM的MAC和VTEP 3. Leaf将报文VXLAN封装发往目的VTEP
3.5 Anycast 网关(等成本多路径网关)
Anycast网关是集中式网关的高可用方案,多台设备使用相同的网关IP(VIP),通过BGP通告该IP的路由:

| Anycast网关特性 | 说明 |
|---|---|
| VIP共享 | 多台设备共用同一网关IP |
| ECMP负载 | 外部路由器通过ECMP在多台Anycast网关间分担流量 |
| 高可用 | 单台Anycast网关故障, BGP自动撤销路由, 流量切换到存活节点 |
| ARP处理 | 所有Anycast网关代理响应同一VIP的ARP请求 |
| 收敛时间 | BGP收敛时间(亚秒级~秒级) |
3.6 跨VNI三层路由
不同VNI(不同子网/VLAN)的VM通信需要通过三层网关路由:
| 跨VNI路由方案 | 实现方式 | 控制平面 | 适用场景 |
|---|---|---|---|
| BGP EVPN Type5 | EVPN IP前缀路由 | BGP EVPN | 大规模跨VNI路由 |
| BGP EVPN Type2+IP | MAC/IP+IP路由联合 | BGP EVPN | 中小规模 |
| VXLAN SVI路由 | Leaf本地SVI间路由 | 静态/BGP | 简单场景 |
| 集中式网关路由 | Spine层VRF间路由 | 静态/OSPF | 集中管理 |
3.7 隧道终结与网关性能对比
| 性能指标 | 集中式网关 | 分布式网关 | Anycast网关 |
|---|---|---|---|
| 南北向延迟 | 高(经Spine) | 低(本地转发) | 低(就近Spine) |
| 东西向延迟 | 高(绕行Spine) | 低(VXLAN直连) | 低(VXLAN直连) |
| 网关带宽 | 受限于Spine | 分散到所有Leaf | 聚合多台Spine |
| 外部路由规模 | 汇总路由(少) | 主机路由(多) | 汇总路由(少) |
| 安全策略部署 | 集中(1处) | 分布式(N处) | 集中(2-4处) |
| 运维复杂度 | 低 | 高 | 中 |
四、实战配置/案例分析
4.1 华为CloudEngine 分布式网关 + VTEP 配置
# Leaf-01 分布式网关 + VTEP 配置
sysname Leaf-01
#
# 1. 配置VTEP源地址
interface LoopBack0
ip address 10.255.1.1 255.255.255.255
#
# 2. 配置VXLAN VNI
vxlan vni 10001
segment-id 10001
learning disable
vlan 1001
#
# 3. 配置BGP EVPN
bgp 65001
router-id 10.255.1.1
peer 10.255.2.1 as-number 65001
peer 10.255.2.1 connect-interface LoopBack0
peer 10.255.2.1 ttl 2
#
address-family l2vpn evpn
evpn vxlan vni 10001
source-ip 10.255.1.1
route-distinguisher 10.255.1.1:10001
route-policy EVPN-IMPORT import
route-policy EVPN-EXPORT export
peer 10.255.2.1 enable
#
# 4. 配置分布式网关SVI
interface Vlanif1001
ip address 192.168.1.1 255.255.255.0
arp broadcast suppress enable
#
# 5. 配置服务器接入
interface 25GE1/0/1
port link-type access
port access vlan 1001
4.2 故障案例:隧道终结点VTEP IP不可达
现象:两台Leaf之间的VXLAN隧道无法建立,VM跨Leaf通信失败。
排查过程:
# 1. 检查VXLAN隧道状态
display vxlan interface Vxlan1
# 隧道状态为Down
# 2. 检查VTEP IP可达性
ping -a 10.255.1.1 10.255.2.1
# 请求超时, 不通
# 3. 检查Underlay路由
display ip routing-table 10.255.2.1
# 路由表中无到达10.255.2.1的路由
# 4. 检查Spine路由
# Spine缺少到Leaf2 LoopBack的路由
根因:Spine交换机上缺少到Leaf2 LoopBack地址的路由,导致Leaf1到Leaf2的VXLAN隧道报文无法通过Underlay IP路由到达。
解决: 1. 在Spine上添加到Leaf2 LoopBack的路由:
ip route-static 10.255.2.1 32 10.10.2.2
- 验证VTEP IP可达性后,VXLAN隧道自动建立
4.3 故障案例:网关SVI与VXLAN VNI绑定缺失
现象:VM可以获取IP地址(DHCP正常),但无法访问网关,ping网关地址超时。
排查过程:
# 1. 检查Vlanif接口状态
display interface Vlanif1001
# 接口状态Up, IP地址正确
# 2. 检查VXLAN VNI绑定
display vxlan vni 10001
# VNI 10001绑定VLAN 1001, 但没有绑定到Vlanif1001
# 3. 检查VM的ARP表
# VM发送ARP请求查询网关IP, 但没有收到回复
# 因为网关SVI与VXLAN VNI未绑定, ARP请求无法在VXLAN隧道中转发
根因:Vlanif1001接口创建后,未与VXLAN VNI 10001正确绑定。VM发送的ARP请求无法到达网关SVI。
解决:
1. 确认VXLAN VNI已正确绑定VLAN
2. 在EVPN模式下,确认Type2路由已正确通告网关MAC
3. 使用display vxlan mac-address验证MAC学习状态
五、总结
| 隧道终结模式 | 优势 | 劣势 |
|---|---|---|
| Hypervisor VTEP | VM到VTEP路径最短 | 宿主机CPU开销大 |
| ToR VTEP | 卸载宿主机CPU | 增加一条跳数 |
| 分布式VTEP | 负载均衡 | 配置复杂 |
| 集中VTEP | 管理简单 | 单点瓶颈 |
| 网关模式 | 南北向路径 | 东西向路径 | 适用场景 |
|---|---|---|---|
| 集中式 | 长(经Spine) | 长(可能经Spine) | 中小规模, 策略集中 |
| 分布式 | 短(本地) | 短(VXLAN直连) | 大规模, 东西向为主 |
| 混合式 | 中 | 短 | 大型, 兼顾南北 |
| Anycast | 短(就近Spine) | 短(VXLAN直连) | 高可用集中网关 |
| 关键技术 | 说明 |
|---|---|
| ARP代理 | 解决分布式网关ARP广播无法跨VTEP泛洪问题 |
| BGP EVPN Type2 | 通告MAC/IP绑定信息, 实现无泛洪二层扩展 |
| BGP EVPN Type5 | 通告IP前缀路由, 实现跨VNI三层路由 |
| Anycast VIP | 多台网关共享VIP, ECMP负载分担 |
思考
- 如果一台Leaf同时作为VTEP和分布式网关,当VM需要访问外部网络时,报文是否还需要经过VXLAN封装?
- 跨VNI通信必须经过三层网关吗?有没有二层互通的方案?
- 分布式网关模式要求外部路由器安装大量主机路由(/32),在什么场景下这个方案不可行?
- Anycast网关通过BGP通告VIP路由实现高可用,BGP收敛期间(秒级)的流量丢包如何控制?
- ARP代理机制中,如果Leaf的EVPN路由表未及时更新,VM发送的报文会怎样?
下篇预告:第275篇:Kubernetes 网络:CNI、Pod 网络与 Service