Ce qui fait aujourd’hui qu’on arrive Ă  transmettre des paquets de donnĂ©es d’un rĂ©seau A vers un rĂ©seau B c’est ce qu’on appelle le routage IP.

Le routage s’appuie sur des protocoles pour mener à bien sa mission. Mais concrùtement le routage IP, ça fonctionne comment ?

Et bien c’est ce qu’on va voir grñce à ce 1er article qui va mettre l’accent sur le routage statique
 bb


Initiation au routage IP et mise en place du routage statique

Histoire de bien commencer cet article, avant de parler de routage, on va parler de
 routeur ! (Oui parce que moi j’aime pas faire les choses dans l’ordre ! blum )

Pour donner une dĂ©finition gĂ©nĂ©rale de ce qu’est un routeur on pourrait dire que c’est un Ă©quipement intelligent de rĂ©seau (Ă©quivalent Ă  un ordinateur) dĂ©diĂ© Ă  l’envoi de paquets Ă  travers un rĂ©seau de donnĂ©es.

Le rĂŽle d’un routeur est d’interconnecter les rĂ©seaux entre eux en sĂ©lectionnant le meilleur chemin, la meilleure route Ă  suivre, pour qu’un paquet arrive Ă  sa destination finale.

C’est un peu comme une intersection routiĂšre avec des panneaux signalĂ©tiques qui indiquent le chemin vers plusieurs directions !

Et pour que les routeurs puissent faire correctement leur travail, Ă  savoir donc transfĂ©rer des paquets d’un rĂ©seau Ă  un autre, il faut leur indiquer une mĂ©thode pour connaĂźtre les chemins vers des destinations diverses, mĂ©thode qu’ils vont consigner dans ce qu’on appelle leur « table de routage ». La table de routage est un peu la base de donnĂ©es du routeur contenant les chemins vers diffĂ©rents rĂ©seaux.

Et c’est lĂ  qu’intervient le routage IP ! On parle d’un mĂ©canisme grĂące auquel le meilleur chemin sera sĂ©lectionnĂ© pour acheminer des donnĂ©es qu’on appelle techniquement Ă  ce niveau des « paquets » ou des « datagrammes ».

Info + : Le routage IP intervient au niveau de la couche 3 RĂ©seau du modĂšle OSI (couche Internet du modĂšle TCP/IP)

Les datagrammes sont en rĂ©alitĂ©s des donnĂ©es « encapsulĂ©es », c’est-Ă -dire auxquelles ont Ă©tĂ© ajoutĂ©es des « entĂȘtes IP » contenants entre autres des informations permettant d’assurer le routage.

Un entĂȘte IP fait 20 octets, soit 160 bits (1 octet = 8 bits). Il est reprĂ©sentĂ© graphiquement dans un tableau comprenant 5 lignes de 32 bits chacune (ce qui nous donne 5 lignes x 32 bits = 160 bits / 8 bits = 20 octets, le compte est bon !).

Voici l’illustration la plus cĂ©lĂšbre d’un entĂȘte IP reprĂ©sentĂ© avec tous ses champs (hors options) :

Dans notre contexte, les champs qui vont nous intéresser seront les suivants :

  • DurĂ©e de vie : aussi appelĂ© le Time To Live (TTL) qui permet de dĂ©finir le nombre maximal de routeur que le paquet pourra traverser avant d’ĂȘtre abandonnĂ©. Ce champ comprend un nombre qui sera dĂ©crĂ©mentĂ© Ă  chaque fois que le paquet passera par un routeur.
  • Adresse IP source : permettant de connaĂźtre l’adresse IP de l’émetteur du paquet pour Ă©ventuellement lui envoyer une rĂ©ponse
  • Adresse IP destination : permettant de connaĂźtre l’adresse IP du destinataire (et par consĂ©quent son rĂ©seau) afin de lui transmettre le paquet

