Przekierowywanie ruchu z różnych łączy z tego samego BGP AS


19

Mam dwie witryny, A i B, w BGP AS 65000, a trzecią witrynę, C, w AS 65001. Wszystkie trzy witryny mają łączność za pośrednictwem przewoźnika MPLS i istnieje wewnętrzna łączność między witrynami A i B. Próbuję wpłynąć na BGP tak, że ruch z witryny A do witryny C będzie kierowany przez łącze MPLS strony A, a ruch z witryny B do witryny C będzie kierowany przez łącze MPLS strony B. Topologia jest podobna do opisanej w tym przykładzie .

AS 65000 i 65001

Routery brzegowe w lokalizacjach A i B będą widzieć swoje własne łącze MPLS jako najlepszą ścieżkę, ponieważ trasy EBGP są lepsze niż trasy IBGP. Jednak routery znajdujące się dalej w AS 65000 będą preferowały jedno lub drugie łącze. Moim celem jest wymuszenie na wszystkich routerach w obu witrynach wyboru najbliższego łącza. (Obecnie nie jestem w stanie podzielić dwóch witryn na osobne AS).

Czy istnieje rozsądny sposób, aby to osiągnąć, jednocześnie umożliwiając łączenie awaryjne z lokacją C między linkami lokacji A i B.

Edycja: Powinienem zauważyć, że nie stosuje się tutaj IGP. W rzeczywistości sieci w każdej lokalizacji istnieją w VRF jako część znacznie, znacznie większej sieci. Jako takie, każde rozwiązanie musi być całkowicie oparte na BGP.


Hej, Jeremy - są na to dwa dobre rozwiązania, ale nie mogę bezpiecznie założyć, że masz kontrolę administracyjną nad IGP. Czy możesz to wyjaśnić?
John Jensen

W tym scenariuszu nie ma IGP. Jest to właściwie reprezentacja tylko jednego VRF w znacznie większej sieci; szczegóły, które pominąłem dla jasności.
Jeremy Stretch

Tego się bałem. :-) Dzięki za wytłumaczenie.
John Jensen

Myślę, że czegoś tu brakuje. Więc obaj zakładamy, że istnieje łącze (być może wiele z powodu wielu wewnętrznych routerów?) Między A i B w AS 65000? Ponadto, co widzisz, że nie jest optymalne? Czy a / lub wiele routerów bliższych A (mówiąc topologicznie) wysyła ruch przez B, aby dostać się do C?
jwbensley

@javano problem polega na tym, że zarówno A, jak i B (routery brzegowe) są peerami iBGP w tym samym ASN, dlatego też każdy prefiks (y) wyuczony z C na obu będzie miał 2 ścieżki w RIB na obu polach, a ścieżka eBGP będzie zawsze wygrywa, więc ruch wychodzący z AS6500 do AS65001 utknie w jednym łączu.
John Jensen

Odpowiedzi:


12

Czy istnieje jasna definicja między ośrodkiem A a ośrodkiem B?

Jeśli tak, to chciałbym zdefiniować zasady na routerach brzegowych, aby wstrzyknąć społeczność podczas odbierania tras od przewoźnika MPLS.

Po umieszczeniu tej społeczności w prefiksach (powiedzmy 100: 1 dla strony A i 100: 2 dla strony B), możesz następnie dodać politykę do każdego routera strony A, aby zwiększyć LP dla dowolnych tras ze społecznością 100: 1 i podobnie jest w przypadku witryny B ze społecznością 100: 2.

To rozwiązanie byłoby zgodne z wymogiem używania tylko BGP, a także byłoby wystarczająco elastyczne, aby B nadal mógł korzystać z łącza wysyłającego A, jeśli utraciłoby własne łącze wysyłające do przewoźnika.


1
Jest to prawdopodobnie najlepsza droga, ale jeśli Jeremy ogłasza jedno podsumowanie z C, będzie musiał podzielić je na części, aby działało to skutecznie.
John Jensen

Myślę, że to ścieżka, którą zamierzam obrać. Będę musiał to jutro wypróbować i sprawdzić, czy gdzieś mnie złapie.
Jeremy Stretch

@JohnJensen nie powinno być takiej potrzeby, ponieważ zarówno strona A, jak i B otrzymają te same prefiksy od przewoźnika, a zatem mogą wprowadzać modyfikacje do własnych prefiksów „stron” z wyłącznikiem remisu na płycie LP.
David Rothera

1
Jako dalsza uwaga, gdy zastanowimy się nad tym bardziej, może być lepiej zastosować lokalnie znaczący atrybut, taki jak waga, niż przechodni, jak LP.
David Rothera

