Informatique

Articles

Le fonctionnement des routeurs

Mardi 2 Janvier 2007
Le routage est une opération réalisée par la couche transport du modèle IP ( ou IPX) qui consiste à transmettre un paquet vers une direction ou une autre en fonction de son adresse de destination et du contenu des tables de routage. Pour qu’un nœud soit déclaré en routeur, il doit disposer d’au moins deux rattachements à des réseaux (ou sous-réseaux) différents. L’opération de routage (c’est à dire comment la destination est choisie) se concrétise par la sélection d’un port d’entrée/sortie et la mise à jour des tables.


Elle est définie par des familles d’algorithmes dont les objectifs sont de choisir :

— la route la plus économique ;
— la route la plus rapide ;
— la route la plus sûre.



Les principes du routage

Le routage est en général une opération qui concerne la couche 3 de l’OSI, mais, pour répondre aux besoins de la réalisation de réseaux locaux, on a donné la possibilité à la couche MAC d’effectuer du routage à ce niveau. Il est réalisé par une machine désignée sous le nom de routeur qui est :

— soit un équipement spécialisé ;
— soit une station Unix configurée comme telle ;
— soit encore un serveur Novell ou une station TCP/IP

le routage désigne l’opération exécutée par le logiciel d ‘un routeur (ou un équipement se comportant comme tel) ; il consiste à lire les adresse de destination des paquets (information de niveau 3), à choisir le cheminement qui permettra d’adresser ceux-ci et à permettre aux trames de passer au travers de deux ponts reliant deux brins de réseau. Pour réaliser cette fonction, trois techniques ont été élaborées :

— celle du pont « transparent »
— du Source Routing Bridge
— et celle du STR (Source Routing Transparent Bridge)


Dans tous les cas le processus de routage est entièrement automatique.


Le fonctionnement des routeurs

La fonction routage est particulièrement simple à mettre en œuvre, mais elle comporte une limite importante : c’est une opération qui s’effectue au niveau 3 du modèle (c.à.d des couches contrôles de liens) et certains protocoles ne sont pas routables comme les protocoles SNA (Systems Network Architecture), APPN (Advanced Peer-to-Peer Networking) , LAT ou Netbios. La grande différence avec un pont réside dans le fait que le routeur travaille sur des informations niveau paquets. Pour réaliser sa fonction le routeur doit constituer et maintenir des tables de routage continuellement mise a jour ; ce processus et celui du choix des routes à prendre s’effectuent dans le cadre d’un algorithme qui lui est propre. Dans la mesure où ils sont capables d’effectuer des opération de délestage automatique, les routeurs effectuent des opérations infiniment plus complexes que les ponts.

Les protocoles de routage : le routage désigne l’opération qui consiste à acheminer un paquet de données vers une direction en fonction de l'adresse de destination du paquet. La question qui se pose est la suivante : comment sont construites les tables de routage et quelles sont les informations qui la composent ? Pour qu'une opération puisse se réaliser, deux conditions sont à remplir :

— le paquet doit être géré par un protocole routable ;
— le nœud doit être en mesure de supporter au moins un protocole de routage.

Le principe consiste, pour chaque routeur, à gérer des tables de routage en précisant l'adresse du réseau de destination, le nombre de nœuds à traverser pour l'atteindre, et l'adresse du port permettant l'accès du nœud. Tous les protocoles de transport ne sont pas routables (par exemple les protocoles SDLC [Synchronous Data Link Control]. LAT et DECNET [Digital Equipment Corporation NETwork] ne le sont pas directement); pour qu'ils le soient, deux conditions doivent être remplies :

— le noeud doit comporter une fonction routage qui soit en mesure d'assurer l'implémentation de l'algorithme, les manipulations et les mises à jour des tables ;
— le paquet à router doit comporter toutes les informations pour la réalisation de l'opération (c'est-à-dire la disponibilité des adresses de destination).

