linux – 为什么从接口中删除未使用的IP地址会终止与该地址无关的连接

前端之家收集整理的这篇文章主要介绍了linux – 为什么从接口中删除未使用的IP地址会终止与该地址无关的连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
昨天我在数据中心快速重新安装了(物理)服务器,由于我的时间很短,并且没有轻松访问我们的数据库,我只是为它分配了一个我知道可用的IP,并允许我以后访问分配正确的地址,并从温暖的地方继续供应.

今天我登录服务器(172.16.130.10/22)并执行以下操作:

ip addr add 172.16.128.67/22 dev eth0

从我本地工作站上的终端我检查它响应ping新地址并通过它登录

$ping 172.16.128.67
PING 172.16.128.67 (172.16.128.67) 56(84) bytes of data.
64 bytes from 172.16.128.67: icmp_req=2 ttl=62 time=3.61 ms
64 bytes from 172.16.128.67: icmp_req=3 ttl=62 time=4.87 ms
^C
$ssh 172.16.128.67

到目前为止一切顺利,我通过新的IP地址连接,旧的IP地址不再需要.我继续把它删除了:

ip addr del 172.16.130.10/22 dev eth0

但是当我点击Enter时,我的SSH会话冻结,我无法再连接.我不得不请求现场运算符为我重启服务器.

我哪里做错了?为什么删除该地址会导致我的连接中断?

解决方法

在Linux中,IP地址具有“主要”和“次要”地址的概念.主要通常是您添加到系统的第一个地址.删除主地址还具有刷新整个辅助地址列表的隐式操作.

您可以通过将sysctl net.ipv4.conf.all.promote_secondaries设置为1来避免此行为,如下所示:

sysctl -w net.ipv4.conf.all.promote_secondaries=1

这会改变行为,以便在删除主IP时,它不会刷新剩余的地址,而是将新的IP地址作为主要IP地址.

猜你在找的Linux相关文章