Intéressé par des cours d'informatique en ligne ?
Visitez mon nouveau site https://www.yesik.it !

Même réseau physique mais pas même réseau IP.png

Réseau physique et réseau IP — Même si elles sont sur le même réseau physique, en fonction de leur adresse IP et de leur masque de réseau, des machines peuvent se trouver sur des réseaux IP distincts. Du coup, l'accès à ces machines étrangères peut être problématique à partir des autres machines du réseau.

Vous venez d'acheter un nouveau matériel réseau. Et comme il se doit, son adresse factory est 192.168.1.1. Comme il se doit également, le manuel suggère de changer l'adresse IP de votre machine pour pouvoir accéder facilement à sa configuration. Mais ce n'est peut-être pas souhaitable...

Pour ceux qui comme moi ne veulent pas changer systématiquement leur adresse IP pour configurer un nouveau matériel, voici donc comment router des paquets IPv4 vers une machine dont l'adresse est sur un autre réseau.

Comment procéder?

La technique est simple: il suffit d'ajouter une adresse supplémentaire à l'interface physique qui vous relie au réseau, puis de modifier les tables de routage pour utiliser systématiquement cette adresse plutôt que l'adresse habituelle de votre machine pour accéder à la machine étrangère:

sh# ip addr add 192.168.1.200/24 dev eth2
sh# ip route add to 192.168.1.1 dev eth2 src 192.168.1.200

Deux commandes, et c'est tout! Un rapide ping peut m'assurer que non seulement les paquets partent bien vers la machine distante (ce qui confirme que la route est effective), mais aussi que ceux-ci peuvent aussi revenir à leur point de départ (ce qui confirme que le paquet est parti avec pour origine la nouvelle adresse IP):

sh$ ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=254 time=2.04 ms

--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.049/2.049/2.049/0.000 ms

Moins empiriquement, on peut aussi s'assurer de la configuration en examinant les tables de routage:

sh# route -n | grep 192
192.168.1.1     0.0.0.0         255.255.255.255 UH    0      0        0 eth2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2

Et il est possible de vérifier que l'interface physique possède bien deux adresses sur des réseaux IPv4 distincts:

sh# ip addr show eth2 | grep inet
    inet 10.129.36.30/24 brd 10.129.36.255 scope global eth2
    inet 192.168.1.200/24 scope global eth2
    inet6 fe80::213:ceff:fe28:e6e1/64 scope link

Ranger ses jouets

Une fois que vous aurez terminé vos manipulations, vous souhaiterez sans doute supprimer la route et l'adresse IP supplémentaire que nous avons ajoutés:

sh# ip route del to 192.168.1.1
sh# ip addr del 192.168.1.200/24 dev eth2