Nera dokumentacja Panel klienta
Dokumentacja / Przewodnik / Wprowadzenie

Wprowadzenie

Nera świadczy tranzyt IP i ochronę przed atakami DDoS. Ta dokumentacja pokazuje, jak korzystać z panelu klienta, i opisuje API, jeżeli wolisz robić to samo skryptem.

Jak działa ochrona

Ogłaszasz nam swoje prefiksy przez BGP, a my przekazujemy ruch do Twojej sieci. Kiedy ruch przychodzący na któryś z Twoich adresów przekroczy ustalony próg, włączamy filtrowanie: odrzucamy pakiety należące do ataku, a pozostały ruch dociera do Ciebie tak jak zwykle.

Ochrona jest włączona zawsze, dla każdego prefiksu, który przeszedł weryfikację. Nie musisz niczego włączać na czas ataku ani wycofywać po nim.

Zanim zaczniesz

Do uruchomienia usługi potrzebujesz trzech rzeczy:

  • własnego numeru AS i prefiksów, które z niego ogłaszasz,
  • obiektów route w IRR pod tym numerem AS albo pod Twoim AS-SET-em,
  • wpisów ROA w RPKI wskazujących Twój AS jako źródło tych prefiksów.

Konto zakładasz sam, w kilka minut. Usługa rusza po podpisaniu umowy: numer AS deklarujesz w zamówieniu, a Twoje oświadczenie o prawie do niego jest częścią umowy, którą podpisujesz. Osobnego dokumentu LOA nie wymagamy na starcie, bo byłoby to to samo oświadczenie zebrane drugi raz. Umowa przewiduje, że LOA dostarczasz na nasze żądanie, jeżeli akurat będzie potrzebne.

Role w koncie

RolaUprawnienia
WłaścicielWszystko, łącznie z danymi firmy do faktury i usuwaniem użytkowników. Dane firmy widzi i zmienia wyłącznie ta rola.
AdministratorPrefiksy, progi, alerty, klucze API i użytkownicy. Bez dostępu do danych firmy.
OdczytPodgląd ruchu, ataków, raportów i rozliczeń, bez możliwości zmian.
Dokumentacja / Przewodnik / Pierwsze kroki

Pierwsze kroki

Od założenia konta do pierwszego chronionego prefiksu.

  1. Załóż kontoPodaj dane rejestrowe firmy, adres e-mail i hasło. Na podany adres wyślemy link potwierdzający, ważny przez dobę. Do czasu potwierdzenia adresu logowanie jest zablokowane.
  2. Złóż zamówienieW kreatorze wybierasz sposób rozliczenia, okres umowy i przepustowość portu, a cenę widzisz od razu, zanim cokolwiek podpiszesz. Jeden z kroków pyta o sieć: numer AS, AS-SET i prefiksy. Prefiksów nie przepisujesz, tylko zaznaczasz z listy, którą pobieramy z IRR dla podanego numeru. Dopóki nie podpiszesz, każdą z tych odpowiedzi możesz poprawić.
  3. Podpisz umowęNa koniec kreatora dostajesz Umowę i Zamówienie w PDF-ie. Zamówienie wypisuje Twoje prefiksy i drukuje numer AS, a w umowie jest Twoje oświadczenie, że masz prawo się tym numerem posługiwać. Odsyłasz podpisany egzemplarz skanem albo pocztą.
  4. Czekasz na kontrasygnatęNasz operator czyta numer AS na podpisanym dokumencie i podpisuje umowę ze swojej strony. Ten jeden podpis uruchamia usługę, zapisuje Twoje prawo do AS-a i zakłada wiersze prefiksów. Bez niego żaden prefiks nie ma się o co zweryfikować.
  5. Ogłoś prefiks przez BGPKażdy prefiks sprawdzamy w RPKI. Zweryfikowany prefiks, który do nas ogłosisz, jest objęty ochroną.

Co zrobić, kiedy prefiks nie przechodzi weryfikacji

Najczęstsza przyczyna to brak wpisu ROA. Panel wypisze powód przy prefiksie, a co z nim zrobić, opisuje rozdział Prefiksy i weryfikacja.

Czego samo założenie konta nie uruchamia

Konto nie włącza ochrony, nie rezerwuje pasma i nie rozpoczyna naliczania opłat. Naliczanie zaczyna się z dniem uruchomienia usługi, który ustalamy przy wdrożeniu.

Dokumentacja / Przewodnik / Przewodnik po panelu

Przewodnik po panelu

Dziewięć ekranów panelu, po kolei, z opisem tego, co na nich znajdziesz.

Nawigacja po lewej ma trzy części. Przegląd pokazuje, co dzieje się z Twoim ruchem. Ochrona to ustawienia. Konto to rozliczenia, dane firmy i dostęp.

Pulpit

Pulpit panelu klienta: pasek trwających ataków, cztery kafelki podsumowania, wykresy przepustowości i pakietów na porcie klienta oraz karta rozliczeń
Pulpit w trakcie dwóch ataków. Czerwony pas na górze pojawia się tylko wtedy, gdy atak trwa.

Na górze wypisujemy trwające ataki, po jednym wierszu na prefiks. Każdy wiersz pokazuje etap ataku, wykryte wektory, ruch przychodzący w tej chwili oraz najwyższą wartość od początku zdarzenia.

Poniżej stoją cztery kafelki: ile prefiksów jest objętych ochroną, ile ataków trwa, ile ruchu przesłaliśmy przez dobę i jaki był najwyższy szczyt ruchu przychodzącego. Przełącznik 24 godz. / 7 dni / 30 dni w prawym górnym rogu zmienia okres na obu wykresach naraz.

Kafelek prefiksów liczy potwierdzenia silnika, a nie nasze wiersze. Prefiks może mieć u nas status aktywnego i nie być jeszcze potwierdzony jako chroniony, a to są dwa różne zdania i tylko drugie coś znaczy dla Twojego ruchu.

