ACL (Access Control List) pĂ„ nettverksenheter kan implementeres bĂ„de maskinvare- og programvarebasert, eller sagt pĂ„ en annen mĂ„te, hardware- og software-based ACL. Og hvis software-based ACL er greit, â det er regler som lagres og behandles i minnet (dvs. pĂ„ Control Plane), med alle de pĂ„fĂžlgende begrensningene, vil vi i artikkelen vĂ„r undersĂžke hvordan hardware-based ACL er implementert og fungerer. Som eksempel vil vi bruke ExtremeSwitching-serien fra Extreme Networks.

Siden vi er interessert i hardware-based ACL, er den interne implementeringen av Data Plane, eller de brukte chipene (ASIC), av stÞrste betydning for oss. Switchene i alle linjer fra Extreme Networks er bygget pÄ ASIC fra Broadcom, og derfor vil mesteparten av informasjonen nedenfor ogsÄ vÊre relevant for andre switcher pÄ markedet som benytter lignende ASIC.
Som det fremgĂ„r av figuren over, er det âContentAware Engineâ som direkte hĂ„ndterer ACL i chipsettet, med separate funksjoner for âingressâ og âegressâ. Arkitektonisk er de like, men âegressâ er mindre skalerbar og funksjonell. Fysisk er begge âContentAware Engineâ TCAM-minne pluss tilhĂžrende logikk, og hver bruker- eller systemregel for ACL er en enkel bitmaske (bit-mask) lagret i dette minnet. Det er derfor chipsettet behandler trafikk pakke for pakke uten tap av ytelse.
Fysisk er den samme Ingress/Egress TCAM logisk delt opp i flere segmenter (avhengig av hvor mye minne og plattformen), kjent som âACL slicesâ. For eksempel skjer det samme med en fysisk harddisk pĂ„ laptopen din nĂ„r du lager flere logiske disker â C:>, D:>. Hver ACL-slice bestĂ„r i sin tur av minneceller, i form av âraderâ hvor ârulesâ (regler/bit-masker) lagres.

Oppdelingen av TCAM i ACL-slices har en bestemt logikk. I hvert enkelt ACL-slice kan det bare lagres ârulesâ som er kompatible med hverandre. Hvis en av ârulesâ ikke er kompatibel med den forrige, vil den bli lagret i neste ACL-slice, uavhengig av hvor mange ledige rader som gjenstĂ„r i det forrige.
Hvor kommer sĂ„ denne kompatibiliteten eller inkompatibiliteten av ACL-regler fra? Det er fordi Ă©n "linje" TCAM, hvor "reglene" lagres, har en lengde pĂ„ 232 bit og er delt opp i flere felter â Fixed, Field1, Field2, Field3. 232 bit eller 29 byte TCAM-minne er mer enn tilstrekkelig til Ă„ lagre bit-masken til en bestemt MAC- eller IP-adresse, men er betydelig mindre enn hele overskriften til en Ethernet-pakke. I hver enkelt ACL-slice utfĂžrer ASIC en uavhengig lookup basert pĂ„ de etablert i F1-F3 bit-masken. Generelt kan denne lookuppen utfĂžres pĂ„ de fĂžrste 128 byte av Ethernet-overskriften. Faktisk, nettopp fordi sĂžket kan skje pĂ„ 128 byte, mens det kun kan lagres 29 byte, mĂ„ offset stilles i forhold til begynnelsen av pakken for korrekt lookup. Offset for hver ACL-slice settes ved innsending av den fĂžrste regelen, og hvis det oppdages behov for en annen offset ved innsending av neste regel, anses den regelen som inkompatibel med den fĂžrste og lagres i neste ACL-slice.
Tabellen nedenfor viser rekkefĂžlgen av kompatibilitet for betingelsene som skrives inn i ACL. Hver enkelt linje inneholder de som er kompatible med hverandre, og de som ikke er kompatible med andre linjer, former bit-masker.

Hver enkelt pakke som behandles av ASIC, utfĂžrer en parallell lookup i hver ACL-slice. Sjekken foregĂ„r til det fĂžrste treffet i ACL-slice, men det er rom for flere treff for samme pakke i forskjellige ACL-slice. Hver enkelt "regel" har en tilsvarende handling som mĂ„ utfĂžres i tilfelle en betingelse (bit-mask) er oppfylt. Hvis det skjer et treff i flere ACL-slice, tas det en avgjĂžrelse om hvilken handling som skal utfĂžres i blokken "Action Conflict Resolution" basert pĂ„ prioriteten til ACL-slice. Hvis det er angitt bĂ„de "action" (permit/deny) og "action-modifier" (count/QoS/log/âŠ), vil ved flere treff kun den mer prioriterte "action" bli utfĂžrt, mens alle "action-modifiers" vil bli utfĂžrt.

med mer detaljert informasjon om hvordan ACL fungerer offentlig tilgjengelig pĂ„ nettstedet . Eventuelle spĂžrsmĂ„l som mĂ„tte oppstĂ„ eller gjenstĂ„, kan alltid rettes til ansatte pĂ„ vĂ„rt kontor â .
Kilde: habr.com
