fbpx

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

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:

  1. 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
  2. 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.

  3. Optional transitive – nie muszą być wspierane przez wszystkie implementacje BGP, ale muszę być przekazywane pomiędzy sąsiadami BGP. Nie mogą zostać usunięte.

  4. 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.

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

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...

czytaj dalej

Route Reflector – Skalowalność iBGP

Niektórzy mówią, że BGP to Bardzo Groźny Protokół, ponieważ od jego prawidłowego działania, zależy działanie całego Internetu. BGP ma pewne ograniczenia. Dzisiejszy wpis jest i skalowaniu iBGP za pomocą route reflector.4 czy 5 routerów - mała różnica? Pamiętasz jak w...

czytaj dalej

Wyrażenia regularne w BGP – regexp

     Regexp, a dokładniej regular expressions, czyli wyrażenia regularne są to wzorce, które opisują ciągi znaków. Bardzo często spotykane w językach programowanie. Dobra, ale co wyrażenia regularne mają wspólnego z BGP? W BGP takim ciągiem znaków jest...

czytaj dalej

Szukasz informacji o BGP?
A może weźmiesz udział w kursie online?

Zapisz się na listę oczekujących na kurs BGP - zbuduj silne fundamenty Jako PIERWSZY dostaniesz informację o starcie kursu.

zgoda na newsletter

Zostałeś dopisany do listy. Sprawdź swojego emaila i potwierdź zapis.