Oba wykresy pokazują Twój port, w dwóch jednostkach: przepustowość w bitach na sekundę i pakiety na sekundę. Liczymy je z liczników interfejsu na naszym urządzeniu, czyli z tego, co naprawdę Twoim łączem przeszło, i z tej samej liczby bierze się rachunek. Dwie jednostki, bo opisują ten sam ruch i rozjeżdżają się dokładnie wtedy, kiedy dzieje się coś ciekawego: powódź małych pakietów podnosi pakiety i ledwo rusza bity, a amplifikacja odwrotnie.

Przy taryfie percentylowej po wykresie przepustowości leci pozioma kreska percentyla bieżącego okresu, a druga pokazuje zobowiązanie. Przy pakietach kresek nie ma, bo taryfa liczy się z bitów. Bez przypisanego portu wykresy ustępują zdaniu, które to mówi, bo port milczący i port bez pomiaru wyglądają tak samo, a znaczą co innego.

Kafelki biorą się z tego samego odczytu co wykresy. Liczba nad wykresem i przebieg na nim muszą mówić o jednym pomiarze, inaczej pulpit podaje dwie prawdziwe liczby o dwóch różnych rzeczach pod jednym podpisem.

Po prawej stoi karta Rozliczenia: tryb Twojego cennika, opłata za okres i termin płatności, a pod spodem ostatnie pozycje księgi.

Jeżeli w kafelku prefiksów widzisz dopisek, że część zakresów nie jest jeszcze objęta ochroną, otwórz ekran Prefiksy i sprawdź ich status.

Kreska „—” w miejscu liczby oznacza brak odczytu, a nie zero. Jeżeli utrzymuje się dłużej niż kilka minut w trakcie ataku, napisz do NOC.

Historia ataków

Historia ataków: wykres słupkowy dni z mitygacjami i lista zdarzeń z wektorami i szczytem
Jeden słupek to jedna doba, a jego wysokość to najwyższy szczyt z tej doby. Kliknięcie otwiera szczegóły najsilniejszego zdarzenia z tego dnia.

Lista pokazuje wszystkie ataki na Twoje prefiksy w wybranym okresie: 7, 30 albo 90 dni. Jedno zdarzenie to jeden atak na jeden prefiks. Kolumna Wektory mówi, jakim ruchem atakowano, a Szczyt podaje najwyższe natężenie ruchu skierowanego na Twój prefiks.

Nad listą stoją trzy podsumowania: ile ataków trwa teraz, ile ich było w wybranym okresie i jaki był największy szczyt.

Szczegóły zdarzenia

Szczegóły zdarzenia: przebieg ataku i lista działań
Przycisk „Szczegóły" przy zdarzeniu: przebieg ataku, wektory, szczyt i to, co z nim zrobiliśmy.

Raporty

Raporty: zestawienie ruchu i mitygacji za wybrany okres z przyciskiem eksportu do PDF
Zestawienie za 7, 30 albo 90 dni. Przycisk „Eksportuj PDF" przygotowuje dokument do wysłania dalej.

Raport podsumowuje wybrany okres: ruch, liczbę ataków i ich natężenie. Do bieżącej sytuacji służy pulpit.

Prefiksy

Lista prefiksów ze stanem weryfikacji, liczbą adresów i przyciskami akcji
Przy każdym prefiksie stan weryfikacji i przycisk ponownego sprawdzenia w RPKI. Progi wykrywania są jedne dla całego konta i otwierasz je z nagłówka listy.

Lista chronionych zakresów wraz z liczbą adresów i statusem weryfikacji. Statusy i sposób postępowania opisuje rozdział Prefiksy i weryfikacja.

Tej listy nie uzupełniasz ręcznie. Prefiksy dochodzą do niej i schodzą z niej same, za Twoimi obiektami route w IRR. Żeby dodać sieć, wystaw na nią obiekt route pod swoim numerem AS albo AS-SET-em. Żeby ją zdjąć, usuń ten obiekt.

Alerty

Lista kanałów powiadomień: adresy e-mail i webhooki z zaznaczonymi rodzajami zdarzeń
Każdy kanał to adres oraz zaznaczone rodzaje zdarzeń.

Tutaj ustawiasz, dokąd mamy wysyłać powiadomienia o atakach i o stanie konta. Szczegóły w rozdziale Alerty.

Zamówienie

Tędy zamawiasz usługę i tu wraca stan umowy. Kreator prowadzi przez sposób rozliczenia, okres umowy, przepustowość portu i sposób podłączenia, pokazując cenę przy każdym wyborze, zanim cokolwiek podpiszesz. Jeden z kroków pyta o Twoją sieć i ten krok znika, kiedy numer AS jest już potwierdzony.

Na końcu powstają Umowa i Zamówienie w PDF do pobrania. Po odesłaniu podpisanego egzemplarza ekran mówi, że dokument czeka na kontrasygnatę, a po niej pokazuje umowę w mocy razem z datami okresu oznaczonego. Jeżeli styk ma być krosowaniem, stąd pobierasz też LOA/CFA dla obiektu kolokacyjnego.

Dopóki umowa nie jest w mocy, nad każdym ekranem panelu stoi pasek mówiący, na co się czeka, bo konto bez usługi wygląda inaczej niż konto z usługą tylko na tym jednym pasku.

Rozliczenia

Rozliczenia: saldo, lista faktur i księga obciążeń pogrupowana dniami
Faktury na górze, pod nimi wszystkie obciążenia, dzień po dniu.

Saldo widzisz też stale w nagłówku panelu. Sposób naliczania opisuje rozdział Rozliczenia.

Dane firmy

Formularz danych firmy z polem NIP i automatycznym pobraniem danych z rejestru
Wpisz NIP, a pozostałe dane pobierzemy z Białej listy. Jeżeli pobranie się nie powiedzie, uzupełnisz je ręcznie.

Dane z tego ekranu trafiają na fakturę. Ekran jest dostępny wyłącznie dla właściciela konta.

API i użytkownicy

Ekran API i użytkownicy: lista osób z rolami, zalogowane urządzenia i klucze API
Trzy sekcje: użytkownicy konta, Twoje zalogowane urządzenia i klucze API.