Info + : Je ne rentrerai pas dans les dĂ©tails des autres champs de l’entĂȘte IP et je vous conseille une nouvelle fois de vous tourner vers l’excellent site FrameIP pour plus d’infos : EntĂȘte IP. Vous dĂ©couvrirez qu’un entĂȘte IP pour contenir 4 octets supplĂ©mentaires dans le cas d’utilisation d’options spĂ©cifiques.

Avec ces informations, voyons concrùtement ce qu’il se passe quand un paquet arrive sur un routeur :

  1. Le routeur va lire l’entĂȘte IP du paquet pour identifier sa destination
  2. Le routeur va vérifier dans sa table de routage si il a une indication sur le chemin à suivre pour aller sur le réseau de destination.
  3. Le routeur peut alors ensuite :
    1. TransfĂ©rer le paquet directement au destinataire si il se trouve dans le mĂȘme rĂ©seau que lui
    2. Transférer le paquet à un autre routeur sachant comment arriver au destinataire
    3. TransfĂ©rer le paquet Ă  un autre routeur dĂ©fini comme Ă©tant le routeur par dĂ©faut auquel effectuĂ© les transferts quand aucun chemin prĂ©cis n’est indiquĂ©
    4. Abandonner le paquet si il n’a aucune indication prĂ©cise

Et parce qu’il n’y a rien de plus parlant qu’une bonne dĂ©mo, je vous propose de rĂ©aliser la mise en pratique du routage statique (c’est-Ă -dire manuel) sur une infrastructure trĂšs simple.

Info ++ : Cet article ne traitera pas du routage dynamique et de ses protocoles associĂ©s. Voir l’article suivant traitant du sujet : Routage IP Dynamique

DĂ©buter par le routage statique est la meilleure solution pour bien visualiser la façon dont le routage s’articule.

Voici le schéma de mon infrastructure :

Comme vous le voyez, on a un total de 6 réseaux différents que voici :

Nous avons trois rĂ©seaux comprenant chacun un PC et 3 rĂ©seaux de routeurs car, oui, entre 2 routeurs, c’est un rĂ©seau Ă©galement (si tous les Ă©quipements ont des adresses IP dans le mĂȘme rĂ©seau, le routage devient inutile puisque nous n’avons plus besoin de changer de rĂ©seau, ce qui est justement, l’intĂ©rĂȘt du routage
).

Le but ici sera que les PCs qui sont sur des réseaux différents puissent communiquer entre eux (par de simple tests de ping). Il faudra donc indiquer aux routeurs les chemins sur lesquels ils devront envoyer les paquets de données pour arriver à bonne destination !

Plus clairement, il faudra leur indiquer la route à suivre pour aller d’un point A, vers un point B.

 

Petite précision :

Pour rĂ©aliser cette topologie sous Cisco Packet Tracer, j’ai dĂ» ajouter des ports rĂ©seaux supplĂ©mentaires aux routeurs qui par dĂ©faut n’en possĂšde que deux.

J’ai choisi de mettre des ports de switch (c’est uniquement histoire d’introduire le concept de VLAN
) mais vous pouvez tout à fait jouter un seul port Ethernet et lui attribuer directement une adresse IP !

Comme ce sont des ports de switch, on ne peut pas attribuer d’adresse IP Ă  ces interfaces. J’ai donc attribuĂ© une adresse IP au VLAN numĂ©ro 1 dans lequel toute les interfaces sont par dĂ©faut.

Un VLAN, pour rester trĂšs simple, c’est un rĂ©seau local virtuel (virtual LAN).

Dans ce rĂ©seau virtuel on inclut des ports du switch qui feront donc parti dudit rĂ©seau. Tous les Ă©quipements branchĂ©s sur un port appartenant par exemple au VLAN 10 devront possĂ©der une adresse IP du mĂȘme rĂ©seau que le VLAN 10 pour communiquer dans son propre rĂ©seau.

