cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 
cancel
Avisos
Ask Me Anything - Webex Bots

Uso de memoria TCAM y CAM en los Routers y Switchs

843
Visitas
10
ÚTIL
7
Comentarios

j.png

 

A veces me pregunto como es que la tabla CAM y su hermana mas avanzada la TCAM, son de fascinantes pues ellas funcionan de forma diferente a la memoria RAM tradicional. Y porque se me hizo difícil el entendimiento de esto. Y realmente leyendo mucho encontré una manera de entenderlo y paso a explicarlo a mi manera.

1.      Memoria CAM y TCAM

Cuando se utiliza TCAM - Ternary Content Addressable Memory dentro de los routers L3, se utiliza para realizar una búsqueda de direcciones más rápida que permita un enrutamiento rápido.

En los Switchs, la memoria CAM (Content Addressable Memory) se utiliza para construir y buscar la tabla de direcciones MAC que permita tomar decisiones de reenvío L2. Al implementar la búsqueda de prefijos del router en la TCAM, estamos trasladando el proceso de búsqueda de la Base de Información de reenvío del software al hardware.

La CAM, es un tipo especial de memoria utilizado por los switches de Cisco. En el caso de la RAM, el IOS utiliza una dirección de memoria para obtener los datos almacenados en esta ubicación de memoria, mientras que con la CAM el IOS hace lo contrario. Utiliza los datos y la CAM devuelve la dirección donde están almacenados los datos. También se considera que la CAM es más rápido que la RAM ya que la CAM busca en toda la memoria en una sola operación.

En la CAM se utiliza la representación binaria exacta de una palabra, en una aplicación de red, esa palabra será probablemente una dirección IP, por ejemplo 11000000.10101000.01110001.00000000 (192.168.1.0). Aunque esto es definitivamente útil, las redes operan con una gran colección de direcciones IP, y almacenar cada una individualmente requeriría una cantidad significativa de memoria.

En la red, estas palabras de datos secuenciales son prefijos IP. Así que para el ejemplo anterior, si quisiéramos almacenar la colección de esa dirección IP, y las 254 IPs que le siguen, en la TCAM sería como sigue 11000000.10101000.01110001.XXXXXXXX (192.168.1.0/24). Este método de almacenamiento significa que podemos hacer preguntas al ASIC como "¿a dónde debo enviar los paquetes con la dirección IP de destino 192.168.1.19?", a lo que el ASIC puede tener una respuesta lista en un solo ciclo de reloj, ya que no necesita recorrer toda la memoria, sino que puede referenciar directamente la key(clave). Esta respuesta suele ser una referencia a una dirección de memoria en la RAM tradicional, donde se pueden almacenar más datos, como el puerto de salida.

k.png

Al implementar la TCAM, permitimos que el proceso de búsqueda de direcciones no dependa del número de entradas de prefijos, ya que la característica principal de la TCAM es que es capaz de buscar todas sus entradas en paralelo. Esto significa que no importa cuántos prefijos de direcciones estén almacenados en la TCAM, el router encontrará la coincidencia de prefijo más larga en una sola operación. Un poco confuso, entonces veamos la siguiente imagen.

l.png

  • La Fig 1, muestra cómo funciona la búsqueda de FIB y apunta a una entrada en la tabla de adyacencia. El proceso de búsqueda pasa por todas las entradas en la tabla TCAM en una sola operación.

CAM VS TCAM

Los switches multicapa envían tramas y paquetes a la velocidad del cable mediante el uso de hardware ASIC (Application Specific Integrated Circuits). Los componentes específicos de la capa 2 y la capa 3, como las tablas de enrutamiento (a dónde va este paquete), las listas de control de acceso (ACL)(está permitido este paquete), se almacenan en caché en el hardware. Las tablas de Routing, Switching, ACL y QoS (qué prioridad debe darse a este paquete), se almacenan en una memoria de tabla de alta velocidad para que las decisiones de reenvío y las restricciones se puedan tomar en hardware de alta velocidad. Los switches realizan búsquedas en estas tablas para obtener información de resultados, como por ejemplo para determinar si un paquete con una dirección IP de destino específica debe ser descartado de acuerdo con una ACL. Como resultado del uso de la TCAM, la aplicación de ACLs no afecta al rendimiento del switch.

