Przełącz szczegółowo listy ACL

Listy ACL (listy kontroli dostępu) na urządzeniach sieciowych można zaimplementować zarówno w sprzęcie, jak i oprogramowaniu lub, częściej, w postaci list ACL opartych na sprzęcie i oprogramowaniu. A jeśli wszystko powinno być jasne w przypadku list ACL opartych na oprogramowaniu - są to reguły przechowywane i przetwarzane w pamięci RAM (tj. artykuł. Jako przykład wykorzystamy przełączniki z serii ExtremeSwitching firmy Extreme Networks.

Przełącz szczegółowo listy ACL

Ponieważ interesują nas sprzętowe listy ACL, wewnętrzna implementacja Data Plane, czyli faktycznie używanych chipsetów (ASIC), ma dla nas ogromne znaczenie. Wszystkie linie przełączników Extreme Networks są zbudowane na układach ASIC firmy Broadcom, dlatego większość poniższych informacji będzie dotyczyć również innych przełączników dostępnych na rynku, które są zaimplementowane na tych samych układach ASIC.

Jak widać na powyższym rysunku, „ContentAware Engine” jest bezpośrednio odpowiedzialny za działanie list ACL w chipsecie, oddzielnie za „wejście” i „wyjście”. Architektonicznie są takie same, jedynie „wyjście” jest mniej skalowalne i mniej funkcjonalne. Fizycznie oba „silniki ContentAware” stanowią pamięć TCAM wraz z towarzyszącą logiką, a każda reguła ACL użytkownika lub systemu jest prostą maską bitową zapisaną w tej pamięci. Dlatego chipset przetwarza ruch pakiet po pakiecie i bez pogorszenia wydajności.

Fizycznie ten sam TCAM Ingress/Egress jest z kolei logicznie podzielony na kilka segmentów (w zależności od ilości samej pamięci i platformy), tzw. „plastry ACL”. Przykładowo to samo dzieje się z fizycznie tym samym dyskiem twardym w laptopie, gdy utworzysz na nim kilka dysków logicznych - C:>, D:>. Z kolei każdy wycinek listy ACL składa się z komórek pamięci w postaci „ciągów”, w których zapisywane są „reguły” (reguły/maski bitowe).

Przełącz szczegółowo listy ACL
Podział TCAM na wycinki ACL kryje się za pewną logiką. W każdym z poszczególnych segmentów ACL można zapisać tylko „reguły”, które są ze sobą kompatybilne. Jeśli którakolwiek z „reguł” nie będzie kompatybilna z poprzednią, zostanie zapisana na kolejnym fragmencie listy ACL, niezależnie od tego, ile wolnych linii na „reguły” pozostało w poprzedniej.

Skąd zatem bierze się ta zgodność lub niekompatybilność reguł ACL? Faktem jest, że jedna „linia” TCAM, w której zapisywane są „reguły”, ma długość 232 bitów i jest podzielona na kilka pól - Stałe, Pole1, Pole2, Pole3. 232-bitowa lub 29-bajtowa pamięć TCAM wystarczy do zarejestrowania maski bitowej określonego adresu MAC lub IP, ale znacznie mniej niż pełny nagłówek pakietu Ethernet. W każdym indywidualnym segmencie ACL układ ASIC wykonuje niezależne wyszukiwanie zgodnie z maską bitową ustawioną w F1-F3. Ogólnie rzecz biorąc, wyszukiwanie to można przeprowadzić przy użyciu pierwszych 128 bajtów nagłówka Ethernet. Właściwie, właśnie dlatego, że wyszukiwanie może zostać przeprowadzone na 128 bajtach, ale można zapisać tylko 29 bajtów, w celu poprawnego wyszukiwania należy ustawić przesunięcie w stosunku do początku pakietu. Przesunięcie dla każdego wycinka ACL jest ustalane w momencie zapisywania do niego pierwszej reguły, a jeśli podczas zapisywania kolejnej reguły zostanie odkryta potrzeba kolejnego przesunięcia, wówczas taka reguła jest uważana za niezgodną z pierwszą i zapisywana do następny plasterek ACL.

Poniższa tabela przedstawia kolejność zgodności warunków określonych w liście ACL. Każda pojedyncza linia zawiera wygenerowane maski bitowe, które są ze sobą kompatybilne i niekompatybilne z innymi liniami.

Przełącz szczegółowo listy ACL
Każdy indywidualny pakiet przetwarzany przez układ ASIC wykonuje równoległe wyszukiwanie w każdym segmencie ACL. Sprawdzanie jest przeprowadzane aż do pierwszego dopasowania w wycinku ACL, ale dozwolone jest wielokrotne dopasowanie dla tego samego pakietu w różnych wycinkach ACL. Każda indywidualna „reguła” ma odpowiednią akcję, która musi zostać wykonana, jeśli warunek (maska ​​bitowa) jest spełniony. Jeśli dopasowanie nastąpi w kilku segmentach ACL jednocześnie, w bloku „Rozwiązywanie konfliktów akcji” na podstawie priorytetu segmentu ACL podejmowana jest decyzja, którą akcję wykonać. Jeśli lista ACL zawiera zarówno „akcję” (zezwolenie/odmowa), jak i „modyfikator akcji” (liczba/QoS/log/…), wówczas w przypadku wielokrotnych dopasowań zostanie wykonana tylko „akcja” o wyższym priorytecie, podczas gdy „akcja -modifier” zostanie zakończone. Poniższy przykład pokazuje, że oba liczniki zostaną zwiększone i wykonana zostanie funkcja „odmowa” o wyższym priorytecie.

Przełącz szczegółowo listy ACL
„Przewodnik po rozwiązaniach ACL” z bardziej szczegółowymi informacjami na temat działania ACL w domenie publicznej na stronie internetowej ExtremeNetworks.com. Wszelkie pytania, które się pojawią lub pozostaną, można zawsze zadać pracownikom naszego biura - [email chroniony].

Źródło: www.habr.com

Dodaj komentarz