C’est exactement comme un port de routeur tout Ă  fait normal, « physique », sauf qu’on est sur du logique, du « virtuel ». L’adresse IP du VLAN 10 deviendra donc la passerelle de sortie du rĂ©seau.

Dans l’illustration prĂ©cĂ©dente, nous avons un switch sur lequel on a sĂ©parĂ© les ports en 2 VLANs distincts.

Les machines connectées aux ports 1 à 12 seront sur le réseau 172.16.0.0/16 car ces ports appartiennent au vlan n° 10, et les machines connectées aux ports 13 à 24 seront sur le réseau 172.32.0.0/16 car ces ports appartiennent au vlan n°20.

Les deux rĂ©seaux ne peuvent pas communiquer entre eux dans l’état actuel, il faudra activer le routage inter-vlan sur le switch (ce n’est pas le sujet de notre article mais au cas oĂč, la commande pour un switch est « ip routing », je dis ça, je ne dis rien !)

VoilĂ  pour ces petites explications pour se mettre en jambes !

 

Maintenant, il faut crĂ©er la topologie que l’on va utiliser sous Cisco Packet Tracer. Dans les 2 premiĂšres parties de la vidĂ©o ci-dessous, vous pourrez voir comment j’ai intĂ©gralement crĂ©Ă© l’infrastructure pour vous aider Ă  la reproduire.

Info ++ : Je vous conseille de lire la suite de cet article avant d’aller plus loin dans la vidĂ©o car elle couvre des concepts que vous ne connaissez peut ĂȘtre pas encore


Une fois prĂȘt, vous pouvez passer Ă  la mise en application du routage IP ! Assurez-vous bien que vos PCs pinguent leur passerelle respective avant d’aller plus loin.

 

Configuration du routage statique

Comme son nom l’indique, le routage sera fixe. C’est-Ă -dire qu’il ne sera pas automatiquement mis Ă  jour. Il implique que l’administrateur rĂ©seau renseigne lui-mĂȘme les routes Ă  prendre sur chaque routeur pour aller sur tel ou tel rĂ©seau.

Reprenons notre schéma pour construire mentalement la table de routage de chaque routeur :

DĂ©marrons avec le routeur R1 situĂ© en haut Ă  droite et listons les informations que nous connaissons sur lui, c’est-Ă -dire les rĂ©seaux qu’il connait dĂ©jĂ  puisqu’il y est directement connecté :

Les rĂ©seaux A, B et D sont propres au routeur R1, il n’est donc pas nĂ©cessaire de lui dire que pour aller sur le rĂ©seau A, B ou D, il doit passer par lui-mĂȘme


Listons donc maintenant les rĂ©seaux de l’infrastructure qu’il ne connait pas :

L’administrateur rĂ©seau va donc devoir dire au routeur R1 que pour envoyer des paquets de donnĂ©es vers les rĂ©seaux C, E et F, il devra les transmettre Ă  tel ou tel autre routeur.

Pour savoir quel routeur sera ce qu’on appelle le « saut suivant », c’est-Ă -dire le routeur auquel les paquets seront transfĂ©rĂ©s, il faut faire le chemin tout simplement et regarder quels sont les routeurs Ă  traverser pour arriver Ă  bonne destination.

Le second routeur, qui a forcĂ©ment une interface dans le mĂȘme rĂ©seau que le premier routeur (ben oui sinon ils ne se connaissent pas donc le routeur 1 ne pourra envoyer les infos au routeur 2 !), et qui permettra d’effectuer le meilleur chemin, deviendra le saut suivant.

Dans notre infrastructure, si PC1 souhaite envoyer un paquet Ă  PC2, il commencera par transmettre le paquet Ă  la passerelle de son propre rĂ©seau, c’est-Ă -dire Ă  R1 (1).

Ensuite, R1 doit transfĂ©rer le paquet au routeur le plus proche du rĂ©seau de destination dans notre infrastructure, voire mĂȘme mieux, au routeur qui appartient au rĂ©seau de destination ! Souvenez-vous, le rĂŽle du routeur c’est de choisir le meilleur chemin possible pour faire transiter les paquets ! Dans notre cas, il s’agit donc de R2 (2).

