Les fonctions de base des routeurs
Les routeurs sont souvent considérés comme les « postiers » du monde numérique, car leur rôle principal est d’acheminer le trafic entre différentes parties d’un réseau ou entre plusieurs réseaux. À la base de cet acheminement se trouve la couche réseau du modèle OSI, qui définit comment les paquets sont routés à travers des réseaux interconnectés.
Un routeur possède plusieurs interfaces, chacune étant connectée à un segment de réseau différent. Lorsqu’un paquet arrive sur l’une de ces interfaces, le routeur doit décider par quelle autre interface le paquet doit être envoyé pour atteindre sa destination finale. Pour ce faire, le routeur utilise une table de routage, qui contient des informations sur les routes les plus optimales vers différentes destinations. Mais, avant de s’attarder sur la manière dont le routeur prend des décisions de routage, il est essentiel de comprendre comment le routeur gère physiquement les paquets à l’intérieur de lui-même. C’est là qu’intervient le concept de switching fabric.
La Switching Fabric
La switching fabric est le cœur du routeur. Elle représente l’ensemble des voies physiques et logiques à travers lesquelles les paquets sont acheminés à l’intérieur du routeur. Une fois qu’un paquet arrive sur une interface du routeur, il est placé dans une file d’attente. Chaque interface ou port d’entrée du routeur a sa propre file d’attente pour stocker les paquets entrants avant qu’ils ne soient traités.
Une fois dans la file d’attente, le paquet attend d’être transféré vers la mémoire tampon centrale du routeur, où il sera ensuite analysé. Le routeur détermine alors par quelle interface ou port de sortie le paquet doit être acheminé. Si ce port de sortie est occupé, le paquet est placé dans une file d’attente spécifique à ce port, en attendant de pouvoir être transféré.

Il est crucial de noter que la capacité de la switching fabric à acheminer les paquets à travers le routeur dépend fortement de sa conception. Une switching fabric basée sur des circuits logiques, c’est-à-dire construite matériellement, est bien plus performante qu’une approche reposant sur une recherche standard via un CPU et de la RAM. Grâce à ces composants matériels spécifiques, la switching fabric peut gérer plus de paquets simultanément, réduisant ainsi les latences et augmentant le débit global du routeur.
La file d’attente
Les files d’attente dans le contexte d’un routeur sont essentielles pour gérer le flux de paquets qui arrivent et sortent à des vitesses potentiellement différentes. Elles servent de tampons temporaires, garantissant que les paquets sont traités de manière ordonnée et efficace. Approfondissons cet aspect. Lorsqu’un paquet arrive à une interface d’un routeur, il ne peut pas toujours être immédiatement traité ou transmis à son port de sortie désigné, surtout s’il y a d’autres paquets qui sont arrivés avant lui. Dans de tels scénarios, le routeur place ce paquet dans une file d’attente spécifique à cette interface d’entrée.
Chaque interface d’entrée du routeur dispose de sa propre file d’attente. Cela permet de gérer indépendamment les paquets arrivant à différentes vitesses sur différentes interfaces. Si une interface reçoit une grande quantité de trafic, sa file d’attente peut commencer à se remplir rapidement. Il est important de noter que ces files d’attente ont une capacité limitée. Si un trop grand nombre de paquets arrive en peu de temps, la file d’attente peut atteindre sa capacité maximale. Dans un tel cas, tout paquet supplémentaire arrivant à cette interface serait alors rejeté ou abandonné, un phénomène connu sous le nom de « perte de paquet ».
De plus, il n’y a pas seulement une file d’attente à l’interface d’entrée, mais également à l’interface de sortie. Une fois qu’un paquet est traité par le routeur et qu’il est prêt à être expédié vers son port de sortie, il peut y avoir une autre file d’attente à ce niveau. Si le port de sortie est actuellement occupé à envoyer un autre paquet, le paquet en question est mis en attente dans la file d’attente spécifique à ce port de sortie, jusqu’à ce que le port soit libre.

L’efficacité du traitement des files d’attente est essentielle pour les performances globales du routeur. Les stratégies de gestion de file d’attente, tels que la qualité de service (QoS), peuvent influencer la manière dont les paquets sont priorisés et traités, assurant ainsi une distribution efficace du trafic à travers le routeur.
La qualité de service (QoS)
La qualité de service, communément appelée QoS, est un mécanisme essentiel qui permet de prioriser différents types de trafic sur un réseau. L’importance de la QoS devient particulièrement évidente lorsque l’on considère des services critiques et sensibles à la latence, tels que la téléphonie (dit VoIP), les vidéos conférences ou encore les jeux en ligne. Ces services nécessitent un traitement en temps réel. La moindre interruption ou retard dans la transmission des paquets peut avoir des conséquences directes sur la qualité de l’expérience utilisateur. Pour la VoIP, cela peut se traduire par une voix hachée ou des mots manquants, tandis que pour le gaming, cela pourrait signifier des mouvements saccadés ou un temps de réaction retardé.
La QoS intervient pour remédier à ces problèmes. En utilisant la QoS, les administrateurs réseau peuvent définir des politiques qui déterminent la priorité des paquets en fonction de leur type. Ainsi, les paquets VoIP ou ceux liés au jeu en ligne pourraient être traités en priorité par rapport à d’autres types de trafic moins sensibles à la latence. Cela garantit que les services critiques bénéficient de la bande passante nécessaire pour fonctionner sans interruption, même lorsque le réseau est encombré.