Tutaj dodajesz osoby do konta, sprawdzasz swoje zalogowane sesje i wydajesz klucze API. Szczegóły w rozdziale Konto i dostęp.

Dokumentacja / Przewodnik / Prefiksy i weryfikacja

Prefiksy i weryfikacja

Prefiks obejmujemy ochroną po sprawdzeniu w RPKI, że należy do Twojego AS-u. Sprawdzenie jest automatyczne i powtarzamy je regularnie.

Co sprawdzamy

Świadczymy tranzyt, więc to Twój AS ogłasza nam prefiks, a my przekazujemy go dalej. Sprawdzamy, czy wpis ROA w RPKI wskazuje ten AS jako źródło tego prefiksu. To samo sprawdzą nasi dostawcy, więc wynik odmowny u nas zapowiada problem także wyżej.

Porównujemy z numerem AS z podpisanej umowy, a nie z tym, który ktoś wpisał w formularzu. To rozróżnienie jest tu całym zabezpieczeniem: numer w formularzu jest liczbą, a numer w umowie jest oświadczeniem, które ktoś podpisał i które nasz operator przeczytał przed kontrasygnatą.

Skąd biorą się prefiksy na liście

Lista jest lustrem rejestru, nie formularzem. Wystawiasz obiekt route w IRR pod swoim numerem AS albo AS-SET-em, a my zakładamy wiersz sami, zwykle w ciągu godziny. Kiedy obiekt zniknie z rejestru, wiersz też schodzi. Nie ma czego wpisywać i nie ma się gdzie pomylić, a lista nie rozjeżdża się z tym, co nasz router przyjmuje od Twojej sesji, bo obie odpowiedzi biorą się z tego samego zapytania do IRR.

Każdy nowy wiersz przechodzi normalne sprawdzenie w RPKI, więc sam obiekt route niczego nie przesądza. Sieć, której ROA nie wskazuje Twojego AS-u, zostaje w stanie oczekującym i nie trafia ani do ochrony, ani na router.

Kiedy weryfikacja się nie powiedzie

Prefiks zostaje na liście i czeka. Powód jest wypisany przy nim i wskazuje, co dalej zrobić.

PowódCo oznaczaCo zrobić
brak ROAW RPKI nie ma wpisu dla tego prefiksu.Załóż ROA u swojego RIR-u. Po jego opublikowaniu sprawdzimy prefiks ponownie.
inne źródłoWpis ROA istnieje, ale wskazuje inny AS niż ten z Twojej umowy.Napisz na kontakt@nera.pl. Trzeba poprawić ROA albo numer AS po naszej stronie.
za szeroki zakresRejestr odpowiada, ale o węższym kawałku niż zgłoszony zakres, na przykład masz ROA na /24 przy prefiksie /21. Panel wypisuje, które węższe wpisy znalazł.Najczęściej to pomyłka w długości maski. Jeżeli nie, wystaw ROA na cały zakres albo zgłoś te węższe.
brak konfiguracjiNie mamy jeszcze Twojego numeru AS, bo umowa nie została kontrasygnowana.Poczekaj, aż nasz operator podpisze odesłaną umowę.
niedostępneNie udało nam się w tej chwili odpytać rejestru RPKI.Nic. Sprawdzenie powtórzy się automatycznie.

Przycisk Sprawdź w RPKI wykonuje sprawdzenie od razu, bez czekania na kolejny cykl. Nie musisz go używać, jeżeli nie spieszy Ci się z wynikiem.

Zastrzeżenie przy zweryfikowanym prefiksie

Jeżeli prefiks przeszedł weryfikację, a późniejsze sprawdzenie wypadło negatywnie, panel oznaczy go zastrzeżeniem. Ochrona działa dalej. Sprawdź wpis ROA po swojej stronie, a jeżeli jest poprawny, napisz do nas.

Statusy prefiksu

StatusCo oznacza
OczekujePrefiks jest dodany, weryfikacja jeszcze się nie zakończyła.
ZweryfikowanyWpis ROA się zgadza. Prefiks czeka na objęcie ochroną.
ChronionyOchrona jest uruchomiona i obejmuje ten zakres.
Trasa przyjętaNasz router przyjął trasę na ten prefiks na Twojej sesji BGP, więc ruch do niego idzie przez nas.
Router nie widzi trasyNasz router nie przyjął trasy na ten prefiks, więc ruch do niego nie idzie przez nas. Sprawdź sesję BGP i ogłoszenie. Ochrona prefiksu stoi niezależnie od tego.
MitygowanyTrwa atak na ten prefiks i filtrujemy ruch.
WycofanyRejestr przestał potwierdzać ten zakres, a w jego miejsce stoją węższe, które go w całości pokrywają. Wiersz zostaje jako historia i nie da się go już edytować ani usunąć.
Dokumentacja / Przewodnik / Progi wykrywania

Progi wykrywania

Progi określają, od jakiego natężenia ruch uznajemy za atak. Ustawiasz je sam, bo to Ty wiesz, jak wygląda normalny ruch w Twojej sieci.

Okno progów detekcji z rodzajami ruchu i wartościami na adres
Progi otwierasz przyciskiem „Progi wykrywania" nad listą prefiksów. Wyszarzone liczby to wartości domyślne, które ustawiliśmy za Ciebie.

Jedne progi dla całego konta, wartości dla jednego adresu

Progi ustawiasz raz i obowiązują każdy adres w każdym Twoim prefiksie osobno. Próg 500 Mb/s oznacza 500 Mb/s na każdy adres, a nie na cały zakres. Dzięki temu jeden obciążony serwer nie uruchamia filtrowania na całej Twojej sieci, a nowy prefiks od razu ma te same liczby co pozostałe.

Osobne progi dla rodzajów ruchu

Każdy rodzaj ruchu ma własny próg. Jedna wartość dla całego ruchu nie odróżni powodzi pakietów SYN od zwykłego wieczornego szczytu, bo w sumie wyglądają podobnie. Panel grupuje rodzaje ruchu i pokazuje najczęściej używane na wierzchu.

Dwie jednostki

