Multipath BGP avec différents ASN réalisables pour les réseaux de production?

15

sur Cisco (cette commande est masquée pour une raison quelconque)

#bgp bestpath as-path multipath-relax

Le comportement BGP par défaut installe uniquement les routes avec exactement le même AS_PATH dans RIB. Avec la relaxation par trajets multiples, l'AS_PATH n'a besoin que d'être de la même longueur.

Quels problèmes peuvent-ils potentiellement causer? Pourquoi n'est-il pas utilisé plus souvent?

En tant que fournisseur de transport en commun, cette fonctionnalité complique-t-elle le dépannage (je pense aux plaintes des utilisateurs finaux concernant les performances du réseau)? Est-il plus difficile de connaître le chemin emprunté par un trafic spécifique à un moment donné? Y a-t-il autre chose qui peut aider au dépannage? Je ne suis pas sûr de l'évolutivité et du coût de NetFlow dans le réseau SP.

sdaffa23fdsf
la source
1
J'ai demandé à plusieurs clients de l'utiliser, je n'ai entendu parler d'aucun problème. draft-lapukhov-bgp-routing-large-dc-05 s'appuie fortement sur cette fonctionnalité
ytti
Je recherche une fonctionnalité similaire dans Juniper JunOS ... Y en a-t-il? networkengineering.stackexchange.com/questions/6735/…
Everton
Une réponse vous a-t-elle aidé? Si c'est le cas, vous devez accepter la réponse afin que la question ne continue pas d'apparaître indéfiniment, à la recherche d'une réponse. Alternativement, vous pouvez fournir votre propre réponse et l'accepter.
Ron Maupin

Réponses:

15

bgp bestpath as-path multipath-relaxa été introduit par CSCea19918. Normalement, l'équilibrage de charge eBGP requiert que les itinéraires candidats soient des chemins à coût égal; c'est-à-dire des attributs BGP identiques:

  • même poids
  • même Local-Pref
  • même AS-Path (à la fois les numéros AS et la longueur du chemin AS)
  • même origine
  • même MED
  • différent saut suivant

Comme vous l'avez mentionné, cette commande assouplit la même exigence AS-Path pour que tout candidat AS eBGP avec la même longueur de chemin AS puisse être utilisé pour l'équilibrage de charge eBGP (cela n'équilibrera pas la charge entre les chemins eBGP et iBGP). Si vous exécutez BGP entre plusieurs FAI et que vous recherchez un meilleur équilibrage de charge de sortie entre vos connexions en amont, cela peut vous aider.

Quels problèmes peuvent-ils potentiellement causer?

Il n'y a pas beaucoup de danger tant que vous êtes un client d'entreprise qui ne fournit pas de service de transit à un autre ASN; pour un fournisseur de transit, cela peut être parfaitement sûr, mais je ne peux pas être sûr qu'il n'y a pas de boucles de routage si un ASN de transit utilise cette fonctionnalité . Au début, je pensais qu'il y aurait facilement une boucle dans les cas de transit ASN, après réflexion, je ne trouve pas de vrai problème.

Pourquoi est-il rarement utilisé?

Bonne question, il existe depuis au moins 2005.

Mike Pennington
la source
1
Pourriez-vous s'il vous plaît expliquer comment cela peut provoquer des boucles avec #bgp bestpath as-path multipath-relax (pas #bgp bestpath as-path ignore)?
sdaffa23fdsf
0
The   basic  issue   is   that  the   BGP   speaker  configured   with
"multipath-relax"   gets  into   a  control   plane  <->   data  plane
inconsistency; i.e.  it advertises  only the  best path,  but installs
multiple paths in the forwarding  that have different ASPATHs than the
best. This breaks the basic tool BGP has to detect loops - ASPATH loop
check.

A (distorted) scenario below. I am sure you can come up with
a better example with a bit more time at hand.

            ...............
            : R4  AS1 (10/8)
           /:..............
     ..../......
     :  R5 AS2
     :....\.....
       /   \  ...............
     /      --:--R1
  R6 AS4      :    \    AS3
     \--------:--- R2
              :    /
              : R3 (10/8)
              :..............

In this example,
- R3 in AS3 and R4 in AS1 announce a prefix 10/8. R5 in AS2 receives
  the prefix from R1(AS3) and R4(AS1).
- AS2 is configured with 'multipath-relax' and chooses both paths
  for multipath forwarding, though it selects AS1's path as best.
- R5 advertises the prefix with AS_PATH "2 1" to R6, and R6 in turn
   to R2.
- Because of some specific policy, it is possible that R2(AS3)
  chooses R6's path as best. If it happens, there is a loop.
  Note that R1-R2-R3 represents the physical connectivity of
  the routers in AS3.
Pradosh Mohapatra
la source
Merci pour l'exemple. Voulez-vous dire que R3 sélectionne R4 comme meilleur chemin pour 10/8, R5 achemine une partie du trafic vers 10/8 vers AS3 à R1? Pourquoi cela est-il causé par la détente par trajets multiples? Sans relâchement par trajets multiples, la boucle R2 - R6 - R5 -R1 peut toujours exister s'il n'y a pas de filtrage sortant approprié (ou simple 10/8 à null0 au niveau de l'AS d'origine). Il me semble que le problème ici est le détournement de BGP. Est-ce que je comprends mal?
sdaffa23fdsf
Non. Ce que je veux dire est: (a) R3 a son propre meilleur chemin externe, (b) R1 choisit R3 comme le meilleur, mais en raison de la connectivité physique, doit envoyer du trafic vers R2 pour atteindre R3, (c) R2 sélectionne le chemin externe (reçu de R6) comme meilleur. Ceci est lié à la relaxation par trajets multiples, car R5 choisit un chemin depuis AS3 pour la transmission par trajets multiples qu'il ne divulgue pas. Ainsi, la technique de prévention de boucle ASPATH échoue dans AS3.
Pradosh Mohapatra
Je ne comprends toujours pas comment cela pourrait être évité sans relaxation par trajets multiples. R1 envoie le trafic vers 10/8 via R2 et R2 choisit R6 comme sortie (poids), R5 peut choisir R1 comme meilleur pour 10/8 même sans relâchement par trajets multiples et provoquer une boucle. La prévention de boucle ASPATH ne peut pas empêcher les boucles causées par la préférence d'un point de sortie externe pour le réseau interne. Si R1 choisit R5, R2 choisit R6 comme meilleur pour 10/8, la boucle est formée malgré tout, non?
sdaffa23fdsf
Je ne sais pas comment ce serait une boucle. R1 choisit R5 comme meilleur => implique que R5 choisit R4 comme sortie pour le trafic (sinon, une boucle AS_PATH aurait été détectée). Ainsi, les trajets de flux de trafic seront: R1-> R5-> R4 ou R2-> R6-> R5-> R4 ou R5-> R4 ou R3.
Pradosh Mohapatra