Néanmoins, la mise en œuvre de la QoS peut être un choix délicat. Si la priorisation du trafic est essentielle pour certains, elle peut ne pas l’être pour d’autres. Il peut également y avoir des implications éthiques à privilégier certains types de trafic au détriment d’autres. En fin de compte, la décision d’utiliser la QoS, ainsi que la manière dont elle est configurée, revient à l’administrateur ou à l’utilisateur du réseau. Certains pourraient voir la QoS comme une nécessité absolue pour garantir la qualité de leurs services critiques, tandis que d’autres pourraient opter pour une approche plus équilibrée, cherchant à servir au mieux l’ensemble des utilisateurs du réseau.
La capacité de Switching
La capacité de commutation d’un routeur, ou switching capability, est intrinsèquement liée à sa capacité à déterminer rapidement et efficacement la meilleure ligne dans la table de routage pour acheminer un paquet vers sa destination. Ce processus complexe requiert un algorithme sophistiqué pour assurer que les décisions de routage sont prises de manière rapide et précise.
Lorsqu’un paquet arrive sur une interface du routeur, le routeur extrait l’adresse de destination du paquet et commence le processus de recherche dans sa table de routage. La table de routage est une base de données qui stocke les différentes routes disponibles pour acheminer les paquets, et chaque entrée dans la table est associée à une interface de sortie spécifique. L’objectif est de trouver la correspondance la plus spécifique possible entre l’adresse de destination du paquet et les entrées dans la table de routage. Autrement dit, il s’agit de trouver l’entrée qui correspond le mieux à l’adresse de destination, tout en étant la plus spécifique possible. C’est ici que l’algorithme de Longest Prefix Match (LPM) entre en jeu.
Le principe est que, pour une adresse de destination donnée, il peut y avoir plusieurs entrées possibles dans la table de routage qui correspondent à des préfixes de cette adresse. L’objectif est de trouver l’entrée qui a le préfixe le plus spécifique, c’est-à-dire le plus long, qui correspond à l’adresse de destination. Il est possible d’exécuter cet algorithme de façon logicielle à l’aide de l’arbre RADIX, ou de façon hardware à l’aide de circuits imprimés spécifiques appelés TCAM.
L’arbre RADIX
Pour réaliser ce Longest Prefix Match de manière efficace, les routeurs modernes utilisent souvent une structure de données appelée RADIX Tree. Un RADIX Tree est une sorte d’arbre de recherche binaire, mais avec quelques optimisations spécifiques pour rendre la recherche d’adresses IP plus rapide. L’arbre stocke les différentes routes possibles sous forme de chemin dans un arbre, où chaque nœud représente un bit de l’adresse IP. Les feuilles de l’arbre stockent les informations sur l’interface de sortie associée à la route correspondante.

Lorsque le routeur reçoit un paquet, il extrait l’adresse IP de destination et commence à parcourir l’arbre RADIX depuis la racine. À chaque nœud, il vérifie le bit correspondant de l’adresse IP et descend dans l’arbre en conséquence : à gauche si le bit est 0, à droite si le bit est 1.
Lorsque le routeur atteint une feuille de l’arbre, il a trouvé une route qui correspond à l’adresse de destination. Cependant, il est possible qu’il existe une route plus spécifique (c’est-à-dire avec un préfixe plus long) plus loin dans l’arbre. Ainsi, le routeur continue à parcourir l’arbre jusqu’à ce qu’il ne puisse plus avancer ou jusqu’à ce qu’il atteigne un niveau de l’arbre qui correspond à la longueur du préfixe de la route la plus spécifique. À ce stade, il utilise l’interface de sortie stockée dans la feuille pour acheminer le paquet.
Cette méthode permet de réaliser le Longest Prefix Match de manière très rapide, car elle réduit le nombre de comparaisons nécessaires pour trouver la route appropriée. De plus, le RADIX Tree est dynamique et peut être mis à jour à la volée lorsque de nouvelles routes sont ajoutées assurant ainsi que le routeur a toujours accès aux informations de routage les plus à jour.
Les TCAM
Cependant, pour les routeurs qui se trouvent aux cœurs d’Internet, où le trafic est massif et les exigences de vitesse sont immenses, cette technique basée sur le RADIX Tree, bien qu’efficace, reste trop lente. Pour ces routeurs, qui doivent gérer une capacité de commutation de plusieurs centaines de Gbps, le besoin est d’atteindre un niveau de performance encore supérieur. Pour répondre à cette demande, on se tourne vers une technologie matériellement optimisée : les TCAMs (Ternary Content Addressable Memory).
La TCAM est un type spécial de mémoire qui permet une recherche de données à très haute vitesse. Contrairement aux mémoires RAM classiques, où l’on accède aux données en spécifiant une adresse, la TCAM permet d’accéder aux données en fonction de leur contenu. En d’autres termes, on fournit à la TCAM un motif de recherche, et la TCAM renvoie l’adresse où se trouve ce motif. Les cartes TCAM consomment plus d’énergie, coûtent plus cher que les mémoires RAM traditionnelles et ne sont pas adaptées à toutes les applications.
Ce qui distingue vraiment la TCAM, c’est sa capacité à gérer des recherches ternaires, c’est-à-dire des recherches qui peuvent inclure des ‘0’, des ‘1’, et des ‘X’ (où ‘X’ représente une valeur sans importance). Cette capacité est particulièrement utile pour la recherche de préfixes dans les tables de routage, car elle permet de rechercher des correspondances avec des masques de sous-réseau de longueurs variables.
Dans le contexte du routage, la table de routage est stockée dans la TCAM. Chaque entrée de la table de routage est stockée sous forme de paire (préfixe de l’adresse IP, masque de sous-réseau), et associée à l’interface de sortie correspondante. Lorsqu’un paquet arrive, le routeur prend l’adresse IP de destination du paquet et l’envoie à la TCAM. La TCAM effectue ensuite une recherche parallèle à travers toutes ses entrées et renvoie l’adresse de la première entrée qui correspond au motif. Grâce à sa nature parallèle, la TCAM peut effectuer cette recherche en un seul cycle d’horloge, permettant ainsi des temps de recherche extrêmement rapides.