2. ROUTER

En los routers, como los de Cisco de gama alta, la TCAM se utiliza para habilitar CEF - Cisco Express Forwarding en el hardware. CEF está construyendo una tabla FIB a partir de la tabla RIB (tabla de enrutamiento) y la tabla de adyacencia a partir de la tabla ARP para construir encabezados L2 preparados previamente para cada vecino del siguiente salto.

La TCAM encuentra, en un intento, cada prefijo de destino dentro de FIB. Cada prefijo en FIB apunta a la cabecera L2 de la tabla de adyacencia preparada previamente para cada interfaz saliente. El router pega la cabecera del paquete en cuestión y lo envía por esa interfaz. ¿Parece rápido hacerlo de esa manera? ¡Es asi de rápido!

3. SWITCH

En el mundo de la capa 2 de los switches, la memoria CAM es la más utilizada ya que permite al switch construir y buscar tablas de direcciones MAC. La dirección MAC es siempre única, por lo que la arquitectura CAM y la capacidad de buscar sólo tiene coincidencias exactas y es perfecta para la búsqueda de direcciones MAC. Esto le da al switch la capacidad de revisar todas las direcciones MAC de todos los hosts conectados a todos los puertos en una sola operación y resolver dónde enviar los paquetes recibidos.

Las tablas CAM proporcionan sólo dos resultados: 0 (verdadero) o 1 (falso). La CAM es más útil para construir tablas que buscan coincidencias exactas, como las tablas de direcciones MAC. La tabla CAM es la tabla principal utilizada para tomar decisiones de reenvío de Capa 2. En el caso de las tablas de reenvío de Capa 2, el Switch debe encontrar una coincidencia exacta con una dirección MAC de destino o el switch inundara el paquete hacia todos los puertos de la VLAN.

Cuando una trama llega al switch con una dirección MAC de destino de una entrada en la tabla CAM, la trama se reenvía sólo a través del puerto que está asociado con esa dirección MAC específica. La información que un switch utiliza para realizar una búsqueda en una tabla CAM se denomina key(clave). Por ejemplo, una búsqueda de capa 2 utilizaría una dirección MAC de destino y un ID de VLAN como key.

Para ver el contenido de la tabla CAM, puede utilizar el siguiente comando EXEC:

Switch# show mac address-table dynamic [address mac-address | interface type mod/num | vlan vlan-id]

Se mostrarán las entradas que han sido aprendidas dinámicamente. Puede añadir la palabra clave address para especificar una sola dirección MAC, o las palabras clave interface o vlan para ver las direcciones que han sido aprendidas en una interfaz o VLAN específica.

 
Para ver el tamaño de la tabla CAM, utilice el comando show mac address-table count

 Nota: El problema con la tabla CAM es que solo puede hacer coincidencias exactas en unos y ceros (CAM binarios), y aquí viene TCAM.

 

4. MÁS QUE UN SIMPLE ENRUTAMIENTO Y CONMUTACIÓN

Además de la correspondencia del prefijo más largo, la TCAM de los routers y dispositivos switch multicapa actuales se utiliza para almacenar ACL, QoS y otras cosas del procesamiento de la capa superior. Los dispositivos con esta capacidad suelen tener más módulos de memoria TCAM para poder implementar Access-List en ambas direcciones y QoS al mismo tiempo en el mismo puerto sin ningún impacto en el rendimiento del Router/Switch. Todas estas funciones diferentes y su proceso de búsqueda hacia una decisión se realiza en paralelo.

5. MÁS SOBRE LA TCAM

La TCAM es básicamente una versión especial de la CAM construida para la búsqueda rápida de tablas. Como no se ha mencionado antes, la TCAM puede obtener tres resultados diferentes al realizar las búsquedas: 0, 1, y X (No me importa el estado).

Con este extraño tercer estado, la TCAM es perfecta para construir y buscar en las tablas las coincidencias más largas, como las tablas de enrutamiento IP organizadas por prefijos IP.

Sólo hay una condición: los prefijos IP deben ser ordenados antes de ser almacenados en la TCAM para que los prefijos más largos estén en la posición superior con mayor prioridad (ubicación de la dirección más baja) en una tabla. Esto nos permite seleccionar siempre el prefijo más largo de los resultados dados y, por lo tanto, permite el Longest-Prefix Matching.