Le rôle du routage est de déterminer le meilleur chemin à prendre pour accéder à un point. Les algorithmes de routage sont nombreux, et certains ne sont pas encore publiés; il est cependant possible de les classer en deux familles :

— le routage interne ;
— le routage externe

Routage interne : Un protocole de routage est dit « interne » (au sens TCP/IP) lorsqu'il est propre à un système autonome. Un tel système dépend d'un seul administrateur de réseau; il a la charge de choisir les protocoles et de donner une vision homogène de l'ensemble.RIP (Routing Information Protocol) est le plus couramment utilisé ; il a été mis au point à l'Université de Berkeley sur la base de recherches effectuées à Palo Alto et doit son succès à sa diffusion - pratiquement universelle - sur tous les centraux Unix ou TCP,IP. Son principe consiste à chercher la meilleure voie possible - estimée en nombre de passerelles

(Hop) - à traverser. La principale critique qu'on peut lui adresser tient au fait que son nombre de nœuds est limité (maximum 15) et que son choix des routes ne tient pas compte de la qualité des lignes et de leur charge. Dans la pratique, RIP est implémenté par défaut sur tous les nœuds. Issu de la technique dite de «vecteur distant », ce protocole est basé sur une classification des nœuds en « non actifs » et «actifs» (si une passerelle est active, elle propage les routes qu'elle connaît vers les autres, ce qui leur permet de mettre à jour leurs tables de routage). HELLO se base sur la notion de temps d'acheminement des paquets ; son principe consiste à mesurer le temps nécessaire à un paquet pour aller vers un nœud de destination et de choisir la route la plus rapide. SPF (Shortest Path First) est destiné aux réseaux de grandes dimensions et a un principe équivalent à celui de RIP. OSPF (Open Shortest Path First) n'est pas encore, à ce jour, un protocole disponible pour tous les systèmes. Comme RIP son principe consiste à choisir la route la plus courte mais en y incluant les notions de qualité et de coût des lignes, ce qui lui permet de, déterminer plusieurs chemins possibles pour une même destination.

Routage externe : Les protocoles dits « externes » - ou EGP (Exterior Gateway Protocol) - sont décrits par le RFC 1163. Implémentés dans des passerelles se chargeant d'établir la communication, ils permettent un routage entre domaines autonomes, c'est-à-dire entre deux réseaux (ou ensemble de réseaux) dépendant d'administrations différentes. On désigne sous le nom de voisins externes (Exterior Neighbour) deux passerelles en relation directe mais appartenant à deux domaines différents. C'est le protocole EGP qui se charge d'échanger des informations au travers de ces passerelles et assure trois fonctions essentielles :

