Remotely Triggered Black Hole via community - przekazanie prefiksów z sondy RTBH do ISP przez router Cisco ASR 1002-X
: 26 mar 2018, 16:46
Witam szanowne grono,
Mam przed sobą zadanie uruchomienia systemu do RTBH, który ma funkcjonować w poniższej topologii:
https://image.ibb.co/bRcrn7/bh.jpg
Są sobie dwa łącza od niezależnych operatorów na których mam zestawione produkcyjne sesje BGP. Łacza te przechodzą przez switcha w dwóch odrębnych vlanach (na schemacie vlan zielony i vlan żółty). Switch ten ma za zadanie mirrorowanie całego ruchu IP jaki mam na stykach z tymi operatorami i przekazywanie go do sondy od blackholingu w celu jego analizy. Obaj moi operatorzy obsługują RTBH tylko i wyłącznie za pomocą odpowiednich community na produkcyjnych sesjach BGP, a te mam zestawione do ASRa.
I tu zaczyna się zabawa... Załóżmy, że od strony ISP1 przychodzi atak DDoS na adres X.X.X.X/32 znajdujący się w mojej lokalnie publicznej przestrzeni IP (na schemacie chmura LAN). Sonda go wychwytuje i wysyła do ASRa odpowiednie dla ISP1 community z atakowanym adresem /32. Dzieje sie to na dedykowanej do tego sesji BGP pomiędzy sondą, a ASRem. Z tego co doczytałem to standardowo dla BH na ASRze powinna istnieć trasa statyczna do celu 192.0.2.1 prowadząca przez interfejs Null0, a po odebraniu na ASRze atakowanego prefiksu z sondy z odpowiednim community ustawienie mu nexthopa właśnie na 192.0.2.1. Jednak, o ile dobrze rozumuję, wstawienie go do tablicy routingu spowoduje wysłanie w Nulla całego ruchu przychodzącego z internetu, w tym tego prawidłowego, który nadchodzi od strony ISP2 i jest zaadresowany do atakowanego hosta X.X.X.X/32. Zamysł całości jest taki, żeby nie wysyłać w czarną dziurę żadnego ruchu IP u siebie na ASRze, a tylko przekazywać otrzymany od sondy prefiks /32 z odpowiednim community do odpowiedniego operatora. Blackholing niepożądanego ruchu IP powinien zrobić mój ISP od strony którego nadchodzi atak. W ten sposób atakowany host wciąż bedzie osiągalny przez ISP2. Po za tym, wg. mojej wiedzy o BGP, żeby wysłać jakiś prefiks w sesji musi on istnieć w tablicy routingu, a to komplikuje mi sprawę, bo jak nie będę miał go w tablicy routingu to nie będę miał co wysłać do ISP.
Szukałem po internetach czegoś w rodzaju jak wstrzyknąć w tablicę BGP wysyłaną do ISP prefix /32 otrzymany od sondy bez jego instalacji w tablicy routingu lub możliwości zainstalowania w tablicy routingu ASRa takiej trasy, ale żeby nie miała ona wpływu na forwardowanie pakietów i niestety moje poszukiwania nie przyniosły zadowalającego efektu. Do tego nie mogę robić zbytnio przerw w środowisku produkcyjnym, mającym działać 24h/dobę, by metodą prób i błędów dojść samodzielnie do rozwiązania. Czy ktoś z Was będzie w stanie wskazać mi drogę jak to osiągnąć?
Mam przed sobą zadanie uruchomienia systemu do RTBH, który ma funkcjonować w poniższej topologii:
https://image.ibb.co/bRcrn7/bh.jpg
Są sobie dwa łącza od niezależnych operatorów na których mam zestawione produkcyjne sesje BGP. Łacza te przechodzą przez switcha w dwóch odrębnych vlanach (na schemacie vlan zielony i vlan żółty). Switch ten ma za zadanie mirrorowanie całego ruchu IP jaki mam na stykach z tymi operatorami i przekazywanie go do sondy od blackholingu w celu jego analizy. Obaj moi operatorzy obsługują RTBH tylko i wyłącznie za pomocą odpowiednich community na produkcyjnych sesjach BGP, a te mam zestawione do ASRa.
I tu zaczyna się zabawa... Załóżmy, że od strony ISP1 przychodzi atak DDoS na adres X.X.X.X/32 znajdujący się w mojej lokalnie publicznej przestrzeni IP (na schemacie chmura LAN). Sonda go wychwytuje i wysyła do ASRa odpowiednie dla ISP1 community z atakowanym adresem /32. Dzieje sie to na dedykowanej do tego sesji BGP pomiędzy sondą, a ASRem. Z tego co doczytałem to standardowo dla BH na ASRze powinna istnieć trasa statyczna do celu 192.0.2.1 prowadząca przez interfejs Null0, a po odebraniu na ASRze atakowanego prefiksu z sondy z odpowiednim community ustawienie mu nexthopa właśnie na 192.0.2.1. Jednak, o ile dobrze rozumuję, wstawienie go do tablicy routingu spowoduje wysłanie w Nulla całego ruchu przychodzącego z internetu, w tym tego prawidłowego, który nadchodzi od strony ISP2 i jest zaadresowany do atakowanego hosta X.X.X.X/32. Zamysł całości jest taki, żeby nie wysyłać w czarną dziurę żadnego ruchu IP u siebie na ASRze, a tylko przekazywać otrzymany od sondy prefiks /32 z odpowiednim community do odpowiedniego operatora. Blackholing niepożądanego ruchu IP powinien zrobić mój ISP od strony którego nadchodzi atak. W ten sposób atakowany host wciąż bedzie osiągalny przez ISP2. Po za tym, wg. mojej wiedzy o BGP, żeby wysłać jakiś prefiks w sesji musi on istnieć w tablicy routingu, a to komplikuje mi sprawę, bo jak nie będę miał go w tablicy routingu to nie będę miał co wysłać do ISP.
Szukałem po internetach czegoś w rodzaju jak wstrzyknąć w tablicę BGP wysyłaną do ISP prefix /32 otrzymany od sondy bez jego instalacji w tablicy routingu lub możliwości zainstalowania w tablicy routingu ASRa takiej trasy, ale żeby nie miała ona wpływu na forwardowanie pakietów i niestety moje poszukiwania nie przyniosły zadowalającego efektu. Do tego nie mogę robić zbytnio przerw w środowisku produkcyjnym, mającym działać 24h/dobę, by metodą prób i błędów dojść samodzielnie do rozwiązania. Czy ktoś z Was będzie w stanie wskazać mi drogę jak to osiągnąć?