当前位置: 首页 > news >正文

VXLAN 学习笔记(下篇)

VXLAN 学习笔记(下篇)

六、VXLAN配置实战案例(华为CE系列交换机)

以下配置基于华为CloudEngine(CE)系列交换机,这是国内数据中心最常见的硬件平台。配置逻辑在其他厂商(Cisco NX-OS、H3C)上大同小异。

6.1 实验拓扑说明

假设我们有一个简化的Spine-Leaf架构:

  • Spine交换机:1台(提供三层互联,跑BGP EVPN)

  • Leaf1交换机:连接VM1(VLAN 10,IP 10.1.1.10/24)

  • Leaf2交换机:连接VM2(VLAN 10,IP 10.1.1.20/24)

  • 要求:VM1和VM2在同一个VXLAN(VNI 100)下二层互通

  • Underlay网络已打通(各交换机Loopback口可达,比如Leaf1的VTEP IP是1.1.1.1,Leaf2的VTEP IP是1.1.1.2)

6.2 案例一:手工方式(无EVPN控制平面)配置同VNI二层互通

适用场景:小型网络、学习实验环境,不依赖BGP协议。

第一步:在Leaf1上配置VTEP(隧道端点)

markdown

# 1. 配置VTEP的源IP(使用Loopback接口,稳定性高) interface LoopBack1 ip address 1.1.1.1 255.255.255.255 # 这个IP作为VTEP的源地址 # 2. 创建VXLAN隧道接口(Tunnel接口) interface Tunnel100 tunnel-protocol vxlan # 指定隧道协议为VXLAN source 1.1.1.1 # 源VTEP IP destination 1.1.1.2 # 目的VTEP IP(Leaf2的Loopback) vni 100 head-end peer-list # 关联VNI 100,指定对端列表

第二步:在Leaf1上创建BD(广播域)并绑定VNI

markdown

# 3. 创建广播域BD bridge-domain 100 # 创建BD 100(数字与VNI保持一致便于管理) vxlan vni 100 # 绑定VNI 100

第三步:在Leaf1上接入业务VLAN

markdown

# 4. 配置连接服务器的二层子接口(或物理口) # 假设服务器接在10GE1/0/1口,服务器侧使用VLAN 10 interface 10GE1/0/1.10 mode l2 # 二层子接口 encapsulation dot1q vid 10 # 封装VLAN 10 bridge-domain 100 # 绑定到BD 100(也就是VNI 100)

Leaf2上的配置完全对称:

markdown

# Leaf2配置 interface LoopBack1 ip address 1.1.1.2 255.255.255.255 interface Tunnel100 tunnel-protocol vxlan source 1.1.1.2 destination 1.1.1.1 vni 100 head-end peer-list bridge-domain 100 vxlan vni 100 interface 10GE1/0/1.10 mode l2 encapsulation dot1q vid 10 bridge-domain 100

配置完成!VM1(10.1.1.10/24)和VM2(10.1.1.20/24)现在可以二层互通了。

⚠️手工方式的痛点:当有N台Leaf时,每台都要配置指向其他所有Leaf的隧道(N-1条),维护极其痛苦。这就是为什么生产环境必须用BGP EVPN。

6.3 案例二:BGP EVPN方式配置分布式网关(推荐方案)⭐

适用场景:生产环境、大型数据中心。Leaf既做VTEP又做三层网关。

基础Underlay配置(所有Leaf通用)

markdown

# 1. 配置物理接口IP(用于BGP邻居建立) interface 10GE1/0/2 # 上联Spine的接口 undo portswitch # 切换为三层模式 ip address 10.0.12.1 255.255.255.252 # 与Spine互联的IP # 2. 配置Loopback(用作VTEP源IP和Router ID) interface LoopBack1 ip address 1.1.1.1 255.255.255.255 # VTEP源地址(全网路由可达) interface LoopBack0 ip address 1.1.1.0 255.255.255.255 # BGP Router ID

配置BGP EVPN控制平面:

markdown

# 3. 使能EVPN地址族 bgp 100 # AS号,所有Leaf建议统一 router-id 1.1.1.0 peer 1.1.1.3 as-number 100 # 与Spine建立IBGP(或RR) peer 1.1.1.3 connect-interface LoopBack0 l2vpn-family evpn # 进入EVPN地址族 peer 1.1.1.3 enable # 使能EVPN邻居