— Acquérir le voisin (Neighbour Acquisition), c'est-à-dire permettre à une passerelle de demander une autorisation d'échange à une autre. Cette action se déroule par émission d'un message EGP suivant une périodicité désignée sous le nom de Hello Intervall.
— Surveiller constamment la disponibilité des passerelles EGP, c'est-à-dire interroger périodiquement leurs voisines en leur transmettant une trame d'interrogation Poll. Cette procédure, apparemment complexe, permet de désynchroniser le processus de calcul de la route de celui du transfert (ce qui a pour effet de produire un meilleur rendement de la communication).
— Mettre à jour les tables de routage (ce qui consiste - pour deux passerelles - à échanger des informations sur celles de leurs propres domaines, mais également sur les passerelles donnant accès à d'autres [si elles en ont connaissance]).


Les mécanismes de routage : La mise en place de mécanismes de routage pose deux problèmes de construction :

— quelles sont les informations à mettre dans les tables de routage ? ;
— comment - dans la mesure où la performance du réseau a un objectif constant - obtenir ces informations ?


Le principe de leur construction reste celui de la passerelle et se présente comme un nœud installé entre les réseaux. Le routage s'effectue à partir des informations figurant dans les tables ; ces dernières contiennent les adresses du réseau (en fait d'autres passerelles) et celles des routes dites « par défaut » (c'est-à-dire des adresses de passerelles).

Les algorithmes de routage. Le choix, par les organismes de normalisation, d'un algorithme de routage qui soit performant et économique est au cœur d'enjeux industriels qui concernent un marché en pleine expansion. Les algorithmes sont construits sur

deux principes de base :

— le routage par vecteurs distants ;
— le routage LSR (Link State Routing).

L'objectif est de trouver le cheminement le plus rapide, à un instant donné, pour qu'un paquet puisse atteindre son nœud de destination.

Routage par vecteurs distants. Le principe des algorithmes de vecteurs distants consiste à construire, pour chaque nœud, une métrique qui soit composée du nombre de passerelles nécessaire pour atteindre un nœud. Le processus de calcul de la route s'effectue selon les phases suivantes :

— Chaque routeur dispose de son propre identificateur.
— Chaque routeur identifie le coût de la ligne le raccordant au prochain routeur, la valeur étant traduite par un entier dont le plus petit est l.
— Chaque routeur commence par évaluer son vecteur distant à la valeur 0 pour lui-même et infinie pour ses voisins.
— Chaque routeur transmet à ses voisins son vecteur distant, lequel met à jour ses tables de routage.
— A partir des informations reçues, chaque routeur calcule la distance minimum, exprimée en nombre de nœuds.

Ces informations sont mises à jour périodiquement, chaque fois qu'une nouvelle destination est rencontrée ou qu'un vecteur distant, pour une même destination, est constaté par le routeur.

Routage LSR. L'idée de base du Link State Routing est que chaque nœud dispose d'une topographie du réseau constituée par les ponts-routeurs régulièrement mise à jour. Le principe de son fonctionnement est le

suivant :

— Chaque routeur se charge de rencontrer ses voisins et d'enregistrer leurs noms dans ses tables.
— Chaque routeur construit une table désignée sous le nom de LSP (Line State Racket) qui contient la liste et les noms des destinations.
— Le LSP est transmis à tous ses voisins, lesquels construisent une table de tous ceux qu'ils ont reçus.
— Quand tous les LSP sont arrivés, le routeur construit un graphique à partir duquel on peut déterminer la meilleure destination possible en appliquant l'algorithme de Dijkstra.


Le routage multiprotocoles.

La technologie des routeurs est basée sur la réalisation d'un protocole de «bout en bout» qui transporte des informations en mode Full Duplex entre deux nœuds. Ce protocole (du moins dans la situation actuelle) est propriétaire (ce qui veut dire que les routeurs doivent provenir du même constructeur). La réalisation d'un routeur multiprotocoles a pour objet de transporter un trafic entre deux nœuds (ou plus) qui appartienne à plusieurs protocoles de haut niveau. Dans la pratique les constructeurs fournissent un interface logiciel permettant de réaliser la translation du protocole externe dans le protocole interne de façon biunivoque. La difficulté du routage (qui rend particulièrement complexe la réalisation de produits) est que cette opération doit être distribuée dans le temps et dans l'espace et que les décisions de routage qui sont prises pour chaque paquet dans les nœuds doivent prendre en compte cette contrainte. Un routeur multiprotocoles doit donc disposer de tables de routage et effectuer en continu les opérations suivantes :

— échange des tables de routage entre les nœuds.
— obligation pour chaque nœud de gérer l'état général du réseau afin de mettre à jour les tables de routage.
— modifier les tables en fonction des états du réseau.

Pour réaliser des routeurs multiprotocoles, il existe deux approches possibles :

— soit un équipement spécifique, connecté sur les réseaux locaux, qui prenne en compte la totalité du trafic et ne route que la partie qui l'intéresse ;
— soit le produit MPR de Novell qui transforme un PC en routeur multiprotocoles (ce PC pouvant être soit dédié à la fonction de routage, soit commun avec le serveur).

Cette dernière solution permet l'interconnexion derouteurs à travers des réseaux longue distance.

Les principes du routage multiprotocoles. Les routeurs multiprotocoles sont destinés à acheminer sur un même support de transmission (liaisons Transfix, Numéris, X25) un trafic appartenant à différents protocoles routables (lP, lPX, etc.) d'une façon transparente pour les utilisateurs finaux. Un routeur est destiné à interconnecter au moins deux réseaux locaux, c'est-à-dire que l'opération de routage consistera à acheminer - d'un nœud à l'autre - des trames Ethernet et/ou des trames Token-Ring, voire FDDI. Les routeurs vont utiliser entre eux un protocole dit « de proche en proche » dont certains sont normalisés et d'autres propriétaires (exemple CISCO avec leur protocole IGRP [Interior Gateway Routing Protocol]). Ces protocoles ont certaines propriétés qui sont, d'une part, la transparence par rapport aux données acheminées et, d'autre part, les possibilités de routage dynamique. Cette dernière propriété consiste à déterminer un certain nombre d'acheminements alternés en cas d'indisponibilité ou de surcharge d'une liaison primaire. Toute la qualité d'un routage consiste dans la façon dont cette opération est effectuée. Le routeur sait reconnaître dans les trames Ethernet et les trames SDLC le protocole de haut niveau auquel il appartient.

Dans un routeur multiprotocoles le logiciel va tester le code protocole de la trame et l'encapsuler dans les paquets du protocole interne (qui vont être acheminés d'un routeur à l'autre dans le cadre d'un protocole de « proche en proche »).


