Deux entreprises, une poignée de main
Votre fournisseur d'accès et l'hébergeur de votre boutique en ligne sont deux entreprises. Chacune a son réseau et ses règles.
Elles doivent se dire quelles adresses elles savent joindre, sans se livrer tout leur réseau.
Le protocole de cette conversation s'appelle BGP. C'est lui qui relie entre eux les milliers de réseaux qui forment Internet.
À la fin de cette leçon
Remarque
Je peux dire comment deux réseaux partagent leurs routes avec BGP.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Système autonome | le réseau d'une organisation, géré avec une seule politique de routage | AS 65001 |
| Numéro d'AS | le nombre qui désigne un système autonome | |
| Session BGP | une connexion entre deux voisins BGP qui transporte des routes | |
| Annoncer | dire à un voisin quel réseau on sait joindre | |
| Chemin d'AS | la liste des systèmes autonomes qu'une route a traversés | |
| Préférence locale | un nombre que vous fixez pour favoriser une route : le plus haut gagne |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Internet est fait de systèmes autonomes
Un système autonome est le réseau d'une organisation : un fournisseur, une université, une grande entreprise. Chacun a un numéro d'AS.
À l'intérieur d'un AS, un protocole comme OSPF trouve les chemins. Entre deux systèmes, BGP transporte les routes.
Les numéros 64512 à 65534 sont privés. Ils servent à s'entraîner et aux réseaux qui ne voient jamais Internet.
Deux routeurs ouvrent une session
Deux routeurs BGP ouvrent une session BGP sur une connexion TCP ordinaire vers le port 179. Chacun annonce son numéro d'AS.
Si les deux numéros diffèrent, la session est externe, entre deux organisations. S'ils sont égaux, elle est interne, au sein d'une seule.
Une fois la session établie, les routeurs s'échangent les réseaux qu'ils annoncent.
Demander ses sessions BGP à r1
sudo vtysh -N r1 -c "show bgp summary"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Lire la table de r1 sans BGP
sudo vtysh -N r1 -c "show ip route"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Lister les ports où r1 écoute
sudo ip netns exec r1 ss -ltnAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Ce que disent les trois réponses
Le premier Run affiche % BGP instance not found. Le programme tourne, mais personne n'a créé de routeur BGP avec un numéro d'AS.
Le second Run liste des lignes connectées et les adresses du routeur. Aucune ligne ne commence par B, le code d'une route apprise par BGP.
Le troisième Run liste quatre ports en écoute, tous sur 127.0.0.1 : les consoles du routeur lui-même. Aucun n'est le port 179.
Un routeur annonce seulement ce qu'on lui dit
BGP ne partage pas tout ce qu'il sait. Un routeur n'annonce un réseau que si son propriétaire le décide.
C'est l'intérêt de BGP. Une organisation choisit quels réseaux le monde peut joindre à travers elle.
Un réseau privé n'est tout simplement jamais annoncé.
Exemple : ce qu'une entreprise annonce
| Réseau | Ce que c'est | Annoncer ? |
|---|---|---|
| 203.0.113.0/24 | Les serveurs web publics de l'entreprise | Oui |
| 198.51.100.0/24 | Les serveurs de messagerie publics | Oui |
| 10.50.0.0/16 | Les portables du bureau, privé | Non |
| 172.20.0.0/16 | Les caméras du bâtiment, privé | Non |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un routeur choisit entre routes par des règles
Un routeur peut entendre un même réseau chez plusieurs voisins. Il choisit par des règles, dans l'ordre.
D'abord il écarte toute route dont le chemin d'AS contient déjà son propre numéro : elle a fait une boucle.
Ensuite la préférence locale la plus haute gagne. En cas d'égalité, le chemin d'AS le plus court gagne.
Les vrais routeurs appliquent encore d'autres règles après celles-ci. Dans cette leçon, la dernière est simple : l'adresse de voisin la plus basse gagne.
Exemple : trois routes vers un réseau
| Reçue de | Préférence locale | Chemin d'AS | Résultat |
|---|---|---|---|
| Voisin A | 100 | 65002 65010 | Perd contre B : même préférence, chemin plus long |
| Voisin B | 100 | 65003 | Bat A : même préférence, chemin plus court |
| Voisin C | 200 | 65004 65005 65006 | Gagne : la préférence la plus haute |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une erreur fréquente
Attention
On croit souvent que BGP choisit le chemin le plus rapide. BGP ne sait rien de la vitesse. Il suit les préférences du propriétaire, puis compte les systèmes autonomes. Un chemin d'AS court peut être un lien lent.
Pour aller plus loin : une règle de plus
Un voisin peut joindre à sa route un MED, un nombre qui dit par lequel de ses liens il préfère être joint. Plus bas, c'est mieux.
Ajoutez cette règle à une copie de choisir_meilleure : après la règle du chemin d'AS, la route au med le plus bas gagne. Une route sans clé med compte pour 0.
Écrivez un test avec deux routes à égalité de préférence et de longueur de chemin, mais dont le med diffère.