Linux 系统中配置 lo:0 一个 IP 后 (该 IP 和 eth0 在同一个网段), 其他电脑就无法 ping 通该主
另外个电脑 ping 这个台电脑, 从此就 ping 不通这个电脑了. 没有设置之前是可以正常相互 ping 通的. 另外还发现虽然外面无法 ping 这台电脑, 但是这台电脑可以正常 ping 外面的电脑
通过抓包进行简单的分析
没有 lo:0 的情况下, 电脑 A ping Linux 的 eth0 时, 首先发 arp 包, eth0 应答 arp 包, 告诉电脑 A(自己的 eth0 的 Mac 地址)
电脑 A 知道 Linux eth0 的 Mac 地址后, 封装并发送 icmp request 包, Linux eth0 收到 icmp request 包后应答 icmp reply
至此 一个成功的 ping 过程结束
有 lo:0 的情况下, 电脑 A 仍然首先发 arp 包, 但此时 Linux eth0 收到 arp 包, 并没有进行应答, 也就是说没有告诉
电脑 A 自己 eth0 的 Mac 地址是多少. 电脑 A 将无法封包发送 icmp request 包
至于 Linux 为什么没有应答 arp 包, 我觉得应该是 Linux 内核判断有 2 个同一网段的接口, 不知道从哪个接口进行应答,
丢弃了 arp 请求包.
Linux 能 ping 通 外面电脑的 IP, 其实都是假象, 试了一下 ping 一个外面电脑没有使用的 IP 但和 lo:0 同一网段的任意 IP, 会发现都能 ping 通
综上所述
在回环网卡上设置 IP 时不要和真实物理接口的 IP 在同一个网段 掩码不一样也是不在一个网段 这样就能使用 回环网卡的 IP 和真实接口的 IP 地址了
来源: http://www.bubuko.com/infodetail-3297113.html