Le routage lP.

L'architecture TCP/IP est devenue un standard en matière d'interconnexion de réseaux. Cette situation est due à la richesse des concepts mis en œuvre ainsi qu'à l'universalité des implémentations disponibles. L'architecture TCP/IP est parfaitement en mesure d'assurer les mêmes fonctions qu'un gestionnaire de réseau local (comme « NetWare » ou « LAN Manager »), c'est-à-dire de serveur de fichiers, de programmes, d'impressions et d'administration du réseau.


L'adressage. Le principe de l'adressage consiste à définir deux champs différents :

— le champ réseau ;
— le champ hôte (ou nœud), le choix de leur taille étant laissé à l'utilisateur.

Un même nœud peut disposer de deux adresses, correspondant à deux rattachements physiques sur deux réseaux différents.

Classes d'adresses. II existe quatre classes d'adresses lP tenant sur 32 bits. chacune d'elles correspondant à une typologie de réseau particulière et dont le principe varie entre ces deux extrêmes :

— beaucoup de réseaux et peu de nœuds ;
— peu de réseaux et beaucoup de nœuds (dits « hôtes »).

Classe Identificateur Adresse réseau Hôte

A 0724 7 24
B 101416 14 16
C 11021 21 8
D 1110

Ce système (qui dépend de la typologie du réseau) définit une adresse totale, fournie par les couches supérieures sur 32 bits, la taille des champs-adresses « physique» et «hôte». Les paquets reçus sont remis à la couche lP et transformés par cette dernière en datagrammes qui vont alors avoir à résoudre deux problèmes importants :

— la résolution des adresses ;
— la transmission.

En premier lieu il faut établir une correspondance entre l'adresse lP et l'adresse physique (exemple, carte Ethernet tenant en 48 bits). Le mécanisme de résolution d'adresses (connu sous le nom de protocole ARP [Address Resolution Protocol]) se chargera, par dialogue, d'effectuer une correspondance entre les deux adresses (physique et logique). En second lieu il faut

résoudre le problème de la mise en relation entre l'adresse IP et celle de l'interface du PC (cette opération est à effectuer au moment de l'installation du logiciel). Un même « hôte » est en mesure de disposer de plusieurs adresses correspondant à des rattachements différents (c'est le cas des postes situés en position de passerelle ou de routeur). Les critères de choix d'un mode

