汇知百科
白蓝主题五 · 清爽阅读
首页  > 故障排查

网络虚拟化故障排查:从VM通信中断到VLAN标签错乱的实战记录

上周五下午,运维群里突然炸了:某测试环境的三台虚拟机之间ping不通,但宿主机和物理网络都正常。重启网卡、重配vSwitch、甚至重启整个ESXi主机都没用——这其实是网络虚拟故障里最让人挠头的一类问题。

先盯住三层:虚拟交换机状态别只看‘绿色’

很多人一进vSphere就点开‘网络’标签页,看到分布式交换机(DVS)图标是绿色,就以为万事大吉。其实得进后台查真实状态:

esxcli network vswitch dvs vmware list

重点看Uplinks是否全部up,以及Portgroups绑定的VLAN ID是否和物理交换机端口配置一致。曾遇到一次故障,DVS显示正常,但实际有一条上行链路被误设为standby模式,流量全压在另一条链路上,结果那个链路的物理端口STP刚好阻塞了——表面绿灯,实则断流。

虚拟网卡驱动不是‘装上就行’

VMware Tools里的vmxnet3驱动虽好,但升级后不重启虚拟机,旧驱动可能还在跑。登录客户机,执行:

ethtool -i eth0

输出里如果driver还是vmxnet(不是vmxnet3),说明没生效。更隐蔽的是Linux内核模块冲突:某些国产OS镜像自带老版vmxnet模块,会把新驱动顶掉。直接删掉/lib/modules/$(uname -r)/kernel/drivers/net/vmxnet.ko再重新安装Tools。

VLAN穿透失败?先查Trunk和Native VLAN

虚拟机分配了VLAN 100,却收不到任何广播包。别急着改VM设置,先去物理交换机确认:show interface trunk里该端口是否真的允许VLAN 100通过;再检查show interface switchport输出中的Native VLAN——如果物理侧Native VLAN是1,而DVS端口组VLAN设为0(即‘none’),那所有未打标流量会被当成VLAN 1处理,根本到不了你的VLAN 100网段。

NSX-T里流量突然绕弯?看看T1路由器的BGP邻居

某次上线新业务后,跨Tier-0/Tier-1的流量延迟飙升。抓包发现数据包多走了两跳。登录NSX Manager,进Networking > Routing > BGP > Neighbors,发现一个T1路由器的BGP邻居状态是Idle (Admin)——原来同事清理配置时,顺手把BGP邻居的Admin Status关掉了,但UI上没明显告警图标,只在详情页角落写着‘Disabled’。

别让DHCP租期毁掉整个集群

某次批量部署虚机后,大量机器卡在‘获取IP’阶段。查DHCP服务器日志,发现租期被设成了2小时,而VM启动过程平均耗时150秒。当虚机还没完成初始化,DHCP租约就过期并触发重续,此时DHCP服务器可能已满负荷,导致续租超时。临时解法:在客户机启动脚本里加一句dhclient -r && dhclient;根治法:把DHCP租期调到至少4小时,并确保DHCP服务本身有冗余节点。

网络虚拟化不是物理网络的简单复刻,它的故障点藏在‘看不见的连线’里——比如vSwitch内部的端口映射表、NSX控制器的ARP缓存同步状态、甚至宿主机内核的conntrack连接跟踪条目。遇到问题,少刷网页搜‘解决方案’,多翻esxcliovs-vsctl的原始输出,真相往往就在第三行日志里。