Większość rodzajów ruchu ma próg w bitach na sekundę i w pakietach na sekundę. Wystarczy przekroczenie jednego z nich. Powódź drobnych pakietów potrafi przeciążyć sprzęt przy niewielkim paśmie, dlatego sam próg w bitach jej nie wychwyci. Część rodzajów, na przykład UDP, ICMP czy TCP SYN, mierzy się wyłącznie w pakietach i panel pokazuje przy nich jedną kolumnę.

Jak zmienić próg

  1. Otwórz progi kontaPrzycisk „Progi wykrywania" nad listą prefiksów.
  2. Kliknij liczbę, którą chcesz zmienićWartości domyślne są wyszarzone, ale klikalne.
  3. Wpisz nową wartość i zapiszPrzy progu pojawi się informacja, że zmiana czeka na wdrożenie. Trwa to zwykle krócej niż minutę, a do tego czasu obowiązuje wartość poprzednia.
Nie ograniczamy progów od góry. Próg ustawiony powyżej przepustowości Twojego łącza sprawi, że atak nie zostanie wykryty.
Dokumentacja / Przewodnik / Kiedy trwa atak

Kiedy trwa atak

Co dzieje się po przekroczeniu progu i co widzisz w panelu.

Przebieg

  1. Przekroczenie proguRuch przychodzący na któryś z Twoich adresów przekracza ustawioną wartość dla danego rodzaju ruchu.
  2. Wykryto atakZdarzenie pojawia się na pulpicie i w historii ataków. Jeżeli masz skonfigurowane alerty, powiadomienie wychodzi w tym momencie.
  3. FiltrowanieOdrzucamy pakiety należące do ataku. Pozostały ruch dociera do Twojej sieci bez zmian.
  4. KoniecRuch wraca poniżej progu, filtrowanie się kończy, a zdarzenie dostaje czas zakończenia.

Co masz zrobić

Nic. Wykrywanie i filtrowanie są automatyczne, a panel służy do podglądu. Skontaktuj się z NOC pod adresem noc@nera.pl, jeżeli mimo trwającej mitygacji Twoje usługi są niedostępne albo jeżeli atak trwa, a panel go nie pokazuje.

Etapy przy trwającym ataku

EtapCo oznacza
Wykryto atakPrzekroczono próg, przygotowujemy filtrowanie.
MitygacjaFiltrowanie działa, ruch atakujący jest odrzucany.
NieznanyNie mamy w tej chwili potwierdzenia stanu filtrowania. Jeżeli utrzymuje się dłużej niż kilka minut, napisz do NOC.

Liczby przy zdarzeniu

LiczbaCo pokazuje
terazRuch przychodzący na Twój prefiks w tej chwili.
szczytNajwyższa wartość od początku zdarzenia.

Kreska „—” w miejscu liczby oznacza brak odczytu, a nie zero.

Czego przy zdarzeniu nie podajemy

Nie podajemy, ile pakietów odrzucono. Liczymy ruch, który przyszedł, i ruch, który wyszedł Twoim portem, a różnicy między nimi nie nazywamy „odrzuconymi", bo nie jest mierzona w jednym miejscu i taka liczba wyglądałaby na pomiar, nie będąc nim. Żadna trasa API ani żaden ekran nie podaje dziś wielkości filtrowania, a liczba, której nie ma, jest lepsza od liczby, której nie da się obronić.

To, co naprawdę dotarło do Twojej sieci, czytasz z wykresów na pulpicie: idą z liczników Twojego portu i z nich liczy się też rachunek.

Wykres ruchu poza atakami

Wykres pokazuje cały ruch zmierzony na Twoich prefiksach w wybranym oknie, także poza atakami. Kubełek bez pomiaru jest pusty, nie zerowy.

Dokumentacja / Przewodnik / Alerty

Alerty

Powiadomienia o atakach i o stanie konta, wysyłane poza panel.

Okno dodawania kanału powiadomień: wybór typu, adres i zakres zdarzeń
Wybierz rodzaj kanału, podaj adres i zaznacz zdarzenia, o których chcesz wiedzieć.

Jak dodać kanał

  1. Otwórz ekran Alerty i kliknij Dodaj kanał
  2. Wybierz rodzajE-mail wysyła wiadomość na wskazany adres. Webhook wykonuje żądanie HTTP na Twój adres, jeżeli chcesz wpiąć powiadomienia we własny system dyżurów.
  3. Zaznacz rodzaje zdarzeńMożesz mieć kilka kanałów o różnym zakresie, na przykład ataki do zespołu technicznego, a rozliczenia do księgowości.

O czym powiadamiamy

  • początek i koniec ataku,
  • niskie saldo i zaległa płatność,
  • wyłączenie i przywrócenie ochrony.

Zdarzenia porządkowe zostają w panelu i nie wysyłamy o nich wiadomości.

Czego się spodziewać

Nowy kanał otrzymuje wyłącznie bieżące zdarzenia, bez zaległości sprzed jego dodania. Temat wiadomości mówi, czego dotyczy, więc widać to już na ekranie blokady telefonu.

Bez skonfigurowanego kanału o ataku dowiesz się dopiero po zalogowaniu do panelu. Ustaw przynajmniej jeden adres.
Dokumentacja / Przewodnik / Rozliczenia

Rozliczenia

Jak naliczamy opłaty i gdzie sprawdzisz każdą pozycję.

Podgląd faktury z pozycjami, kwotami netto i brutto oraz danymi nabywcy
Faktura zbiera pozycje z księgi obciążeń za dany okres.

Saldo i księga

Saldo widzisz w nagłówku panelu na każdym ekranie. Na ekranie Rozliczenia znajdziesz księgę: każde obciążenie z datą, opisem i saldem po operacji. Faktura na koniec okresu zbiera te same pozycje.

Za co płacisz