R2 sera donc le saut suivant de R1.

Comme R2 est dans le mĂȘme rĂ©seau que PC2 qui est le destinataire, celui-ci n’aura plus qu’à lui envoyer le paquet directement (3).

Mettons cela dans un tableau représentant la table de routage de R1 :

Si vous avez compris le concept, vous devriez pouvoir Ă©tablir la route pour que le routeur R1 transfĂšrent les paquets Ă  destination des rĂ©seaux C et F auxquels il n’est pas directement connectĂ©. Ce qui vous donnera la table de routage suivante :

La commande pour appliquer une route statique sur un routeur Cisco à la forme suivante :

ip route [réseau_destination] [masque_destination] [ip_routeur_suivant]

Pour notre routeur R1, on aura donc les commandes suivantes à saisir en mode de configuration (commande « conf t » préalable) :

ip route 192.168.3.0 255.255.255.0 192.168.1.2
ip route 192.168.5.0 255.255.255.0 192.168.1.2
ip route 192.168.6.0 255.255.255.0 192.168.2.2

Alors lĂ  vous devriez me dire « oui mais attends, pour que R1 puisse envoyer vers le rĂ©seau C, moi j’ai mis comme saut suivant 192.168.2.2 ! Et ça marche quand mĂȘme ! »

Et vous aurez raison !

Le fait est que pour aller sur certains réseaux, plusieurs chemins sont possibles. Le but étant que le chemin emprunté soit le plus simple et donc le rapide !

Dans le cas du routeur R1 vers le rĂ©seau C, les deux chemins sont possibles avec la mĂȘme « mĂ©trique » c’est-Ă -dire avec le mĂȘme nombre de saut avant d’arriver Ă  destination (la mĂȘme distance en rĂ©sumĂ©), Ă  savoir 1 seul saut. Les deux solutions sont donc justes et je dirais mĂȘme plus, les deux sont nĂ©cessaires.

Ajouter une route secondaire vers une destination est un moyen de pallier Ă  une panne ! Imaginons que le routeur R2 soit en panne. Le routeur R1 se retrouvera alors dans l’impossibilitĂ© d’aller vers le rĂ©seau C (mĂȘme si dans notre topologie actuelle, ça ne sert Ă  rien
 mais imaginez un rĂ©seau bien plus grand !).

La solution c’est d’ajouter le routeur R3 comme route secondaire. On parlera alors de « route statique flottante ». Ce sera la route qui prendra le relais en cas de rupture de la liaison dĂ©finie initialement.

La commande pour ajouter une route statique flottante aura alors la forme suivante :

ip route [réseau_destination] [masque_destination] [ip_routeur_suivant] [distance_administrative]

Une notion importante dans le routage est la notion de « distance administrative ».

La distance administrative est une donnée sous forme de nombres utilisée par un routeur afin de déterminer quel est le meilleur chemin à emprunter.

Chaque route (qu’elle soit statique ou dynamique) possĂšde un numĂ©ro de distance administrative.

Plus la distance administrative d’une route est basse, plus la route sera considĂ©rĂ©e comme « fiable ». La route la plus fiable sera donc celle empruntĂ©e en prioritĂ© par le routeur pour acheminer les paquets.

Il faut savoir qu’un routeur peut utiliser en simultanĂ©e plusieurs protocoles de routage diffĂ©rents. Chaque protocole de routage possĂšde par dĂ©faut sa propre distance administrative.

Pour une route directement connectée, la distance administrative sera de 0.
Pour une route statique, la distance administrative sera de 1.

Si nous voulons ajouter une route flottante pour que le routeur R1 puisse aller sur le rĂ©seau C dans le cas oĂč le routeur R2 est inaccessible, il faudra donc dĂ©clarer la seconde route et la distance administrative que l’on veut dĂ©finir pour cette route secondaire.

