Les secrets du routage IP - Article 2Dans l’article précédent (S1E1 – à relire ici), nous avons vu que la fonction de routage repose sur la table de routage (parfois appelée RIB, pour Route Information Base) et nous avons vu 3 méthodes susceptibles d’être utilisées pour remplir cette table: protocole de routage dynamique, entrées statiques définies par configuration ou encore les informations implicites liées aux interfaces directement connectées à un réseau.

N’hésitez pas à relire (ou à lire) cet article pour vous replacer dans le contexte.

 

Aujourd’hui, nous allons rentrer dans le détail du processus de routage. On sait que, pour chaque paquet IP, le routeur recherche l’adresse IP destination dans sa table pour trouver l’interface de sortie associée. Cependant, j’avais déjà indiqué que la table de routage ne liste pas toutes les valeurs d’adresses IP possibles. Et j’avais simplifié en écrivant que les entrées correspondait aux sous-réseaux IP puisque le comportement était le même pour toutes les adresses du sous-réseau. 

Je m’autorise cette simplification pour des besoins pédagogiques. Maintenant, soyons plus précis. Si l’interface ethernet0 de mon routeur permet d’atteindre tous les réseaux de la plage 192.168.0.0/24 à 192.168.255.0/24, il faudrait donc 256 entrées dans la table de routage:

192.168.0.0 /24    via ethernet0

192.168.1.0/24     via ethernet0

192.168.2.0/24     via ethernet0

…

192.168.254.0/24 via ethernet0

192.168.255.0/24 via ethernet0

 

Il est donc possible (et même préférable) de créer une seule entrée qui résume cela comme suit:

192.168.0.0 /16    via ethernet0

 

Notez la nouvelle valeur du masque de sous -réseau (/16 au lieu de /24). C’est exactement comme cela que les tables de routage dans le coeur de l’Internet sont optimisées: tous les réseaux ne sont pas explicitement listés mais on optimise en faisant des « routes résumées ». Cela ne change rien au résultat en termes de routage mais cela permet d’optimiser:

  • l’espace mémoire du routeur (chaque routeur consomme effectivement des ressources)
  • le temps de parcours de la table de routage (le temps de recherche dans la table est dépendant de la taille de la table)

 

Par contre, comme vu dans le précédent article, on peut avoir différentes entrées dans la table de routage à priori contradictoire:

192.168.0.0 /16    via ethernet0

192.168.2.0/24     via ethernet1

 

Comment router dans ce cas, le paquet à destination de 192.168.2.27 ? vers Ethernet 0 ou vers Ethernet 1 ?

Pour répondre à cette question, vous n’avez pas à ce stade assez d’information. Je vais à présent vous donner le processus interne du routeur pour répondre à toutes les questions de ce type! Si vous préparez la certification CCNA (mais c’est aussi vrai pour les autres niveaux, CCNP et même CCIE), ce qui suit est fondamental.

 

Pour la recherche de la meilleure entrées dans la table de routage, la première étape effectuée par le routeur consiste à identifier l’entrée la plus précise (longest-match) qui correspond à l’adresse IP destination du paquet à router. Donc, dans l’exemple précédent, la route 192.168.2.0/24 est plus précise que 192.168.0.0/16 pour router le paquet vers 192.168.2.27. Cette entrée est donc choisie et le paquet sera donc routé vers l’interface ethernet1.

 

Par contre, attention aux pièges qui peuvent être posés devant vous lors des examens de certification. Si l’on veut router le paquet à destination de 192.168.1.2, alors l’entrée 192.168.2.0/24 ne correspond plus. Le routage va donc se faire sur la seule entrée qui correspond à l’adresse IP destination du paquet, c’est à dire sur l’entrée 192.168.0.0/16 et le paquet sera routé vers ethernet0.

En suivant cette règle, on peut donc comprendre deux cas extrêmes.

  1. La route la plus précise que l’on puisse définir correspond à l’adresse de la machine elle même, notée avec un masque sur 32 bits (ou 255.255.255.255). Par exemple:
    192.168.2.27/32    via ethernet1 

    Cette route est appelée une route vers l’hôte (Host Route).

  2. La route la moins précise (donc, la plus générale) que l’on puisse définir correspond à une adresse avec un masque sur 0 bits (ou 0.0.0.0). C’est ce que l’on appelle la route par défaut (c’est la moins précise donc utilisée en dernier ressort si la table de routage n’a pas d’entrée plus précise). Ainsi, la route:
    0.0.0.0/0    via ethernet2

    indique que par défaut le trafic est à envoyé vers l’interface ethernet2 du routeur.

 

Nous allons finir cet article par cela. Il faut donc garder en tête que l’entrée préférée est toujours l’entrée la plus précise (longest-match) présente dans la table de routage. Et cela indépendamment de la façon dont l’information a été placée dans la table de routage.  

Le prochain article de cette série aborde le cas où l’on a plusieurs entrées dans la table de routage qui répondent à cette règle. Dans cet article, nous discutons de deux nouveaux termes: la métrique et la distance administrative. Mais, attention, la métrique ou la distance administrative ne sont utilisées que pour départager deux entrées dont le niveau de précision est identique ! Cet article est désormais en ligne ici: « Routage IP: le traitement des paquets IP par un routeur (S1E3) » !

En attendant, n’hésitez pas à commenter ou poser vos questions sur le sujet du jour: est-ce clair pour vous désormais ?