1
@DavidRothera Jeśli istnieje wiele prefiksów ogłaszanych z C, to miałbyś rację - istnieje możliwość, że może istnieć tylko jeden prefiks pochodzący z C, w takim przypadku nie jestem całkowicie pewien, czy ustawienie localpref ze społecznością zrobiłoby różnicę w rozwiązaniu problemu Jeremy'ego, ponieważ istnieje jeden prefiks z opcją dwóch społeczności i dwóch różnych wartości LP, wyższy LP będzie preferowany, a ruch będzie nadal przypinany do jednego łącza. Zgadza się jednak, że użycie atrybutu istotnego lokalnie może być tutaj lepsze.
John Jensen

6

wprowadź opis zdjęcia tutajKiedy zrobiłem coś podobnego, nie korzystałem z eBGP między routerami. Miałem router mówiący BGP wysyłał tylko domyślną trasę do routerów Strony A i Strony B za pośrednictwem OSPF, a następnie redystrybuował trasy OSPF do BGP. Na łączu między dwiema stronami zastosowałem koszt OSPF.

Dzięki temu witryna A może mieć trasy do swoich sieci, sieci witryny B i domyślną trasę wydostania się z witryny A (koszt OSPF utrzymuje domyślną trasę z witryny B jako dodatkową opcję w przypadku utraty łącza do witryny A). Witryna A będzie rozmawiać bezpośrednio z witryną B, nie używając MPLS, chyba że wystąpi awaria łącza między stronami.

Również koszty OSPF przekładają się na BGP MED podczas redystrybucji, co powoduje, że sieć MPLS przewoźnika woli przesyłać ruch z Witryny A bezpośrednio do Witryny A, ale także w razie potrzeby korzystać z Witryny B, aby dostać się do Witryny A.


3

Czuję, że brakuje niektórych informacji. Dlaczego routery brzegowe nie preferują już najlepszej ścieżki?

Czy masz iBGP z pełną siatką w 65000? A może używasz odbicia trasy?

Jeśli masz iBGP z pełną siatką, to każdy router krawędziowy uczy się trasy od obu [AB] i będzie uciekał się do porównania kosztu IGP do następnego przeskoku, co powinno przełożyć się na najbliższą ramkę.

Jeśli istnieje odbicie trasy, będzie ono odzwierciedlać tylko najlepszą trasę z własnego POV, co może usunąć przekazywanie najlepszej ścieżki. Można to naprawić, dodając kolejną RR, która wybierze inną trasę jako najlepszą, a następnie pola krawędzi ponownie mogą wybrać najlepszą trasę. Jeśli ustalenie RR nie jest możliwe, to tak. Możesz dodać ten sam adres IPV4 w obu pętlach zwrotnych tras granicznych, a kiedy routery graniczne reklamują prefiks RR, ustawią następny przeskok na ten adres anycast. Następnie, nawet po refleksji, podążasz za IGP do najbliższej granicy.


2

Jeśli masz kontrolę nad IGP:

To, co zrobiliśmy, to mieć tylko routery eBGP w siatce iBGP. Reszta naszych wewnętrznych routerów to routery OSPF. Redystrybuujemy z BGP do OSPF w ramach każdego AS. Nasza konfiguracja różni się nieco od twojej, ale to powinno pozwolić metryki kosztu OSPF wpływać na ruch ścieżki, kierując go do najbliższego routera eBGP.

Jeśli nie masz kontroli nad IGP:

Być może możesz zastosować zasady importu do routerów wewnętrznych, aby statycznie preferowały ogłoszenia trasy żądanego wyjścia routera eBGP. Na przykład, jeśli iBGP zawiera dwa ogłoszenia dla danego prefiksu (jeden z routera ze strony A i jeden z routera ze strony B, ale tylko jeden jest zainstalowany w RIB), możesz lokalnie wstępnie ustawić żądane ogłoszenie, gdy tylko przyjdzie w środku. Musiałbym to sprawdzić, ale nie rozumiem, dlaczego to nie zadziała.


Tak, to byłby najlepszy sposób, jaki sobie wyobrażam, zakładając, że masz możliwość korzystania z IGP. Niestety to nie moja sprawa. :( Zaktualizowałem pytanie, aby uwzględnić ten zaniedbany szczegół.
Jeremy Stretch

Podoba mi się odpowiedź Davida Rothera, ponieważ jest taka sama jak moja, ale dodaje szczegóły korzystania ze społeczności :)
netdad
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.