Table de routage – Comment ça marche ?

Next hop, distance administrative, métrique … Toutes ces informations se retrouvent dans une table de routage. Mais comment les interpréter ? …

Rappel:

Le routage dans un réseau informatique fonctionne selon le principe du « Next Hop » (le prochain saut). Comparons celà à un automobiliste (le paquet qui est envoyé) qui demande son chemin à un piéton (le routeur)…

Automobiliste: « Comment puis-je me rendre à la Rue du paquet? »
Piéton: « Prenez la rue à droite, au carrefour suivant, demandez à nouveau votre chemin. »

Bien sur, dans le cas du réseau, c’est le routeur qui lit l’adresse de destination dans le paquet, qui cherche ensuite si il a une route vers cette adresse et ensuite fait suivre le paquet.

Structure générale d’une table de routage et son fonctionnement

Afin de pouvoir router un paquet, il faut que la table de routage contienne une série d’informations:

  • L’adresse du réseau de destination et son masque.
  • L’adresse du prochain saut pour atteindre ce réseau. (Le Next Hop … la prochaine intersection… le prochain routeur).
  • L’adresse de sortie (adresse de l’interface par laquelle le routeur doit envoyer le paquet).

Jusque là rien de compliqué… si un routeur reçoit un paquet il procède comme suit:

  • Le routeur ouvre le paquet et regarde l’adresse IP de destination.
  • Le routeur compare l’adresse de destination et sa table de routage pour voir si une de ses entrées correspond.
  • Si une route est trouvée, il envoit le paquet sur l’interface correspondant à l’adresse de sortie indiquée dans sa table.
  • Si le routeur n’a pas de route pour la destination … il détruit le paquet !!!

Maintenant que faire si le routeur connait plusieurs routes vers la destination ? Afin de solutionner ce problème, il faut ajouter deux éléments à la table de routage:

La Distance Administrative: Valeur numérique propre à l’origine de la route (route statique, route connectée, apprise via RIP, OSPF, …). Plus cette valeur est petite, meilleure est la route.

La métrique: Quantifie la qualité de la route. Plus la métrique est petite, meilleure est la route. Elle est soit attribuée manuellement soit calculée par le protocole de routage utilisé.

Tout ça c’est bien beau, mais cela n’explique toujours pas comment choisir une route quand le routeur en connait plusieurs qui correspondent.

Choisir la meilleure route

Tout d’abord, le routeur choisira toujours la route la plus précise, celle qui a le masque de sous-réseau le plus grand. Pourquoi prendre une direction « générale » quand on connait la route exacte ?

Ensuite, si plusieurs routes ont le même degré de précision (même adresse réseau et même masque), le routeur choisira celle qui a la plus petite distance administrative.

Enfin, si il a toujours le choix, c’est la route ayant la plus petite métrique qui l’emportera.

Remarque: Il est impossible de comparer des métriques d’origines différentes. Par exemple une métrique OSPF n’est pas calculée de la même manière qu’une métrique EIGRP.

Les distances administratives

Voici un récapitulatif des distance administratives courantes (valeurs par défaut):

Route connectée:          0
Route statique:           1
EIGRP:                   90
OSPF:                   110
RIPv2:                  120
Externe EIGRP:          170

Table de routage des routeurs Cisco

Voici un exemple d’une table de routage simple sur un routeur Cisco

R1>sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
 * - candidate default, U - per-user static route, o - ODR
 P - periodic downloaded static route

Gateway of last resort is 10.0.0.1 to network 0.0.0.0

 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       10.0.0.0/30 is directly connected, Serial0/0
O       10.0.10.0/24 [110/782] via 10.0.0.1, 00:53:35, Serial0/0
 192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, FastEthernet0/0
 192.168.1.0/24 is variably subnetted, 3 subnets, 2 masks
C       192.168.1.0/28 is directly connected, FastEthernet0/0.10
C       192.168.1.16/28 is directly connected, FastEthernet0/0.20
C       192.168.1.32/29 is directly connected, FastEthernet0/0.30
O*E2 0.0.0.0/0 [110/1] via 10.0.0.1, 00:50:51, Serial0/0
R1>

Regardons une route de plus près afin d’en détailler le contenu…

O       10.0.10.0/24 [110/782] via 10.0.0.1, 00:53:35, Serial0/0

O signifie que la route a été apprise via OSPF (voir liste des abréviation en début de table).
10.0.10.0/24 est l’adresse du réseau de destination et son masque.
110 est la distance administrative (ici celle d’une route apprise par OSPF).
782 est la métrique de la route calculée par OSPF.
10.0.0.1 est l’adresse du prochain saut.
Serial0/0 est l’interface que le routeur utilisera pour envoyer le paquet.

Dans la table de routage précédemment listée, une route est très particulière:

O*E2 0.0.0.0/0 [110/1] via 10.0.0.1, 00:50:51, Serial0/0

Il s’agit d’une route par défaut. C’est à dire qu’un paquet ne correspondant à aucune route de la table sera traité par celle-ci. Une route par défaut est reconnaissable par l’astérisque (*) en début de ligne.

On retrouve d’ailleurs cette information au début du « show ip route »:

Gateway of last resort is 10.0.0.1 to network 0.0.0.0

Exemple pratique

Supposons qu’un routeur dispose de la table de routage suivante:

C       10.0.0.0/30 is directly connected, Serial0/0
C       10.0.0.4/30 is directly connected, Serial0/1
C    10.0.0.8/30 is directly connected, FastEthernet0/1
D       10.0.10.0/24 [90/2145648] via 10.0.0.5, 00:15:29, Serial0/1
O       10.0.10.0/24 [110/782] via 10.0.0.1, 00:53:35, Serial0/0
R       10.0.10.32/27 [120/2] via 10.0.0.9, 00:00:12, FastEthernet0/1
S*      0.0.0.0/0 [1/0] via 10.0.0.2

Ce même routeur reçoit un paquet à desintation de 10.0.10.49 … quelle route va-t-il choisir ?

Parmi les entrées de la table 4 peuvent correspondre à la destination: 10.0.10.0/24 (2x), 10.0.10.32/27 et 0.0.0.0/0.

Dans le cas présent, ce sera l’entrée pour 10.0.10.32/27 qui sera retenue parce qu’elle est la plus précise (10.0.10.32/27 est un sous-réseau de 10.0.10.0/24).

Prenons maintenant le cas d’un paquet à destination de 10.0.10.19. Trois entrées sont éligibles: 10.0.10.0/24 [90/2145648], 10.0.10.0/24 [110/782] et 0.0.0.0/0 [1/0].

On peut éliminer directement 0.0.0.0/0 vu que les deux autres sont plus précises. Les deux routes restantes indiquent la direxction du même réseau… il faut donc maintenant comparer les distances administratives … la plus faible l’emportera … il s’agit donc ici de 10.0.10.0/24 [90/2145648].

Voilà pour les tables de routage … dans les grandes lignes.

4 Comments on “Table de routage – Comment ça marche ?

    • Très bel article. Merci pour toutes ces informations intéressantes.

      Vous dites « Tout d’abord, le routeur choisira toujours la route la plus précise, celle qui a le masque de sous-réseau le plus grand. Pourquoi prendre une direction « générale » quand on connait la route exacte ? »

      N’est-ce pas plutôt « le masque de sous-réseau le plus petit » afin de définir un ensemble plus restreint d’adresses IP ?

      • D’un point de vue valeur numérique, un /24 (255.255.255.0) est plus grand qu’un /22 (255.255.252.0). Donc un masque plus grand est une direction plus précise puisqu’il indique une plage d’adresse plus petite.