ACL slēdzējiem detaļās

ACL (Access Control List) tīklos var tikt īstenota gan aparatūras, gan programmatūras veidā, vai, vienkāršāk sakot, hardware un software-based ACL. Un, ja software-based ACL ir saprotams kā noteikumi, kas tiek glabāti un apstrādāti operatīvajā atmiņā (t.i., Control Plane), ar visām no tā izrietošajām ierobežojumiem, tad kā tiek īstenoti un darbojas hardware-based ACL, to mēs izpētīsim mūsu rakstā. Par piemēru ņemsim Extreme Networks korporācijas ExtremeSwitching sērijas slēdžus.

ACL slēdzējiem detaļās

Ņemot vērā, ka mūs interesē tieši hardware-based ACL, mums ir svarīga iekšējā Data Plane realizācija, jeb faktiski izmantotie čipseti (ASIC). Visu Extreme Networks slēdžu sēriju pamatā ir Broadcom ASIC, un tādēļ lielākā daļa no zemāk norādītās informācijas būs attiecināma arī uz citiem tirgū pieejamajiem slēdžiem, kas balstās uz tādiem pašiem ASIC.

Kā redzams iepriekšējā attēlā, tieši par ACL darbību čipsetā atbild “ContentAware Engine”, kas atsevišķi darbojas uz “ingress” un “egress”. Arhitektūra ir identiska, tikai “egress” ir mazāk mērogojams un mazāk funkcionāls. Fiziski abi “ContentAware Engine” ir TCAM atmiņa plus attiecīgā loģika, un katrs lietotāja vai sistēmas ACL noteikums ir vienkārša bitu maska (bit-mask), kas ierakstīta šajā atmiņā. Tādēļ čipsets veic trafika apstrādi pa pakotnēm un bez veiktspējas pasliktināšanās.

Fiziski viena un tā pati Ingress/Egress TCAM savukārt tiek loģiski sadalīta vairākos segmentos (atkarībā no atmiņas apjoma un platformas), tā sauktajos “ACL slices”. Piemēram, tieši tāpat notiek ar fiziski vienu un to pašu HDD jūsu klēpjdatorā, kad jūs izveidojat uz tā vairākus loģiskos diskus – C:>, D:>. Katrs ACL-slice sastāv, savukārt, no atmiņas šūnām, kas ir “rindās”, kurās tiek ierakstīti “rules” (noteikumi/bitu maskas).

ACL slēdzējiem detaļās
TCAM sadalījums ACL-slices pamatojas noteiktā loģikā. Katram atsevišķajam ACL-slice var tikt ierakstīti tikai savstarpēji saderīgi “rules”. Ja kāds no “rules” nav saderīgs ar iepriekšējo, tas tiks ierakstīts nākamajā ACL-slice, neatkarīgi no tā, cik brīvas rindas vēl palikušas iepriekšējā.

Kā tad rastos šī ACL noteikumu saderība vai nesaderība? Problēma ir tāda, ka viena ”rinda” TCAM, kurā tiek ierakstīti ”noteikumi”, ir 232 bitu gara un tiek sadalīta vairākās laukos – Fixed, Field1, Field2, Field3. 232 bitu vai 29 baitus TCAM atmiņas ir pietiekami, lai ierakstītu noteikta MAC vai IP adreses bitu masku, bet ievērojami mazāk nekā pilns Ethernet paketes virsraksts. Katrs atsevišķais ACL slices ASIC veic neatkarīgu meklēšanu pēc F1-F3 bitu maskā noteikto. Kopumā šis meklējums var tikt veikts pa pirmajiem 128 baitiem Ethernet virsraksta. Faktiski tieši tāpēc, ka meklēšana var tikt veikta pa 128 baitiem, bet ierakstīts var būt tikai 29 baitus, pareizam meklējumam ir jābūt noteiktam nobīdei attiecībā uz paketes sākumu. Nobīde katram ACL-slice tiek noteikta, ierakstot pirmo noteikumu, un, ja ierakstot nākamo noteikumu tiek konstatēta nepieciešamība pēc cita nobīdes, tad šāds noteikums tiek uzskatīts par nesaderīgu ar pirmo un tiek ierakstīts nākamajā ACL-slice.

Zemāk esošajā tabulā ir norādīts nosacījumu saderības secība, kas tiek ierakstīta ACL. Katrs atsevišķs rinda satur savstarpēji saderīgas un savstarpēji nesaderīgas bitu maskas, kas tiek veidotas starp citām rindām.

ACL slēdzējiem detaļās
Katrs atsevišķais pakets, ko apstrādā ASIC, uzsāk paralēlu meklēšanu katrā ACL-slice. Pārbaude tiek veikta līdz pirmajai sakritībai ACL-slice, bet tajā pašā laikā ir atļauta vairāku sakritību esamība vienam un tam pašam paketam dažādos ACL slices. Katram atsevišķam “noteikumam” ir attiecīgā darbība, kas jāveic sakritības gadījumā (bitu maska). Ja sakritība notiek vienlaicīgi vairākos ACL-slices, tad “Darbību konfliktu atrisināšanas” blokā, pamatojoties uz ACL-slice prioritāti, tiek pieņemts lēmums, kura no darbībām jāveic. Ja ACL ir norādīta gan “darbība” (atļaut/atteikt), gan “darbības modifikators” (skaitīt/QoS/iespiedumu/…), tad, ja ir vairākas sakritības, tiek veikta tikai prioritārāka “darbība”, bet visi “darbības modifikatori” tiks veikti. Zemāk redzamajā piemērā tiks palielināti abi skaitītāji un tiks veikta prioritārāka “atteikt”.

ACL slēdzējiem detaļās
“ACL risinājumu ceļvedis” ar detalizētāku informāciju par ACL darbību ir pieejama atklāti mājaslapā extremenetworks.com. Jebkurus radušos vai palikušos jautājumus vienmēr var uzdot mūsu biroja darbiniekiem – cis@extremenetworks.com.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster