FlowSpec (BGP Flow Specification) to rozszerzenie protokołu routingu BGP, które pozwala rozesłać po sieci szczegółowe reguły filtrowania ruchu wraz z akcją, jaką trzeba na pasującym ruchu wykonać. Zwykle, aby zablokować jakiś ruch, trzeba ręcznie wpisać reguły (listy ACL) na każdym routerze z osobna. FlowSpec działa inaczej: operator definiuje przepływ raz, a opis ten rozsyła się sam przez BGP do wszystkich routerów. Reguła może dopasowywać ruch po adresach, protokole, portach czy długości pakietu, a w akcji odrzucać go, ograniczać prędkość, przekierowywać lub oznaczać. FlowSpec opisują dokumenty standaryzacyjne RFC 8955 (dla IPv4) i RFC 8956 (dla IPv6), które zastąpiły wcześniejsze RFC 5575.
Czym jest FlowSpec?
FlowSpec wprowadza do BGP nowy rodzaj informacji. Standardowo BGP rozgłasza trasy do prefiksów (czyli grup adresów). Tutaj zamiast trasy rozgłasza się opis przepływu ruchu — w terminologii BGP jest to NLRI (Network Layer Reachability Information, czyli informacja o osiągalności w sieci). Reguły przenosi wieloprotokołowy BGP (MP-BGP) w rodzinie adresów AFI 1 z numerem SAFI 133 dla IPv4 unicast (oraz SAFI 134 dla VPNv4).
Dzięki temu wystarczy raz rozgłosić regułę z jednego miejsca (kontrolera), a trafia ona automatycznie do wszystkich routerów brzegowych, które są klientami FlowSpec. Każdy z nich zapisuje ją sprzętowo (zwykle w pamięci TCAM), więc filtrowanie odbywa się szybko, na poziomie sprzętu.
Główne zastosowanie FlowSpec to precyzyjne odpieranie ataków DoS i DDoS (czyli prób zalania usługi ruchem, by przestała działać). Pozwala wskazać i obsłużyć dokładnie ten szkodliwy ruch — na przykład konkretny port UDP biorący udział w ataku — bez odcinania całego atakowanego adresu.
Jak działa FlowSpec? Z czego składa się reguła
Pojedyncza reguła w RFC 8955 może mieć do dwunastu kryteriów dopasowania. Pakiet pasuje do reguły dopiero wtedy, gdy spełnia wszystkie obecne kryteria naraz (logiczne AND). Dostępne kryteria to:
- Typ 1 / 2 — adres (prefiks) docelowy i źródłowy.
- Typ 3 — numer protokołu IP (np. TCP, UDP, ICMP).
- Typ 4 — port źródłowy lub docelowy; kryterium pasuje, jeśli wskazana wartość odpowiada któremukolwiek z nich.
- Typ 5 — wyłącznie port docelowy.
- Typ 6 — wyłącznie port źródłowy.
- Typ 7 / 8 — typ i kod ICMP.
- Typ 9 — flagi TCP (np. SYN, ACK).
- Typ 10 — całkowita długość pakietu.
- Typ 11 — pole DSCP (znacznik klasy ruchu).
- Typ 12 — bity fragmentacji (DF, IsF, FF, LF).
Porty, długości i numery protokołów można zapisywać z porównaniami (=, >, < i ich kombinacjami). Dzięki temu reguła obejmie np. zakres portów albo listę wartości, a nie tylko jedną liczbę.
Jakie akcje obsługuje FlowSpec?
Akcję, czyli to, co router ma zrobić z pasującym ruchem, przenoszą tzw. rozszerzone społeczności BGP (Traffic Filtering Action Extended Communities). Najważniejsze z nich:
- traffic-rate-bytes (
0x8006) — ogranicza prędkość w bajtach na sekundę. Wartość0oznacza odrzucenie całego pasującego ruchu (drop), czyli zwykły blok. - traffic-rate-packets (
0x800c) — ogranicza prędkość w pakietach na sekundę (dodane w RFC 8955). - traffic-action (
0x8007) — bityT(terminal) iS(sample), pozwalające próbkować i logować pasujący ruch. - rt-redirect (
0x8008/0x8108/0x8208) — przekierowuje ruch do osobnej instancji VRF, np. do centrum oczyszczania ruchu (scrubbing) albo do analizy. - traffic-marking (
0x8009) — zmienia wartość pola DSCP w pasujących pakietach.
W praktyce daje to trzy główne sposoby reakcji: drop (odrzuć), rate-limit (ogranicz prędkość) oraz redirect (przekieruj do dalszej obróbki). To więcej niż prosty wybór „wszystko albo nic”.
Walidacja reguł FlowSpec
Skoro reguła rozsyła się sama po sieci, ktoś mógłby spróbować rozgłosić regułę blokującą cudzy ruch. Aby temu zapobiec, RFC 8955 opisuje procedurę sprawdzania (walidacji) odebranych reguł. Reguła jest uznawana za poprawną m.in. wtedy, gdy:
- zawiera kryterium adresu (prefiksu) docelowego;
- nadawca reguły jest jednocześnie źródłem najlepszej trasy unicast do tego adresu;
- nie ma bardziej szczegółowych tras unicast z innego systemu autonomicznego (AS), które kolidowałyby z prefiksem reguły.
W skrócie: regułę dla danego celu może rozgłosić zasadniczo tylko ten sąsiad, który zna do niego najlepszą trasę. Ma to znaczenie zwłaszcza przy wymianie reguł między operatorami (między różnymi AS).
Czym FlowSpec różni się od RTBH?
RTBH (Remotely Triggered Black Hole, czyli zdalnie wyzwalana czarna dziura) to starsza technika. Dla atakowanego adresu rozgłasza się trasę z umówionym znacznikiem (często :666), która kieruje cały ruch do tego adresu do null — czyli donikąd. To chroni infrastrukturę przed przeciążeniem, ale ma poważną wadę: odcina też ruch legalny. Atakowany host staje się całkowicie nieosiągalny, więc w praktyce robi za atakującego to, o co mu chodziło.
FlowSpec działa znacznie precyzyjniej:
- filtruje po wielu kryteriach (adres, protokół, porty, długość pakietu), a nie tylko po całym adresie docelowym;
- pozwala ograniczyć prędkość lub przekierować ruch, a nie tylko go odrzucić;
- blokuje wyłącznie ruch pasujący do wzorca ataku, a reszta usługi działa dalej.
Istnieje też wariant Destination-based RTBH realizowany przez FlowSpec oraz S/RTBH (filtrowanie po adresie źródłowym). FlowSpec daje jednak najwięcej kontroli — kosztem większej złożoności konfiguracji.
Dlaczego FlowSpec jest ważny dla bezpieczeństwa i monitoringu sieci?
FlowSpec domyka pętlę: wykryj atak, zareaguj. Systemy detekcji oparte na telemetrii przepływów (NetFlow, IPFIX, sFlow) widzą anomalię — nietypowy wolumen ruchu, podejrzane porty albo sygnaturę znanego ataku. Wtedy kontroler (np. detektor DDoS) rozgłasza odpowiednią regułę FlowSpec, która natychmiast trafia do routerów brzegowych i ogranicza atak już na wejściu do sieci.
Dla zespołów SOC, NDR i sieciowych liczy się to, że:
- reakcja jest rozproszona i szybka — jedna reguła rozchodzi się przez BGP na całą flotę routerów;
- akcje sample/log oraz redirect pozwalają nie tylko odrzucić ruch, ale go obserwować i analizować (np. po przekierowaniu do scrubbingu);
- reguły są precyzyjne i odwracalne — można je zawęzić, a po ataku wycofać, ograniczając wpływ na ruch legalny.
Trzeba jednak pamiętać o ryzykach. Źle napisana reguła może przez pomyłkę odciąć ruch produkcyjny. Pamięć TCAM na routerach jest ograniczona, więc reguł nie da się dodawać w nieskończoność. Wymiana reguł między operatorami wymaga zaufania i ustaleń — część sieci wciąż nie przyjmuje reguł FlowSpec od swoich klientów.
Dowiedz się więcej
- Zaawansowane metody ochrony przed atakami DDoS w firmach — Opisuje metody ochrony, w których FlowSpec może blokować ruch DDoS na poziomie sieci.
- Czym jest NetFlow i jak ten protokół jest wykorzystywany w praktyce? — NetFlow dostarcza dane o ruchu, które mogą inicjować reguły FlowSpec.
- Scrubbing Center — Scrubbing Center filtruje ataki, a FlowSpec może wspierać selektywne odrzucanie ruchu.