Comment le périphérique de bouclage est-il implémenté?

8

L'interface réseau de bouclage

est un périphérique réseau virtuel implémenté entièrement dans un logiciel.

Mais comment cette implémentation est-elle réellement accomplie et comment la manipulez-vous?

Pour autant que je sache, les adresses IP sont marquées comme locales dans la table de routage locale:

ip route show table local  

L'envoi vers une adresse IP marquée comme locale déclenchera le périphérique de bouclage. Mais cette détection est-elle effectuée uniquement par des tables de routage ou également par d'autres opérations du noyau?

Edit: Mon objectif ultime est de manipuler la configuration du périphérique de boucle, de sorte que l'envoi de datagrammes entre mes interfaces (deux adaptateurs WLAN) sur mon ordinateur portable se traduira par un trafic / datagrammes réel sur le réseau et non sur des boucles locales. Interface 1 -> WLAN -> Interface 2 et NON: Interface 1 -> LOOP -> Interface 2

Skyo Livede
la source

Réponses:

5

Il est entièrement géré via les tables de routage.

Il est assez facile d'essayer sur une machine virtuelle, si vous voulez vous amuser. Je ne prends aucune responsabilité pour tout ce qui pourrait arriver sur la machine où vous essayez ceci.

Modifions d'abord le masque de réseau de lo255.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

Voyons maintenant notre 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

Où iraient les paquets vers 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

Nous commençons à cingler dans un autre terminal:

$ ping 127.1.1.1

Surveillons le trafic ICMP sur 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

Je vous laisse avec l'exercice de changer le masque de réseau d' loune machine distante en 255.255.0.0 et d'ajouter l'adresse IP 127.1.1.1 à leur interface réseau. Vous pouvez voir les réponses ICMP revenir. Notez que les routeurs peuvent ne pas fonctionner correctement.

Pierre Carrier
la source