配置VXLAN二层业务(VNI 100):

markdown

# 4. 创建二层BD并绑定VNI bridge-domain 100 vxlan vni 100 evpn # 启用EVPN(将MAC/IP发布给邻居) # 5. 接入业务端口 interface 10GE1/0/1.10 mode l2 encapsulation dot1q vid 10 bridge-domain 100

配置三层分布式网关(跨子网通信):

markdown

# 6. 创建VBDIF接口(三层网关接口) interface Vbdif100 ip address 10.1.1.1 255.255.255.0 # 网关IP arp direct-route enable # 启用ARP直通(分布式网关关键) arp collect host enable # 收集主机ARP信息 # 7. 在BD下关联三层网关 bridge-domain 100 vxlan vni 100 evpn gateway vbdif 100 # 绑定VBDIF

配置跨子网VXLAN(VNI 200与VNI 100三层互通):

如果还有一个VNI 200的子网(10.1.2.0/24),需要与之三层互通:

markdown

# 8. 创建另一个BD和VBDIF bridge-domain 200 vxlan vni 200 evpn gateway vbdif 200 interface Vbdif200 ip address 10.1.2.1 255.255.255.0 arp direct-route enable arp collect host enable # 9. 配置VPN实例(L3VPN实例,关联三层VNI) # 分布式网关需要创建一个L3 VPN实例来隔离不同租户的路由 ip vpn-instance tenant-a ipv4-family route-distinguisher 100:100 vpn-target 100:100 export-extcommunity vpn-target 100:100 import-extcommunity # 10. 将VBDIF绑定到VPN实例 interface Vbdif100 ip binding vpn-instance tenant-a ip address 10.1.1.1 255.255.255.0 interface Vbdif200 ip binding vpn-instance tenant-a ip address 10.1.2.1 255.255.255.0 # 11. 配置三层VNI(在VPN实例下) ip vpn-instance tenant-a vxlan vni 10000 # 三层VNI,用于路由传递 evpn vpn-target 100:100 export-extcommunity vpn-target 100:100 import-extcommunity

配置完成后

  • VM1(10.1.1.10)和VM2(10.1.1.20)二层互通(VNI 100)

  • VM1(10.1.1.10)和VM3(10.1.2.10)三层互通(通过分布式网关)

  • 任意Leaf宕机,流量自动切换到其他Leaf(因为EVPN同步了所有主机的路由)

🎯分布式网关记忆口诀:每台Leaf都是网关,VBDIF配IP,ARP直通加收集,L3 VNI传路由。

6.4 案例三:Open vSwitch(OVS)软件VXLAN配置

适用场景:私有云、开发测试环境、OpenStack等虚拟化平台。

在Linux上用OVS创建VXLAN隧道(手工方式):

bash

# 1. 创建OVS桥 ovs-vsctl add-br br-vxlan # 2. 添加VXLAN隧道端口(本端VTEP IP 192.168.1.10,对端192.168.1.20) ovs-vsctl add-port br-vxlan vxlan0 \ -- set interface vxlan0 type=vxlan \ options:remote_ip=192.168.1.20 \ options:key=100 \ options:local_ip=192.168.1.10 # 3. 将物理网卡或VM端口加入桥 # 假设VM的vnet0口接入 ovs-vsctl add-port br-vxlan vnet0 # 4. 查看VXLAN隧道状态 ovs-vsctl show ovs-ofctl dump-flows br-vxlan

对端设备同理(将remote_ip和local_ip互换)。

💡OVS要点:options:key=100就是VNI,OVS会自动封装UDP(端口4789)。

七、VXLAN运维与故障排查常用命令

7.1 查看隧道状态

markdown

# 查看所有VXLAN隧道(华为CE) display vxlan tunnel # 查看VXLAN对端信息 display vxlan peer # 查看VXLAN隧道详细信息 display vxlan tunnel tunnel-id 1 # 检查VTEP源IP是否可达(最重要!) ping -a 1.1.1.1 1.1.1.2

7.2 查看MAC地址表

markdown

# 查看VXLAN的MAC地址表(华为) display mac-address vxlan # 查看指定VNI的MAC表 display mac-address vni 100 # EVPN学习的MAC表 display evpn mac route

7.3 查看ARP表

markdown

# 查看VBDIF接口的ARP表 display arp interface Vbdif100 # 查看EVPN同步的ARP信息 display evpn arp route