Para ver el uso actual de recursos TCAM, utilice el comando EXEC show tcam counts. Para ver la partición actual de la TCAM, puede utilizar el comando EXEC show sdm prefer 

6. ARQUITECTURA DE TCAM

En la Imagen 2 aquí abajo, una de las explicaciones más simples de CEF que pude encontrar en la red. Básicamente se muestra el uso de FIB a la izquierda y la tabla de adyacencia a la derecha. El FIB se almacena en la tabla TCAM y la tabla de adyacencia se almacena en la memoria RAM. Entonces, muestra sin palabras lo que hablamos antes en la sección "ROUTER".

tomy.JPG

 

Describimos la aplicación de las CAM para reenvío de paquetes en los routers de la red. Primero, resumimos brevemente el reenvío de paquetes y luego mostramos cómo una CAM implementa las operaciones requeridas.

A continuación, se presentan otros ejemplos de enfoques que utilizan CAMs para la clasificación y la búsqueda.

Los routers de red reenvían paquetes de datos desde un puerto de entrada a otro de salida, utilizando una función de búsqueda de direcciones. La función de búsqueda de direcciones examina la dirección de destino del paquete y selecciona el puerto de salida asociado a esa dirección.

El router mantiene una lista, llamada tabla de enrutamiento, que contiene las direcciones de destino y sus correspondientes puertos de salida. En la Tabla I se muestra un ejemplo de la tabla de enrutamiento simplificada. Todas las cuatro entradas de la tabla son direcciones de 5 bits ( no 32 como ipv4, todas las demás son iguales a las reales), con el bit de "no importa el estado", "X", que coincide tanto con un 0 como con un 1 en esa posición. Debido a los bits "X", las tres primeras entradas de la tabla representan un rango de direcciones de entrada, es decir, la entrada 1 asigna todas las direcciones en el rango 10100 a 10111 al puerto A. El router busca en esta tabla la dirección de destino de cada paquete entrante, y selecciona el puerto de salida apropiado. Por ejemplo, si el router recibe un paquete con la dirección de destino 10100, el paquete se reenvía al puerto A. En el caso de la dirección entrante 01101, la búsqueda de direcciones coincide con la entrada 2 y la entrada 3 de la tabla. La entrada 2 se selecciona porque tiene el menor número de bits "X" o, alternativamente, tiene el prefijo más largo, lo que indica que es la ruta más directa al destino. Este método de búsqueda se denomina correspondencia de prefijo más largo.

La Fig. 2 ilustra cómo un CAM realiza la búsqueda de direcciones implementando la tabla de enrutamiento mostrada en la Tabla I. A la izquierda de la Fig. 2, la dirección de destino del paquete 01101 es la entrada al CAM. Al igual que en la tabla, dos ubicaciones coinciden, con el Encoder (de prioridad) eligiendo la entrada superior y generando la ubicación coincidente 01, que corresponde a la ruta más directa.

Esta ubicación de coincidencia es la dirección de entrada a una RAM que contiene una lista de puertos de salida, como se muestra en la Fig. 2. Una operación de lectura de la RAM da como resultado la designación del puerto, el puerto B, al que se reenvía el paquete entrante. Podemos ver la salida de la ubicación de coincidencia de la CAM como un puntero que recupera la palabra asociada de la RAM. En el caso particular del reenvío de paquetes, la palabra asociada es la designación del puerto de salida. Este sistema CAM/RAM es una implementación completa de un motor de búsqueda de direcciones para el reenvío de paquetes.

7. PROCESO DE BÚSQUEDA EN PARALELO DE LA TCAM DENTRO DEL CIRCUITO

En realidad, los chips CAM y TCAM sus lógicas es ligeramente diferente de lo que se podría pensar.

Para todas las entradas que coincidan con la buscada, la entrada del Encoder obtendrá una señal "verdadera", y todas las entradas no coincidentes mostrarán una salida "falsa", sin problemas. El problema está en el inicio del proceso. Antes de que comience la búsqueda, todas las entradas que se introducen en la TCAM cierran el circuito de entrada de palabras de la TCAM y muestran "true" en el lado del Encoder. Todas las entradas están temporalmente en el estado de match (coincidencia). Cuando la búsqueda paralela se realiza, se detendrán todas las entradas que tienen al menos un bit que no coincide con la entrada buscada.

