Aller au contenu

Couche réseau et routage

Adressage IP, sous-réseaux et protocoles de routage — comment les paquets trouvent leur chemin.


Le rôle de la couche réseau

La couche liaison connecte des machines sur un même segment physique. La couche réseau va plus loin : elle connecte des machines à travers des segments différents, sur des réseaux hétérogènes, à l'échelle de la planète.

Deux fonctions essentielles :

  1. L'adressage logique : attribuer des identifiants indépendants du matériel (adresses IP) pour localiser les machines dans la topologie
  2. Le routage : déterminer le chemin optimal entre source et destination à travers un graphe de routeurs interconnectés

IP (Internet Protocol) est le protocole de couche 3 qui a gagne. Tout le reste — IPX, AppleTalk, DECnet — a disparu. Le succès d'IP repose sur sa simplicité : un en-tête minimal, aucune garantie de livraison, aucun contrôle de flux. La fiabilité est déléguée aux couches supérieures (TCP). Ce choix architectural, souvent appelé le "end-to-end principle", est l'une des décisions de conception les plus conséquentes de l'histoire de l'informatique.


IPv4

L'en-tête IPv4

L'en-tête IPv4 fait 20 octets minimum :

Champ Taille Rôle
Version 4 bits Toujours 4
IHL 4 bits Longueur de l'en-tête (en mots de 32 bits)
ToS / DSCP 8 bits Type of Service / DiffServ (QoS)
Total Length 16 bits Taille totale du paquet (max 65535 octets)
Identification 16 bits Identification pour le reassemblage
Flags + Offset 16 bits Contrôle de fragmentation
TTL 8 bits Time To Live — décrémente à chaque routeur
Protocol 8 bits Protocole de couche supérieure (6=TCP, 17=UDP)
Header Checksum 16 bits Vérification d'intégrité de l'en-tête
Source IP 32 bits Adresse de l'expéditeur
Destination IP 32 bits Adresse du destinataire

Le champ TTL empêche les paquets de circuler indéfiniment en cas de boucle de routage. Chaque routeur décrémente le TTL de 1. Quand il atteint 0, le paquet est détruit et un message ICMP "Time Exceeded" est renvoyé à l'expéditeur. C'est le mécanisme exploite par traceroute.

Adressage et sous-réseaux

Une adresse IPv4 est un nombre de 32 bits, note en notation décimale pointée : 192.168.1.100. L'espace d'adressage total est de 2^32 = 4 294 967 296 adresses — largement insuffisant pour le monde actuel.

Le CIDR (Classless Inter-Domain Routing) a remplacé les anciennes classes (A, B, C) en 1993. Un préfixe CIDR comme 192.168.1.0/24 signifie que les 24 premiers bits sont le réseau et les 8 derniers identifient l'hôte. Le masque /24 correspond à 256 adresses (254 utilisables — la première est l'adresse réseau, la dernière est le broadcast).

Notation CIDR Masque Nombre d'hôtes Usage typique
/32 255.255.255.255 1 Adresse unique (loopback)
/28 255.255.255.240 14 Petit sous-réseau serveurs
/24 255.255.255.0 254 LAN typique
/20 255.255.240.0 4094 Sous-réseau cloud VPC
/16 255.255.0.0 65534 Grand réseau d'entreprise
/8 255.0.0.0 16 777 214 Plage privee 10.0.0.0

Les plages privées (RFC 1918) ne sont pas routées sur Internet :

  • 10.0.0.0/8 — grand espace pour les entreprises et le cloud
  • 172.16.0.0/12 — souvent utilisé pour les réseaux internes
  • 192.168.0.0/16 — réseaux domestiques et petites entreprises

Le NAT (Network Address Translation) permet à des milliers de machines avec des adresses privées de partager une seule adresse publique. C'est ce qui a permis à IPv4 de survivre bien au-delà de ses limites théoriques, mais au prix de la complexité et de la perte du principe de connectivité de bout en bout.


IPv6

IPv6 utilise des adresses de 128 bits : 2001:0db8:85a3:0000:0000:8a2e:0370:7334. L'espace d'adressage est de 2^128 — assez pour attribuer des milliards d'adresses à chaque grain de sable sur Terre.

Les avantages d'IPv6 vont au-delà de la taille d'adresse :

  • En-tête simplifie : 40 octets fixes, pas de checksum (déjà géré par la couche liaison et la couche transport), pas de fragmentation par les routeurs
  • Autoconfiguration : SLAAC (Stateless Address Autoconfiguration) permet aux machines de se configurer sans DHCP
  • Pas de NAT : chaque machine a une adresse unique globale, ce qui restaure la connectivité de bout en bout
  • Extension headers : les options sont dans des en-têtes chaînes, pas dans l'en-tête principal — les routeurs ne les examinent que si nécessaire

Note

Après plus de 25 ans, IPv6 n'a toujours pas complètement remplacé IPv4. Les grands cloud providers supportent le dual-stack. En 2025, environ 45% du trafic Internet mondial utilisé IPv6. Pour un architecte, il faut concevoir pour le dual-stack — ne pas supposer que les clients sont en IPv4 ou en IPv6.


