Home » Comment ça marche, Internet

Comment c’est dedans BGP (5)

17 décembre 2010 2 commentaires
tags : , , ,
Download PDF

Crédit photo : LeSimonPix

Je vous parlais dernièrement d’OSPF et de ses interactions avec BGP. Vous avez eu aussi quelques idées de comment marchent les connexions avec les fournisseurs de transit et les points de peering.

Tout ce beau monde constitue une table de routage unique dans chacun de vos routeurs. Il devient, une fois le premier routeur passé, difficile de retrouver ses petits, de savoir si telle route vient d’un point d’échange ou d’un transit et lequel.

Pour simplifier, imaginez que vous vouliez dépanner un partenaire en lui annonçant toutes les routes que vous apprenez depuis les points d’échange sur lesquels vous n’avez qu’un coût forfaitaire non dépendant de la consommation. En gros, lui faire un cadeau qui ne vous coûte pas grand chose de plus que ce que vous payez déjà.

Le premier réflexe sera de configurer le lien BGP avec lui en disant « je lui annonce tel réseau » en sachant avec qui on a un peering, on doit  s’en sortir à peu près. Ceci se fait au moyen d’une route-map en indiquant « je ne veux sélectionner que les routes qui viennent de tel AS ».

L’ennui, c’est que si vous perdez le peering avec cet AS, vous continuerez à l’annoncer à votre partenaire BGP bien que le trafic qui en résulte se retrouve en transit. Pour contrer ce problème, vous avez la possibilité, dans cette même route-map, de préciser de n’annoncer que les routes qui ont un as-path prédéfini.

L’as-path est l’information accompagnant chaque route qui permet de connaitre la liste des AS qui sera traversée pour aller jusqu’à la destination. Si on configure une route-map avec un as-path ne contenant que l’AS du voisin de peering, on sera certain de ne le réannoncer que si on a un lien BGP direct établi avec lui.

Reste qu’il faut se palucher la liste des AS avec qui on a un peering et la tenir à jour. Pour éviter ça (et avoir plein d’autres possibilités que vous n’imaginez même pas), on a inventé les communautés.

Il s’agit de petites étiquettes numérotées qu’on peut associer à une route. Elles sont généralement constituées de deux chiffres dont le premier est l’AS qui a installé la communauté.

On peut les associer à peu près n’importe quand à une route. Par exemple, on peut dire à notre routeur favori « installe l’étiquette 13223:3000 à toutes les routes qui rentrent par le point d’échange bidule ». Du coup, de l’autre coté du réseau, lorsqu’on voudra n’annoncer que les routes de ce point d’échange à quelqu’un, on dira « ne lui envoie que les routes qui portent l’étiquette 13223:3000 ».

On peut même faire encore mieux en affectant une étiquette qui veut dire « ceci est un point d’échange » et une autre plus précise pour savoir lequel c’est. On sera ainsi capable de faire ressortir l’ensemble des routes apprises sur des points d’échange avec une seule communauté mais de sélectionner plus précisément celles d’un point d’échange particulier.

Dans l’autre sens, on peut affecter une communauté aux routes entrantes de chaque client pour les manipuler plus loin. Par exemple, si votre réseau dispose de 3 fournisseurs de transits dont un très cher et très spécifique, si vous avez un client qui vous paie une misère, vous voudrez probablement éviter que son trafic n’entre ou ne sorte par le fournisseur de transit cher. Vous pourrez donc filtrer les routes du transitaire cher à l’entrée chez le client et filtrer les routes du client sur le lien avec le transitaire cher.

Au point où nous en sommes, soit vous avez définitivement décroché, soit vous avez mal à la tête, soit vous avez relevé un point sur lequel je me suis gaufré comme une otarie bourrée à la bière.

Bon weekend quand même !

2 Comments »

  • Arnaud Launay said:

    Rien à redire et pas de mal de crâne, juste la suggestion de mettre les exemples de bouts de configurations qui vont bien :)

  • Bruno (author) said:

    J’essaierai, quand j’aurais fini de raconter ma vie :)

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.


3 − un =