我们使用带有两个 VLAN(专用网络和面向互联网)的 10Gig NIC,并且我正在通过重命名网络脚本来更改专用网络上的路由。这是在 CentOS 6.0 上。
基本上,我把原来的 eth4.401 重命名为 eth4.403(脚本和脚本内的接口名称)。然后我执行了“service network restart”,新接口启动了,我可以 ping 其网关。但是,ifconfig 和 route 仍然显示旧接口(eth4.401)。我可以执行“ifconfig eth4.401 down”将其从 ifconfig 中移除,但路由表仍然保留其直接连接的路由。此外,在运行 service network restart 时,我看到此错误:
Bringing up interface eth4.408: RTNETLINK answers: File exists
[ OK ]
如果我重新启动,它可以修复所有问题,但是有什么想法可以在不重新启动机器的情况下让它删除旧接口(特别是它的路由)吗?
答案1
您的网络脚本几乎肯定会调用虚拟配置命令。
要删除 VLAN 接口,请使用命令vconfig rem interface
或vconfig rem eth4.401
。这将删除所有相关地址和路由。
我可以执行“ifconfig eth4.401 down”将其从 ifconfig 中移除,但路由表仍然保留其直接连接的路由
ip route flush dev eth4.401
您可以运行类似和 的命令ip addr flush eth4.401
来清除与接口相关的所有路由和地址,而无需删除该接口。但实际上,您不需要这样做。