第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

隧道终结(Tunnel Termination) - 图示

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 代理机制 - 图示

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 网关(等成本多路径网关) - 图示

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
  1. 验证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负载分担

思考

  1. 如果一台Leaf同时作为VTEP和分布式网关,当VM需要访问外部网络时,报文是否还需要经过VXLAN封装?
  2. 跨VNI通信必须经过三层网关吗?有没有二层互通的方案?
  3. 分布式网关模式要求外部路由器安装大量主机路由(/32),在什么场景下这个方案不可行?
  4. Anycast网关通过BGP通告VIP路由实现高可用,BGP收敛期间(秒级)的流量丢包如何控制?
  5. ARP代理机制中,如果Leaf的EVPN路由表未及时更新,VM发送的报文会怎样?

下篇预告:第275篇:Kubernetes 网络:CNI、Pod 网络与 Service