“ip addr del”和“ip link set down”之间的远程区别

“ip addr del”和“ip link set down”之间的远程区别

我正在开发一个系统,其中远程 SBC 监视所有链接服务器的运行状况,并在观察到某些行为时发出故障报告。一切都在运行 RHEL 7。我在服务器“eth1”上有一个接口,其 IP 地址为“10.0.3.16”,子网掩码为“255.255.255.0”。

如果我运行命令:

ip addr del 10.0.3.16/24 dev eth1

在服务器上,远程 SBC 似乎没有注意到有什么问题。但是如果我这样做:

ip link set eth1 down

然后我得到了预期的结果。 10.0.3.16 是分配给 eth1 接口的唯一 IP 地址。我想了解这两个命令之间的区别,以及为什么取消分配 IP 地址会产生与关闭整个接口不同的结果。到目前为止,谷歌让我失败了,我似乎找不到任何相关的东西。

答案1

ip addr del只是从接口中删除一个 IP 地址,即告诉系统不要使用该地址进行通信。您仍可以在接口上使用另一个地址,可以是 IPv4 或 IPv6(或多个)。就物理以太网链路而言,没有任何区别,它只影响网络层。

ip link set <iface> down另一方面会关闭物理层上的整个接口,这通常会使连接的设备看起来就像电缆被拔掉一样。您仍然可以配置 IP 地址,系统仍然可以使用它进行内部通信,或者接受来自其他接口的发送到该 IP 地址的数据包。 (除非您有设置来阻止它。)

现在,至于为什么仅仅切断链接就会触发监视器,这完全取决于监视器配置为监视的内容。例如,如果它仅检查交换机上的端口是否已启动,那么它将错过使链路保持活动状态但软件无响应的问题(因为它崩溃了,或者因为您禁用了 IP 地址)。

据我们从您提供的信息来看,该 IP 地址甚至可能10.0.3.16没有用于任何重要用途,也没有受到监控。系统可能有另一个地址或另一个实际运行受监控服务的 VLAN。

相关内容