Skift ACL'er i detaljer

ACL'er (Access Control List) på netværksenheder kan implementeres både i hardware og software, eller mere almindeligt sagt hardware- og softwarebaserede ACL'er. Og hvis alt skulle være klart med software-baserede ACL'er - det er regler, der er lagret og behandlet i RAM (dvs. på kontrolplanet), med alle de deraf følgende begrænsninger, så vil vi forstå, hvordan hardware-baserede ACL'er implementeres og fungerer vores artikel. Som eksempel vil vi bruge switche fra ExtremeSwitching-serien fra Extreme Networks.

Skift ACL'er i detaljer

Da vi er interesserede i hardware-baserede ACL'er, er den interne implementering af Data Plane, eller de faktiske chipsæt (ASIC'er), der bruges, af afgørende betydning for os. Alle Extreme Networks switch-linjer er bygget på Broadcom ASIC'er, og derfor vil de fleste af nedenstående oplysninger også være sande for andre switche på markedet, som er implementeret på de samme ASIC'er.

Som det kan ses af figuren ovenfor, er "ContentAware Engine" direkte ansvarlig for driften af ​​ACL'er i chipsættet, separat for "ingress" og "egress". Arkitektonisk er de de samme, kun "udgang" er mindre skalerbar og mindre funktionel. Fysisk er begge "ContentAware Engines" TCAM-hukommelse plus tilhørende logik, og hver bruger- eller system-ACL-regel er en simpel bitmaske skrevet til denne hukommelse. Det er derfor, at chipsættet behandler trafik pakke for pakke og uden forringelse af ydeevnen.

Fysisk er den samme Ingress/Egress TCAM til gengæld logisk opdelt i flere segmenter (afhængig af selve mængden af ​​hukommelse og platformen), de såkaldte "ACL-slices". For eksempel sker det samme med fysisk den samme HDD på din bærbare computer, når du opretter flere logiske drev på den - C:>, D:>. Hver ACL-slice består til gengæld af hukommelsesceller i form af "strenge", hvor "regler" (regler/bitmasker) er skrevet.

Skift ACL'er i detaljer
Opdelingen af ​​TCAM i ACL-slices har en vis logik bag sig. I hver af de individuelle ACL-slices kan der kun skrives "regler", der er kompatible med hinanden. Hvis nogen af ​​"reglerne" ikke er kompatible med den forrige, vil den blive skrevet til den næste ACL-slice, uanset hvor mange ledige linjer for "regler" der er tilbage i den forrige.

Hvor kommer denne kompatibilitet eller inkompatibilitet af ACL-regler så fra? Faktum er, at en TCAM "linje", hvor "regler" er skrevet, har en længde på 232 bit og er opdelt i flere felter - Fixed, Field1, Field2, Field3. 232 bit eller 29 byte TCAM-hukommelse er nok til at optage bitmasken for en specifik MAC- eller IP-adresse, men meget mindre end den fulde Ethernet-pakkeheader. I hver enkelt ACL-slice udfører ASIC'en et uafhængigt opslag i henhold til bitmasken sat i F1-F3. Generelt kan dette opslag udføres ved hjælp af de første 128 bytes af Ethernet-headeren. Faktisk, netop fordi søgningen kan udføres over 128 bytes, men kun 29 bytes kan skrives, skal der for et korrekt opslag sættes en offset i forhold til begyndelsen af ​​pakken. Forskydningen for hver ACL-slice indstilles, når den første regel skrives til den, og hvis, når der skrives en efterfølgende regel, opdages behovet for en anden forskydning, anses en sådan regel for at være inkompatibel med den første og skrives til den. næste ACL-slice.

Tabellen nedenfor viser rækkefølgen af ​​kompatibilitet af betingelserne specificeret i ACL. Hver enkelt linje indeholder genererede bit-masker, der er kompatible med hinanden og inkompatible med andre linjer.

Skift ACL'er i detaljer
Hver enkelt pakke behandlet af ASIC'en kører et parallelt opslag i hver ACL-slice. Kontrollen udføres indtil den første match i ACL-slicen, men flere matches er tilladt for den samme pakke i forskellige ACL-slices. Hver enkelt "regel" har en tilsvarende handling, der skal udføres, hvis betingelsen (bitmasken) matches. Hvis der opstår et match i flere ACL-slices på én gang, besluttes der i blokken "Action Conflict Resolution" baseret på ACL-slicens prioritet, hvilken handling der skal udføres. Hvis ACL'en indeholder både "action" (permit/deny) og "action-modifier" (count/QoS/log/...), vil kun den højere prioritet "action" blive udført i tilfælde af flere matches, mens "action" -modifier” vil blive fuldført. Eksemplet nedenfor viser, at begge tællere vil blive øget, og den højere prioritet "afvise" vil blive udført.

Skift ACL'er i detaljer
"ACL Solutions Guide" med mere detaljeret information om driften af ​​ACL i det offentlige domæne på hjemmesiden extremenetworks.com. Eventuelle spørgsmål, der opstår eller forbliver, kan altid stilles til vores kontorpersonale - [e-mail beskyttet].

Kilde: www.habr.com

Tilføj en kommentar