Nera/Wiedza/Sesja BGP

Jak przygotować sieć do sesji BGP z AS219062

Przed zestawieniem sesji sprawdź swoje wpisy w bazach RIR i filtr wyjściowy na routerze.

Aktualizacja: 12.10.20267 min czytania

Spis treści
  1. Wymagania
  2. Sprawdzenie filtra poleceniem bgpq4
  3. Filtr wyjściowy po Twojej stronie
  4. Filtrowanie adresów źródłowych
  5. Co dzieje się po pierwszym ogłoszeniu prefiksu
  6. Zmiany w ogłoszeniach
  7. Pytania

Wymagania

WymaganieDlaczegoJak sprawdzić
Numer AS, którym masz prawo się posługiwaćNa nim zestawiamy sesję BGP i budujemy filtr ogłoszeń. Prawo do niego potwierdzasz oświadczeniem w umowieObiekt aut-num w bazie Twojego RIR-u
Router obsługujący BGP-4Sesję konfigurujesz po swojej stronie. Przy pełnej tablicy BGP router musi pomieścić około miliona tras IPv4Liczba tras w FIB podana w specyfikacji routera
Moduł LR4 do światłowodu jednomodowego (SMF), przy styku przez cross-connectPort w obiekcie wydajemy na module LR4 i światłowodzie jednomodowym. Moduł po swojej stronie dostarczasz samParametry portu
Liczba ogłaszanych prefiksówDomyślny limit to około 100 prefiksów. Jeśli ogłaszasz więcej, podaj ich liczbę w zapytaniu, a ustawimy odpowiednio wyższy limitLiczba prefiksów w wyniku bgpq4 z sekcji niżej
MD5 i BFD, jeśli ich używaszUwierzytelnianie sesji MD5 i BFD włączamy na Twoje życzenieKonfiguracja sesji po Twojej stronie
Obiekty route w bazie RIRZ nich budujemy filtr ogłoszeń. Ogłoszenia prefiksu, którego nie obejmuje żaden obiekt route, filtr nie przyjmieZapytanie bgpq4 w sekcji niżej
AS-SET w bazie RIR, gdy ogłaszasz sieci downstreamZawiera Twój AS i AS-y sieci, którym świadczysz tranzyt. Bez niego filtr budujemy z obiektów route pod Twoim numerem ASObiekt as-set i jego pole members
ROAZasady korzystania z usługi wymagają poprawnych wpisów ROA dla ogłaszanych prefiksów. Prefiks z ROA wskazującym Twój AS albo AS z Twojego AS-SET-u przechodzi weryfikację na podstawie RPKI. Gdy ROA obejmujące prefiks wskazują wyłącznie inne AS-y albo mają zbyt krótki maxLength, prefiks nie jest chronionyDowolny walidator RPKI
Kontakt do zgłaszania nadużyćZasady korzystania z usługi wymagają aktualnego kontaktu do zgłaszania nadużyć w bazach RIR i IRR oraz obsługi zgłoszeń kierowanych na ten kontaktKontakt do nadużyć przy Twoich zasobach w bazie Twojego RIR-u (w bazie RIPE atrybut abuse-c)
Dokumenty potwierdzające prawo do numeru AS i prefiksówPrzedstawiasz je na nasze żądanie, na przykład podpisane upoważnienie do rozgłaszania (LOA). Do czasu ich przedstawienia nie rozgłaszamy prefiksu i nie obejmujemy go ochronąPosiadacz prefiksu w bazie RIR-u
Prefiksy IPv4 do /24Ochrona obejmuje prefiksy IPv4 o długości do /24 włącznieKolumna Weryfikacja w panelu
StykCross-connect w obiekcie kolokacyjnym albo VLAN przez punkt wymiany ruchuCross-connect, LOA/CFA i styk przez punkt wymiany ruchu

Sprawdzenie filtra poleceniem bgpq4

Filtr ogłoszeń budujemy z obiektów route w pięciu bazach RIR, które odczytujemy narzędziem bgpq4. To samo zapytanie zadasz sam:

Zapytanie do baz RIR
# z AS-SET-em
bgpq4 -4 \
  -S RIPE,ARIN,APNIC,AFRINIC,LACNIC \
  AS-PRZYKLAD

# bez AS-SET-u, numerem AS
bgpq4 -4 \
  -S RIPE,ARIN,APNIC,AFRINIC,LACNIC \
  AS64496

Wynik to lista prefiksów IPv4 z obiektów route pod AS-SET-em, z pięciu baz RIR. AS-SET może zawierać inne AS-SET-y, a bgpq4 rozwija je w całości. Bez parametru -S bgpq4 pyta wszystkie bazy, które udostępnia serwer IRR, także te, w których obiekt route może utworzyć każdy, więc wynik może zawierać prefiksy, których nasz filtr nie przyjmie.

Jak czytać wynik

AS-PRZYKLAD zawiera Twój AS64496 i AS64497 sieci downstream. Zapytanie zwraca prefiksy z trzech obiektów route:

Wynik dla AS-PRZYKLAD
no ip prefix-list NN
ip prefix-list NN permit 198.18.0.0/20
ip prefix-list NN permit 198.51.100.0/24
ip prefix-list NN permit 203.0.113.0/24

