Wpis 7 – BGP

Routing BGP (Border Gateway Protocol) to protokół routingu dynamicznego, który służy do wymiany informacji o trasach pomiędzy różnymi systemami autonomicznymi (AS – Autonomous System).
Jest to podstawowy protokół routingu w Internecie – to dzięki niemu różne sieci należące do operatorów ISP, dużych firm czy instytucji wiedzą, jak się ze sobą komunikować.

BGP cechuje się:

  • Exterior Gateway Protocol (EGP) – działa pomiędzy systemami autonomicznymi, w odróżnieniu np. od OSPF czy EIGRP, które są protokołami wewnętrznymi (IGP).
  • Opiera się na TCP (port 179) – komunikacja jest stabilna i niezawodna.
  • Path vector protocol – wybiera ścieżki nie tylko na podstawie metryk, ale także atrybutów (np. długości ścieżki AS_PATH, preferencji lokalnych, polityk routingu).

Atrybuty BGP to cechy (parametry) przypisane do prefiksów wymienianych przez BGP. To właśnie na ich podstawie BGP wybiera najlepszą ścieżkę. Dzielą się one na well-known (znane i wspierane przez wszystkich vendorów) i optional (dodatkowe, nie zawsze wspierane). Atrybuty BGP to:

  • AS_PATH => lista numerów AS, przez które przechodzi trasa. => Im krótsza lista -> tym preferowana ścieżka.
  • NEXT_HOP => wskazuje adres IP routera, do którego należy kierować ruch.
  • LOCAL_PREF (Local Preference) => mówi, która trasa jest preferowana w ramach jednego AS => Wyższa wartość = bardziej preferowana
  • ORIGIN => informuje, skąd pochodzi trasa
  • MED (Multi-Exit Discriminator) => sugeruje sąsiadom eBGP, który exit z danego AS jest lepszy
  • COMMUNITY => etykiety przypisywane trasom (np. 65000:100)
  • ATOMIC_AGGREGATE => informacja, że trasa została zagregowana i może nie zawierać pełnych danych

Kryteria wyboru najlepszej ścieżki w BGP:

  • Najwyższy Weight (vendor-specific, np. Cisco)
  • Najwyższy Local Preference.
  • Najkrótszy AS_PATH.
  • Najniższy ORIGIN.
  • Najniższy MED.
  • eBGP preferowany przed iBGP.
  • Najniższy IGP metric do NEXT_HOP.
  • Najstarsza ścieżka (stabilna).
  • Najniższy Router-ID.

Częste pytanie, które pojawia się na rozmowach kwalifikacyjnych to „jak posiadając dwa wyjścia do Internetu z uruchomionym protokołem wysterować ruch, aby wyszedł i wrócił tą samom ścieżką?”.

Można dokonać tego używając dwóch podstawowych atrybutów local-pref oraz as-path. Local-pref wskazuje, które wyjście z sieci lokalnej jest bardziej preferowane, dodając na wyjściu dodatkowe wpisy as-path czyli tak zwany as-prepend, obniżamy wartość jednej ze ścieżek sugerując, że ruch powinien wrócić ścieżką z krótszym as-path.

Dodaj komentarz