Podkast 21T42 ACL Wildcard [Konfiguracja]
Więcej miejsc do posłuchania:
WERSJA TEKSTOWA:
Cześć, witam Cię w dzisiejszym odcinku mojego podcastu. Temat – wildcard ACL – czyli access listy i używanie wildcard-ów.
Może na początek ciekawostka – różni producenci podchodzą do tego różnie – jeżeli chodzi o Cisco, to tradycyjnie, wymyśliło i stosowało taką koncepcję jak wildcard. Różni się on od maski tym, że jest jej odwrotnością. Jeżeli masz maskę 24 bitową tzn. że używasz 24 bitów – ważne są 24 bity, liczone od lewej strony w postaci binarnej, dla danego adresu. Natomiast jeśli chodzi o wildcard, odwrotność polega na tym, że brane są pod uwagę od prawej strony bity, które są wskazane. Czyli jeśli wskażesz trzy bity w wildcard, to jest dziesiętna wartość – 7, to będziesz brał pod uwagę tylko trzy bity od prawej strony, jeżeli rozpiszesz sobie binarnie dany adres IP.
Więc w zależności od tego, co chcesz osiągnąć, można używać jednej i drugiej wersji. Oczywiście w Cisco przy Akcess Listach jest dostępny tylko wildcard, ale np w Arubie, jeśli się pisze Akcess Listy, dostępne są tylko maski. Jednocześnie zaletą i wadą wildcard jest to, że nie musi być ciągła. O ile maski, w przypadku sieci IP, muszą być ciągłe, nie może wystąpić jakiś bit niemaskowany pomiędzy. Tzn. jeśli patrzysz na maskę 24 bity, to licząc od lewej, wszystkie 24 bity muszą być maskowane albo 23, 22,21. Nie może być tak, że jest maska 24 bity, a 6 bit może być maskowany, lub nie. Takiej opcji w maskach nie ma. W wildcard natomiast jest. Jeżeli wybierzesz sobie wildcarda nie 3 bity po prawej stronie, tylko jedynie 4 bit będzie wildcardem. Czyli wyobraź sobie, że masz od prawej strony cztery pozycje – dwie i dwie – wybierasz wartość 8 – czyli to będzie czwarty bit. Pierwszy ma wartość 1, kolejny ma wartość 2 (sumują się i już jest 3), kolejny ma 4, czyli jest 7, kolejny ma 8. Czyli, jeśli wpiszesz dziesiętnie w wildcardzie 8, to maskujesz tylko jeden bit – konkretniej 4 bit, który jest liczony od prawej strony. To daje pewne dodatkowe możliwości, możesz powiedzieć, że chcesz maskować tylko 4 bit. Access lista, która będzie stosowana z wildcardem będzie maskować ten jeden bit. Tzn będziesz mógł mieć nieciągłość w blokowaniu ruchu dla poszczególnych hostów. Jest to bez wątpienia ciekawostka, da się to tak zrobić i to będzie działać. W praktyce jednak nie obserwuje tego typu implementacji, dlatego, że troubleshooting jest bardzo ciężki, czyli szukanie problemów. Jeżeli się okazuje, że coś nie działa, to teraz analizowanie takich skomplikowanych koncepcji blokowania w access liście jest po prostu czasochłonne i trudno może być je znaleźć.
Wyobraź sobie, że nie masz 3 wpisów w access liście, tylko masz tych wpisów 1000. Jak będziesz wtedy analizował dla każdego z tych wpisów, czy ten wpis blokuje właśnie ten pakiet? Byłoby to niesamowicie skomplikowane więc w praktyce nie stosuje się tego typu podejścia. Pewnie właśnie z tego powodu Aruba zrezygnowała ze stosowania wildcardów, zostawiając stosowanie maski jako pewnego ujednolicenia sposobu myślenia czy kwalifikowania pakietu do Akcess listy, czy w zakresie routingowym lub gateway-a. To są plusy i minusy, jeśli chodzi o stosowanie wildcarda. Warto wiedzieć, jeśli spotkasz się z sytuacją, że wildcard jest używany, to warto mieć na uwadze, że taką specyfikę ta koncepcja ma i można ją w ten sposób wykorzystać.
Kolejnym elementem, który jest bardzo istotny w klasycznych access listach, jest kolejność wpisów. W moim przykładzie, który tutaj omawiam bazując na materiale Mateusza, będziesz mógł go zobaczyć w poniedziałek, polega na tym, że są np wpisane dwa hosty w access liście a dopiero w trzecim wpisie jest deny sieci z konkretnym wildcardem i to powoduje kombinacje tych różnych elementów. Możesz powiedzieć ogólnie w deny, w tym trzecim wpisie wycinałbym cały ruch z tych trzech bitów ostatnich, bo tak mój wildcard wskazuje, ale ja chcę dla tych dwóch konkretnych hostów dodatkowo zezwolić. Wpisujesz taki ruch, czy taką dodatkową access listę i wtedy pakiet, który jest analizowany, zawsze jest analizowany od góry, potem kolejny wpis. Jeżeli nie ma kwalifikacji do danego wpisu, czyli ACL entry do kolejnych wpisów.
Tak to działa i można sobie w ten sposób ułatwić lub utrudnić w zależności od tego jaką koncepcję zbudujesz. Tu bez wątpienia bardzo kluczowy jest element jasności. Jest on powiązany z tym, czy tylko ty pracujesz na danym routerze, czy to ma być jasne też dla innych członków zespołu, czy to jest jakaś polityka, która jest bardziej zaawansowana i tych wpisów jest bardzo dużo. Różne te czynniki należałoby wsiąść pod uwagę, zastanawiając się czy wildcarda bardziej zaawansowanego, wymyślnego stosować, czy zrobić to w rozbiciu na różne wpisy. Możesz zastosować ciągłość, tak żeby była większa jasność, a zrobić więcej wpisów w access liście, więc to jest alternatywa, którą możesz wykonać. Im to jest jaśniejsze, tym uważam lepiej. Oczywiście ma to swoją drugą stronę. Jeżeli brakuje ci pamięci na danym urządzeniu i musisz optymalizować ilość wpisów w access liście, to wtedy można się uciec do takich sztuczek, ale to powoduje trudności potem w debugowaniu. Jeżeli masz rozbite np na pięć lub dziesięć osobnych reguł, tą samą funkcjonalność, co masz w jednym wildcardzie, sieć z nietypowym wildcardem, wtedy będziesz miał taką sytuację, że jak robisz troubleshooting i sprawdzasz trafienia w poszczególne elementy, to mając rozbicie na 10, będziesz wiedział, w które wpisy access listy trafiają. Jeżeli natomiast będziesz mieć to zagregowane w ramach wildcarda, to będziesz widział, że one się tam pojawiają, ale który wpis dotyczy ruchu, który akurat analizujesz będzie Ci bardzo trudno zanalizować. Będziesz musiał wejść w głębszy poziom debugingu, czyli logowania ruchu wyszukiwania tego konkretnego pakietu, który potrzebujesz. Jeżeli to jest środowisko produkcyjne, to jest jeszcze trudniej, bo tego ruchu jest tam dużo, więc nawet logowanie pewnego typu ruchu jest problematyczne, bo po prostu masz więcej rzeczy do przejrzenia. Jeżeli to rozbijesz na więcej reguł, to nawet logowanie dla danej reguły jest prostsze, bo tego ruchu do analizy, będziesz miał zwyczajnie dużo mniej.
Takie są plusy i minusy stosowania koncepcji bardziej zaawansowanych koncepcji wildcardowych. Mam nadzieję, że ci pomogłem. Jeżeli chciałbyś zobaczyć, jak konfiguruje się taki przykład, bardzo prosty zresztą, żebyś mógł to łatwiej zrozumieć, to w poniedziałkowym materiale, możesz go obejrzeć. Gdybyś chciał go sam przećwiczyć, to w artykule na blogu też możesz skopiować wszystkie pokazywane polecenia. Na dziś to tyle, dziękuję Ci za uwagę i do usłyszenia już za tydzień 🙂