Za tranzyt IP ze stałą ochroną, w jednym z dwóch modeli ustalonym w umowie:

  • Stała opłata za port, jedna kwota za okres rozliczeniowy, niezależna od ruchu i od liczby ataków.
  • 95. percentyl z zobowiązaniem: zadeklarowane pasmo płacisz zawsze, a nadwyżkę ponad nie doliczamy za każdy rozpoczęty megabit na sekundę. Percentyl liczymy z pięciominutowych próbek ruchu na Twoim porcie w całym okresie, biorąc w każdej próbce większy z dwóch kierunków, a potem ustawiamy próbki rosnąco i bierzemy tę na pozycji odpowiadającej percentylowi. Krótkie szczyty nie podnoszą więc rachunku.

Kubełek, którego nie zmierzyliśmy, wypada z obliczeń i nie liczy się jako zero. Ile próbek weszło do rachunku, a ile było w okresie, widzisz w panelu, więc nasza awaria pomiaru nie może obniżyć ani podnieść Twojego percentyla po cichu. Klient bez przypisanego portu płaci samo zobowiązanie i nic ponad.

Ruch mierzymy na porcie po naszej stronie, czyli liczymy to, co naprawdę do Ciebie dotarło. Ten sam odczyt rysują oba wykresy na pulpicie.

Okres rozliczeniowy i faktura

Okres trwa 30 dni i liczy się od dnia uruchomienia usługi, a nie od pierwszego dnia miesiąca. Każdy kolejny okres zaczyna się dokładnie 30 dni po poprzednim, więc daty są Twoje własne i nie pokrywają się z miesiącami kalendarzowymi.

Fakturę wystawiamy na początku każdego okresu i jest na niej dwoje: opłata za rozpoczynający się okres z góry oraz nadwyżka za okres poprzedni, z dołu, bo dopiero po jego zamknięciu da się ją policzyć. Termin płatności liczy się od dnia wystawienia i wynosi tyle, ile ustalono w umowie, domyślnie 30 dni.

VAT

Kwoty w księdze są netto. VAT doliczamy raz, do sumy okresu, przy wystawianiu faktury.

Saldo jako rozrachunek

Portfel w panelu nie jest przedpłatą, z której schodzi zużycie, tylko saldem rozrachunków. Kwota brutto faktury obciąża je w dniu wystawienia, więc po wystawieniu saldo bywa ujemne, a wpłata je podnosi. Faktury rozliczamy z saldem od najstarszej, bo przelew nie wskazuje, której dotyczy.

Brak wpłaty

Terminem jest termin płatności najstarszej nieopłaconej faktury, a nie dzień, w którym saldo zeszło poniżej zera. Po tym terminie powiadamiamy Cię na kanały ustawione w Alertach i zaczyna biec karencja ustalona w umowie, domyślnie doba. Liczy się ona od powiadomienia, więc nie odcinamy ochrony na terminie, o którym nie zdążyliśmy Ci powiedzieć.

Po karencji wyłączamy ochronę, ale dostęp do panelu zostaje, żebyś mógł sprawdzić kwotę i opłacić. Na prefiksach nie zmieniamy przy tym ani jednego pola, więc po zaksięgowaniu wpłaty ochrona wraca dokładnie na te zakresy, które obejmowała wcześniej, i na żadne inne.

Dokumentacja / Przewodnik / Konto i dostęp

Konto i dostęp

Użytkownicy konta, Twoje zalogowane urządzenia i klucze API.

Dodanie użytkownika

Na ekranie API i użytkownicy kliknij Dodaj osobę, podaj adres e-mail i wybierz rolę. Konto założone w ten sposób jest od razu aktywne, bez potwierdzania adresu. Zakres uprawnień każdej roli opisuje Wprowadzenie.

Zalogowane urządzenia

Ekran API i użytkownicy z listą osób, urządzeń i kluczy API
Każda sesja z przeglądarką, systemem, adresem IP i czasem ostatniego użycia.

Lista pokazuje Twoje własne sesje. Jeżeli którejś nie rozpoznajesz, kliknij Wygaś. Sesja kończy się natychmiast. Przycisk Wyloguj wszędzie indziej zostawia tylko tę, na której właśnie pracujesz.

Klucze API nie tworzą sesji i nie ma ich na tej liście. Unieważnisz je w sekcji poniżej.

Klucze API

Okno tworzenia klucza API z nazwą, zakresami uprawnień i datą wygaśnięcia
Nazwa, zakresy uprawnień i opcjonalna data wygaśnięcia.
  1. Kliknij Nowy kluczNadaj nazwę, po której rozpoznasz, do czego służy.
  2. Zaznacz zakresyNadaj tylko te uprawnienia, których integracja naprawdę potrzebuje. Skrypt zbierający statystyki ruchu nie musi mieć dostępu do rozliczeń.
  3. Zapisz sekretPokazujemy go jeden raz, przy tworzeniu. Później nie da się go odczytać. Jeżeli go zgubisz, unieważnij klucz i wydaj nowy.

Sesja w panelu

Zalogowanie starcza na osiem godzin ciągłej pracy albo na siedem dni, jeżeli przy logowaniu zaznaczysz Zapamiętaj mnie. Po tym czasie panel poprosi o hasło. W trakcie pracy sesja odnawia się sama i nic Cię nie przerywa.

Dokumentacja / API / Uwierzytelnianie

Uwierzytelnianie

Wszystko, co robisz w panelu, możesz zrobić przez REST API. Adres bazowy to https://api.nera.pl/api/v1, wyłącznie po TLS.

Klucz API

Do integracji służy klucz API, wysyłany w nagłówku X-Api-Key. Klucz jest związany z Twoim kontem, ma zakres uprawnień i datę wygaśnięcia. Tworzysz go w panelu, na ekranie API i użytkownicy.

żądanie
# Klucz utworzysz w panelu. Sekret pokazujemy raz, przy tworzeniu.
curl https://api.nera.pl/api/v1/prefixes \
  -H "X-Api-Key: nera_live_xxxxxxxxxxxxxxxxxxxx"
Klucz idzie w X-Api-Key, a nie w Authorization. Nagłówek Authorization: Bearer jest zarezerwowany dla tokenów sesji panelu i klucza tam nie przyjmiemy.

Zakresy uprawnień

