Słownik

Co to jest LOCAL_PREF?

LOCAL_PREF to atrybut BGP decydujący o wyborze trasy wychodzącej w obrębie AS. Wygrywa wyższa wartość, więc możesz preferować peering nad tranzytem.

Ostatnia aktualizacja:

LOCAL_PREF (local preference) to atrybut BGP, który decyduje o tym, którą trasą Twój system autonomiczny wysyła ruch na zewnątrz, gdy istnieje kilka ścieżek do tego samego prefiksu. To wartość 32-bitowa propagowana wyłącznie wewnątrz jednego AS przez iBGP i nigdy nie opuszcza Twojej sieci. W algorytmie wyboru najlepszej trasy BGP LOCAL_PREF jest jednym z pierwszych kryteriów: po lokalnym atrybucie weight (specyficznym dla Cisco), a przed długością ścieżki AS. Reguła jest prosta: wygrywa trasa o wyższej wartości LOCAL_PREF.

Jak działa LOCAL_PREF

Gdy router brzegowy uczy się prefiksu od sąsiada eBGP, przypisuje mu wartość LOCAL_PREF zgodnie z polityką wejściową (route-map lub policy). Wartość ta jest następnie rozgłaszana przez iBGP do wszystkich routerów w AS, dzięki czemu cała sieć podejmuje spójną decyzję o wyborze trasy wychodzącej. Domyślna wartość na większości platform to 100, ale ustawia się ją jawnie, aby uzyskać przewidywalne zachowanie. Ponieważ LOCAL_PREF jest oceniany bardzo wcześnie, nadpisuje długość ścieżki AS: trasa z gorszym (dłuższym) AS_PATH wciąż wygra, jeśli ma wyższy LOCAL_PREF.

Preferowanie peeringu nad tranzytem

Najczęstsze zastosowanie LOCAL_PREF to sterowanie kosztami ruchu wychodzącego. Tranzyt IP jest płatny za przesłany wolumen, a peering w punkcie wymiany ruchu jest zwykle bezrozliczeniowy (settlement-free). Przypisując wyższy LOCAL_PREF trasom nauczonym przez peering, a niższy trasom z tranzytu, kierujesz ruch wychodzący najpierw przez tańsze i krótsze ścieżki, a tranzyt rezerwujesz jako zapasowy. Typowy schemat wartości wygląda następująco:

  • Trasy klientów (customer routes): najwyższy LOCAL_PREF, np. 200. Ruch do klientów zawsze ma priorytet.
  • Peering w IXP i PNI: wysoki LOCAL_PREF, np. 150. Tańsza, krótsza ścieżka.
  • Tranzyt podstawowy: średni LOCAL_PREF, np. 100 (wartość domyślna).
  • Tranzyt zapasowy: niski LOCAL_PREF, np. 80. Używany tylko wtedy, gdy nie ma lepszej trasy.
  • LOCAL_PREF wpływa wyłącznie na ruch wychodzący. Na ruch przychodzący oddziałują prepending ścieżki AS, MED i społeczności BGP.

Czego LOCAL_PREF nie robi

LOCAL_PREF nie steruje ruchem przychodzącym, ponieważ nie jest rozgłaszany do sąsiadów eBGP. Sąsiednie sieci nigdy go nie widzą i nie biorą pod uwagę. Aby wpłynąć na to, którą drogą ruch wraca do Twojego AS, używa się prependingu ścieżki AS, atrybutu MED lub społeczności BGP (BGP communities) uzgodnionych z dostawcą. LOCAL_PREF bije też AS_PATH, więc nieostrożne podniesienie preferencji dla trasy zapasowej może niezamierzenie ściągnąć cały ruch na droższe łącze. Dlatego wartości projektuje się świadomie i dokumentuje, najlepiej w połączeniu z mapowaniem na społeczności BGP, które pozwala klientom samodzielnie obniżać preferencję.

LOCAL_PREF w sieci AS202520 SkyPass

W AS202520 SkyPass wykorzystujemy LOCAL_PREF w polityce routingu naszych PoP w Warszawie i Wrocławiu, aby ruch wychodzący preferował peering w polskich punktach wymiany (w THINX, TPIX, WRIX i 1-IX) przed łączami tranzytowymi. Dzięki temu Twój ruch do polskich i regionalnych sieci pokonuje krótszą drogę o niższym opóźnieniu. Klientom IP transit i remote IXP udostępniamy społeczności BGP, którymi możesz sterować wartością LOCAL_PREF na naszych routerach, a aktualny stan tras sprawdzisz w naszym looking glass.

Najczęstsze pytania

Czy wyższy czy niższy LOCAL_PREF jest preferowany?

Wygrywa wyższa wartość LOCAL_PREF. Trasa o najwyższym LOCAL_PREF zostaje wybrana jako najlepsza ścieżka wychodząca, nawet jeśli ma dłuższą ścieżkę AS.

Czy LOCAL_PREF wpływa na ruch przychodzący?

Nie. LOCAL_PREF steruje wyłącznie ruchem wychodzącym i nie jest rozgłaszany do sąsiadów eBGP. Na ruch przychodzący wpływają prepending ścieżki AS, MED i społeczności BGP.

Jaka jest domyślna wartość LOCAL_PREF?

Na większości platform domyślną wartością jest 100. W praktyce ustawia się ją jawnie w polityce wejściowej, aby uzyskać przewidywalny i udokumentowany wybór tras.

LOCAL_PREF czy MED: czego użyć do preferowania peeringu?

Do preferowania peeringu nad tranzytem dla ruchu wychodzącego użyj LOCAL_PREF, ponieważ jest oceniany wcześniej w algorytmie wyboru trasy. MED służy do sugerowania sąsiadowi preferowanego wejścia dla ruchu przychodzącego.

Powiązane artykuły