VXLAN 是什么
VXLAN(RFC 7348)把二层以太网帧封装进 UDP,让虚拟机或容器跨越三层网络通信:外层是物理网络的 IP 与 UDP 头,内层是原始帧,中间用 24 位 VNI 区分租户网络。标准目的端口是 4789,Linux 内核早期默认与部分容器网络方案(如 Flannel)习惯使用 8472。跨主机的大二层流量都走这条通道,因此它成为数据中心 Overlay 的核心端口。
基本信息
| 服务 | VXLAN(RFC 7348) |
|---|---|
| 协议 | UDP,默认 4789;部分实现使用 8472 |
| 标识 | 24 位 VNI,可区分大量隔离网络 |
| 封装开销 | 典型增加 50 字节,需相应下调 MTU |
| 安全等级 | 仅数据中心互连网段,跨公网需叠加加密 |
典型使用场景
- 容器网络:节点之间通过 VXLAN 打通 Pod 或容器网段
- 虚拟化平台:跨物理主机的大二层与虚拟机迁移
- 多租户隔离:用不同 VNI 区分业务网络
- 排障:确认隧道接口状态、FDB 表项与 MTU 设置
- 安全评估:确认 Overlay 未被暴露到数据中心之外
查看接口与监听
查看接口与监听
ip -d link show | grep -A3 vxlan
ss -lunp | grep -E '4789|8472'
bridge fdb show dev vxlan0 | head # 对端 VTEP 学习结果
ip -d link add vxlan0 type vxlan id 42 dev eth0 dstport 4789 # 手工建隧道示例常见实现与端口
| 实现 | 端口 | 说明 |
|---|---|---|
| 标准 VXLAN | 4789/udp | RFC 7348 指定 |
| Flannel VXLAN | 8472/udp | 历史默认,看到 8472 多为该方案 |
| Cilium 隧道模式 | 8472/udp | 默认隧道端口,可配置 |
| IPsec / MACsec | 叠加保护 | VXLAN 自身不加密 |
MTU 是关键参数:封装增加约 50 字节开销,物理网卡若按 1500 计算,隧道接口应相应下调,否则会出现小包正常、大包丢失的典型现象。
VXLAN 自身不提供加密与认证:把它当作安全隔离手段并不成立,跨机房或跨不可信网络使用时应叠加 IPsec 或链路加密。
运维建议
- 统一规划 VNI 与隧道端口,写入网络设计文档
- 按节点清单放行隧道端口,避免全段互访
- 定期核对 FDB 与对端节点状态,及早发现单向通路
- 跨站点链路优先评估加密方案与带宽预算
排查顺序建议:先看隧道接口与对端学习结果,再核对隧道端口的放行范围,最后才怀疑控制面组件;顺序颠倒会在控制组件上反复折腾,而问题其实在转发路径上。
加固建议
- 按节点清单放行隧道端口,避免整段互通
- 跨站点链路评估加密与带宽预算
- 定期核对 FDB 与对端状态,及早发现单向通路
- 把 VNI 与端口规划写入网络设计文档