d'adressage sont les suivants :

— Dans le cas où le réseau aura à se connecter sur un réseau public (Internet), l'adressage devra être conforme à celui du NIC (Network Information Center), et une demande d'homologation devra être transmise à l'INRIA (Institut national de la recherche en informatique et en automatique).
— Dans le cas où le réseau devra rester entièrement privé, nous recommandons de définir un réseau physique par département (les réseaux communiqueront entre eux par des « pc-Passerelles »). Toute remise en cause ultérieure pouvant être douloureuse, il faudra dans tous les cas prendre son temps avant de définir ce plan !

Sous-réseau. La manipulation du plan d'adressage peut présenter des contraintes lourdes d'exploitation. C'est la raison pour laquelle le concept du sous-réseau a été introduit. Le principe consiste à définir certains bits de l'adresse-réseau comme appartenant - pour le nœud considéré - à un sous-réseau et à associer un masque de taille égale à l'adresse IP dont la signification est la suivante :

— à chaque bit du masque égal à l, le bit correspondant de l'adresse IP est dit appartenir à une adresse-réseau ;
— à chaque bit du masque égal à 0, le bit correspondant de l'adresse IP est dit appartenir à un sous-réseau.

Masques de sous-réseau. Un réseau (au sens IP) a besoin d'une adresse qui lui soit spécifique ; la taille de son champ étant parfois insuffisante pour décrire le réseau il est possible de prendre des bits appartenant à l'adresse-hôte et de les allouer à l'adresse-réseau ou vice versa, ce qui conduit à déterminer un nouveau schéma d'adressage pour le sous-réseau. Pour effectuer cette modification du système d'adressage, on utilise la notion de « masque binaire », directement associé à l'adresse IP. Son principe est de définir une suite de bits = l (qui constitueront l'adresse-réseau) et de bits = 0 (qui constitueront l'adresse-hôte) que l'on désignera sous le nom de sous-réseau et à partir de laquelle on pourra effectuer les opérations de routage internes au réseau.

Protocole ARP. Chaque nœud dispose d'au moins une adresse IP ; cependant, sur un réseau donné, deux nœuds ne peuvent communiquer que s'ils disposent d'adresses réelles, reconnues par les ports de communication. Pour transmettre un paquet, le nœud émetteur doit effectuer une opération dite de mapping entre l'adresse IP et l'adresse physique. Ce problème dit « de

résolution d'adresse » a été réglé par la définition d'algorithmes de bas niveau. Une difficulté réside encore dans la structure des champs d'adressage qui ne sont pas compatibles (Ethernet a une adresse physique comportant 48 bits et IP n'en comporte que 32). Le protocole ARP (Address Resolution Protocol) est basé sur le principe suivant :

— Lorsqu'une station du réseau a besoin de connaître l'adresse physique d'une autre (alors qu'elle ne connaît que son adresse IP), elle transmet sous la forme d'un broadcast.
— La station réceptrice, reconnaissant son adresse IP, retransmet à l'émetteur son adresse physique, lequel la stocke alors dans la mémoire-cache du nœud.
— Le protocole ARP permet donc à un émetteur de connaître l'adresse physique du destinataire alors qu'il ne dispose que de son adresse IP.

Protocole RARP. Comme il existe des stations ne disposant pas d'unité où ils pourraient stocker les adresses physiques des nœuds de destination, un protocole complémentaire - RARP (Reverse Address Resolution Protocol) - a été développé qui non seulement en tient compte, mais, de plus, limite la transmission de paquets sur le réseau (opération toujours coûteuse). Ce protocole est basé sur le principe suivant lequel, si la station qui demande une adresse physique a un destinataire, celui-ci aura vraisemblablement à demander l'adresse physique de l'émetteur. Le protocole transmet donc - à l'ensemble du réseau et dans le même paquet - l'adresse IP et l'adresse physique de l'émetteur; les stations se présentant comme des serveurs RARP retransmettent leurs adresses (IP et physique) dans leur réponse.