Aquí está la explicación del "No importa el estado", en el proceso de búsqueda cuando la búsqueda llega a X bit ("No importa el estado") no cambiará el estado de esa línea de coincidencia. Por eso las líneas nº 2 y nº 3 coinciden, y por eso la TCAM es perfecta para la búsqueda de prefijos más largos.

Esto también explica por qué la memoria TCAM consume tanta energía. Necesita encender todos los circuitos para poder realizar una búsqueda, no sólo los que coinciden. El espacio de memoria limitado y el consumo de energía asociado a una gran cantidad de circuitos activos en paralelo son los principales problemas de la TCAM.

CONCLUSIÓN

Buenos mis amigos , decirles que las tablas CAM y TCAM estaban en mi lista de estudios, casi toda esta información la busque por mi cuenta investigando en diferentes sites. También es nuevo para mí, así que por favor corregidme en los comentarios si he cometido algún error...

Atte.

Tomy Tim

 

 

 

 

Comentarios
Javier Acuña
VIP Engager

Que recomiendas a la hora de necesitar más velocidad un Swicth o un Router ?

 

Saludos!!

 

 

tomy.tim
Beginner

A veces la mejor solución no pasa por decir cual es el mejor, basicamente se trata de la solución a implementar y de los recursos que tengas para ello. Recuerda que para el caso especifico de cisco que ya tiene un nivel jerarquico de 3 niveles y 2 niveles para DATACENTER, las tecnologias avanzan y hoy todo apunta a trabajar con controladoras y hoy hablamos de entonces por decirlo de otra manera la parte CONTROL PLANE de un router/switch donde toma sus decisiones por software y utiliza CPU en lugar de harware especializado como un ASIC, MOTIVO por el cual pensamos que el equipo es lento y el DATA PLANE es la ruta de alta velocidad a traves del router/switch decimos que es el plano de renvio esto se refiere a la capa de reenviar tramas, paquetes deendiendo del equipo si el actua sobre L2/L3.  Por otro lado recuerda que tenemos features de routers que pueden ser ejecutados en algunos modeles de switchs, yo a dia de hoy me preguntaria cuanto es mi presupuesto y que solución requiero para cubrir la solución en ese momento porque ya tienes que pensar en un crescimiento caso lo tenga. La pregunta parece ser simple, pero cuando piensas en el todo alli, es que modifica todo tu concepto para elegir, se que puede ser confusa mi respuesta, pero te diria que todo pasa por una mejor practica. Saludos 

 

hiarteag
Community Manager

Hola @tomy.tim 

Antes que nada ¡feliz y buen 2022 que sea un excelente año para ti y tus seres queridos!

Muchas gracias por compartir este proceso en la comunidad y por abordar las dudas relacionadas.

Aportes como este son muy valiosos, gracias por compartir tu expertise y tiempo.

tomy.tim
Beginner

Hola @hiarteag  gracias por tus palabras, también te deseo un venturuoso 2022 junto a los tuyos, espero poder seguir contribuyendo con la comunidad, me gustaria mucho abordar el asunto de datacenter, pero no encuentro material necesario, llamase ACI + DNA, se pudieras ayudarme con eso otra seria la historia. un abrazo y estamos en contacto. Saludos desde BRASIL-DF

hiarteag
Community Manager

Ola @tomy.tim 

Gracias, eres bienvenido. Efectivamente no se cuenta con mucho material tanto de AI como DNA en español y portugués. Peor este año tenemos varios eventos y más contenido relacionado que podrá ser de ayuda.

Ahora bien, si deseas compartir tu conocimiento en una sesión de la comunidad también es bienvenido, puedes hacerlo en español (ahí yo puedo ayudarte) o e Portugués (con Gabriela Godoi, a quien ya has conocido)

Excelente  aporte a la comunidad.

 

saludos desde Caracas, Venezuela

Javier Acuña
VIP Engager

Saludos @Jose Antonio Carrillo Carrillo 

 

Desde Caracas Venezuela !!!!

 

 

Crear
Reconozca a un colega
Content for Community-Ad