Architecture des réseaux · Étape 04

Relie deux sous-réseaux par un routeur

Construis deux LAN distincts, place un routeur Linux entre eux et observe la différence entre communication locale et communication routée.

Durée indicative · ~1 h 15Niveau débutantPrérequis conseillé · Comprendre le LAN construit dans les leçons 2 et 3Pratique · TP
L’idée reçue

« 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

Expérience 1

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 r1

02Nommer et activer les interfaces

Expérience 2

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 up

03Configurer les deux réseaux

Expérience 3

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 lan2

Teste 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.1

04Observer l’échec attendu

Expérience 4

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 route
pc1 ne possède qu’une route vers 10.10.10.0/24. Il ne sait pas où envoyer un paquet destiné à 10.20.20.0/24.

05Ajouter les passerelles

Expérience 5

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 route
Comprends 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

Expérience 6

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_forward

Relance le test :

sudo ip netns exec pc1 ping -c 3 10.20.20.12
Le paquet traverse maintenant r1. Les deux machines restent dans des sous-réseaux distincts, mais un équipement de couche réseau les relie.

07Regarder le chemin

Expérience 7

Utilise tracepath si disponible

sudo apt install -y iputils-tracepath
sudo ip netns exec pc1 tracepath -n 10.20.20.12
Observe
1:  10.10.10.1
2:  10.20.20.12 reached
Panne volontaire

Supprime la route de retour

  1. supprime la route par défaut de pc2 ;
  2. relance le ping depuis pc1 ;
  3. capture sur r1 et observe que la requête arrive à pc2 ;
  4. explique pourquoi la réponse ne revient pas ;
  5. rétablis la route et valide.
sudo ip -n pc2 route del default
sudo ip -n pc2 route add default via 10.20.20.1

08Nettoyer

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.

0
Ta progression

Chargement de l’état… Se connecter pour synchroniser.