Wymagania
| Wymaganie | Dlaczego | Jak 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 umowie | Obiekt aut-num w bazie Twojego RIR-u |
| Router obsługujący BGP-4 | Sesję konfigurujesz po swojej stronie. Przy pełnej tablicy BGP router musi pomieścić około miliona tras IPv4 | Liczba tras w FIB podana w specyfikacji routera |
| Moduł LR4 do światłowodu jednomodowego (SMF), przy styku przez cross-connect | Port w obiekcie wydajemy na module LR4 i światłowodzie jednomodowym. Moduł po swojej stronie dostarczasz sam | Parametry portu |
| Liczba ogłaszanych prefiksów | Domyślny limit to około 100 prefiksów. Jeśli ogłaszasz więcej, podaj ich liczbę w zapytaniu, a ustawimy odpowiednio wyższy limit | Liczba prefiksów w wyniku bgpq4 z sekcji niżej |
| MD5 i BFD, jeśli ich używasz | Uwierzytelnianie sesji MD5 i BFD włączamy na Twoje życzenie | Konfiguracja sesji po Twojej stronie |
| Obiekty route w bazie RIR | Z nich budujemy filtr ogłoszeń. Ogłoszenia prefiksu, którego nie obejmuje żaden obiekt route, filtr nie przyjmie | Zapytanie bgpq4 w sekcji niżej |
| AS-SET w bazie RIR, gdy ogłaszasz sieci downstream | Zawiera Twój AS i AS-y sieci, którym świadczysz tranzyt. Bez niego filtr budujemy z obiektów route pod Twoim numerem AS | Obiekt as-set i jego pole members |
| ROA | Zasady 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 chroniony | Dowolny 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 kontakt | Kontakt 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ów | Przedstawiasz 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 /24 | Ochrona obejmuje prefiksy IPv4 o długości do /24 włącznie | Kolumna Weryfikacja w panelu |
| Styk | Cross-connect w obiekcie kolokacyjnym albo VLAN przez punkt wymiany ruchu | Cross-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:
# 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:
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łoszenie | Wynik | Powód |
|---|---|---|
| 198.51.100.0/24 | Przyjmujemy | W wyniku jest obiekt route na dokładnie ten prefiks |
| 198.18.4.0/24 | Przyjmujemy | Obejmuje go szerszy obiekt route 198.18.0.0/20 |
| 198.18.0.0/19 | Nie przyjmujemy | W 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/24 | Nie przyjmujemy | W 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:
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.
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:
| Środek | Pakiet przechodzi, gdy | Zastosowanie |
|---|---|---|
| uRPF ścisły (strict) | Trasa do adresu źródłowego prowadzi przez interfejs, na którym pakiet został odebrany | Interfejsy 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 najlepszej | Interfejsy do klientów podłączonych kilkoma łączami |
| uRPF luźny (loose) | Do adresu źródłowego istnieje jakakolwiek trasa | Uzupełnienie innych środków. Sam nie realizuje BCP 38, bo przepuszcza podrobione adresy, do których istnieje trasa |
| ACL z Twoimi prefiksami | Adres źródłowy należy do Twojej przestrzeni albo przestrzeni sieci downstream | Interfejsy do dostawców tranzytu, także do nas, w kierunku wyjściowym |
Co dzieje się po pierwszym ogłoszeniu prefiksu
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ął.
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.
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ę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 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ń.