Ilipat ang mga ACL nang detalyado

Ang mga ACL (Access Control List) sa mga network device ay maaaring ipatupad pareho sa hardware at software, o mas karaniwang nagsasalita, hardware at software-based na ACLs. At kung ang lahat ay dapat na malinaw sa software-based ACLs - ito ay mga patakaran na naka-imbak at pinoproseso sa RAM (i.e. sa Control Plane), kasama ang lahat ng kasunod na mga paghihigpit, pagkatapos ay mauunawaan namin kung paano ipinapatupad ang mga hardware-based na ACL at gumagana ang aming artikulo. Bilang halimbawa, gagamit kami ng mga switch mula sa serye ng ExtremeSwitching mula sa Extreme Networks.

Ilipat ang mga ACL nang detalyado

Dahil interesado kami sa mga ACL na nakabatay sa hardware, ang panloob na pagpapatupad ng Data Plane, o ang aktwal na mga chipset (ASIC) na ginamit, ay pinakamahalaga sa amin. Ang lahat ng mga linya ng switch ng Extreme Network ay binuo sa mga Broadcom ASIC, at samakatuwid ang karamihan sa impormasyon sa ibaba ay magiging totoo din para sa iba pang mga switch sa market na ipinapatupad sa parehong mga ASIC.

Tulad ng makikita mula sa figure sa itaas, ang "ContentAware Engine" ay direktang responsable para sa pagpapatakbo ng mga ACL sa chipset, hiwalay para sa "ingress" at "egress". Sa arkitektura, pareho ang mga ito, ang "labas" lamang ang hindi gaanong nasusukat at hindi gaanong gumagana. Sa pisikal, parehong "ContentAware Engine" ay TCAM memory at kasamang logic, at ang bawat user o system na panuntunan ng ACL ay isang simpleng bit-mask na nakasulat sa memorya na ito. Iyon ang dahilan kung bakit pinoproseso ng chipset ang traffic packet sa pamamagitan ng packet at walang pagkasira ng performance.

Sa pisikal, ang parehong Ingress/Egress TCAM, sa turn, ay lohikal na nahahati sa ilang mga segment (depende sa dami ng memorya mismo at sa platform), ang tinatawag na "ACL slices". Halimbawa, ang parehong bagay ay nangyayari sa pisikal na parehong HDD sa iyong laptop kapag lumikha ka ng ilang lohikal na drive dito - C:>, D:>. Ang bawat ACL-slice, naman, ay binubuo ng mga memory cell sa anyo ng "mga string" kung saan nakasulat ang "mga panuntunan" (mga panuntunan/bit mask).

Ilipat ang mga ACL nang detalyado
Ang paghahati ng TCAM sa mga ACL-slice ay may tiyak na lohika sa likod nito. Sa bawat isa sa mga indibidwal na ACL-slice, tanging "mga panuntunan" na tugma sa isa't isa ang maaaring isulat. Kung ang alinman sa "mga panuntunan" ay hindi tugma sa nauna, isusulat ito sa susunod na ACL-slice, gaano man karaming mga libreng linya para sa "mga panuntunan" ang natitira sa nauna.

Saan nanggagaling ang compatibility o incompatibility na ito ng ACL rules? Ang katotohanan ay ang isang "linya" ng TCAM, kung saan nakasulat ang "mga panuntunan", ay may haba na 232 bits at nahahati sa ilang mga field - Fixed, Field1, Field2, Field3. Ang 232 bit o 29 byte na TCAM memory ay sapat na upang maitala ang bit-mask ng isang partikular na MAC o IP address, ngunit mas mababa kaysa sa buong Ethernet packet header. Sa bawat indibidwal na ACL-slice, ang ASIC ay nagsasagawa ng independiyenteng paghahanap ayon sa bit-mask na itinakda sa F1-F3. Sa pangkalahatan, ang paghahanap na ito ay maaaring gawin gamit ang unang 128 byte ng Ethernet header. Sa totoo lang, tiyak dahil ang paghahanap ay maaaring isagawa nang higit sa 128 bytes, ngunit 29 bytes lamang ang maaaring isulat, para sa isang tamang paghahanap, ang isang offset ay dapat itakda na may kaugnayan sa simula ng packet. Ang offset para sa bawat ACL-slice ay itinakda kapag ang unang panuntunan ay isinulat dito, at kung, kapag nagsusulat ng isang kasunod na tuntunin, ang pangangailangan para sa isa pang offset ay natuklasan, kung gayon ang naturang panuntunan ay itinuturing na hindi tugma sa una at isinulat sa susunod na ACL-slice.

Ipinapakita ng talahanayan sa ibaba ang pagkakasunud-sunod ng pagiging tugma ng mga kundisyong tinukoy sa ACL. Ang bawat indibidwal na linya ay naglalaman ng mga nabuong bit-mask na tugma sa isa't isa at hindi tugma sa iba pang mga linya.

Ilipat ang mga ACL nang detalyado
Ang bawat indibidwal na packet na naproseso ng ASIC ay nagpapatakbo ng parallel lookup sa bawat ACL-slice. Isinasagawa ang pagsusuri hanggang sa unang tugma sa ACL-slice, ngunit maraming tugma ang pinapayagan para sa parehong packet sa iba't ibang ACL-slice. Ang bawat indibidwal na "panuntunan" ay may kaukulang aksyon na dapat gawin kung ang kundisyon (bit-mask) ay tumugma. Kung ang isang tugma ay nangyari sa ilang ACL-slice nang sabay-sabay, pagkatapos ay sa block na "Action Conflict Resolution", batay sa priyoridad ng ACL-slice, isang desisyon ang gagawin kung aling aksyon ang gagawin. Kung ang ACL ay naglalaman ng parehong "action" (permit/deny) at "action-modifier" (count/QoS/log/...), kung gayon sa kaso ng maraming tugma ay ang mas mataas na priyoridad na "action" lang ang isasagawa, habang ang "action" -modifier” ay makukumpleto lahat. Ang halimbawa sa ibaba ay nagpapakita na ang parehong mga counter ay dagdagan at ang mas mataas na priyoridad na "deny" ay isasagawa.

Ilipat ang mga ACL nang detalyado
β€œGabay sa ACL Solutions” na may mas detalyadong impormasyon tungkol sa pagpapatakbo ng ACL sa pampublikong domain sa website extremenetworks.com. Anumang mga katanungan na lumabas o nananatili ay maaaring palaging itanong sa aming mga kawani ng opisina - [protektado ng email].

Pinagmulan: www.habr.com

Magdagdag ng komento