7.4 查看BD与VNI映射

markdown

# 查看BD配置 display bridge-domain 100 # 查看VNI信息 display vxlan vni 100

7.5 查看BGP EVPN邻居

markdown

# 查看EVPN邻居状态(Established表示正常) display bgp evpn peer # 查看EVPN路由 display bgp evpn routing-table

7.6 抓包排错

markdown

# 在物理接口上抓包,看VXLAN报文是否发出 interface 10GE1/0/2 display this interface # 或使用Linux tcpdump(在OVS场景) tcpdump -i eth0 udp port 4789 -vv -e # 观察外层IP是否正确,VNI是否正确,UDP校验和是否正常

八、VXLAN常见故障场景与解决思路 ⭐

8.1 故障一:VXLAN隧道起不来

现象:display vxlan tunnel显示状态为Down。

排查逻辑(按顺序查):

  1. Underlay网络通不通? →ping -a 源VTEP IP 目的VTEP IP

  2. 防火墙/ACL是否放行了UDP 4789端口?

  3. 两端的VNI配置是否一致?

  4. BGP EVPN邻居是否Established?

一句话:VTEP不通,VXLAN必死。隧道建立在IP可达之上。

8.2 故障二:同VNI下主机ping不通

现象:隧道状态Up,但VM1 ping不通VM2。

排查逻辑

  1. VM的网关是否正确指向了VBDIF接口IP?

  2. Leaf上是否能学到VM的MAC? →display mac-address vni 100

  3. EVPN是否将MAC同步到了对端? →display evpn mac route

  4. 对端Leaf的MAC表里有没有源VM的MAC?

  5. MTU问题(最常见!) → 检查物理口MTU是否≥1550

MTU排错妙招

bash

# 在VM内用ping测试MTU ping 10.1.1.20 -M do -s 1450 # 从1450字节逐步增大 # 如果超过某个值不通,就是MTU不够

8.3 故障三:跨VNI三层不通

现象:同VNI通,跨VNI(不同子网)不通。

排查逻辑

  1. VBDIF接口是否配置了IP且状态Up?

  2. VBDIF是否绑定了VPN实例?

  3. 三层VNI(L3 VNI)是否配置且在所有Leaf上一致?

  4. BGP EVPN是否通告了子网路由? →display bgp evpn routing-table查看Type-5路由

  5. 确认分布式网关下:arp direct-route enablearp collect host enable是否配置

8.4 故障四:VM迁移后网络不通

现象:VM从Leaf1热迁移到Leaf2后,原来通信正常的流量中断了。

原因:MAC表或ARP表还老条目,指向了旧的VTEP。

解决思路

  1. 确认EVPN是否开启了MAC迁移通告(华为默认开启)

  2. 手动清除老设备上的MAC表:reset mac-address vni 100 mac-address xxxx-xxxx-xxxx

  3. 或者在VM内主动发一个免费ARP(arping -A)刷新全网表项

  4. 检查EVPN配置中的mac-mobility相关参数

💡EVPN的最大优势:VM迁移后,Leaf2会通过EVPN通告新位置,所有其他Leaf自动更新MAC/IP路由,流量瞬间切到新Leaf——这就是“无感知迁移”。

九、VXLAN核心知识点速记口诀 🧠

把整篇笔记压缩成几句话,方便随时回忆:

知识点一句话记忆
为什么用VXLANVLAN只有4096个,上云不够用
VXLAN是啥MAC-in-UDP隧道,在物理网上跑虚拟网
VNI24位门牌号,1600万个独立网络
VTEP隧道出入口,两端IP要互通
BD虚拟交换机,一个VNI对应一个BD
VBDIF虚拟路由器,配IP当网关用
封装端口UDP 4789,别被防火墙拦住
MTU必须≥1550,否则被拆包丢数据
分布式网关每台Leaf都是网关,最好的方案
EVPN控制面中枢,MAC/IP自动同步

核心四要素(运维必查):

VTEP通不通 → VNI对不对 → BD绑没绑 → 网关配没配

十、最后一张“地图”——从零构建VXLAN的完整步骤

如果你要在新环境部署VXLAN,按这个顺序来,保你不乱:

markdown