Routage : les fondamentaux

Un routeur est une machine qui connecte des réseaux différents et transmet les paquets entre eux. Il maintient une table de routage qui associe des préfixes de destination a des interfaces de sortie et des next-hop.

Destination        Next-hop        Interface    Metrique
10.0.0.0/8         directement     eth0         0
172.16.0.0/16      10.0.0.1        eth0         10
0.0.0.0/0          10.0.0.254      eth0         100     (default route)

Le routeur applique la règle du longest prefix match : pour une adresse de destination donnée, il choisit la route avec le préfixe le plus long (le plus spécifique). Une route vers 172.16.1.0/24 sera préférée a une route vers 172.16.0.0/16 pour une destination 172.16.1.50.

Routage statique vs dynamique

Le routage statique consiste à configurer manuellement les routes. C'est simple, prévisible, et adapté aux petits réseaux ou aux cas particuliers (default route, route vers un VPN). Mais il ne s'adapté pas aux changements de topologie — si un lien tombe, le trafic continue à être envoye dans le vide.

Le routage dynamique utilise des protocoles pour que les routeurs échangent des informations sur la topologie et calculent automatiquement les meilleures routes. Quand un lien tombe, les routeurs convergent vers une nouvelle topologie en quelques secondes (ou millisecondes avec les protocoles modernes).

Les protocoles de routage dynamique se classent en deux familles :

Famille Algorithme Connaissance Exemples Usage
Vecteur distance Bellman-Ford Voisins directs RIP, EIGRP Petits réseaux
État de lien Dijkstra Topologie complète OSPF, IS-IS Entreprise
Vecteur de chemin Path sélection Chemins d'AS BGP Internet

Les protocoles a vecteur de distance (distance-vector) sont simples mais convergent lentement — le problème du "count to infinity" peut prendre des minutes a se résoudre. Les protocoles a état de lien (link-state) convergent rapidement car chaque routeur a une vision complète du réseau, mais ils consomment plus de mémoire et de CPU.


OSPF — le protocole IGP de référence

OSPF (Open Shortest Path First) est un protocole de routage interne (IGP — Interior Gateway Protocol) utilise au sein d'une organisation. John Moy, qui en est l'auteur principal, a écrit un ouvrage de référence (OSPF: Anatomy of an Internet Routing Protocol) qui décrit chaque mécanisme en détail.

Principes

OSPF est un protocole a état de lien (link-state). Chaque routeur connait la topologie complète du réseau et calcule localement les meilleurs chemins avec l'algorithme de Dijkstra (SPF — Shortest Path First).

Le fonctionnement en trois phases :

  1. Découverte des voisins : les routeurs échangent des paquets Hello pour découvrir leurs voisins directs
  2. Synchronisation de la base : les routeurs échangent des LSA (Link-State Advertisements) pour construire une image identique de la topologie
  3. Calcul des routes : chaque routeur exécuté l'algorithme SPF sur sa base topologique pour calculer l'arbre des plus courts chemins

Les aires OSPF

Pour limiter la taille de la base topologique et le coût du calcul SPF, OSPF découpé le réseau en aires (areas). Toutes les aires sont connectees à l'aire 0 (backbone).

graph TD
    subgraph "Aire 0 — Backbone"
        ABR1["ABR 1"]
        ABR2["ABR 2"]
        R0["Routeur backbone"]
        ABR1 --- R0
        R0 --- ABR2
    end
    subgraph "Aire 1 — Bureaux"
        R1["Routeur 1"]
        R2["Routeur 2"]
        R1 --- ABR1
        R2 --- ABR1
    end
    subgraph "Aire 2 — Datacenter"
        R3["Routeur 3"]
        R4["Routeur 4"]
        R3 --- ABR2
        R4 --- ABR2
    end

Les ABR (Area Border Routers) connectent les aires entre elles. Ils resument les routes de leur aire vers l'aire 0, ce qui réduit la quantite d'information echangee.

Types de LSA

Type Nom Portee Émetteur
1 Router LSA Intra-aire Chaque routeur
2 Network LSA Intra-aire DR sur multi-access
3 Summary LSA Inter-aire ABR
4 ASBR Summary LSA Inter-aire ABR
5 AS External LSA Tout le domaine ASBR

Convergence

Quand un lien tombe, le routeur adjacent détecté la panne (via les Hellos ou la perte de la couche physique), généré un nouveau LSA, et l'inonde dans son aire. Tous les routeurs de l'aire recalculent leurs routes. La convergence OSPF typique est de 1 a 5 secondes avec les parametres par défaut, et peut descendre sous la seconde avec BFD (Bidirectional Forwarding Détection).


BGP — le routage inter-domaines

BGP (Border Gateway Protocol) est le protocole qui fait fonctionner Internet. Il connecte les systèmes autonomes (AS — Autonomous Systems) — les réseaux indépendants gérés par des organisations différentes (FAI, entreprises, clouds).

