VMware ESXi 7虚拟机IPv6连接30分钟后自动消失问题求助
看起来你的问题大概率和路由器通告(RA)的生命周期配置有关,咱们一步步来排查和解决:
先从VM内部的路由信息找线索
从你贴的ip -6 route输出能看到,默认路由后面标了expires 1392sec——这个时间是RA(路由器通告)下发的默认路由的剩余有效时间。你说30分钟后断连,结合这个时间来看,核心问题应该是RA里的Router Lifetime(路由器寿命)设置过短,VM收到的默认路由到期后,没及时收到新的RA更新,导致默认路由直接消失,IPv6对外连接自然就断了。
第一步:确认RA的具体参数
在Ubuntu 22.04虚拟机里,先装个小工具查RA的详细信息:
apt update && apt install rdisc6
然后运行命令查看网卡ens160的RA数据:
rdisc6 ens160
重点看输出里的Router Lifetime字段,如果显示的是1800s(正好30分钟),那根源就实锤了——就是这个寿命到期后,系统自动删除了默认路由,导致断网。
第二步:排查RA的来源(ESXi还是数据中心路由器)
接下来要搞清楚是谁在发送RA消息,分两种情况处理:
如果是ESXi主机自己发RA
登录ESXi的Web客户端,找到你的虚拟机对应的端口组(就是VM网卡ens160绑定的那个端口组),查看IPv6相关设置。如果ESXi开启了“Router Advertisement”功能,那它就是RA的发送方。
也可以通过ESXi的SSH登录,用命令直接看RA配置:esxcli network ip ipv6 route advertisement list要是输出里的
RouterLifetime值是1800秒,直接把这个值改成更大的(比如86400秒,也就是1天),保存后重启端口组或者ESXi的网络服务就行。如果是数据中心的路由器发RA
那你需要联系数据中心的运维人员,告诉他们你的VM收到的RA默认路由寿命只有30分钟,导致IPv6连接定期中断,让他们调整RA的Router Lifetime参数,延长到合理的时长(比如1天以上)。
临时应急解决办法(先让VM保持联网)
如果暂时没法调整RA源头的配置,可以先在Ubuntu VM里改个配置,强制让RA的默认路由寿命永久有效:
- 打开
/etc/netplan/下的网卡配置文件(比如00-installer-config.yaml),修改成下面这样:
network: ethernets: ens160: dhcp6: true accept-ra: true ra-lifetime: infinity version: 2
- 应用新配置:
netplan apply
这样VM就不会因为RA默认路由到期而删除路由了,不过这只是临时 workaround,还是要找到根源彻底解决才稳妥。
额外排查点(可能性较低)
- 检查Ubuntu VM的网卡是不是开了节能模式,用
ethtool ens160看看有没有power management相关的设置,有的话关掉试试。 - 检查ESXi的防火墙是不是拦截了RA的更新包,不过你重启VM能正常收到RA,所以这个可能性很小。
备注:内容来源于stack exchange,提问作者lostsoul6