Info ++ : Attention, si les deux routes ont la mĂȘme distance administrative, on s’expose Ă  une perte de paquets ! Faites le test par vous-mĂȘme en ajoutant les deux chemins possibles sur R1 Ă  destination du rĂ©seau C sans prĂ©ciser de distance administrative et lancer des pings sur les diffĂ©rentes IP du rĂ©seau C, vous verrez que les pings ne passent jamais Ă  100%…

C’est pourquoi on ajoute Ă  la route flottante, une distance administrative supĂ©rieure Ă  1. On peut tout simplement mettre une distance administrative de 2 dans notre contexte, ce qui donnera la commande supplĂ©mentaire suivante sur R1 :

ip route 192.168.3.0 255.255.255.0 192.168.2.2 2

En rĂ©sumĂ©, cette route ne sera utilisĂ©e que dans le cas oĂč la 1Ăšre ne serait pas fonctionnelle.

Revenons-en à la base ! Vous avez maintenant dû ajouter vos routes statiques sur le routeur R1. Pour afficher la table de routage sous Cisco, la commande est (hors mode de configuration) :

show ip route

La partie supĂ©rieure renvoyĂ©e par cette commande nommĂ©e « Codes », est la lĂ©gende de la table de routage. La route commençant par la lettre C est une route « connected », S « static », etc


Bien, maintenant, il faut faire la mĂȘme chose pour le routeur R2 !

On recommence notre réflexion. Notons les réseaux directement connectés à R2 dans un tableau.

Ce qui nous donnera forcĂ©ment, la liste des rĂ©seaux qu’il ne connait pas :

Maintenant, on regarde bien la topologie et on recherche les chemins à emprunter pour que R2 transfÚre bien les paquets de données à destination de ces 3 derniers réseaux.

La table de routage de R2 sera la suivante :

Les commandes Ă  saisir sur le routeur R2 seront donc :

ip route 192.168.2.0 255.255.255.0 192.168.1.1
ip route 192.168.4.0 255.255.255.0 192.168.1.1
ip route 192.168.6.0 255.255.255.0 192.168.3.1

Et enfin
 il faut faire pareil sur le routeur R3 !

A ce stade, vous devriez ĂȘtre en mesure de le faire seul ! Essayez avant de poursuivre votre lecture
 (et ne trichez pas !)

Les réseaux connus par R3 :

Les réseaux que R3 doit joindre :

Et la table de routage de R3 :

Je ne remets pas les commandes Ă  saisir sur le routeur, vous avez compris le truc cool

La 3Ăšme partie de la vidĂ©o (dispo ICI pour ceux qui ont la flemme de remonter…) montre la configuration du routage statique qui vient d’ĂȘtre effectuĂ©e.

Faites des tests de ping dans tous les sens pour vous assurer que le routage fonctionne correctement.

N’hĂ©sitez pas Ă©galement Ă  utiliser traceroute (commande tracert) pour visualiser chaque Ă©quipement par lequel votre paquet de donnĂ©es va passer.

Quand votre routage statique fonctionne, vous ĂȘtes prĂȘt pour le routage dynamique qui fera l’objet d’un prochain article
 laugh

 

La route par défaut

Autre point important dans la configuration du routage (et qui simplifie grandement la vie), la « route par défaut ».

La route par défaut est représentée comme ceci :

0.0.0.0 0.0.0.0 [saut_suivant]

Son but est de dire :

“Pour aller sur n’importe quel rĂ©seau (soit 0.0.0.0 avec le masque 0.0.0.0) passe par le router x (ou x est l’adresse IP du prochain routeur, le “saut suivant”)”

On peut s’en servir notamment pour aller vers le rĂ©seau internet.

Reprenons notre infrastructure de base et transformons-la quelque peu (vous n’ĂȘtes pas obligĂ© de rĂ©aliser cette partie de l’article, je ne dĂ©taillerai pas ici la mise en place de l’infra, il faut juste que vous reteniez ce qu’est une route par dĂ©faut et comment on l’utilise).

