BGP Multi Exit Discriminator (MED) Attribute

Il est possible en BGP (Border Gateway Protocol), via l''attribut Multi-Exit Discriminator, d'indiquer à un AS un lien à préférer. La MED est un coût numérique codé sur 32 bits, il peut provenir d'un protocole de routage interne.


L'attribut MED n'entre en compte dans la sélection du meilleur chemin qu'en iBGP, si l'AS voisin est identique. En réalité, il est  cependant possible de comparer les MED même entre AS voisins différents à l'aide de la commande bgp always-compare-med. Pour plus d'information, lire l'article Quelques commandes BGP...

 

La MED permet de spécifier (donc appliqué généralement dans une route-map en OUT) quel chemin le voisin BGP doit préférer pour atteindre les préfixes qu'on lui a appris (donc impacte les flux entrants).

Dans le cas très courant, où un équipement FAI (FAI1) fait face à deux équipements WAN clients (R1 et R2), il est possible de configurer les sessions BGP de sortes à ce que l'équipement FAI1 fasse transiter les flux via R1 dans le cas nominal (la liaison vers R2 peut être moins efficace). Cependant, la plupart du temps il n'est pas possible de prendre la main sur l'équipement FAI1, le paramétrage doit donc se faire sur R1 et R2 exclusivement (pour ce qui est de la préférence d'un des 2 liens).

Pour cela, monter des sessions BGP entre FAI1 qui est dans l'AS 100 et R1 et R2 qui sont dans l'AS 200 (la commande bgp always-compare-med est à utiliser).

Sur la première liaison, R1 et FAI1 portent respectivement les adresses IP 10.1.1.1 et 10.1.1.2.
Sur la seconde liaison, R2 et FAI1 portent respectivement les adresses IP 20.1.1.1 et 20.1.1.2.

# Configuration sur R1 :
router bgp 200
 bgp router-id 1.1.1.1
 bgp log-neighbor-changes

 neighbor 10.1.1.2 remote-as 100
 neighbor 10.1.1.2 description Liaison 1 vers FAI

# Configuration sur R2 :
router bgp 200
 bgp router-id 2.2.2.2
 bgp log-neighbor-changes

 neighbor 20.1.1.2 remote-as 100
 neighbor 20.1.1.2 description Liaison 2 vers FAI

 

En plus de cette configuration des voisins BGP, il est nécessaire de rajouter une route-map spécifiant le paramétrage de la MED, la plus petite MED étant privilégiée, il est possible de mettre 30 aux annonces que R1 fait et 40 à celles de R2.

# Configuration sur R1 :
router bgp 200
 bgp router-id 1.1.1.1
 bgp log-neighbor-changes

 neighbor 10.1.1.2 remote-as 100
 neighbor 10.1.1.2 description Liaison 1 vers FAI

 neighbor 10.1.1.2 route-map Update-to-FAI-primary out

exit

!
route-map Update-to-FAI-primary permit 10
 set metric 30
!

# Configuration sur R2 :
router bgp 200
 bgp router-id 2.2.2.2
 bgp log-neighbor-changes

 neighbor 20.1.1.2 remote-as 100
 neighbor 20.1.1.2 description Liaison 2 vers FAI

 neighbor 20.1.1.2 route-map Update-to-FAI-secondary out

exit

!
route-map Update-to-FAI-secondary permit 10
 set metric 40
!

Ainsi, quand FAI1 reçoit les préfixes en provenance de R1 et R2, il préfère passer par R1 plutôt que R2.

Si la liaison vers R1 tombe, celle par R2 prend naturellement le relai.

Informations supplémentaires