Kategorie
#Ludzie: Z pulpitu administratora

Automatyczne aktualizowanie list prefiksów

Mutually Agreed Norms for Routing Security (MANRS) to globalna inicjatywa, która pomaga w zwiększeniu bezpieczeństwa routingu oraz redukuje zagrożenia związane z atakami na sygnalizację w sieci Internet (https://www.manrs.org/). W ramach inicjatywy opracowano szereg zaleceń, z których jednym jest zapobieganie propagowania niewłaściwych informacji za pomocą protokołu BGP. Taką funkcjonalność można osiągnąć za pomocą kilku prostych i ogólnie dostępnych narzędzi.

W przypadku prototypowej usługi PIONIER-IX zastosowane zostały ansible, bgpq3 i skrypt python [1,2].

Za pomocą narzędzia bgpq3 pozyskiwana jest z bazy RIPE informacja na temat zarejestrowanych lub rozgłaszanych przez dany AS prefiksów. Informacje formatowane są w sposób właściwy dla wybranej platformy sprzętowej. Przykładowo dla sieci POZMAN wygląda to następująco:

Za pomocą bgpq3 można również wygenerować listę prefiksów dla zarejestrowanego w bazie RIPE macro:

Automatyzacja tego procesu będzie więc polegała „tylko” na określeniu jakie filtry mają być zbudowane oraz jak zaktualizować konfigurację routera. W tym celu można zastosować skrypt [2] lub jego modyfikację. Skrypt przeszukuje konfigurację routera pod kątem prefix-list o określonej nazwie i wykonuje odpowiednią aktualizację. Modyfikacja w przypadku route server’a PIONIER-IX polega na zawarciu w nazwie prefiks listy identyfikatora zastosowanego w RIPE macro oraz wykorzystaniu dynamic-db w systemie Junos.

W rezultacie konfiguracja routera wygląda następująco:

Same prefiksy podlegające aktualizacji są natomiast „schowane” w dynamic-db i nie „zaśmiecają” widoku konfiguracji głównej.

W analogiczny sposób można zbudować poprawną listę systemów AS, które spodziewamy się odbierać od sąsiada BGP:

Dodatkowo w przypadku wielu urządzeń, na których uruchomiono BGP, można wykorzystać anisble w celu stosowania zmian na kilku urządzeniach.

 

[1] How to Automatically Update Prefix Lists https://www.juniper.net/documentation/en_US/day-one-books/topics/topic-map/how-to-automatically-update-prefix-lists.html

[2] JUNOS-Automation-Cookbook/Chapter08/build-route-filters.py  https://github.com/PacktPublishing/JUNOS-Automation-Cookbook/blob/master/Chapter08/build-route-filters.py

Tomasz Szewczyk