Depuis quelques mois, nous publions sur ce blog des articles sur différents éléments qui peuvent composer une infrastructure : reverse proxies, hyperviseurs… Découvrez aujourd’hui les routeurs : leur rôle, leur fonctionnement, et les choix de NBS System quant à l’utilisation de ces équipements sur son infrastructure.

Connectivité réseauxLorsque vous souhaitez vous rendre sur un site web, vous écrivez l’adresse du site souhaité dans la barre de votre navigateur. Ce dernier envoie alors une requête (sous la forme d’un paquet) qui, pour que vous puissiez accéder au site, doit arriver jusqu’au serveur web du site demandé. Ce serveur renvoie ensuite la page que vous souhaitez jusqu’à votre navigateur, où elle sera affichée.

Pour que cela soit possible, que les requêtes et leurs résultats arrivent au bon destinataire, on utilise le protocole TCP/IP. Cela signifie que chaque service sur Internet peut être identifié par un couple port/adresse IP, fixe ou non, mais qui permet d’assurer une continuité dans la navigation. C’est l’adresse IP qui va nous intéresser dans cet article.

Internet, c’est donc un énorme ensemble d’adresses IP, regroupées en « espaces d’adressage », ou « ranges d’IP ». Un (ou plusieurs) de ces ranges d’IP constitue une zone ; le nom officiel de ces zones est AS (Autonomous System ou Système Autonome en français). En réalité, Internet n’est donc pas une seule entité unie, mais un ensemble de différents réseaux.

L’existence de ces réseaux différenciés pose cependant un problème : si votre adresse IP et celle du site que vous souhaitez visiter ne sont pas contenues dans la même zone, comment votre requête va-t-elle savoir dans quelle zone se rendre, et quel chemin emprunter ?

C’est la mission des routeurs et du protocole BGP (Border Gateway Protocol), qui permettent d’interconnecter, de relier, et de faire communiquer ces zones entre elles. Pour comprendre cela, nous allons suivre le chemin d’une requête envoyée par une adresse IP à destination d’une autre adresse IP. Mais avant tout, nous allons nous intéresser de plus près aux zones en elles-mêmes.

Les AS : à qui sont-elles ?

On a expliqué en introduction ce que sont les zones, ou AS, mais il convient de creuser un peu plus le sujet. En effet, ces zones peuvent être gérées par toute entité fournissant des services Internet : les fournisseurs d’accès à Internet, les hébergeurs de sites web, etc. Ces entités peuvent posséder une ou plusieurs zones chacune.

Pour obtenir un AS, une entité doit s’adresser à un organisme tel que le RIPE (Réseaux IP Européens), qui lui donne un espace d’adressage et un numéro d’AS (par exemple, celui de NBS System est le 51335).

Les adresses IP contenues dans cet espace d’adressage lui appartiennent désormais, et elle peut les distribuer à ses clients : c’est ainsi qu’un FAI peut attribuer une adresse IP à votre box, et qu’un hébergeur peut fournir une adresse IP pour le serveur du site de son client.

Zones d'InternetVous bénéficiez donc d’une adresse, qui vous identifie lors de votre navigation et vous permet de surfer sur le web ; de l’autre côté, le serveur web du site que vous consultez bénéficie également d’une adresse IP.

Posons maintenant notre exemple : vous êtes client chez le FAI A, qui vous fournit une box avec une adresse IP S (source) contenue dans l’AS AAAA lui appartenant. Vous souhaitez visiter un site, dont l’adresse IP D (destination) est contenue dans l’AS ZZZZ, appartenant à l’hébergeur Z. Comment votre requête peut-elle arriver depuis la zone AAAA à la zone ZZZZ ?

Les routeurs : le lien entre les zones

Le premier prérequis, c’est que les zones soient reliées entre elles : c’est le rôle des routeurs. Les routeurs sont des équipements présents dans toutes les zones d’Internet, qui communiquent entre eux pour faire transiter des données. Un routeur peut être un équipement physique dédié (comme en produisent Cisco ou Juniper), ou bien un simple serveur équipé d’un service dédié au routage (Bird ou Quagga sur un serveur Linux par exemple).

Pour reprendre notre exemple : l’AS AAAA et l’AS ZZZZ possèdent chacun au moins un routeur, que nous appellerons respectivement routeur A et routeur Z. Le FAI A fournit des accès à Internet à l’hébergeur Z, c’est-à-dire qu’il relie la zone ZZZZ au reste d’Internet, donc aux autres zones. Pour cela, une connexion est établie entre les deux routeurs, via le protocole BGP.

2. connexion BGPLe protocole BGP est le langage parlé par les routeurs. L’une de ses missions est de permettre cette connexion entre deux AS : c’est la session BGP, qui s’ouvre entre deux routeurs. Lors de l’initialisation de cette session (la mise en place de la connexion), le routeur Z envoie au routeur A quel espace d’adressage est contenu dans son AS, à savoir l’AS ZZZZ. Le routeur A sait ainsi que telle ou telle IP sera accessible via cet AS. En échange, le routeur A envoie au routeur Z tout ce qu’il sait déjà, à savoir l’espace d’adressage de son AS AAAA, mais également ceux de tous les autres AS avec qui il est relié, et ceux avec qui ces AS sont reliés, etc. Cela correspond donc, finalement, à l’ensemble d’Internet.

