AS-path – atrybut BGP
Dzisiaj zajmiemy się jednym z atrybutów BGP i jego wpływem na wybór ścieżki przez algorytm BGP – AS-PATH.
Tomasz Mikołajek
Inżynier sieciowy lubiący dzielić się wiedzą i pomagać innym zrozumieć zawiłości działania sieci i Internetu.
AS-path – co to jest?
AS-PATH jest atrybutem well-know mandatory. Jest to lista numerów systemów autonomicznych przez, które trzeba przejść aby dostać się do prefiksu.
Atrybuty ścieżki możemy podzielić na 4 grupy:
- Well-known mandatory – atrybuty, które muszą być wspierane przez wszystkie implementacje BGP i muszą być obecne w wymianie informacji między sąsiadami eBGP i iBGP.
- Well-known discretionary – atrybuty, które muszą być wspierane przez wszystkie implementacje BGP, ale ich wymiana między sąsiadami BGP nie jest obowiązkowa.
- Optional transitive – nie muszą być wspierane przez wszystkie implementacje BGP, ale muszę być przekazywane pomiędzy sąsiadami BGP. Nie mogą zostać usunięte.
- Optional non-transitive – nie muszę być wspierane przez wszystkie implementacje BGP i są ignorowane oraz nie przekazywane pomiędzy sąsiadami BGP.
AS-PATH określa ścieżkę, przez jakie systemy autonomiczne “przeszły” informacje o routingu zawarte w wiadomości UPDATE.
AS-path, iBGP, eBGP – zasada działania
Gdy sąsiad BGP przekazuje wiadomość UPDATE, poprzez sesje iBGP to nie dodaje swojego numer AS do ścieżki. Wiadomość UPDATE nie opuszcza systemu autonomicznego więc, nie mam potrzeby aktualizacji.
Atrybut as-path jest aktualizowany, gdy jest przekazywany poprzez sesje eBGP, czyli poza system autonomiczny.
Numer AS jest dodawany na ostanie miejsce ścieżki.
Analizować ścieżka mozna za pomocą wyrażeń regularnych, o których pisałem w artykule Wyrażenia regularne w BGP.
AS-path – wykrywanie pętli w routingu
AS-path to też mechanizmem bezpieczeństwa na wypadek pętli w protokole BGP. Gdy w AS-path powtórzy się numer AS, wtedy taka ścieżka jest porzucana, nie jest wykorzystywana.
Numer AS może zostać powtórzony w ścieżce, ale tylko i wyłącznie obok siebie.
234 41 41 41 41 41 30 – poprawna ścieżka
234 41 41 41 234 30 – błędna ścieżka
W błędnej ścieżce AS 234 występuje dwa razy, ale nie jeden po drugim.
Czasem może zdarzyć się, że wewnątrz systemu autonomicznego są wykorzystywane numery AS z puli prywatnej (numery od 64512 do 65534). Takie numery AS, nie powinny pojawić się w globalnej tablicy routingu. Muszą zostać usunięte z as-path przed “wyjściem” poza AS.
Chcesz poznać BGP?
Od podstaw aż po sieć operatorską na dwóch platformach?
Jeśli tak, to zapisz się do programu
BGP – zbuduj silne fundamenty
Jak AS-path wpływa na wybór ścieżki w algorytmie BGP?
AS-path jest brany pod uwagę gdy, jest wybierana najlepsza ścieżka w BGP. Im krótszy AS-path, tzn. im mniej numerów AS w ścieżce, tym bardziej jest preferowana przez BGP.
Zmieniając długość AS-path, wydłużając ścieżkę, możemy wpływać na ruch przychodzący do naszego systemu autonomicznego.
Przykład.
Mamy sieć AS 30, która ma zestawione sąsiedztwa BGP z AS 41 i AS 234. Te sieci są połączone z innymi systemami autonomicznymi.
Cały ruch do AS 30 dociera tylko jednym łączem, poprzez peering z AS 41.
Ruch do AS 30 teraz ma docierać poprzez łącze do AS 234. W tym celu administrator AS 30 konfiguruje as-path prepending, dla łącza do AS 41. AS 41 rozgłasza wydłużoną ścieżkę do swoich sąsiadów BGP. Każdy w sieci ma dwie trasy. Algorytm BGP wybiera zawsze, krótszą ścieżkę.
Po wydłużeniu ścieżki cały ruch “idzie” przez AS 234, a nie przez AS 41.
Przy as-path prepending należy pamiętać, że nie jest to pierwszy punkt a algorytmie wyboru trasy w protokole BGP. Ważniejszy jest Local-preference.
Nawet jeśli wydłużymy ścieżkę, to nie mamy 100% gwarancji, że cały ruch przejdzie na inne łącze.
Wracając do przykładu, administrator AS 41 będzie wysyłał ruch ze swojego AS-u poprzez bezpośrednie łącze. Ponieważ, jest to najkrótsza ścieżka. Może też ustawić wyższy Local-preference dla tego łącza i długość ścieżki nie będzie brana pod uwagę.
Szczegółowy opis atrybutów znajdziesz w RFC.
Remote as-path prepend
Mechanizm polegający na oznaczeniu prefiksów odpowiednim community i rozgłoszeniu ich do naszego sąsiada BGP. Po stronie sąsiada, są skonfigurowane polityki, które wydłużą ścieżkę.
Poniżej widzisz wycinek z bazy RIPE, opisujący community wykorzystywane do remote as-path prepend w AS5617.
remarks: communities for specific link are 5617:ab0x : remarks: x=0 for "do not advertise"; x=1,2,3 for "prepend 1,2,3 times" remarks: remarks: for AS1299 Telia 5617:110x remarks: for AS5511 OpenTransit 5617:120x remarks: for AS16283 Lodman 5617:220x remarks: for AS8664 ICM 5617:240x |
Gdy sąsiad AS5617 rozgłosi prefiks z community 5617:1103 to ścieżka do tego prefiksu zostanie wydłużona o 3 numery AS 5617, ale tylko dla sesji BGP do AS1299. Na pozostałych sesja nie ulegnie zmianie.
Aktualne dane o dostępnych community możesz znaleść w bazie RIR. Dla Europy i Bliskiego Wschodu jest to baza RIPE.
Podsumowanie
Atrybut AS-path zawiera ścieżkę po jakiej trzeba „przejść” aby dostać się do danego prefiksu. Może pomóc w kształtowaniu ruchu wchodzącego do systemu autonomicznego.
Podobne wpisy
Jak wdrożyć RPKI we własnej sieci?
W poprzednim artykule omówiłem problematykę ataku BGP Hijacking i technologii, która potrafi skutecznie przeciwdziałać temu atakowi, jaką jest RPKI.Inżynier sieciowy z 4 letnim doświadczeniem w zarządzaniu infrastrukturą sieciową Data Center klasy TIER 3. Propagator...
Co to jest RPKI?
BGP Hijack były są i będą (a może uda się je wyeliminować? Zobaczymy.) Co to jest BGP Hijack i co ma do tego RPKI.Inżynier sieciowy z 4 letnim doświadczeniem w zarządzaniu infrastrukturą sieciową Data Center klasy TIER 3. Propagator dobrych praktyk w zarządzaniu...
Next-hop self – BGP
Parę wpisów temu pisałem o tym, że iBGP nie zmienia atrybuty next-hop gdy “przekazuje” prefiksy do innych routerów iBGP. Dzisiejszy wpis jest, jak rozwiązać ten problem - next-hop self.Inżynier sieciowy lubiący dzielić się wiedzą i pomagać innym zrozumieć zawiłości...