Wyniku nie przenosimy na router wprost. Prefiks o długości do /24 przyjmujemy, gdy w wyniku jest on sam albo szerszy prefiks, który go obejmuje, i dopisujemy wtedy do filtra wpis na dokładnie ten prefiks. Prefiksów dłuższych niż /24 do filtra nie dodajemy.

OgłoszenieWynikPowód
198.51.100.0/24PrzyjmujemyW wyniku jest obiekt route na dokładnie ten prefiks
198.18.4.0/24PrzyjmujemyObejmuje go szerszy obiekt route 198.18.0.0/20
198.18.0.0/19Nie przyjmujemyW wyniku jest tylko węższy 198.18.0.0/20, a obiekt route na węższy prefiks nie obejmuje szerszego ogłoszenia
198.18.64.0/24Nie przyjmujemyW wyniku nie ma ani tego prefiksu, ani szerszego, który by go obejmował

Brak prefiksu w wyniku oznacza brak obiektu route w bazie RIR albo obiekt route z AS-em spoza AS-SET-u. Pusty wynik oznacza, że w pięciu bazach RIR nie ma ani jednego obiektu route pod tym AS-SET-em albo numerem AS, albo że samego AS-SET-u nie ma w żadnej z tych baz. Narzędzie bgpq4 wypisuje wtedy:

Pusty wynik
no ip prefix-list NN
! generated prefix-list NN is empty
ip prefix-list NN deny 0.0.0.0/0

Filtr wyjściowy po Twojej stronie

Ogłaszasz nam wyłącznie własne prefiksy i prefiksy sieci downstream. Zasady korzystania z usługi zabraniają przekazywania nam tras od innych dostawców tranzytu i z punktów wymiany ruchu, chyba że wyraźnie uzgodnimy inaczej. Ten sam filtr w składni czterech systemów:

Arista EOS
ip prefix-list DO-NERA seq 10 permit 198.51.100.0/24
ip prefix-list DO-NERA seq 20 permit 203.0.113.0/24
!
route-map DO-NERA-OUT permit 10
   match ip address prefix-list DO-NERA
!
router bgp 64496
   neighbor 192.0.2.1 remote-as 219062
   neighbor 192.0.2.1 route-map DO-NERA-OUT out
Juniper Junos
set routing-options autonomous-system 64496
set policy-options prefix-list DO-NERA 198.51.100.0/24
set policy-options prefix-list DO-NERA 203.0.113.0/24
set policy-options policy-statement DO-NERA-OUT term WLASNE from prefix-list DO-NERA
set policy-options policy-statement DO-NERA-OUT term WLASNE then accept
set policy-options policy-statement DO-NERA-OUT term RESZTA then reject
set protocols bgp group NERA type external
set protocols bgp group NERA peer-as 219062
set protocols bgp group NERA export DO-NERA-OUT
set protocols bgp group NERA neighbor 192.0.2.1
Cisco IOS XR
prefix-set DO-NERA
  198.51.100.0/24,
  203.0.113.0/24
end-set
!
route-policy DO-NERA-OUT
  if destination in DO-NERA then
    pass
  else
    drop
  endif
end-policy
!
router bgp 64496
 address-family ipv4 unicast
 !
 neighbor 192.0.2.1
  remote-as 219062
  address-family ipv4 unicast
   route-policy DO-NERA-OUT out
BIRD 2
define DO_NERA = [ 198.51.100.0/24, 203.0.113.0/24 ];

filter do_nera_out {
  if net ~ DO_NERA then accept;
  reject;
}

protocol bgp nera {
  local as 64496;
  neighbor 192.0.2.1 as 219062;
  ipv4 {
    import all;
    export filter do_nera_out;
  };
}

Adresy sesji w przykładach pochodzą z puli dokumentacyjnej. Przykłady pokazują sam filtr wyjściowy, a trasy do ogłoszenia i politykę wejściową dopisujesz według swojej konfiguracji. Cisco IOS XR nie przyjmuje ani nie wysyła tras w sesji eBGP bez route-policy w danym kierunku. BIRD 2 wymaga w sesji eBGP jawnej polityki w obu kierunkach (RFC 8212), dlatego przykład ma import all, który zastępujesz własną polityką wejściową.

Listę do filtra wyjściowego wygeneruje też bgpq4 z Twojego AS-SET-u. Parametr -l nadaje jej nazwę, a -e, -J, -X i -b zmieniają format na Arista EOS, Junos, IOS XR i BIRD. Lista z bgpq4 dopuszcza tylko prefiksy równe obiektom route, więc gdy ogłaszasz węższe prefiksy z szerszego obiektu, dodaj parametr -R 24. Dopuszcza on prefiksy dłuższe od obiektu route do /24 włącznie, a w formacie Junos działa tylko z -E, które zamiast listy prefiksów generuje politykę z wpisami route-filter.

Lista dla Arista EOS
bgpq4 -4 -e -R 24 -l DO-NERA \
  -S RIPE,ARIN,APNIC,AFRINIC,LACNIC \
  AS-PRZYKLAD