Une fois cette initialisation faite, des mises à jour sont bien sûr échangées régulièrement entre les routeurs. Les informations sur le nouvel AS ZZZZ enregistré par le routeur A seront donc également communiquées par ce dernier aux autres routeurs auxquels il est connecté, propageant exponentiellement l’information. Ainsi, tous les routeurs connectés savent à quel AS correspondent toutes les IP présentes sur Internet, et ce en temps réel.

Pour en revenir à l’exemple : lorsque votre requête, envoyée depuis votre adresse IP S contenue dans l’AS AAAA, arrivera au routeur A, ce dernier saura alors que l’adresse IP D à laquelle elle doit être envoyée se trouve dans l’AS ZZZZ. Votre requête sera alors envoyée au routeur Z, qui l’enverra alors dans son propre réseau vers l’adresse IP D. La réponse à votre requête sera envoyée en sens inverse, et c’est ainsi que vous obtenez, sur votre navigateur, la page demandée.

Routeurs et chemin

Connexions multi routeursPerformance et choix du meilleur chemin

Il est temps maintenant de s’intéresser à la deuxième fonction du protocole BGP : le calcul du meilleur chemin, soit le chemin le plus court. Cela permet d’optimiser le temps d’envoi d’une requête, pour une navigation plus rapide.

Reprenons notre exemple. Vous êtes toujours sur l’adresse IP S, appartenant à l’AS AAAA contenant le routeur A, et vous souhaitez toujours vous rendre sur le site d’adresse IP D, appartenant à l’AS ZZZZ contenant le routeur Z.

Nous avions simplifié le processus en imaginant une connexion directe entre l’hébergeur Z et le FAI A ; en réalité, les zones de ces deux entités peuvent être séparées par une à plusieurs zones intermédiaires. On peut ainsi avoir plusieurs chemins disponibles permettant d’aller du routeur A au routeur Z, comme sur l’illustration à droite.

Le routeur A va récupérer, pour chaque chemin possible, les noms des routeurs par lesquels la requête devra passer. Il obtient alors ce que l’on appelle un ASPATH (littéralement « chemin d’AS ») pour chaque possibilité, comme dans l’exemple suivant (où nous nous sommes limités à 3 possibilités) :

5. Chemin 1 6. Chemin 2 7. Chemin 3
 Chemin 1 : AS AAAA – AS BBBB – AS ZZZZ
ASPATH : B, Z
 Chemin 2 : AS AAAA – AS iiii – AS jjjj – AS ZZZZ
ASPATH : i, j, Z
Chemin 3 : AS AAAA – AS BBBB – AS iiii –
AS jjjj – AS ZZZZ
ASPATH : B, i, j, Z

Le chemin 1 ne passe que par une zone intermédiaire alors que le chemin 2 passe par deux zones, et le chemin 3 par trois zones ; on voit donc bien que le chemin 1 est le plus court. A l’identique, le premier ASPATH indique qu’il n’y a qu’un seul routeur intermédiaire, tandis que le dernier en montre 3.

C’est le chemin le plus court, dans ce cas le chemin 1, qui est alors choisi par défaut par le protocole BGP du routeur A qui doit transférer la requête. Cela permet d’optimiser l’envoi de ces dernières (et donc de leurs réponses), pour servir au plus vite l’internaute.

Bien entendu, en réalité, il existe un nombre encore plus important de chemins différents que peut prendre une requête. Cela permet notamment d’assurer la continuité des connexions, même en cas d’indisponibilité d’une zone ou d’un routeur : la requête sera alors redirigée vers le nouveau chemin le plus court. Dans notre exemple, si le routeur B n’est plus accessible, alors ce ne sera plus le chemin 1 qui sera choisi, mais le chemin 2.

Les routeurs chez NBS System

La majorité des AS bénéficient de plusieurs routeurs, en général reliés à plusieurs autres routeurs. C’est notamment ce qui permet de multiplier les chemins entre un point de l’Internet et un autre, et d’assurer aux entités responsables des AS une continuité de service auprès de leurs clients.

Chez NBS System, nous n’avons installé que deux routeurs, chacun reliés à un seul fournisseur d’accès à Internet. Ces routeurs sont reliés à un switch, qui lui-même est relié à nos pare feux qui ont également une fonction de routage. Ce sont ces derniers qui déterminent quel chemin prendre, en amont des routeurs directement reliés aux FAI.

Routeurs NBS System

C’est un parti pris de la part de NBS System, pour deux raisons simples :

  • La liaison entre un routeur et un FAI est payante : il est donc plus économique de ne maintenir que 2 liaisons (une par routeur) que 4 (deux par routeur).
  • Mais surtout, cette configuration facilite l’administration des routeurs. En effet, les deux routeurs « frontaux » sont des équipements Juniper, donc propriétaires. Les pare feux, cependant, sont des serveurs Linux sur lesquels le service Quagga se charge de la partie BGP, et donc du choix du chemin. Ces derniers sont des outils open source comme on en utilise beaucoup chez NBS System, et ils sont plus facilement administrables que les logiciels propriétaires, car plus souples.

Source technique : Anthony Le Berre

Lucie Saunois
Lucie Saunois
Passionnée d'informatique, en particulier de sécurité, depuis qu'elle a rejoint l'OT Group en 2015, Lucie se spécialise dans la vulgarisation technique pour permettre à tous d'appréhender ces sujets parfois complexes.