Cambiar ACL en detalle

Las ACL (lista de control de acceso) en dispositivos de red se pueden implementar tanto en hardware como en software o, más comúnmente, en ACL basadas en hardware y software. Y si todo debe quedar claro con las ACL basadas en software: estas son reglas que se almacenan y procesan en la RAM (es decir, en el plano de control), con todas las restricciones consiguientes, entonces entenderemos cómo se implementan y funcionan las ACL basadas en hardware. artículo. Como ejemplo, utilizaremos conmutadores de la serie ExtremeSwitching de Extreme Networks.

Cambiar ACL en detalle

Dado que estamos interesados ​​en las ACL basadas en hardware, la implementación interna del plano de datos o los conjuntos de chips (ASIC) reales utilizados es de suma importancia para nosotros. Todas las líneas de conmutadores de Extreme Networks se basan en ASIC de Broadcom y, por lo tanto, la mayor parte de la información siguiente también será válida para otros conmutadores del mercado que se implementen en los mismos ASIC.

Como puede verse en la figura anterior, el "ContentAware Engine" es directamente responsable del funcionamiento de las ACL en el chipset, por separado para la "entrada" y la "salida". Arquitectónicamente son iguales, sólo que la “salida” es menos escalable y menos funcional. Físicamente, ambos "motores ContentAware" son memoria TCAM más la lógica que la acompaña, y cada regla ACL de usuario o sistema es una simple máscara de bits escrita en esta memoria. Es por eso que el chipset procesa el tráfico paquete a paquete y sin degradación del rendimiento.

Físicamente, la misma TCAM de entrada/salida, a su vez, se divide lógicamente en varios segmentos (dependiendo de la cantidad de memoria y de la plataforma), los llamados "porciones ACL". Por ejemplo, sucede lo mismo con físicamente el mismo disco duro de su computadora portátil cuando crea varias unidades lógicas en él: C:>, D:>. Cada segmento de ACL, a su vez, consta de celdas de memoria en forma de "cadenas" donde se escriben "reglas" (reglas/máscaras de bits).

Cambiar ACL en detalle
La división de TCAM en sectores ACL tiene cierta lógica detrás. En cada uno de los sectores ACL individuales, sólo se pueden escribir "reglas" que sean compatibles entre sí. Si alguna de las “reglas” no es compatible con la anterior, se escribirá en el siguiente segmento de ACL, independientemente de cuántas líneas libres para “reglas” queden en la anterior.

¿De dónde viene entonces esta compatibilidad o incompatibilidad de las reglas de ACL? El hecho es que una "línea" de TCAM, donde se escriben las "reglas", tiene una longitud de 232 bits y está dividida en varios campos: Fijo, Campo1, Campo2, Campo3. La memoria TCAM de 232 bits o 29 bytes es suficiente para registrar la máscara de bits de una dirección MAC o IP específica, pero mucho menos que el encabezado completo del paquete Ethernet. En cada segmento ACL individual, el ASIC realiza una búsqueda independiente de acuerdo con la máscara de bits configurada en F1-F3. En general, esta búsqueda se puede realizar utilizando los primeros 128 bytes del encabezado Ethernet. En realidad, precisamente porque la búsqueda se puede realizar en 128 bytes, pero sólo se pueden escribir 29 bytes, para una búsqueda correcta se debe establecer un desplazamiento relativo al comienzo del paquete. El desplazamiento para cada segmento de ACL se establece cuando se escribe la primera regla en él, y si, al escribir una regla posterior, se descubre la necesidad de otro desplazamiento, dicha regla se considera incompatible con la primera y se escribe en el siguiente segmento de ACL.

La siguiente tabla muestra el orden de compatibilidad de las condiciones especificadas en la ACL. Cada línea individual contiene máscaras de bits generadas que son compatibles entre sí e incompatibles con otras líneas.

Cambiar ACL en detalle
Cada paquete individual procesado por el ASIC ejecuta una búsqueda paralela en cada segmento ACL. La verificación se realiza hasta la primera coincidencia en el segmento ACL, pero se permiten múltiples coincidencias para el mismo paquete en diferentes segmentos ACL. Cada "regla" individual tiene una acción correspondiente que debe realizarse si la condición (máscara de bits) coincide. Si se produce una coincidencia en varios sectores de ACL a la vez, en el bloque "Resolución de conflictos de acción", según la prioridad del sector de ACL, se toma una decisión sobre qué acción realizar. Si la ACL contiene tanto “acción” (permitir/denegar) como “modificador de acción” (recuento/QoS/log/…), entonces, en caso de coincidencias múltiples, solo se ejecutará la “acción” de mayor prioridad, mientras que la “acción” -modificador” estará todo completado. El siguiente ejemplo muestra que ambos contadores se incrementarán y se ejecutará la "denegación" de mayor prioridad.

Cambiar ACL en detalle
“Guía de soluciones ACL” con información más detallada sobre el funcionamiento de ACL en el dominio público en el sitio web extremanetworks.com. Cualquier duda que surja o quede siempre se puede plantear a nuestro personal de oficina - [email protected].

Fuente: habr.com

Añadir un comentario