Le routage: un gros morceau du programme de la certification Cisco CCNA… et des autres programmes de certification d’ailleurs! Le routage, c’est une fonction essentielle du routeur. Il tient son nom de là d’ailleurs… Mais, ce qui peut surprendre au premier abord, c’est lorsque l’on introduit le concept du routage effectué par un système terminal (hôte). Comment? Le routage n’est pas du seul ressort des routeurs ? Et, non !
Le fonctionnement de la pile IP des systèmes terminaux nécessite d’implémenter une fonction de routage simplifiée. Ce qui en fait un sujet idéal pour débuter une série d’articles sur le thème du routage IP !
Commutation Ethernet – Rappels
Plusieurs articles de ce blog ont traité de la commutation Etherne. Nous avons alors vu comment un commutateur Ethernet traite la trame Ethernet (aussi appelée adresse MAC ou adresse physique) pour définir le port sur lequel la trame doit être envoyée. Le choix de ce port se fait sur la recherche de l’adresse MAC destination dans la table d’adresses MAC (ou CAM Table pour Content Addressable Memory).
Cette table associe, pour chaque VLAN, une adresse MAC et le port du commutateur.
Routage IP, Commutation Ethernet: un concept similaire… mais pas pareil 😉
Le routage IP se fait sur le même principe: c’est à dire que le système va consulter une table qui va indiquer vers où transmettre le paquet. Mais, cette fois, le choix se fait sur la base de l’adresse IP destination (on parle également d’adresse logique) donc sur le traitement du paquet IP (couche « au dessus » de la couche Ethernet). Cette fonction de routage est effectuée par un routeur même si désormais un commutateur Ethernet peut intégrer cette fonction de routage.
C’est la raison pour laquelle la représentation physique d’une architecture réseau peut être très différente de la représentation logique: un système peut être physiquement raccordé à un switch mais si celui -ci intègre des fonctions de routage, on pourra représenter séparément un réseau de niveau 2 et un routeur (cf. schéma ci-dessous).
La table de routage IP
Dans tous les cas, il faut que les routeurs (ou plus précisément donc, les fonctions de routage) disposent d’une table avec les différentes addresses destination possibles et la destination effective (physique: « vers quelle interface dois-je envoyer le paquet? »). La création et le maintien de cette table, appelée table de routage, sont gérés par l’intermédiaire d’un protocole de routage (RIP, EIGRP, OSPF ou autre).
Routage IP dans les systèmes terminaux
Mais, comme indiqué en introduction de cet article, le routage n’est pas une fonction uniquement réalisée par un routeur: les terminaux aussi assurent le routage des paquets IP qu’ils émettent. Et cela, quelque soit le type de terminal: un PC, une imprimante, un téléphone IP, etc. Par contre, la fonction de routage implémentée est simplifiée puisque le terminal n’a que deux options possibles:
- si la destination IP est sur le même sous-réseau que le terminal, alors le paquet est directement transmis au terminal (c’est à dire que la trame Ethernet est crée afin d’envoyer le paquet IP directement vers le destinataire)
- si la destination est sur un autre sous-réseau que la source, alors le paquet est envoyé à la passerelle par défaut du terminal pour que celle-ci assure la transmission du paquet vers la destination (la trame Ethernet est envoyée vers la passerelle par défaut et non vers le destinataire final).
Bien qu’il soit techniquement possible d’activer et de configurer un protocole de routage directement sur le terminal, c’est rarement fait.
Source et Destination sur le même sous-réseau?
Le masque de sous-réseau IP permet de vérifier si les deux adresses source et destination sont sur le même sous-réseau. Une opération logique (appelée ANDing en anglais, et illustrée ci-dessous) permet de vérifier le sous-réseau d’une adresse IP.
Dans l’exemple ci-dessous, la machine 192.168.10.1 est configurée avec un masque de sous-réseau en 255.255.255.0 (aussi noté /24). En appliquant un ET logique pour chaque bit de l’adresse source avec le masque de sous-réseau, elle identifie le réseau 192.168.10.0.
Cette opération sera effectuée avec l’adresse IP destination:
- si les deux réseaux sont identiques (192.168.10.0), le routage peut être direct.
- si le réseau obtenu avec l’adresse IP destination est différent de 192.168.10.0, alors le routage peut être appelé indirect (c’est à dire que les paquets sont confiés à la passerelle par défaut).
Dans tous les cas, après que la fonction de routage ait été assurée par le terminal, il faut créer une trame qui sera destinée soit au destinataire final, soit à la passerelle par défaut. Ici, quand je parle du destinataire de la trame, c’est implicitement de l’adresse MAC dont je parle. Il faut donc remplir le champ Adresse MAC destination de la trame: c’est le rôle de la table et du protocole ARP.
Ce protocole est décrit en détail dans un autre article, disponible ici. Que cela ne vous empêche pas de me laisser vos commentaires ou vos questions à cet article !
Laisser un commentaire