【第一阶段】搭地基(Underlay) 1. 配置所有物理接口IP,保证全网路由可达 2. 配置Loopback接口IP,做VTEP源地址 3. 配置IGP(OSPF/IS-IS),让Loopback IP全网互通 4. 测试:从Leaf1 ping Leaf2的Loopback IP ✅ 【第二阶段】搭骨架(BGP EVPN控制面) 5. 配置BGP,指定Router ID 6. 使能EVPN地址族,建立邻居关系 7. 测试:display bgp evpn peer 显示Established ✅ 【第三阶段】装修(VXLAN业务配置) 8. 创建BD,绑定VNI 9. 创建VBDIF接口,配置网关IP 10. 创建VPN实例,绑定三层VNI(如需跨子网) 11. 接入服务器端口(配置二层子接口,绑定BD) 【第四阶段】验收 12. 同VNI互ping测试(二层) 13. 跨VNI互ping测试(三层) 14. display vxlan tunnel 查隧道状态 15. 抓包确认UDP 4789封装 ✅

写在最后

VXLAN看起来复杂,封装、解封装、隧道、VNI、BD、VBDIF、EVPN……名词多得吓人。但剥开外壳看本质

VXLAN就是用“IP隧道”把分散在各地的二层网络“串”成一个虚拟大二层,同时用BGP EVPN来“大脑指挥”整个网络的转发表。

把它想象成物流系统

  • VTEP= 各地的仓库

  • VNI= 货物上的客户编号

  • Underlay= 卡车行驶的高速公路

  • EVPN= 总部的物流调度中心

  • 分布式网关= 每个仓库都有自己的发货窗口

http://www.gsyq.cn/news/1551283.html

相关文章:

  • ShowDoc文件上传漏洞复现:从环境搭建到代码审计的实战指南
  • 计算机毕业设计之创意产品众筹平台
  • 深入浅出CSRF攻击:从原理到防御,一篇搞定网络安全漏洞 | 程序员必学,建议收藏
  • 如何高效管理音频资源:跨平台下载解决方案
  • Discuz! X3.4安全攻防:从任意文件删除到完整Getshell攻击链深度剖析
  • 2026年当下徐州装饰装修公司推荐:聚焦实力与交付的理性之选 - 品牌鉴赏官2026
  • 2026盘锦防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配辽河口滨海盐碱大风防冻甄选指南 - 宅安选房屋修缮
  • NoFences:Windows桌面分区终极解决方案,免费开源告别图标杂乱
  • 嵌入式系统内存扩容实战:SPI串行SRAM 23X256原理与应用详解
  • P6714 [CCO 2018] Wrong Answer 题解
  • Apache Solr Velocity模板注入漏洞(CVE-2019-17558)深度分析与实战复现
  • MPC801 TBSCR寄存器详解:从硬件定时器到精准时序控制实践
  • 跨境电商翻译工具使用心得分享
  • 2026锦州防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配辽西沿海大风盐雾防冻甄选指南 - 宅安选房屋修缮
  • ComfyUI-KJNodes:工作流优化、模型加速与高级遮罩处理的终极解决方案
  • 如何轻松掌握DamaiHelper:Python自动化抢票完整指南
  • 2026黄山防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配皖南山区梅雨季多雨雾甄选指南 - 宅安选房屋修缮
  • 2026承德防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配冀北山地极寒防冻甄选指南 - 宅安选房屋修缮
  • 2026年长沙Rietschle/里其乐无油螺杆真空泵服务商综合评估与选型建议 - 品牌鉴赏官2026
  • 如何用Electron+Vue3打造终极跨平台视频播放器:zyfun技术架构深度解析
  • OpCore Simplify完整指南:3步快速构建OpenCore EFI配置
  • 今日头条全自动评价系统已经达到准工业级别水平
  • 硬件工程师必读:从MCP2030A芯片型号解析,掌握芯片选型与封装温度选型核心
  • 2026红河防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配云南高原多雨山地甄选指南 - 宅安选房屋修缮
  • MC68360异步HDLC协议栈实现:微码卸载与缓冲区描述符机制详解
  • 洁净室设计施工厂家 成都无尘车间防静电装修 - 洁净室推广助手
  • 2026年6月18日:当“递归增强”遇上“物理寒冬”,架构师如何用《旋生万物》破局?
  • OBS ShaderFilter:为你的直播和视频制作带来无限创意的终极着色器插件
  • 2026益阳防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修机构详解,适配洞庭湖湿潮雨季甄选指南 - 宅安选房屋修缮
  • 纯Java实现YOLOv8/v11/v12目标检测全流程