Routage dynamique avec BGP

Routage dynamique avec BGP

Dois-je utiliser BGP ? BGP est nécessaire si :

• Vous voulez vous connecter à plusieurs fournisseurs de connectivité de manière propre1. • Vous voulez vous connecter à un point d’échange entre opérateurs. De tels points d’échange sont un outil essentiel pour la connectivité Internet d’un pays : ils permettent aux opérateurs d’un pays d’échanger du trafic directement, sans passer par les États-Unis ou bien l’Europe.

 Petit rappel IP

Important : Ce texte n’est qu’un rappel, ce cours nécessite une bonne connaissance d’IP.
Le protocole IP (que cela soit IPv4 ou bien IPv6) repose sur la notion d’adresse. Une machine a une ou plusieurs adresses qui s’écrivent, en IPv4, avec quatre chiffres séparés par des points, comme 80.67.160.12 et en IPv6 par plusieurs groupes de chiffres séparés par des deux-points, comme 2001:910::5043:a0013. Dans une adresse, les chiffres binaires les plus à gauche identifient le réseau (d’où le nom de préfixe), les chiffres les plus à droite la machine. Le nombre de chiffres pour chaque rôle dépend de la longueur du préfixe. Celle-ci s’indique par un chiffre suivant une barre oblique. Par exemple, 80.67.160.1/27 indique que l’adresse IP en question identifie une machine dans un réseau où les 27 premiers bits désignent le réseau et les 5 derniers la machine (les adresses IPv4 comptent 32 bits). De la même façon, fec0:1:0:ff00::1/64 est une adresse IPv6 sur un réseau où il y a 64 bits pour le réseau et 64 pour la machine (les adresses IPv6 comptent 128 bits). Il est important de noter que la longueur du préfixe dépend de l’endroit où on se trouve. Du fait de l’agrégation des préfixes, le réseau 80.67.160.0/27 se trouve par exemple annoncé sur Internet comme une partie de 80.67.160.0/19. Il existe des outils pour faciliter les calculs sur les adresses. En IPv4, netmask permet, par exemple :
% netmask 80.67.168.6/19Ê 80.67.160.0/19 % netmask -s 80.67.168.6/27Ë 80.67.168.0/255.255.255.224 % netmask -r 80.67.168.6/27 Ì 80.67.168.0-80.67.168.31 (32)
Ê Quelle est l’adresse du réseau correspondant à cette adresse et cette longueur de préfixe ? Ë IPv4 utilise encore beaucoup une vieille notation : au lieu de la longueur du préfixe, on affiche un masque où tous les bits « réseau » valent 1 et tous les bits « machine » valent 0. Ì Quelles sont les adresses IP dans ce réseau ?En IPv6, il n’existe malheureusement pas d’outils équivalents mais ipv6calc permet certaines choses.

Petit rappel routage

Pour transmettre un paquet, une machine IP suit sa table de routage. On peut l’afficher sur quasiment tous les Unix avec netstat -rn, qui est la commande la plus portable, ou bien avec route -n sur Linux, route -n show sur NetBSD, show ip route sur IOS, etc. La table de routage est une série d’entrées, et elle fait correspondre à un préfixe, l’adresse IP du routeur où envoyer le paquet. Par exemple, si un routeur a la table de routage suivante :
147.94.0.4 194.68.129.102 255.255.255.252 UG 0 0 0 eth1 213.223.128.0 194.68.129.244 255.255.255.248 UG 0 0 0 eth1 192.54.202.64Ê 194.68.129.102 255.255.255.240 UG 0 0 0 eth1 194.6.149.64 194.68.129.244 255.255.255.224 UG 0 0 0 eth1 194.6.145.0 194.68.129.244 255.255.255.224 UG 0 0 0 eth1 213.56.168.160 194.68.129.224 255.255.255.224 UG 0 0 0 eth1 195.141.72.128 194.68.129.213 255.255.255.224 UG 50 0 0 eth1
Ê Les paquets à destination de 192.54.202.66 (netmask 192.54.202.66/255.255.255.240 donne 192.54.202.64) seront envoyés à 194.68.129.102. traceroute permet de vérifier cela :
traceroute to 192.54.202.66 (192.54.202.66), 30 hops max, 40 byte packets 1 194.68.129.102 1 ms 0 ms 0 ms 2 193.51.179.158 1 ms 1 ms 1 ms … Il y a une légère différence en IPv6 : il existe des adresses spécifiques à un lien (link local), leur préfixe est fe80::/10 et ce sont ces adresses qui sont utilisées dans la table de routage.
rachel:~ % netstat -r -n -finet6 … Destination Gateway Flags Refs Use Mtu Interface default fe80::201:96ff:fe96:dc60%epic0 UG 0 0 – epic0
Important : Pour une adresse IP de destination, il peut exister plusieurs entrées dans la table de routage. Si les longueurs de préfixe sont différentes, le routeur choisira la plus spécifique (le préfixe le plus long). Si les longueurs de préfixe sont égales, le résultat dépend du routeur. Avec Linux, si le noyau a été compilé avec l’option IP: equal cost multipath (CONFIG_IP_ROUTE_MULTIPATH)4, les deux chemins pourront être utilisés, répartissant ainsi la charge.
Les tables de routage peuvent être construites manuellement (l’ingénieur système ajoute des commandes dans un fichier de configuration) ou automatiquement par un système de routage dynamique. Dans ce dernier cas, les routeurs échangent de l’information entre eux (« Je suis connecté à un lien qui porte les préfixes 2001:910::/32 et FEC0:1::/32 », « J’ai une liaison point-à-point avec 82.3.67.98 ») et, sur la base de ces informations, construisent chacun sa table de routage. En anglais, on appelle le routage effectif des paquets forwarding et la construction des tables de routage routing. Tout routeur IP fait du forwarding mais le routage pouvant être statique, tous ne font pas du routing. Ces deux fonctions sont typiquement mises en oeuvre par des parties très distinctes du routeur5.

Et si ça ne marche pas ?

Si votre configuration TCP/IP ne fonctionne pas, il est utile de demander de l’aide. D’innombrables listes de diffusion6 existent à cette fin. Mais beaucoup de personnes ont du mal à donner sur une liste de diffusion les informations nécessaires pour résoudre le problème. Pour toute liste, les conseils suivants sont utiles :
• Donnez les vraies informations. Il n’existe aucune raison sérieuse7de dissimuler les noms et les adresses IP utilisées. Au contraire, si vous indiquez les vraies adresses, les lecteurs pourront les essayer plus facilement. Sauf si vous soumettez un problème purement théorique, auquel cas vous devez utiliser des adresses RFC 1918, donnez les vraies adresses. • Donnez le maximum de détails sur votre environnement : système d’exploitation utilisé, version, type de réseau (Ethernet ? FDDI ?). N’oubliez pas que vos lecteurs ne sont pas dans votre tête : pour vous, il est évident que votre machine 192.168.7.34 est un routeur Extreme mais les autres ne le savent pas. • Faites des schémas. Un bon croquis vaut souvent mieux que bien des discours. Comme il n’existe pas de norme largement répandue pour transmettre des dessins8, le mieux est d’utiliser l’ASCII art. Avec le mode picture (http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Picture) de l’éditeur Emacs, c’est assez facile. En voici un exemple, avec indication des noms des routeurs (ce qui facilite beaucoup les discussions ultérieures) et des interfaces..

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *