Podrobne prepínajte zoznamy prístupových práv

Zoznamy ACL (Access Control List) na sieťových zariadeniach môžu byť implementované v hardvéri aj softvéri, alebo bežnejšie povedané, v hardvérových a softvérových ACL. A ak by malo byť všetko jasné so softvérovými zoznamami ACL – toto sú pravidlá, ktoré sú uložené a spracované v pamäti RAM (t. j. v riadiacej rovine), so všetkými z toho vyplývajúcimi obmedzeniami, potom pochopíme, ako sa implementujú hardvérové ​​zoznamy ACL a fungujú naše článok. Ako príklad použijeme prepínače zo série ExtremeSwitching od Extreme Networks.

Podrobne prepínajte zoznamy prístupových práv

Keďže nás zaujímajú ACL založené na hardvéri, interná implementácia dátovej roviny alebo skutočne používané čipsety (ASIC) sú pre nás mimoriadne dôležité. Všetky rady prepínačov Extreme Networks sú postavené na Broadcom ASIC, a preto väčšina nižšie uvedených informácií bude platiť aj pre ostatné prepínače na trhu, ktoré sú implementované na rovnakých ASIC.

Ako je možné vidieť na obrázku vyššie, „ContentAware Engine“ je priamo zodpovedný za fungovanie ACL v čipovej súprave, oddelene za „vstup“ a „výstup“. Architektonicky sú rovnaké, len „výstup“ je menej škálovateľný a menej funkčný. Fyzicky sú oba „ContentAware Engines“ pamäťou TCAM a sprievodnou logikou a každé pravidlo ACL používateľa alebo systému je jednoduchá bitová maska ​​zapísaná do tejto pamäte. To je dôvod, prečo čipset spracováva prevádzkový paket po pakete a bez zníženia výkonu.

Fyzicky je ten istý Ingress/Egress TCAM zase rozdelený logicky do niekoľkých segmentov (v závislosti od množstva samotnej pamäte a platformy), takzvaných „ACL slices“. Napríklad to isté sa stane s fyzicky rovnakým HDD na vašom notebooku, keď na ňom vytvoríte niekoľko logických jednotiek - C:>, D:>. Každý ACL-slice zase pozostáva z pamäťových buniek vo forme „reťazcov“, kde sú zapísané „pravidlá“ (pravidlá/bitové masky).

Podrobne prepínajte zoznamy prístupových práv
Rozdelenie TCAM na ACL-slice má za sebou určitú logiku. V každom z jednotlivých segmentov ACL možno zapísať iba „pravidlá“, ktoré sú navzájom kompatibilné. Ak niektoré z „pravidiel“ nie je kompatibilné s predchádzajúcim, zapíše sa do ďalšieho segmentu ACL bez ohľadu na to, koľko voľných riadkov pre „pravidlá“ zostalo v predchádzajúcom.

Odkiaľ potom pochádza táto kompatibilita alebo nekompatibilita pravidiel ACL? Faktom je, že jeden „riadok“ TCAM, kde sú napísané „pravidlá“, má dĺžku 232 bitov a je rozdelený do niekoľkých polí - Fixed, Field1, Field2, Field3. 232-bitová alebo 29-bajtová TCAM pamäť je dostatočná na zaznamenanie bitovej masky špecifickej MAC alebo IP adresy, ale oveľa menej ako hlavička ethernetového paketu. V každom jednotlivom segmente ACL vykonáva ASIC nezávislé vyhľadávanie podľa bitovej masky nastavenej v F1-F3. Vo všeobecnosti možno toto vyhľadávanie vykonať pomocou prvých 128 bajtov ethernetovej hlavičky. V skutočnosti práve preto, že vyhľadávanie môže byť vykonané cez 128 bajtov, ale je možné zapísať iba 29 bajtov, pre správne vyhľadávanie musí byť nastavený posun vzhľadom na začiatok paketu. Posun pre každý segment ACL sa nastaví, keď sa doň zapíše prvé pravidlo, a ak sa pri písaní nasledujúceho pravidla zistí potreba ďalšieho posunu, takéto pravidlo sa považuje za nekompatibilné s prvým a zapíše sa do ďalší ACL-rez.

Nižšie uvedená tabuľka zobrazuje poradie kompatibility podmienok špecifikovaných v ACL. Každý jednotlivý riadok obsahuje vygenerované bitové masky, ktoré sú navzájom kompatibilné a nekompatibilné s inými riadkami.

Podrobne prepínajte zoznamy prístupových práv
Každý jednotlivý paket spracovaný ASIC vykonáva paralelné vyhľadávanie v každom segmente ACL. Kontrola sa vykonáva až do prvej zhody v segmente ACL, ale pre rovnaký paket v rôznych segmentoch ACL je povolených viacero zhôd. Každé jednotlivé „pravidlo“ má zodpovedajúcu akciu, ktorá sa musí vykonať, ak sa podmienka (bitová maska) zhoduje. Ak dôjde k zhode v niekoľkých segmentoch ACL naraz, v bloku „Action Conflict Resolution“ sa na základe priority segmentu ACL rozhodne, ktorá akcia sa má vykonať. Ak ACL obsahuje „akciu“ (povoliť/odmietnuť) aj „akciu-modifikátor“ (count/QoS/log/…), potom v prípade viacerých zhôd sa vykoná len „akcia“ s vyššou prioritou, zatiaľ čo „akcia“ -modifikátor“ budú všetky dokončené. Príklad nižšie ukazuje, že oba počítadlá sa zvýšia a vykoná sa „odmietnutie“ s vyššou prioritou.

Podrobne prepínajte zoznamy prístupových práv
„Sprievodca riešeniami ACL“ s podrobnejšími informáciami o prevádzke ACL vo verejnej doméne na webovej stránke extremenetworks.com. Akékoľvek otázky, ktoré vyvstanú alebo zostanú, môžete vždy položiť zamestnancom našej kancelárie - [chránené e-mailom].

Zdroj: hab.com

Pridať komentár