搞什么……VXLAN都配好了,为什么虚拟机之间还是不通?

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

VXLAN 作为数据中心网络的“标配”,解决了传统 VLAN 扩展受限的问题,让二层网络能横跨物理边界。

但在实际部署中,不少人会遇到:VXLAN 配置无误,隧道也建立了,可虚拟机之间依旧 ping 不通。

为什么?

答案是:VXLAN 涉及的要素太多了,哪怕少了一步,就可能让通信中断。

本文带你全面排查原因。

1. VXLAN 基础回顾

在排障之前,先回忆一下 VXLAN 的核心原理:

  • VTEP(VXLAN Tunnel EndPoint):VXLAN 隧道端点,负责把二层帧封装成 UDP 报文。
  • VNI(VXLAN Network Identifier):类似 VLAN ID,用于区分不同租户或逻辑二层。
  • 封装方式:原始二层帧 + VXLAN Header + UDP + IP + MAC。
  • 控制平面:可以是 Flood & Learn(EVPN 前用的方式)或 BGP EVPN。

搞清楚这几个概念,排障时才能有方向。

VXLAN报文格式(以外层IP头为IPv4格式为例)

2. 常见导致“虚拟机不通”的原因

2.1 Underlay 网络未打通

  • VXLAN 是基于 UDP 封装的,如果底层 IP 网络都不通,VXLAN 就无从谈起

  • 检查点:

    • VTEP IP 是否互通?
    • MTU 设置是否足够(VXLAN 封装后会增加 50 字节左右)?
    • Underlay 路由是否完整?

2.2 VNI 映射不一致

  • 如果两端 VXLAN 使用的 VNI 不一样,等于两个不同的虚拟网络,自然无法互通。

  • 检查点:

    • VLAN 与 VNI 的绑定关系是否一致?
    • 同一租户的 VNI 是否完全匹配?

 VXLAN网络模型示意

2.3 VTEP 配置错误

  • VTEP 地址配置错误或未激活,会导致 VXLAN 隧道无法封装报文。

  • 检查点:

    • VTEP 接口(Loopback、NVE 等)是否配置正确?
    • show nve interface / display vxlan tunnel 查看隧道是否 UP?

建立VXLAN隧道示意图

2.4 学习不到 MAC 地址

  • VXLAN 需要学习虚拟机的 MAC 地址,才能正确转发。

  • 检查点:

    • ARP 报文能否封装并传输?
    • 是否有 Flood & Learn 或 EVPN 控制平面?
    • show vxlan mac 是否能看到远端虚拟机的 MAC?

3. 特殊情况:虚拟机自身配置错误

  • 子网不一致:虚拟机 IP 配置在不同网段,必然不通。
  • 默认网关缺失:不同子网之间通信必须走网关,如果没配置,ping 不通很正常。
  • 安全策略限制:云平台 / 虚拟化平台(如 VMware、KVM)可能有安全组或 ACL 限制东西向流量。

4. 进阶排查点

4.1 MTU 设置问题

VXLAN 封装后,每个报文会额外增加 50 字节左右的头部(Outer MAC + Outer IP + UDP + VXLAN Header)。

  • 如果底层链路 MTU 没有调大,就可能出现 报文被丢弃 的情况。

  • 检查点:

    • 用&nbsp;ping -M do -s 1472 <VTEP IP>&nbsp;测试是否能通过(假设 MTU 1500)。
    • 建议将物理网络 MTU 设置为&nbsp;1550 或 1600,保证 VXLAN 业务不被丢包。

4.2 控制平面未建立

在大规模数据中心里,一般不会只靠 Flood & Learn,而是使用&nbsp;BGP EVPN&nbsp;来分发 MAC 和 ARP 信息。

  • 如果 EVPN 会话未建立,VTEP 就学不到远端 MAC。

  • 检查点:

    • show bgp l2vpn evpn summary&nbsp;查看 EVPN 邻居是否正常。
    • show bgp l2vpn evpn route&nbsp;是否有对端的 MAC/IP 路由。
    • 确认 Route-Target(RT)配置一致。

4.3 网关部署模式错误

VXLAN 跨子网通信时,必须经过三层网关。常见有两种模式:

  • 集中式网关:所有三层转发都交给核心设备完成。

    • 缺点:跨租户、大规模环境中,容易形成瓶颈。
  • 分布式网关(Distributed Anycast Gateway):每个 ToR 都配置一个网关,虚拟机上送报文直接在本地转发。

    • 如果网关没配置正确,虚拟机即使在 VXLAN 内,也 ping 不通对端。
  • 检查点:

    • 确认三层网关的 IP 是否一致(Anycast 模式)。
    • 确认 ARP 能否学习到远端虚拟机网关的 MAC。

4.4 多租户隔离问题

VXLAN 的初衷就是实现多租户隔离。如果不小心:

  • 把不同租户的 VNI 配到了一起;
  • 或者 Route-Target 配置错误,导致不同租户的 EVPN 表混淆; 就会出现虚拟机“莫名其妙能互通”或“怎么都不通”。

4.5 安全与策略限制

有些时候问题根本不在 VXLAN,而在外围设备:

  • 防火墙、ACL 阻断了 VXLAN 的 UDP 端口(4789 默认)。
  • 虚拟化平台本身有安全组策略,阻止虚拟机 ARP 或 VXLAN 流量。

5. VXLAN 排障逻辑(逐层排查)

当虚拟机之间不通时,可以按照下面这个逻辑逐步检查:

  1. Underlay 网络层

    • VTEP Loopback 是否互通?
    • MTU 是否足够?
    • 物理链路是否有丢包?
  2. Overlay 隧道层

    • VXLAN NVE 接口是否 UP?
    • VXLAN 隧道是否建立?
    • VNI 映射是否一致?
  3. 控制平面层

    • EVPN 邻居是否建立?
    • 是否学习到远端 MAC/IP 路由?
  4. 虚拟机层

    • 虚拟机是否在同一子网?
    • 默认网关配置是否正确?
    • 是否有安全组 / ACL 限制?

6. 总结

VXLAN 的排障思路,其实就是一个逐层剥洋葱的过程:

  • 先看底层&nbsp;Underlay,确保物理 IP 网络能承载 VXLAN;
  • 再看&nbsp;Overlay,确认 VTEP 和 VNI 配置无误;
  • 然后是&nbsp;控制平面,验证 MAC/ARP/路由能否同步;
  • 最后才是虚拟机和安全策略。

很多人一开始上手 VXLAN 时容易“慌”,因为它涉及的组件太多。但只要建立这种逐层排查的逻辑,就能很快定位问题。

原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值