Como o dispositivo de loopback é implementado?

8

A interface de rede de loopback

is a virtual network device implemented entirely in 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  

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

Editar: 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 real / datagramas na rede e não em loops locais.     Interface 1 - > WLAN - > Interface 2 e NOT: Interface 1 - > LOOP - > Interface 2

    
por Skyo Livede 27.08.2012 / 17:56

1 resposta

5

Ele é totalmente manipulado por meio das tabelas de roteamento.

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

Primeiro, vamos alterar a máscara de rede de lo para 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 ver 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 pingar 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 lo em uma 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 muito bem.

    
por Pierre Carrier 13.11.2012 / 01:40