为什么当环回关闭时,对同一接口的 ping 操作会失败?

为什么当环回关闭时,对同一接口的 ping 操作会失败?

当我关闭环回接口并尝试 ping 我自己 IP 时,显示数据包丢失 100%,即使我的 IPeth0已启动。这是为什么?

这是我所做的:

root@faisal-desktop# ifconfig lo down
root@faisal-desktop# ping -I eth0 172.16.10.112 -c 2
PING 172.16.10.112 (172.16.10.112) from 172.16.10.112 eth0: 56(84) bytes of data.

--- 172.16.10.112 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1007ms

root@faisal-desktop# ifconfig
eth0     Link encap:Ethernet  HWaddr 6c:f0:49:f6:82:03  
         inet addr:172.16.10.112  Bcast:172.16.10.255  Mask:255.255.255.0
         inet6 addr: fe80::6ef0:49ff:fef6:8203/64 Scope:Link
                          .
                          .

检查 ifconfigTX 数据包数

root@faisal-desktop# ifconfig 
eth0  Link encap:Ethernet  HWaddr 6c:f0:49:f6:82:03  
      inet addr:172.16.10.112  Bcast:172.16.10.255  Mask:255.255.255.0
      inet6 addr: fe80::6ef0:49ff:fef6:8203/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:25822 errors:0 dropped:0 overruns:0 frame:0
      TX packets:24825 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:19581301 (19.5 MB)  TX bytes:4013322 (4.0 MB)
      Interrupt:26 Base address:0x6000 

root@faisal-desktop# ping -c 1 -I eth0 172.16.10.112
PING 172.16.10.112 (172.16.10.112) from 172.16.10.112 eth0: 56(84) bytes of data.

--- 172.16.10.112 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

root@faisal-desktop# ifconfig 
eth0  Link encap:Ethernet  HWaddr 6c:f0:49:f6:82:03  
      inet addr:172.16.10.112  Bcast:172.16.10.255  Mask:255.255.255.0
      inet6 addr: fe80::6ef0:49ff:fef6:8203/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:25840 errors:0 dropped:0 overruns:0 frame:0
      TX packets:24845 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:19588641 (19.5 MB)  TX bytes:4017338 (4.0 MB)
      Interrupt:26 Base address:0x6000

答案1

我得到了答案
对同一接口进行 Ping 仅使用环回接口。点击此处
还有一个疑问,在哪个函数/模块中进行ip检查和用环回替换?

回送

答案2

为什么当环回关闭时,对同一接口的 ping 操作会失败?

因为您不是 ping 接口,而是 ping IP 地址。

您的操作系统会根据目标 IP 地址确定最适合使用的接口。如果目标 IP 地址是您自己的,则最适合使用的接口是环回接口,因为它的开销最低。

答案3

是的,这只是验证(“通过 dev lo“):

# ifconfig eth0
eth0 链路封装:以太网 HWaddr 08:00:27:8b:38:0c
          inet 地址:10.0.2.15 Bcast:10.0.2.255 掩码:255.255.255.0
          inet6 地址:fe80::a00:27ff:fe8b:380c/64 范围:链接
          上行广播运行多播 MTU:1500 度量:1
          RX 数据包:539 错误:0 丢弃:0 超限:0 帧:0
          TX 数据包:550 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:1000
          RX 字节:60478(59.0 KiB)TX 字节:38274(37.3 KiB)

#ip ro 获取 10.0.2.15
本地 10.0.2.15 开发本地源 10.0.2.15
    缓存

相关内容