Architecture des réseaux · Étape 06

Lis un préfixe IPv4 sans l'apprendre par cœur

Configure deux hôtes avec des préfixes différents, observe leurs décisions locales, puis relie /24, masque et bits réseau à un comportement réel.

Durée indicative · ~1 hNiveau débutantPrérequis conseillé · Module 1 — LAN, ARP et routage simplePratique · TP
L’idée reçue

« Le /24 est seulement une autre manière d’écrire 255.255.255.0. »

C’est vrai, mais incomplet. Le préfixe indique surtout à la machine quelles destinations elle considère comme locales. Une erreur de préfixe change donc son comportement.

Tu vas relier directement deux postes virtuels. Ils auront des adresses proches, mais des préfixes différents. La panne montrera ce que le nombre après la barre commande réellement.

pc1 192.168.50.10/24 ───────── pc2 192.168.50.130/25

01Construire le lien

Expérience 1

Crée deux namespaces reliés par une paire veth

sudo ip netns del pc1 2>/dev/null || true
sudo ip netns del pc2 2>/dev/null || true

sudo ip netns add pc1
sudo ip netns add pc2
sudo ip link add pc1-eth type veth peer name pc2-eth
sudo ip link set pc1-eth netns pc1
sudo ip link set pc2-eth netns pc2

sudo ip -n pc1 link set pc1-eth name eth0
sudo ip -n pc2 link set pc2-eth name eth0
sudo ip -n pc1 link set lo up
sudo ip -n pc2 link set lo up
sudo ip -n pc1 link set eth0 up
sudo ip -n pc2 link set eth0 up

02Créer volontairement une incohérence

Expérience 2

Attribue deux préfixes différents

sudo ip -n pc1 addr add 192.168.50.10/24 dev eth0
sudo ip -n pc2 addr add 192.168.50.130/25 dev eth0

sudo ip -n pc1 route
sudo ip -n pc2 route
Observe
pc1 : 192.168.50.0/24 dev eth0
pc2 : 192.168.50.128/25 dev eth0

Demande ensuite à chaque poste comment il traiterait l’autre :

sudo ip -n pc1 route get 192.168.50.130
sudo ip -n pc2 route get 192.168.50.10
pc1 considère pc2 comme local. pc2 considère l’adresse de pc1 comme extérieure à son réseau et ne possède aucune route pour lui répondre.

03Observer la panne asymétrique

Expérience 3

Lance un ping et capture ARP/ICMP

Dans un terminal :

sudo ip netns exec pc2 tcpdump -ni eth0 'arp or icmp'

Dans un second terminal :

sudo ip netns exec pc1 ping -c 3 192.168.50.130
pc1 peut découvrir la MAC de pc2 et lui envoyer l’echo request. Mais pc2 n’a pas de route vers 192.168.50.10 : la réponse ne trouve pas de chemin.
Comprends le préfixe dessine la frontière locale

Avec /24, les 24 premiers bits identifient le réseau et les 8 derniers l’hôte. Avec /25, 25 bits appartiennent au réseau : le dernier octet est séparé en deux blocs, 0–127 et 128–255.

Réseau24 bits
Hôte8 bits

04Relier CIDR et masque

CIDRMasqueAdresses totalesHôtes IPv4 usuels
/24255.255.255.0256254
/25255.255.255.128128126
/26255.255.255.1926462
/27255.255.255.2243230

Chaque bit ajouté au préfixe divise le nombre d’adresses par deux. La formule générale est 2^(32 - préfixe).

05Vérifier avec la bibliothèque standard

Vérification

Demande à Python de calculer le réseau

python3 - <<'PY'
from ipaddress import ip_interface

for value in ("192.168.50.10/24", "192.168.50.130/25"):
  interface = ip_interface(value)
  network = interface.network
  print(value)
  print(" masque    :", network.netmask)
  print(" réseau    :", network.network_address)
  print(" broadcast :", network.broadcast_address)
  print(" adresses  :", network.num_addresses)
PY

06Réparer

Résolution

Place les deux postes dans le même /24

sudo ip -n pc2 addr flush dev eth0
sudo ip -n pc2 addr add 192.168.50.130/24 dev eth0
sudo ip netns exec pc1 ping -c 3 192.168.50.130
Les deux machines partagent maintenant la même définition du réseau local. La communication devient symétrique.
Défi autonome

Prédit avant de tester

  1. configure pc1 en 172.16.10.20/26 ;
  2. choisis trois adresses : une locale, une dans le bloc /26 suivant et une très éloignée ;
  3. prédit la décision de ip route get pour chacune ;
  4. vérifie ensuite avec Python et Linux ;
  5. explique l’erreur si ta prédiction était fausse.

07Nettoyer

sudo ip netns del pc1
sudo ip netns del pc2

Ce que tu retiens

Le préfixe CIDR n’est pas décoratif : il sépare les bits réseau des bits hôte et définit les destinations considérées comme locales. Un préfixe incohérent peut créer une communication asymétrique même si les adresses semblent proches.

0
Ta progression

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