IOS XR - route-policy
: 03 lip 2018, 08:25
Hej,
Próbuję pogodzić ze sobą parę tematów:
- Wanguard
- dwóch ISP obsługujących blackholing
- platforma IX z route-serverem nie obsługująca blackholingu
- pięć różnych prefixów /21
Wanguard z blackholingiem do ISP działa ok. IX chciałbym potraktować tak, że jak Wanguard wykryje atak i utworzy wpis BH na adres /32, to aby cały prefix /21 z zaatakowanego adresu przestać rozgłaszać do IX, by móc "filtrować" atak u ISP.
To, co chcę uzyskać, to działanie na prefixie X, pod warunkiem istnienia wpisu Y.
Krótka legenda:
X to sieć /21
Y to pojedynczy adres w tej sieci Y/32
blackhole community to 666
A, B, C - pozostałe sieci /21
Z tego, co zauważyłem, funkcja IF w route-policy nie pozwala na traktowanie wpisu Y jako triggera do akcji, tylko chce pracować na nim samym. Próby zacząłem od
route-policy ddos-ix
if destination in (X or A, or B or C) or (destination in Y and community in 666) then ! przywołuję wszystkie możliwe adresy, aby były brane pod uwagę w route policy oraz sprawdzam istnienie wpisu Y z BH)
apply no-announce-X_passABC ! jeżeli warunek spełniony, to nie rozgłaszaj X
else
pass ! jak niespełniony, to rozgłaszaj wszystkie /21
Problem w tym, że w funkcji IF występuje OR, czyli obojętnie który z warunków musi być spełniony by iść dalej.
Spróbowałem więc z AND, ale wtedy właściwie nie działa nic, bo funkcja ta sprawdza, czy destination dla danej operacji jest jednocześnie X oraz Y, a przecież pojedynczy wpis nie może mieć dwóch destination...
Logika funkcji IF działa więc wg mnie trochę bardziej jak FOR...
Walczę dalej, spróbuję teraz podziałać ze zmiennymi globalVar... jak mi coś wyjdzie to się może pochwalę. Ale może Wy macie jakiś inny pomysł jak zrealizować takie zadanie?
Próbuję pogodzić ze sobą parę tematów:
- Wanguard
- dwóch ISP obsługujących blackholing
- platforma IX z route-serverem nie obsługująca blackholingu
- pięć różnych prefixów /21
Wanguard z blackholingiem do ISP działa ok. IX chciałbym potraktować tak, że jak Wanguard wykryje atak i utworzy wpis BH na adres /32, to aby cały prefix /21 z zaatakowanego adresu przestać rozgłaszać do IX, by móc "filtrować" atak u ISP.
To, co chcę uzyskać, to działanie na prefixie X, pod warunkiem istnienia wpisu Y.
Krótka legenda:
X to sieć /21
Y to pojedynczy adres w tej sieci Y/32
blackhole community to 666
A, B, C - pozostałe sieci /21
Z tego, co zauważyłem, funkcja IF w route-policy nie pozwala na traktowanie wpisu Y jako triggera do akcji, tylko chce pracować na nim samym. Próby zacząłem od
route-policy ddos-ix
if destination in (X or A, or B or C) or (destination in Y and community in 666) then ! przywołuję wszystkie możliwe adresy, aby były brane pod uwagę w route policy oraz sprawdzam istnienie wpisu Y z BH)
apply no-announce-X_passABC ! jeżeli warunek spełniony, to nie rozgłaszaj X
else
pass ! jak niespełniony, to rozgłaszaj wszystkie /21
Problem w tym, że w funkcji IF występuje OR, czyli obojętnie który z warunków musi być spełniony by iść dalej.
Spróbowałem więc z AND, ale wtedy właściwie nie działa nic, bo funkcja ta sprawdza, czy destination dla danej operacji jest jednocześnie X oraz Y, a przecież pojedynczy wpis nie może mieć dwóch destination...
Logika funkcji IF działa więc wg mnie trochę bardziej jak FOR...
Walczę dalej, spróbuję teraz podziałać ze zmiennymi globalVar... jak mi coś wyjdzie to się może pochwalę. Ale może Wy macie jakiś inny pomysł jak zrealizować takie zadanie?