Multipath BGP z różnymi ASN wykonalnymi dla sieci produkcyjnych?

15

w Cisco (z jakiegoś powodu to polecenie jest ukryte)

#bgp bestpath as-path multipath-relax

Domyślne zachowanie BGP instaluje tylko trasy z dokładnie tym samym AS_PATH w RIB. Przy relaksacji wielu ścieżek AS_PATH musi mieć tylko tę samą długość.

Jakie problemy może potencjalnie powodować? Dlaczego nie jest używany częściej?

Czy jako dostawca usług tranzytowych ta funkcja komplikuje rozwiązywanie problemów (myślę o skargach użytkowników końcowych dotyczących wydajności sieci)? Czy utrudnia to rozpoznanie określonego ruchu na trasie w danym momencie? Czy jest coś jeszcze, co może pomóc w rozwiązywaniu problemów. Nie jestem pewien co do skalowalności i kosztów NetFlow w sieci SP.

sdaffa23fdsf
źródło
1
Poinstruowałem kilku klientów, aby z niego korzystali, nie słyszałem o żadnych problemach. draft-lapukhov-bgp-routing-large-dc-05 mocno polega na tej funkcji
ytti
Szukam podobnej funkcji w Juniper JunOS ... Czy istnieje? networkengineering.stackexchange.com/questions/6735/…
Everton
Czy jakaś odpowiedź ci pomogła? Jeśli tak, powinieneś zaakceptować odpowiedź, aby pytanie nie wyskakiwało wiecznie, szukając odpowiedzi. Alternatywnie możesz podać własną odpowiedź i ją zaakceptować.
Ron Maupin

Odpowiedzi:

15

bgp bestpath as-path multipath-relaxzostał wprowadzony przez CSCea19918. Zwykle równoważenie obciążenia eBGP wymaga, aby trasy kandydujące były ścieżkami o jednakowych kosztach; tj. identyczne atrybuty BGP:

  • ta sama waga
  • ten sam lokalny pref
  • ta sama ścieżka AS (zarówno numery AS, jak i długość ścieżki AS)
  • to samo pochodzenie
  • ten sam MED
  • inny następny skok

Jak wspomniałeś, to polecenie rozluźnia to samo wymaganie ścieżki AS, więc każda kandydująca ścieżka AS eBGP o tej samej długości ścieżki AS może być używana do równoważenia obciążenia eBGP (nie spowoduje to równoważenia obciążenia między ścieżkami eBGP i iBGP). Jeśli korzystasz z protokołu BGP między wieloma dostawcami usług internetowych i szukasz lepszego równoważenia obciążenia wyjściowego między połączeniami nadrzędnymi, może to ci pomóc.

Jakie problemy może potencjalnie powodować?

Nie ma większego niebezpieczeństwa, o ile jesteś klientem korporacyjnym, który nie świadczy usługi tranzytu do innego ASN; dla dostawcy usług tranzytowych może to być całkowicie bezpieczne, ale nie jestem pewien, czy nie ma pętli routingu, jeśli tranzytowy ASN korzysta z tej funkcji . Na początku myślałem, że łatwo będzie zapętlić tranzytowe sprawy ASN, po głębszym zastanowieniu nie mogę znaleźć prawdziwego problemu.

Dlaczego jest rzadko używany?

Dobre pytanie, istnieje już od co najmniej 2005 roku.

Mike Pennington
źródło
1
Czy możesz wyjaśnić, w jaki sposób może to powodować pętle z #bgp bestpath as-path multiath-relax (nie #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
źródło
Dzięki za przykład. Czy masz na myśli, że R3 wybiera R4 jako najlepszą ścieżkę dla 10/8, R5 przekazuje część ruchu do 10/8 z powrotem do AS3 w R1? Dlaczego jest to spowodowane relaksacją wielu ścieżek? Bez funkcji relaksacji wielu ścieżek pętla R2 - R6 - R5-R1 może nadal istnieć, jeśli nie ma odpowiedniego filtrowania danych wychodzących (lub zwykłego 10/8 do null0 w początkowym AS). Wydaje mi się, że problemem jest porwanie BGP. Czy rozumiem to źle?
sdaffa23fdsf
Nie. Mam na myśli: (a) R3 ma własną zewnętrzną najlepszą ścieżkę, (b) R1 wybiera R3 jako najlepszą, ale ze względu na fizyczną łączność musi wysyłać ruch w kierunku R2, aby osiągnąć R3, (c) R2 wybiera zewnętrzna ścieżka (otrzymana z R6) najlepiej. Jest to związane z relaksacją wielu ścieżek, ponieważ R5 wybiera ścieżkę z AS3 do przekazywania wielu ścieżek, której nie ujawnia. Dlatego technika zapobiegania pętli ASPATH zawodzi w AS3.
Pradosh Mohapatra
Nadal nie rozumiem, jak można temu zapobiec bez relaksacji wielu ścieżek. R1 wysyła ruch do 10/8 przez R2, a R2 wybiera R6 jako wyjście (waga), R5 może wybrać R1 jako najlepszy dla 10/8, nawet bez relaksacji wielościeżkowej i spowodować pętlę. Zapobieganie pętli ASPATH nie może zapobiec pętlom spowodowanym przez preferowanie zewnętrznego punktu wyjścia dla sieci wewnętrznej. Jeśli R1 wybierze R5, R2 wybierze R6 jako najlepszy dla 10/8, powstanie pętla niezależnie od tego, nie?
sdaffa23fdsf
Nie jestem pewien, jak by to była pętla. R1 wybiera R5 jako najlepszy => oznacza, że ​​R5 wybiera R4 jako wyjście dla ruchu (w przeciwnym razie wykryłaby się pętla AS_PATH). Zatem ścieżki przepływu ruchu będą następujące: R1-> R5-> R4 lub R2-> R6-> R5-> R4 lub R5-> R4 lub R3.
Pradosh Mohapatra