Sesję IPv6 filtrujesz tak samo, listą prefiksów IPv6, którą bgpq4 generuje z parametrem -6.

Filtrowanie adresów źródłowych

Zasady korzystania z usługi wymagają filtrowania adresów źródłowych zgodnego z BCP 38 i BCP 84: z Twojej sieci wychodzą tylko pakiety, których adres źródłowy należy do Twojej przestrzeni adresowej albo do przestrzeni sieci downstream. Na pakietach z podrobionym adresem źródłowym opiera się amplifikacja: serwery DNS, NTP albo memcached odsyłają na adres ofiary odpowiedzi wielokrotnie większe od zapytań. Typowe środki to uRPF na interfejsach od strony klientów i lista ACL z Twoimi prefiksami na interfejsach do dostawców tranzytu:

ŚrodekPakiet przechodzi, gdyZastosowanie
uRPF ścisły (strict)Trasa do adresu źródłowego prowadzi przez interfejs, na którym pakiet został odebranyInterfejsy do klientów podłączonych jednym łączem
uRPF z dopuszczalnymi ścieżkami (feasible path)Adres źródłowy jest osiągalny przez ten interfejs według którejkolwiek otrzymanej trasy, nie tylko najlepszejInterfejsy do klientów podłączonych kilkoma łączami
uRPF luźny (loose)Do adresu źródłowego istnieje jakakolwiek trasaUzupełnienie innych środków. Sam nie realizuje BCP 38, bo przepuszcza podrobione adresy, do których istnieje trasa
ACL z Twoimi prefiksamiAdres źródłowy należy do Twojej przestrzeni albo przestrzeni sieci downstreamInterfejsy do dostawców tranzytu, także do nas, w kierunku wyjściowym

Co dzieje się po pierwszym ogłoszeniu prefiksu

  1. Ogłaszasz prefiks w sesji

    Odczytujemy trasy, które Twój router wysyła w sesji, także te, których filtr ogłoszeń jeszcze nie przyjął.

  2. Prefiks w panelu

    Gdy umowa obowiązuje, prefiks ma długość do /24, a obiekt route istniał przed pierwszym ogłoszeniem, prefiks pojawia się w panelu w ciągu minuty. Panel oznacza go jako sieć własną albo sieć downstream. Na podstawie tego samego obiektu route dodajemy prefiks do filtra ogłoszeń na routerze.

  3. Weryfikacja

    Prefiks weryfikujemy na podstawie ROA, a gdy żaden ROA go nie obejmuje, na podstawie obiektu route. Wynik i jego podstawę podaje kolumna Weryfikacja, a zweryfikowany prefiks obejmujemy ochroną anty-DDoS.

    Kiedy prefiks przechodzi weryfikację
  4. Trasa przyjęta

    Gdy prefiks jest w filtrze, router przyjmuje trasę, a kolumna Trasa pokazuje stan „Trasa przyjęta” i czas, w którym router ostatnio ją widział. Przy stanie „Router nie widzi trasy” sprawdź sesję i ogłoszenie.

Zmiany w ogłoszeniach

  • Obiekty IRR i ROA aktualizujesz przed zmianą ogłoszeń, a nie po niej.
  • AS nowej sieci downstream dodajesz do AS-SET-u, a jej obiekty route muszą istnieć, zanim zaczniesz ją ogłaszać.
  • Prefiks, który przestajesz ogłaszać, schodzi z listy po 60 minutach, jeżeli wszystkie Twoje sesje z nami działają. Co się dzieje przy awarii sesji BGP
  • Gdy tę samą przestrzeń zaczynasz ogłaszać innymi prefiksami, na przykład czterema /24 zamiast jednego /22, dotychczasowy prefiks schodzi z listy na tej samej zasadzie, ale dopiero wtedy, gdy nowe są już chronione.
  • Prefiks ogłoszony ponownie wraca jako ta sama pozycja listy i przechodzi weryfikację od nowa.
W usłudze Nera

W sesji BGP wysyłamy Ci pełną tablicę BGP, trasę domyślną albo obie naraz. Sesje IPv4 i IPv6 zestawiamy na tym samym porcie, w ramach jednej opłaty, a ochrona anty-DDoS i automatyczny filtr ogłoszeń obejmują prefiksy IPv4. Listę communities i procedurę postępowania w trakcie ataku przekazujemy po podpisaniu umowy.

Sesja BGP i filtr ogłoszeń

Pytania

Co daje ROA poza weryfikacją prefiksu?

Operatorzy, którzy walidują pochodzenie tras, widzą Twoje ogłoszenie z ROA jako Valid, a bez ROA jako NotFound. Ogłoszenie Twojego prefiksu z cudzego AS-u ma przy ROA stan Invalid i ci operatorzy je odrzucają.

Mój AS-SET i obiekty route są w RADB. Co zrobić?

Utwórz je w bazie swojego RIR-u. Obiektów route i AS-SET-ów z RADB, NTTCOM i RIPE-NONAUTH nie uwzględniamy w filtrze ogłoszeń.

Tranzyt IP z ochroną anty-DDoS