On va ajouter un 4Úme routeur qui sera connecté à la fois à deux réseaux locaux et également à internet (on parle de LAN pour un réseau local, « Local Area Network », et de WAN pour le réseau internet, « Wide Area Network »), que nous appellerons NAT.

Je vous rappelle qu’un lien entre deux routeurs EST un rĂ©seau donc dans la topologie ci-dessus, on voit apparaĂźtre deux nouveaux rĂ©seaux en plus :

Et comme le routeur NAT a une interface directement connectĂ©e sur internet, son adresse IP est attribuĂ©e automatiquement par le fournisseur d’accĂšs Ă  internet (FAI), c’est donc l’adresse IP public de notre infrastructure qu’on ne gĂšre pas.

Comme il est impossible de connaĂźtre l’ensemble des rĂ©seaux sur internet, (et mĂȘme si c’était possible, on ne va pas renseigner des milliers de routes sur nos routeurs quand mĂȘme !), c’est lĂ  que la route par dĂ©faut va intervenir.

Imaginons que PC2 envoie un paquet Ă  destination d’une adresse IP situĂ©e sur internet (vers l’adresse 8.8.8.8 par exemple).

PC2 transfĂšre son message Ă  sa passerelle qui est R2. R2 lit la trame et regarde l’adresse de destination. Il vĂ©rifie dans sa table de routage pour savoir oĂč envoyer le paquet.

Aucune route n’est dĂ©finie pour l’adresse rĂ©seau de destination sur R2. Il va donc devoir s’appuyer sur l’adresse IP du saut suivant dĂ©fini dans sa route par dĂ©faut (« gateway of last resort ») et lui transfĂ©rer le paquet.

Dans notre infrastructure, le saut suivant de R2, pour aller sur n’importe quel rĂ©seau (0.0.0.0/0) sera l’adresse IP dans le mĂȘme rĂ©seau que R2, du routeur NAT soit 192.168.8.1, puisque c’est le routeur NAT qui est directement connectĂ© Ă  Internet. C’est donc lui qui peut transmettre les paquets le plus « largement », c’est-Ă -dire n’importe oĂč vers internet


La commande à saisir sur le routeur R2 pour définir sa route par défaut sera la suivante :

ip route 0.0.0.0 0.0.0.0 192.168.8.1

Cette commande dit textuellement :

“Pour aller sur n’importe quel rĂ©seau qui n’est pas dans la table de de routage, passe par l’adresse IP 192.168.8.1 (le routeur NAT).”

Jetons un coup d’Ɠil Ă  la table de routage de R2 aprĂšs l’ajout de la route par dĂ©faut :

On retrouvera donc en « gateway of last resort », la route que l’on vient de configurer.

Le paquet en partance de PC2 sera donc acheminĂ© par le routeur NAT, qui l’enverra Ă  un autre ami routeur, puis un autre, puis encore un autre
 et ainsi de suite jusqu’à l’adresse du destinataire.

Si aucune entrĂ©e dans la table de routage n’existe pour aller sur le rĂ©seau de destination ou qu’aucune route par dĂ©faut n’est dĂ©finie, le paquet sera purement et simplement abandonnĂ©.

Une route par dĂ©faut n’est pas rĂ©servĂ©e spĂ©cifiquement pour aller vers internet, elle permet Ă©galement d’éviter de saisir 500 routes pour aller d’un point A vers un point B, C, D, T, Y, W, Z
 qui ne seront pas forcĂ©ment utiles.

 

Voilà pour cette 1Úre introduction au routage IP et aux routes statiques !

Vous savez dĂ©sormais comment vos paquets de donnĂ©es transitent d’un rĂ©seau Ă  l’autre !

A bientÎt ! kiss


Introduction au routage IP [+vidéo]

Articles pouvant vous intéresser