Le routage des datagrammes. Le datagramme se présente comme un paquet transmis sur le réseau en mode dit «non connecté» (c'est-à-dire que deux paquets envoyés vers une même destination sont susceptibles de prendre deux cheminements différents). Cette situation est facile à mettre en évidence. On écrit deux programmes pour deux stations reliées à un même réseau :

— le premier programme pour transmettre des paquets en mode « datagramme » dans une boucle ;
— le second programme pour les lire et les afficher.

On s'aperçoit alors que sur 5 000 paquets transmis un certain nombre ne parviennent jamais, et que beaucoup arrivent dans le désordre. C'est la raison pour laquelle on a mis au point une technique dite de l’encapsulage qui consiste à mettre une trame dans une autre, laquelle sera transmise et acquittée (c'est ainsi que l'on encapsule des paquets IP dans des trames X25, en utilisant la norme dite « RFC 877 »). Le routage est une opération permettant d'acheminer un paquet de données en fonction de son adresse de destination et des tables de routage contenues dans les nœuds routeurs. Cependant, dans un réseau IP, les

interconnexions sont réalisées par des nœuds « Passerelles» (ou Gateway), chacun étant relié à au moins deux réseaux différents (toute machine disposant d'un rattachement physique à au moins deux réseaux est en mesure de se comporter comme une passerelle). Cette distinction entre nœud et passerelle conduit à définir deux types de routage :

— le routage direct qui consiste à transmettre des paquets d'un nœud à l'autre sur un même réseau ;
— le routage indirect qui consiste à transmettre des paquets d'un réseau à l'autre au travers d'une passerelle.

Pour que cette opération puisse se réaliser, tous les nœuds du réseau doivent comporter l'adresse de la passerelle afin que les paquets non destinés au réseau lui soient transmis ; ainsi les paquets transitent de passerelle en passerelle jusqu'à destination. Chaque passerelle contient des tables de routage, accessibles à partir des nœuds passerelles ; dans la mesure où un champ désigne l'adresse du réseau de destination, la structure du routage IP - dont le principe de l'algorithme se base sur le calcul d'adresses dit Next Hope (prochain saut) - se prête particulièrement bien à ce type de mécanisme.

Le routage GGP. La mise en place de mécanismes de routage pose deux problèmes de construction :

— quelles sont les informations à mettre dans les tables de routage ? ;
— comment (dans la mesure où la performance du réseau a un objectif constant) obtenir ces informations ?

Le principe de leur construction reste celui de la passerelle et se présente comme un nœud installé entre les réseaux. Le routage s'effectue à partir des informations contenues dans les tables. Ces dernières contiennent des adresses de réseau (en fait d'autres passerelles) et des routes dites « par défaut » (c'est-à-dire des adresses de passerelles).

L’IP Tunnelling. Le transport par TCP/IP est devenu non seulement universel, mais également un outil de connexion de protocoles hétérogènes grâce à une technique dite d'encapsulage qui consiste à mettre les données d'un protocole externe dans des paquets IP et à les reconstituer sur des nœuds de destination. Lorsqu'il s'agit à' encapsuler des protocoles dits « non routables», il faut présenter aux couches supérieures l'équivalent de ce qui est une ligne. La technique dite de Tunnelling (utilisée pour acheminer un trafic SNA [Systems Network Architecture] ou DECNET [Digital Equipment Corporation NETwork]) sur un réseau IP) consiste à créer un circuit virtuel entre le routeur d'origine et le routeur de destination que tous les paquets IP - dans lesquels auront été encapsulés les messages du protocole non routable - emprunteront.

Je crois qu’il est assez complet, et présente bien plusieurs aspects de routeurs et du routage.


le Mardi 2 Janvier 2007 à 00:02