ZakresCo otwiera
prefixes:readOdczyt prefiksów, ich stanu weryfikacji, progów i tego, czy router przyjął na nie trasę.
prefixes:writeDodawanie, zmiana i usuwanie prefiksów oraz ustawianie progów.
events:readHistoria ataków, trwające mitygacje i strumień powiadomień.
stats:readStatystyki ruchu.
notifications:writeZmiana kanałów powiadomień.
billing:readSaldo, księga obciążeń i faktury.

billing:read jest osobnym zakresem, a nie częścią stats:read: klucz zbierający wolumen ruchu nie ma powodu czytać, ile płacisz, a potrzebują ich zwykle różne integracje.

Token sesji

Jeżeli budujesz coś, co loguje człowieka, użyj POST /auth/login z polami login, password i panel: "client". Odpowiedź niesie token ważny godzinę, wysyłany potem jako Authorization: Bearer. POST /auth/refresh wymienia żywy token na nowy, bez hasła, do granicy liczonej od logowania.

Jeżeli logowanie odpowie must_change_password, ten token dosięgnie wyłącznie POST /auth/password. Każda inna trasa odmówi z typem password-change-required.

Dokumentacja / API / Konwencje i błędy

Konwencje i błędy

Reguły wspólne dla całego API. Warto przeczytać raz, zamiast odkrywać je po kolei.

Konwencje

RzeczJak
WersjaW ścieżce: /api/v1. Zmiana łamiąca zgodność dostaje nową wersję.
CzasISO 8601 w UTC, np. 2026-08-23T09:15:00Z.
KwotyLiczby całkowite w groszach, obok nich osobne pole waluty. Bez liczb zmiennoprzecinkowych.
Stronicowanie?limit= i ?cursor=. Odpowiedź niesie items i next_cursor, a null znaczy koniec.
LimityNa adres IP i na klucz. Przekroczenie to 429 z nagłówkiem Retry-After.
BłędyRFC 7807, typ zawartości application/problem+json.

Kształt odmowy

odpowiedź 403
{
  "type": "https://nera.pl/errors/forbidden",
  "title": "Forbidden",
  "status": 403,
  "detail": "Klucz ma zakres odczytu, operacja wymaga zapisu.",
  "instance": "/api/v1/prefixes"
}

Rozstrzygaj po ostatnim segmencie pola type, a nie po całym adresie ani po treści detail. Ten segment jest stabilny, a adres bazowy i zdania pisane dla ludzi mogą się zmienić.

Typy, które warto obsłużyć

TypKodZnaczy
invalid-credentials401Zły login albo hasło. Ta sama odpowiedź niezależnie od tego, które.
session-expired401Token wygasł albo minęła granica odnawiania. Zaloguj się ponownie.
totp-required401Hasło poprawne, brakuje kodu z aplikacji.
email-unconfirmed403Adres konta nie został potwierdzony linkiem.
password-change-required403Trzeba zmienić hasło, zanim cokolwiek innego zadziała.
forbidden403Rola albo zakres klucza nie pozwala na tę operację.
not-found404Nie ma takiego zasobu w Twoim koncie.
conflict409Stan zasobu wyklucza tę operację.
invalid-input400Treści żądania nie da się przyjąć. Powód stoi w detail.
too-many-requests429Budżet wyczerpany. Poczekaj tyle, ile mówi Retry-After.
service-unavailable503Zależność jest niedostępna. Powtórz później.

Pełny kontrakt

Dokument OpenAPI jest generowany z kodu i jest rozstrzygający: https://api.nera.pl/api-docs/openapi.json. Ta strona tłumaczy model i konwencje, a tamten plik podaje każde pole.

Dokumentacja / API / Prefiksy

Prefiksy

Zakresy adresów pod ochroną, ich stan weryfikacji i to, czy ochrona jest już uruchomiona.

OperacjaOpis
GET/prefixesStrona prefiksów. ?limit=, ?cursor=.
POST/prefixesDodaje prefiks. Weryfikacja RPKI dzieje się w środku tego żądania.
GET/prefixes/{id}Jeden prefiks.
PATCH/prefixes/{id}Zmienia zapis CIDR.
DEL/prefixes/{id}Usuwa prefiks. 204.
POST/prefixes/{id}/verifyPyta RPKI jeszcze raz, teraz. Bez treści żądania.
GET/prefixes/announcementsNa które prefiksy nasz router przyjął trasę. Informacja o Twojej sesji, nie warunek ochrony.
GET/account/asnAS, na który otwarto konto, i czy podpisana umowa go potwierdza.

Dodanie prefiksu

Trasa jest dla skryptów i zostaje. W panelu jej nie znajdziesz, bo lista prefiksów idzie tam za Twoimi obiektami route w IRR i nie ma czego wpisywać. Prefiks dodany tędy przechodzi to samo sprawdzenie w RPKI co każdy inny.

żądanie
curl -X POST https://api.nera.pl/api/v1/prefixes \
  -H "X-Api-Key: nera_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"cidr":"203.0.113.0/24"}'
odpowiedź 201
{
  "id": "01J8Z9T2K4M7Q0V3XB5C6D8E9F",
  "cidr": "203.0.113.0/24",
  "status": "pending",
  "verification": null,
  "verification_blocker": {
    "kind": "no_roa",
    "reason": "Brak wpisu ROA dla tego prefiksu."
  },
  "verification_checked_at": "2026-08-23T09:15:00Z",
  "verification_concern": null,
  "engine_confirmed_at": null,
  "created_at": "2026-08-23T09:15:00Z"
}
Kod 201 nie znaczy „chroniony”. Odmowa weryfikacji jest stanem prefiksu, nie nieudanym żądaniem, więc czytaj verification_blocker, a nie sam kod odpowiedzi.

Pola, które łatwo pomylić

PoleCo mówi
statusNasz zapis o prefiksie.
verificationWynik ostatniego sprawdzenia w RPKI. null znaczy „jeszcze nie wiemy”.
verification_blocker{kind, reason}, gdzie kind to no_roa, wrong_origin, not_configured albo unavailable. Tylko pierwszy naprawiasz sam.
verification_concernPrefiks kiedyś przeszedł, a późniejsze sprawdzenie wypadło źle. Nic nie zostało odebrane.
engine_confirmed_atKiedy ochrona faktycznie objęła ten prefiks. Puste oznacza, że jeszcze go nie obejmuje, nawet jeżeli weryfikacja wypadła pomyślnie. To po tym polu poznaje się prefiks realnie chroniony.

