« Si deux machines ont une adresse IP, elles peuvent se joindre. »
Une adresse ne suffit pas. Chaque machine doit savoir si la destination est locale et, sinon, à quel routeur remettre le paquet.
Tu vas construire cette topologie :
pc1 r1 pc2
10.10.10.11/24 ── 10.10.10.1/24 | 10.20.20.1/24 ── 10.20.20.12/24
Nettoie d’abord l’ancien laboratoire si nécessaire :
sudo ip netns del pc1 2>/dev/null || true
sudo ip netns del pc2 2>/dev/null || true
sudo ip netns del r1 2>/dev/null || true
sudo ip link del br-lab 2>/dev/null || true
01Créer les trois équipements
Crée pc1, r1 et pc2
sudo ip netns add pc1
sudo ip netns add r1
sudo ip netns add pc2
sudo ip link add pc1-eth type veth peer name r1-lan1
sudo ip link add pc2-eth type veth peer name r1-lan2
sudo ip link set pc1-eth netns pc1
sudo ip link set r1-lan1 netns r1
sudo ip link set pc2-eth netns pc2
sudo ip link set r1-lan2 netns r102Nommer et activer les interfaces
Prépare les liens
sudo ip -n pc1 link set pc1-eth name eth0
sudo ip -n pc2 link set pc2-eth name eth0
sudo ip -n r1 link set r1-lan1 name lan1
sudo ip -n r1 link set r1-lan2 name lan2
for ns in pc1 pc2 r1; do
sudo ip -n "$ns" link set lo up
done
sudo ip -n pc1 link set eth0 up
sudo ip -n pc2 link set eth0 up
sudo ip -n r1 link set lan1 up
sudo ip -n r1 link set lan2 up03Configurer les deux réseaux
Attribue les adresses
sudo ip -n pc1 addr add 10.10.10.11/24 dev eth0
sudo ip -n r1 addr add 10.10.10.1/24 dev lan1
sudo ip -n pc2 addr add 10.20.20.12/24 dev eth0
sudo ip -n r1 addr add 10.20.20.1/24 dev lan2Teste chaque lien local :
sudo ip netns exec pc1 ping -c 2 10.10.10.1
sudo ip netns exec pc2 ping -c 2 10.20.20.104Observer l’échec attendu
Essaie de joindre pc2 avant de configurer le routage
sudo ip netns exec pc1 ping -c 2 10.20.20.12
sudo ip -n pc1 route05Ajouter les passerelles
Indique le prochain saut à chaque poste
sudo ip -n pc1 route add default via 10.10.10.1
sudo ip -n pc2 route add default via 10.20.20.1
sudo ip -n pc1 route
sudo ip -n pc2 routeComprends la passerelle n’est pas la destination finale
pc1 construit un paquet IP destiné à 10.20.20.12, mais la trame Ethernet locale est adressée à la MAC du routeur 10.10.10.1. Le routeur retire la trame reçue, consulte la destination IP puis construit une nouvelle trame sur son second réseau.
06Autoriser le routeur à transférer
Active le forwarding IPv4 dans r1
sudo ip netns exec r1 sysctl -w net.ipv4.ip_forward=1
sudo ip netns exec r1 sysctl net.ipv4.ip_forwardRelance le test :
sudo ip netns exec pc1 ping -c 3 10.20.20.1207Regarder le chemin
Utilise tracepath si disponible
sudo apt install -y iputils-tracepath
sudo ip netns exec pc1 tracepath -n 10.20.20.12Observe1: 10.10.10.1
2: 10.20.20.12 reachedSupprime la route de retour
- supprime la route par défaut de pc2 ;
- relance le ping depuis pc1 ;
- capture sur r1 et observe que la requête arrive à pc2 ;
- explique pourquoi la réponse ne revient pas ;
- rétablis la route et valide.
sudo ip -n pc2 route del default
sudo ip -n pc2 route add default via 10.20.20.108Nettoyer
sudo ip netns del pc1
sudo ip netns del pc2
sudo ip netns del r1
✓Ce que tu retiens
Deux machines de réseaux différents ont besoin d’un routeur, d’une route aller et d’une route retour. La passerelle reçoit la trame locale, conserve la destination IP du paquet et transmet celui-ci sur une autre interface.