Por que o ping na mesma interface falha quando o loopback está inativo?

4

Quando eu abaixo a interface de loopback e tentar pingar meu próprio IP, ele está mostrando 100% de perda de pacotes, mesmo quando o meu eth0 é acima. Por que é isso?

Aqui está o que eu fiz:

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
                          .
                          .

Verifique o ifconfig Contagem de pacotes de TX

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
Faisal
fonte

Respostas:

3

Eu tenho a resposta
Ping para a mesma interface usa apenas a interface de loopback. Verifique aqui
E uma dúvida, em qual função / módulo faz o ip checando e substituindo por loopback?

Loopback

Faisal
fonte
Não diz " ping para o mesmo interface . " diz " Qualquer coisa enviada para um dos anfitriões Endereços IP é enviado para a interface de loopback. "Também diz" uma interface de loopback [...] permite que um cliente e um servidor no mesmo host se comuniquem entre si usando TCP / IP. "A implicação é que sem uma interface de loopback isso não é possível.
RedGrittyBrick
Sim, é isso. Eu tenho uma dúvida, você sabe em qual módulo / função essa comparação acontece?
Faisal
Tudo bem, mas não consegui encontrar. Alguém pode apontar o arquivo / função que é responsável por comparar os pacotes (envio) ip de destino com interfaces ip, e mudando para loopback !!.
Faisal
Eu duvido que seja $ (KERNEL_SOURCE) /net/ipv4/route.c
Faisal
2

Por que o ping na mesma interface falha quando o loopback está inativo?

Como você não faz ping em uma interface, você executa ping em um endereço IP.

Seu sistema operacional determina qual interface é a mais apropriada para usar com base no endereço IP de destino. Se o endereço IP de destino for seu, a interface mais apropriada a ser usada é a interface de loopback, pois ela tem as menores sobrecargas.

RedGrittyBrick
fonte
Concordo, mas agora não há interface de loopback, por isso deve usar outro apropriado. Mas nem está chamando o motorista start_xmit função.
Faisal
0

Sim, é simplesmente verificar (" via dev lo "):

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:8b:38:0c
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe8b:380c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:539 errors:0 dropped:0 overruns:0 frame:0
          TX packets:550 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:60478 (59.0 KiB)  TX bytes:38274 (37.3 KiB)

# ip ro get 10.0.2.15
local 10.0.2.15 dev lo src 10.0.2.15
    cache 
t3mp
fonte