Blog CCIE

« Ce qu'on obtient en atteignant nos objectifs n'est pas aussi important que ce que l'on devient en les atteignant. » - Zig Ziglar

BGP Backdoor

without comments

Bonjour à tous,

Un petit article court aujourd’hui pour parler d’une fonctionalité assez utile, BGP Backdoor.

Introduction

L’idée est de faire préférer un chemin plus optimal pour le transit des données au lieu de la classique distance administrative pour installer la route dans la table de routage du routeur.

Pour mettre en image tout cela, prenons cette topologie.

Topologie

Plusieurs informations sont à prendre en compte pour bien interpréter le schéma :

  • Les routeurs ont comme d’habitude un LAN respectif et deux protocoles de routage configurés, BGP et EIGRP. L’intégralités des routes connectées sont échangées sur les deux protocoles de façon simultanée.
  • Les routeurs BGP sont configurés dans leur AS respectif et sont donc entre-eux des voisins eBGP, à l’exception de R1 <-> R2 qui maintiennent uniquement une adjacence EIGRP. Cela a son importance pour la suite.

Si vous vous souvenez, avant d’installer une route dans sa table de routage, le routeur va élire ce qu’il considère comme la meilleure route avec notamment le critère de la distance administrative. C’est ce critère qui va nous intérésser ici.

Rappelez-vous que la distance administrative par défaut des routes internes EIGRP est de 90. Les routes apprises par eBGP ont elles une distance administrative de 20.

Si deux routes identiques se présentent à l’élection, une en EIGRP interne et l’autre en eBGP, vous avez sûrement deviné que c’est la route eBGP qui sera installée dans la table de routage.

Pour rappel, plus la distance administrative est faible, plus le routeur à tendance à lui faire confiance et donc à la préférer par rapport à une autre.

Etude du data path

Une fois que vous avez ce détail important à l’esprit, essayez maintenant de visualiser le chemin que pourra emprunter un paquet portant l’IP source 192.168.1.254 et l’adresse de destination 192.168.2.254.

Si vous avez suivi, vous constaterez que même si le chemin optimal peut vous sembler être le lien série direct entre R1 et R2, ce n’est pas le chemin que va emprunter cette communication. Vérifions avec un traceroute!

R1#trace 192.168.2.254 source lo1
1 192.168.4.10 28 msec 60 msec 56 msec
2 192.168.4.5 28 msec * 52 msec

Si on veut aller plus loin et voir pourquoi nous prenons ce chemin, rendez-vous dans la table de routage.

R1#sh ip route
<output omitted>
B 192.168.2.0/24 [20/0] via 3.3.3.3, 00:04:45
B 192.168.3.0/24 [20/0] via 3.3.3.3, 00:26:07

Vous voyez que les routes installées dans la table de routage sont les routes eBGP.

Solutions

Comment résoudre ce problème? 2 solutions viennent à l’esprit :

  • La modification de l’AD d’EIGRP à 19 pour qu’elle soit « supérieure » aux routes eBGP.

Toutefois, cette solution est à éviter.
Elle impacte le process EIGRP de façon locale en entier et peut provoquer des effets de bords malencontreux, surtout si vous faites de la redistribution mutuelle EIGRP <-> BGP.

  • Utiliser les backdoor BGP

Pour la deuxième solution, il suffit de modifier la déclaration d’injection du réseau dans la configuration du routeur qui advertise le réseau de destination.

Par exemple, pour 192.168.2.0/24, advertisé par R2:

router bgp 200 
network 192.168.2.0 mask 255.255.255.0 backdoor
end
! Reset le process BGP pour prendre en compte les modifications
! Fais tomber toutes les adjacences et routes BGP.
! Ne pas utiliser en production
clear ip bgp *

Après l’application de la configuration, regardons l’impact sur R1:

R1#trace 192.168.2.254 source lo1
1 192.168.4.2 40 msec * 44 msec

Vous constatez qu’on passe bien maintenant directement par le lien série connectant R1 à R2. On peut le vérifier à la visualisation de la table de routage qui nous montre que la route EIGRP à bien été installée.

L’impact de la commande backdoor est flagrant. Mais que fait cette commande précisément? En réalité, elle fait changer la distance administrative de la route configurée avec la directive network .. backdoor en lui assignant la valeur de 200, au même titre que d’autres routes iBGP.

De plus, il faut bien comprendre que cette commande empêche le routeur d’advertiser la route via les updates BGP. Par conséquence, il laisse la place à la route « interne » EIGRP, en considérant qu’après l’application de la configuration, la nouvelle AD d’EIGRP 90 est bien inférieure à la nouvelle distance administrative iBGP de la route.

R1#sh ip route
D 192.168.2.0/24 [90/2297856] via 192.168.4.2, 00:11:51, Serial1/1 
B 192.168.3.0/24 [20/0] via 3.3.3.3, 00:03:15

Mais il reste encore un problème reste à résoudre, saurez-vous le trouver?

Communication asymétrique

Observons le chemin retour du paquet envoyé par R1 avec un traceroute.

R2#trace 192.168.1.254 source lo1
1 192.168.4.6 28 msec 32 msec 8 msec
2 192.168.4.9 32 msec * 52 msec

Vous l’aurez deviné, à cause de la configuration uni-directionnelle de votre backdoor,
vous avez crée une situation où le traffic est devenu asymétrique. C’est-à-dire que le chemin de communication n’est pas le même pour l’aller et le retour des paquets.

Il est donc recommandé d’éxécuter la même opération dans l’autre sens, à savoir dans
notre cas sur R1 :

router bgp 100 
network 192.168.1.0 mask 255.255.255.0 backdoor
end
! Reset le process BGP pour prendre en compte les modifications
! Fais tomber toutes les adjacences et routes BGP.
! Ne pas utiliser en production
clear ip bgp *

Vérifions maintenant!

R2#trace 192.168.1.254 source lo1
1 192.168.4.1 36 msec * 32 msec

Voilà, grâce à cette fonctionnalité, on permet aux routeurs de privilégier les chemins les plus optimaux sans toucher à l’administrative distance des protocoles.

Les fichiers de configuration sont disponibles ici.

Source : http://www.cisco.com/en/US/partner/docs/ios-xml/ios/iproute_bgp/configuration/12-4t/irg-basic-net.html#GUID-D6ADE09F-4978-4996-821E-809764213BE6

— Julien

Written by Julien BERTON

novembre 5th, 2012 at 4:03 pm

Posted in Lab. time

Tagged with , ,

Leave a Reply