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âŠ
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 ! )
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 :
- Le routeur va lire lâentĂȘte IP du paquet pour identifier sa destination
- 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.
- Le routeur peut alors ensuite :
- TransfĂ©rer le paquet directement au destinataire si il se trouve dans le mĂȘme rĂ©seau que lui
- Transférer le paquet à un autre routeur sachant comment arriver au destinataire
- 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Ă©
- 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
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âŠ
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 !