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.