ACL cambia 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 estar claro con las ACL basadas en software, estas son las reglas que se almacenan y procesan en la RAM (es decir, en el plano de control), con todas las restricciones que se derivan de esto, entonces entenderemos cómo se implementan y funcionan las ACL basadas en hardware. nuestro articulo Como ejemplo, utilizaremos los conmutadores de la serie Extreme Networks ExtremeSwitching.



Dado que estamos interesados ​​en ACL basadas en hardware, la implementación interna de Data Plane, o los conjuntos de chips realmente utilizados (ASIC), es de suma importancia para nosotros. Los conmutadores de todas las líneas de productos de Extreme Networks se basan en los ASIC de Broadcom, por lo que la mayor parte de la información a continuación también se aplicará a otros conmutadores en el mercado e implementados en los mismos ASIC.

Como se puede ver en la figura anterior, el "ContentAware Engine", por separado para "ingreso" y "egreso", es responsable de la operación de ACL en el conjunto de chips. Arquitectónicamente, son lo mismo, solo que la "salida" es menos escalable y menos funcional. Físicamente, ambos "ContentAware Engine" son memoria TCAM más lógica asociada, y cada regla ACL de usuario o sistema es una simple máscara de bits escrita en esta memoria. Es por eso que el procesamiento del tráfico en el chipset se realiza por unidad y sin degradación del rendimiento.

Físicamente, el mismo TCAM Ingress / Egress, a su vez, está lógicamente dividido en varios segmentos (dependiendo de la cantidad de memoria y plataforma), los llamados "cortes ACL". Por ejemplo, lo mismo sucede físicamente con el mismo HDD en su computadora portátil cuando crea varias unidades lógicas en ella: C: \>, D: \>. Cada segmento ACL, a su vez, consta de celdas de memoria, en forma de "cadenas" donde se escriben "reglas" (reglas / máscaras de bits).


El desglose de TCAM en segmentos ACL tiene una cierta lógica. En cada uno de los segmentos de ACL individuales, solo se pueden escribir "reglas" compatibles. Si alguna de las "reglas" no es compatible con la anterior, se escribirá en la siguiente en orden ACL-slice, sin importar cuántas líneas libres que queden bajo las "reglas" permanecen en la anterior.

¿De dónde viene esta compatibilidad o incompatibilidad de las reglas de ACL? El hecho es que una "línea" de TCAM, donde se escriben "reglas", tiene una longitud de 232 bits y se divide en varios campos: fijo, campo1, campo2, campo3. La memoria TCAM de 232 bits o 29 bytes es suficiente para escribir una 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, ASIC produce una búsqueda independiente de acuerdo con la máscara de bits establecida en F1-F3. En general, esta búsqueda se puede realizar en el primer encabezado Ethernet de 128 bytes. En realidad, precisamente porque la búsqueda se puede realizar por 128 bytes, y solo se pueden registrar 29 bytes, para una búsqueda correcta, se debe establecer un desplazamiento en relación con el comienzo del paquete. El desplazamiento para cada uno de los segmentos ACL se establece cuando se escribe la primera regla, y si se encuentra la necesidad de otro desplazamiento al escribir la siguiente regla, entonces esta regla se considera incompatible con el primero y se escribe en el siguiente segmento ACL.

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


Cada paquete individual procesado por ASIC ejecuta una búsqueda paralela en cada segmento ACL. La validación se realiza antes de 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 produjo una coincidencia en varios segmentos de ACL a la vez, en el bloque "Resolución de conflictos de acción", en función de la prioridad del segmento de ACL, se decide cuál realizar. Si tanto la "acción" (permitir / denegar) como el "modificador de acción" (conteo / QoS / log / ...) se escriben en la ACL, entonces, en caso de coincidencias múltiples, solo se ejecutará la "acción" de mayor prioridad, se ejecutará el "modificador de acción" todo hecho El siguiente ejemplo muestra que ambos contadores aumentarán y se ejecutará la prioridad "negar".


La “Guía de soluciones de ACL” con información más detallada sobre cómo las ACL están disponibles públicamente en extremenetworks.com . Cualquier pregunta que surja o permanezca siempre puede hacerse al personal de nuestra oficina: cis@extremenetworks.com .

Source: https://habr.com/ru/post/486070/


All Articles