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.
