BGP : Local-AS, No-Prepend et Replace-AS

 

 

Dans ce Lab « simple » on va explorer la fonctionnalité de « local-as » et ses options « no-prepend » et « replace-as » dans BGP.

Petit rappel rapide :

-   Contrairement à IBGP, le EBGP « prepend » ou annonce toujours l’attribut obligatoire « AS-PATH » dans les Updates BGP vers les Neighbors des autres AS.

-   A part qu’elle soit une métrique de BGP, l’AS-PATH est très utile pour la détection des Loops (tout Update BGP reçu avec un même AS Number présent est Dropé).

Ce Lab BGP est composé des 3 routeurs avec 3 AS différents : R1 dans l’AS 100, R2 dans l’AS 65210 et R3 dans l’AS 300. Trois interfaces Loopbacks sont déclarées et annoncées dans le BGP au niveau des 3 routeurs : 1.1.1.1 (R1), 2.2.2.2 (R2) et 3.3.3.3 (R3).

L’utilité de la fonctionnalité « local-as » dans BGP est de faire appartenir un routeur à un AS « virtuel » non réellement présent dans la topologie ; cela est utile lors des migrations lorsqu'on veut cacher l'AS réel. Plus simplement, un routeur présent dans un AS « X » s’annonce aux autres voisins comme étant présent dans un AS « Y ».

 

Prenons les configs suivantes pour les trois équipements :

On Remarque bien dans ce qui suit que le voisinage entre R1 et R2 ne s’est pas établi vu que R2 est réellement dans l’AS 65210 alors qu’on veut prétendre qu’il est dans l’AS 200 tel que R1 est configuré.

Initialement, l’output des commandes « sh bgp sum » et « sh bgp ipv4 unicast » sur les 3 équipements est le suivant :

 

On applique donc le correctif : R2 prétend qu’il est dans l’AS 200 avec la commande « local-as ».

Par conséquent, R1 va supposer que R2 est bien dans l’AS 200 alors que réellement ce n’est pas le cas (Noter que la session BGP est bien montée entre R2 et R3 avec les AS 65210 et 300) : 

 

La session BGP monte bien entre R1 et R2 et les résultats des Outputs précédents sont les suivants :

On voit clairement que l’AS 200 est annoncé (prepended) vers R1.

Malgré que le BGP est UP avec les préfixes reçus, on remarque que l’AS réel 65210 et l’AS fictif annoncé 200 sont tous les deux conservés dans le paramètre AS-PATH.

 

Afin de supprimer cette fonctionnalité -qui porte confusion et néfaste pour certains-, on peut bloquer la propagation de l’AS fictif crée en utilisant l’option « no-prepend ».

La commande est la suivante :

 

On peut imaginer les résultats maintenant : Pas de « prepending » de l’AS 200 crée vers R1 :

 

Voilà, tout ce qui sort par R2 vers R1 ne contient pas l’AS 200. Pour certains, c’est une faille aussi, on n’est pas arrivé au but final :

On veut tout d’abord que tous les BGPs sont UP (c’est OK), et on veut surtout que R1 ne voit que l’AS 200 depuis R2 et que cet AS est non visible de la part de R3 (R3 ne sait que 65210).

Il suffit alors de « remplacer » l’AS réel « prepended » par celui fictif 200 (toujours en sortie depuis R2 vers R1 uniquement).

Config :

 

Les résultats finaux sont les suivants :

 

Recap :

Local-as : je suis dans un autre AS, virtuel.

No-prepend : n’annonce pas cet AS fictif dans l’AS-PATH des Updates BGP (car par défaut les deux AS réel et fictif sont prepended).

Replace-as : permet de remplacer l’AS réel annoncé vers un neighbor par celui virtuel afin de cacher l’AS réel à ce neighbor là.

Ajouter un commentaire

Commentaires

Il n'y a pas encore de commentaire.