将 IP 分配给接口后,线路上会发生什么?

将 IP 分配给接口后,线路上会发生什么?

当接口(例如 eth0)被分配时:

inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255

电线上会发生什么?内核是否发送任何特殊的数据包来宣布它自己的IP?

或者它主要只是内核端的过滤,这意味着它总是接收所有以太网/WLAN 帧,但现在会丢弃那些与其 IP 不匹配的帧,并将其余部分传递到网络堆栈的下一层。

答案1

现代操作系统倾向于检查 IP 地址冲突就在之前分配一个 IP 地址,通过发送 ARP 查询来获取他们即将开始使用的 IP 地址,然后等待,希望不会返回任何答案。

如果有答案,则意味着分配该地址会导致 IP 地址冲突。

分配IP地址后,操作系统可以选择寄一个免费ARP消息,本质上是广播的 ARP 响应,指示分配的 IP 地址和网络接口的 MAC 地址。它可以是没有相应查询的“响应”,或者如果主机之前进行了IP地址冲突检测,则它可以以广播形式有效地回答自己的查询。

如果该 IP 地址(通常是与其关联的 MAC 地址)最近在同一网段的其他位置处于活动状态,例如当虚拟机或集群服务从一台主机或 NIC 故障转移到另一台主机或 NIC 时,这尤其有用。免费 ARP 可以通知网络交换机特定 MAC 地址的新端口位置,从而最大限度地减少故障转移情况下的延迟和数据包丢失。

如果主机配置了静态 IP 地址,并且选择不进行任何 IP 冲突检测或免费 ARP,则就网络而言,实际的 IP 地址分配可以完全静默地进行。但在正常网络中(路由器中没有手动配置 ARP 表),一旦任何其他主机尝试向该 IP 地址发送数据,它就必须立即响应 ARP 请求,否则它将只能接收广播数据包。

相关内容