Bien sûr, l’intégration d’une TCAM dans un routeur ne s’arrête pas simplement à la recherche de correspondances. Une fois que plusieurs correspondances possibles ont été identifiées dans la TCAM, il est crucial de déterminer laquelle de ces correspondances est la plus spécifique, c’est-à-dire celle qui a le plus long préfixe. C’est là qu’intervient l’encodeur de priorité.
L’encodeur de priorité est un composant électronique qui analyse les résultats renvoyés par la TCAM pour déterminer quelle entrée a la plus grande priorité, ou dans le contexte de la recherche de routes, quel préfixe est le plus long. Lorsqu’une recherche est effectuée dans la TCAM, elle peut renvoyer plusieurs correspondances. Chacune de ces correspondances est associée à une certaine priorité, basée sur la longueur du préfixe. L’encodeur de priorité examine les résultats et sélectionne la correspondance avec la plus grande priorité. Dans le cas de la table de routage, cela signifie sélectionner l’entrée avec le préfixe le plus long.
Une fois que l’encodeur de priorité a identifié la correspondance avec le préfixe le plus long, le travail n’est pas encore tout à fait terminé. Cette correspondance, ou entrée spécifique dans la TCAM, possède une adresse ou un index associé. Cette adresse est utilisée pour consulter une mémoire RAM spécifique, souvent appelée table d’association, qui stocke des informations détaillées sur chaque entrée, notamment l’interface réseau correspondante. En d’autres termes, la TCAM fournit un moyen rapide de trouver la correspondance du préfixe, l’encodeur de priorité détermine la correspondance la plus spécifique, puis la RAM associée est consultée pour déterminer l’interface de sortie exacte à utiliser pour acheminer le paquet.
Ce processus se déroule en une fraction de seconde, garantissant que les paquets sont acheminés avec une rapidité et une efficacité optimales à travers le routeur. Ce flux coordonné d’opérations, alliant hardware et software, est ce qui permet à nos réseaux modernes de fonctionner à des vitesses et avec des performances époustouflantes.
La sécurité
La sécurité du routeur est un aspect critique dans la gestion et la protection d’un réseau. Les routeurs, en tant que dispositifs centraux, sont des cibles privilégiées pour les attaques et les intrusions malveillantes. Par conséquent, il est essentiel de mettre en place des mesures robustes pour assurer leur intégrité et la sécurité des données qui les traversent.
La première ligne de défense d’un routeur réside dans la configuration correcte de ses listes de contrôle d’accès (ACL). Ces listes permettent de définir des règles qui spécifient quels types de trafic sont autorisés ou bloqués sur le réseau. En filtrant le trafic en fonction de l’adresse IP, du port et d’autres critères, les ACL jouent un rôle crucial dans la prévention des accès non autorisés et des attaques.
Les routeurs modernes intègrent souvent des fonctionnalités avancées de sécurité, telles que les systèmes de prévention d’intrusion (DPI) et les pare-feu. Ces mécanismes analysent le trafic en temps réel et bloquent les activités suspectes ou malveillantes. Le pare-feu, en particulier, est un élément essentiel dans la stratégie de sécurité d’un réseau.
Par ailleurs, la mise à jour régulière du firmware du routeur est essentielle. Les fabricants de routeurs publient régulièrement des mises à jour pour corriger les vulnérabilités et renforcer la sécurité de leurs dispositifs. Ignorer ces mises à jour expose le réseau à des risques inutiles.