Jeżeli Twój monitoring ma raportować, że prefiks jest chroniony, sprawdzaj engine_confirmed_at, a nie status.

Dokumentacja / API / Progi wykrywania

Progi wykrywania

Od jakiego natężenia ruch na jeden adres uznajemy za atak.

Progi są jedne dla całego konta i obowiązują każdy adres w każdym Twoim prefiksie osobno. Silnik ochrony mierzy klienta jako całość, więc osobna liczba dla jednego prefiksu nie miałaby czego pilnować.

OperacjaOpis
GET/thresholdsTwoje progi, wartości domyślne, lista dostępnych rodzajów ruchu i jednostki, w jakich każdy z nich się mierzy.
PUT/thresholdsUstawia jeden próg.
DEL/thresholdsZdejmuje próg. Parametry w zapytaniu: decoder i unit.
ustawienie progu
curl -X PUT https://api.nera.pl/api/v1/thresholds \
  -H "X-Api-Key: nera_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"decoder":"tcpsyn","unit":"packets","value":40000}'

# Zdjęcie progu: DELETE ...?decoder=tcpsyn&unit=packets

Co znaczą pola odpowiedzi

PoleCo mówi
itemsProgi ustawione przez Ciebie. Każdy ma decoder, unit i value.
engine_confirmed_atKiedy próg zaczął obowiązywać. Puste oznacza, że zmiana jest zapisana, ale jeszcze nie weszła w życie, a do tego czasu działa wartość poprzednia.
defaultsObowiązujące wartości domyślne. null oznacza, że nie znamy ich w tej chwili, a [], że nie ustawiono żadnej.
available_decodersRodzaje ruchu, dla których można ustawić próg, na przykład total, tcpsyn, udp, dns_amp. Pusta lista oznacza, że nie znamy ich w tej chwili, a nie że nie ma żadnych.
decoder_unitsDla każdego rodzaju ruchu jednostki, w jakich da się ustawić próg: bits, packets albo obie. Część rodzajów, na przykład udp i icmp, mierzy się wyłącznie w pakietach i próg w bitach jest dla nich odrzucany.
all_in_forceCzy wszystkie Twoje progi już obowiązują.

Każda wartość dotyczy jednego adresu, nie całego konta ani prefiksu. Nie narzucamy górnej granicy.

Dokumentacja / API / Ataki i ruch

Ataki i ruch

Co trwa teraz, co się wydarzyło i ile ruchu przeszło.

OperacjaOpis
GET/mitigations/liveCo atakuje Cię w tej chwili.
GET/eventsHistoria. ?since=, ?limit=, ?cursor=.
GET/events/{id}Jedno zdarzenie.
GET/statsRuch w podziale na prefiksy oraz szereg czasowy. ?since=, ?until=.
GET/traffic/portTwoje łącze tak, jak policzył je nasz router: oba kierunki w bitach i w pakietach, percentyl bieżącego okresu i zobowiązanie. To jest liczba, z której bierze się rachunek, i to ją rysuje pulpit.

Dwa pola, bez których reszta kłamie

GET /mitigations/live niesie obok listy blok freshness. Sprawdź go, zanim uznasz pustą listę za spokój. Pole recording mówi, czy odczyt jest aktualny. Wartość false oznacza, że nie mamy w tej chwili świeżych danych, więc pusta lista niczego nie dowodzi.

GET /stats niesie source. Wartość flow-store znaczy „zmierzone”, a każda inna znaczy, że zera są strukturalne i nie wolno ich czytać jako „nie było ataku”.

odpowiedź /mitigations/live
{
  "freshness": { "recording": true, "last_seen_at": "2026-08-23T09:14:31Z" },
  "mitigations": [
    {
      "id": "01J8Z9…",
      "prefix": "198.51.100.0/24",
      "phase": "mitigating",
      "vectors": ["TCP SYN", "UDP"],
      "started_at": "2026-08-23T08:22:00Z",
      "live_bps": 6400000000,
      "live_pps": 1100000,
      "peak_bps": 9800000000,
      "peak_pps": 1400000
    }
  ]
}

phase przyjmuje detected, mitigating albo unknown. Wartość unknown oznacza brak potwierdzenia stanu filtrowania, a nie jego brak.

live_bps i live_pps mogą być null. Oznacza to brak odczytu, a nie zerowy ruch.

Ruch na Twoim porcie

GET /traffic/port to inny pomiar niż /stats i warto ich nie mylić. /stats mówi, ile ruchu szło na Twoje prefiksy, a /traffic/port ile naprawdę wyszło Twoim portem na naszym urządzeniu. Rachunek liczy się z tego drugiego.

Każdy punkt niesie cztery liczby: to_customer_bps i from_customer_bps oraz to_customer_pps i from_customer_pps. Bity i pakiety pochodzą z tych samych liczników interfejsu i z tego samego kubełka, więc nie trzeba ich zestawiać z dwóch zasobów.

Pole state rozstrzyga, czy w ogóle jest pomiar: measured (pusty szereg znaczy wtedy ciche łącze), unmeasured (port jest przypisany, ale w tej chwili go nie próbkujemy) albo unmetered (nie masz przypisanego portu). Kubełek, którego nie zmierzono, jest nieobecny, a nie zerowy.

Blok period niesie percentyl Twojego bieżącego okresu rozliczeniowego razem z buckets_measured i buckets_total, więc widać, z ilu próbek został policzony. value_bps równe null znaczy, że nie zmierzono nic, a nie że było zero. Okres już zamknięty i wyceniony wraca tak, jak go zapisano (settled), a nie przeliczony od nowa, żeby wykres pokazywał to, co policzyła faktura.

Dokumentacja / API / Rozliczenia

Rozliczenia

Saldo, księga obciążeń i faktury. Wszystko tylko do odczytu.