Principes

BGP est un protocole a vecteur de chemins (path-vector). Contrairement a OSPF qui connait la topologie complète, BGP ne connait que les chemins (sequences d'AS) vers les destinations. Chaque AS annonce ses préfixes IP et les chemins pour les atteindre.

La sélection de route BGP utilise de nombreux critères, dans cet ordre :

  1. Local Préférence : préférence locale (politique de l'opérateur)
  2. AS Path Length : nombre d'AS traverses (le plus court est préféré)
  3. Origin : type d'origine (IGP > EGP > incomplète)
  4. MED : Multi-Exit Discriminator (préférence du voisin)
  5. eBGP > iBGP : les routes apprises d'un voisin externe sont préférées
  6. IGP metric : coût vers le next-hop le plus proche

Peering et transit

Les AS se connectent entre eux selon deux modèles :

  • Peering : deux AS de taille comparable échangent leur trafic gratuitement, souvent dans un IXP (Internet Exchange Point)
  • Transit : un AS paie un fournisseur plus grand pour accéder au reste d'Internet

Warning

BGP est un protocole base sur la confiance. Un AS qui annonce des préfixes qu'il ne possédé pas peut detourner du trafic — c'est le BGP hijacking. En 2018, un petit FAI russe a accidentellement reroute du trafic Google pendant une heure. RPKI (Resource Public Key Infrastructure) est la solution en cours de déploiement, mais l'adoption reste partielle.


OSPF vs BGP

Critère OSPF BGP
Portee Intra-organisation (IGP) Inter-organisations (EGP)
Algorithme Link-state (Dijkstra) Path-vector
Connaissance Topologie complète de l'aire Chemins d'AS
Métrique Coût (bande passante) Politiques complexes
Convergence 1-5 secondes Minutes
Échelle Centaines de routeurs 900 000+ préfixes (Internet)
Transport IP directement (protocole 89) TCP port 179
Objectif Plus court chemin Politique de routage

ICMP et le diagnostic réseau

ICMP (Internet Control Message Protocol) est le protocole de signalisation de la couche réseau. Les messages ICMP les plus utiles :

  • Echo Request / Echo Reply : utilisés par ping pour tester la connectivité
  • Destination Unreachable : le paquet ne peut pas être livre (réseau, hôte, port inaccessible)
  • Time Exceeded : le TTL a atteint 0 — utilisé par traceroute
  • Redirect : un routeur informe l'émetteur d'un meilleur chemin

traceroute envoie des paquets avec un TTL incrementalement croissant (1, 2, 3, ...). Le premier routeur sur le chemin détruit le paquet avec TTL=1 et renvoie un ICMP Time Exceeded. Le deuxieme routeur fait de même avec TTL=2. En collectant les réponses, on reconstruit le chemin complet.

Tip

mtr (My TraceRoute) combine ping et traceroute en continu. C'est l'outil de diagnostic réseau le plus utile pour identifier ou la perte de paquets ou la latence se produit. En production, quand un service est lent, mtr vers le serveur distant révélé souvent un problème sur un saut intermédiaire que ni l'équipe applicative ni l'équipe infra locale n'auraient identifié seules.


Impact pour l'architecte

Choix des sous-réseaux : dans un VPC cloud, le dimensionnement des sous-réseaux (CIDR) est une décision architecturale critique et difficile à changer après coup. Un /24 (254 adresses) semble genereux, mais un cluster Kubernetes peut épuiser ces adresses en quelques heures. Planifier large des le départ.

Routage et latence : chaque saut de routeur ajoute de la latence. Le chemin optimal en termes de sauts n'est pas toujours le plus rapide — un chemin via une fibre transatlantique directe peut être plus rapide qu'un chemin passant par six routeurs sur terre. Les CDN et le BGP anycast optimisent la latence en rapprochant le point d'entree de l'utilisateur.

Convergence et disponibilité : la convergence OSPF ou BGP n'est pas instantanée. Pendant la reconvergence, le trafic peut être perdu. Les applications doivent tolérer ces micro-coupures avec des retries et des timeouts adaptés.

IPv6 : ne pas le supporter est de plus en plus coûteux. Les opérateurs mobiles en Asie et en Amerique utilisent IPv6 nativement. Un service qui ne supporte qu'IPv4 ajoute de la latence via les traducteurs NAT64.

Anycast : BGP anycast annonce la même adresse IP depuis plusieurs emplacements géographiques. Le routage BGP dirige naturellement chaque client vers l'instance la plus proche. C'est le mécanisme utilisé par les DNS racine, les CDN (Cloudflare, Fastly) et les services globaux comme Google 8.8.8.8. L'avantage : aucune configuration côté client, failover automatique en cas de panne d'un site. La contrainte : seuls les protocoles sans état (DNS sur UDP) ou avec reprise de connexion (QUIC) fonctionnent bien en anycast — une bascule BGP interrompt les connexions TCP existantes.


Chapitre suivant : Couche transport — TCP, UDP, QUIC et les mécanismes de fiabilité de bout en bout.