Como o dispositivo de loopback é implementado?

8

A interface de rede de loopback

é um dispositivo de rede virtual implementado inteiramente em software.

Mas como essa implementação é realmente realizada e como você a manipula?

Até onde eu sei, os IPs são marcados como locais na tabela de roteamento local:

ip route show table local  

Enviar para um IP marcado como local acionará o dispositivo de loopback. Mas essa detecção é feita apenas por tabelas de roteamento ou também por outras operações do kernel?

Edit: Meu objetivo final é manipular a configuração do dispositivo de loop, para que o envio de datagramas entre minhas interfaces (dois adaptadores wlan) no meu laptop resulte em tráfego / datagramas reais na rede e não em loops locais. Interface 1 -> WLAN -> Interface 2 e NOT: Interface 1 -> LOOP -> Interface 2

Skyo Livede
fonte

Respostas:

5

É totalmente tratado através das tabelas de roteamento.

É muito fácil experimentar em uma máquina virtual, se você quiser se divertir. Não me responsabilizo por nada que possa acontecer na máquina em que você tenta fazer isso.

Primeiro vamos mudar a máscara de rede lopara 255.255.0.0:

sudo ip addr del 127.0.0.1/8 dev lo; sudo ip addr add 127.0.0.1/16 dev lo

Agora vamos olhar para o nosso lo:

$ ip -4 addr show dev lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    inet 127.0.0.1/16 scope host lo

Para onde iriam os pacotes 127.1.1.1?

$ sudo ip route get 127.1.1.1
127.1.1.1 via 172.16.22.2 dev eth0  src 172.16.22.130 
    cache  mtu 1500 advmss 1460 hoplimit 64

Começamos a executar ping em outro terminal:

$ ping 127.1.1.1

Vamos monitorar o tráfego ICMP no eth0:

$ sudo tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
07:28:42.060077 IP 172.16.22.130 > 127.1.1.1: ICMP echo request, id 5665, seq 4, length 64
07:28:43.059920 IP 172.16.22.130 > 127.1.1.1: ICMP echo request, id 5665, seq 5, length 64

Vou deixar você com o exercício de alterar a máscara de rede de louma máquina remota para 255.255.0.0 e adicionar o endereço IP 127.1.1.1 à sua interface de rede. Você pode ver as respostas do ICMP voltando. Observe que os roteadores podem não funcionar bem.

Pierre Carrier
fonte