OperacjaOpis
GET/billing/walletSaldo, waluta, czy jest niskie i czy ochrona jest wyłączona za brak wpłaty.
GET/billing/entriesKsięga obciążeń. ?from=, ?to=, ?limit=, ?offset=.
GET/billing/planTwój cennik: tryb rozliczenia, zobowiązanie i stawki, termin płatności, dzień uruchomienia usługi i bieżący okres.
GET/invoicesWystawione faktury.
GET/invoices/{id}Jedna faktura z pozycjami.
GET/invoices/{id}/pdfDokument PDF, dokładnie taki, jaki wystawiono.

Wszystkie kwoty są liczbami całkowitymi w groszach, w polach z przyrostkiem _minor, a waluta stoi obok. Pole low w portfelu jest rozstrzygane po naszej stronie, żeby dwie integracje nie miały różnego zdania o tym, co znaczy „niskie saldo”.

Każda pozycja księgi ma balance_after_minor, więc saldo da się odtworzyć bez sumowania od początku świata. Faktura nie nalicza niczego na nowo, tylko czyta tę samą księgę.

Dokumentacja / API / Konto i klucze

Konto i klucze

Użytkownicy, klucze API, sesje i dane firmy.

OperacjaOpis
GET/account/meRola i konto wywołującego.
GET/account/serviceCzy usługa działa, a jeżeli nie, to na kogo się czeka. Tanie pytanie, do zadawania na każdym ekranie.
GET/account/sessionsTwoje zalogowane urządzenia.
DEL/account/sessions/{id}Wygasza jedną sesję. Bez identyfikatora: wszystkie poza bieżącą.
GET/account/companyDane firmy do faktury. Wyłącznie właściciel konta.
PUT/account/companyZmiana tych danych.
GET/account/company/lookupPodpowiedź danych po NIP-ie z Białej listy. ?nip=.
GET/usersUżytkownicy konta.
POST/usersDodaje osobę: email i role.
PATCH/users/{id}Zmienia rolę.
DEL/users/{id}Usuwa użytkownika.
GET/apikeysKlucze API, bez sekretów.
POST/apikeysTworzy klucz: name, scopes, opcjonalnie expires_at.
DEL/apikeys/{id}Unieważnia klucz.
GET/onboardingTwoja deklaracja sieci, tak jak ją ostatnio zapisałeś.
POST/onboardingZapisuje deklarację: ASN, AS-SET, prefiksy. Nadpisuje poprzednią.
GET/onboarding/routesPrefiksy, które IRR zna pod podanym ASN albo AS-SET-em. Podpowiedź do kreatora, nic nie zapisuje.
Sekret klucza jest w odpowiedzi 201 i nigdzie więcej. Nie da się go odczytać później ani żadną inną trasą. Zapisz go od razu albo utwórz nowy klucz.

Umowa

OperacjaOpis
GET/contractTwoja umowa, jeżeli jest, cennik terminowy, podgląd wyceny i lista braków z zaznaczeniem, czyje są do uzupełnienia.
POST/contractZamawia usługę: mode, term_months, port_bps, commit_bps. Reszta dokumentu składa się z tego, co już o Tobie wiemy.
GET/contract/documentUmowa w PDF, dokładnie taka, jaka została wystawiona.
GET/contract/loaUpoważnienie do krosowania (LOA/CFA) ze wskazaniem konkretnego portu, po polsku i po angielsku.

POST /contract przyjmuje wyłącznie wybór handlowy. Nazwy firmy, adresu, numeru AS ani prefiksów tam nie ma i nie da się ich tędy podać, bo formularz pozwalający wpisać cudzy numer AS jest formularzem, w którym ktoś go wpisze. Stawka też nie jest wyborem, tylko wynika z długości umowy.

GET /contract/loa odpowiada 409 w trzech przypadkach i każdy znaczy co innego: styk wirtualny (nie ma włókna ani pozycji w panelu krosowniczym, więc nie ma czego upoważniać), umowa jeszcze niepodpisana (dokument zajmuje port, którego nikt inny już nie dostanie) albo brak wolnej pozycji w obiekcie, co jest do załatwienia po naszej stronie. Ponowne pobranie zwraca tę samą pozycję, nigdy kolejnej.

POST /onboarding jest deklaracją, nie nadaniem uprawnień. Numer AS, który tam wpiszesz, jest liczbą, którą ktoś wpisał, a nie zapisem prawa do tego AS-a, więc dopóki umowa nie jest kontrasygnowana, żaden prefiks nie ma się o co zweryfikować. Prawo do numeru zapisuje dopiero kontrasygnata umowy, w której oświadczasz, że numer jest Twój.

Kolejne wywołanie nadpisuje Twoją poprzednią deklarację, zamiast ją odrzucać, bo numer trafia na dokument podpisywany raz i poprawiany aneksem. Do chwili podpisu masz go poprawiać, a nie prosić kogoś o skasowanie literówki.

Dokumentacja / API / Powiadomienia

Powiadomienia

Kanały, którymi wychodzą alerty, oraz strumień zdarzeń na żywo.

OperacjaOpis
GET/notificationsKanały: dokąd wysyłamy i o czym.
PUT/notificationsZmienia komplet kanałów.
GET/feedZaległe powiadomienia, od najstarszego. ?after=, ?limit=.
GET/feed/streamTen sam strumień na żywo, jako Server-Sent Events.

Strumień, który przeżywa zerwanie

Każda ramka /feed/stream niesie id. Klient, który stracił połączenie, wysyła przy ponownym łączeniu nagłówek Last-Event-ID, a my odtwarzamy lukę, zanim przejdziemy na żywo. Zamknięta klapa laptopa nie ma kosztować tego jednego powiadomienia, które miało znaczenie.

nasłuch
curl -N https://api.nera.pl/api/v1/feed/stream \
  -H "X-Api-Key: nera_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Last-Event-ID: 4821"

/feed mówi, co się wydarzyło, a /notifications, dokąd to wysyłamy. Dwie różne sprawy pod podobnymi nazwami.

Kontrakt rozstrzygający: https://api.nera.pl/api-docs/openapi.json