Tabla CAM

La Tabla CAM (Content Addressable Memory Table), también conocida como Tabla de direcciones MAC o MAC Address Table, es una memoria de alta velocidad integrada en los switches (conmutadores) de capa de enlace (Capa 2 del modelo OSI) que registra la asociación dinámica o estática entre las direcciones MAC físicas de los dispositivos conectados y el puerto físico del switch por el cual se puede alcanzar a cada uno de ellos.

Gracias a la tabla CAM, un switch puede realizar la conmutación de tramas de forma selectiva (unicast) redirigiendo el tráfico únicamente hacia el puerto donde se encuentra el destinatario real, evitando así saturar la red con inundaciones de tráfico en difusión (flooding) como ocurría en los antiguos concentradores o hubs.

¿Cómo se construye y actualiza la Tabla CAM?

Los switches construyen la tabla CAM de forma automática y transparente mediante un proceso de aprendizaje continuo de tres pasos al procesar las tramas Ethernet entrantes:

  • 1. Aprendizaje por la dirección MAC Origen (Learning): Cuando entra una trama por un puerto físico (ej. Puerto 1), el switch examina la dirección MAC de origen. Si esa MAC no está en la tabla CAM, crea una nueva entrada asociando MAC Origen → Puerto 1 e inicia un temporizador de envejecimiento (aging time).
  • 2. Búsqueda por la dirección MAC Destino (Forwarding / Flooding): A continuación, el switch consulta la MAC de destino en la tabla CAM:
    • Si la MAC Destino está registrada: Reenvía la trama únicamente por el puerto asociado (Unicast Forwarding).
    • Si la MAC Destino NO está registrada (Unknown Unicast): Inunda la trama reenviándola por **todos los puertos activos excepto el puerto de entrada** (Flooding).
  • 3. Envejecimiento y refresco (Aging Time): Cada entrada dinámica permanece en la tabla durante un tiempo predeterminado (por defecto 300 segundos en switches Cisco). Si la MAC vuelve a transmitir antes de que expire el tiempo, el temporizador se reinicia. Si no transmite, la entrada se elimina para liberar memoria.

Tabla CAM vs. Tabla ARP vs. Tabla de Enrutamiento (RIB/FIB)

Tabla de Red Capa OSI Dispositivo Típico Información que Almacena Función Principal
Tabla CAM (MAC Table) Capa 2 (Enlace) Switch (Conmutador) Dirección MAC + Puerto Físico + VLAN Conmutar tramas Ethernet dentro de la misma subred local.
Tabla ARP Capa 2 / Capa 3 Hosts, Routers y Switches L3 Dirección IP + Dirección MAC Mapear direcciones lógicas IP a direcciones físicas MAC.
Tabla de Enrutamiento (RIB) Capa 3 (Red) Router y Switches L3 Red Destino / Máscara + Next Hop + Interfaz Enrutar paquetes de datos entre diferentes subredes/VLANs.

Estructura interna y tipos de entradas en la Tabla CAM

Tipo de Entrada Origen / Asignación Permanencia en Memoria Uso Típico
Dinamica (Dynamic) Aprendida automáticamente de las tramas recibidas. Expira tras el tiempo de aging time sin tráfico. Equipos de usuario, impresoras, servidores estándar.
Estática (Static) Configurada manualmente por el administrador. Permanente (no caduca tras reinicios si se guarda). Seguridad de puertos (Port Security), enlaces de alta prioridad.
Permanente de Sistema Reservada por el firmware del switch. Inmutable. Dirección MAC propia del switch, tramas de control (STP, CDP).

Características principales:

  • El hardware **CAM (Content Addressable Memory)** permite buscar en la memoria todo su contenido en un solo ciclo de reloj, a diferencia de la memoria RAM convencional que busca secuencialmente por posiciones de memoria.
  • Tiene una capacidad física limitada (expresada en miles de entradas MAC, ej. 8.000 a 32.000 registros según el modelo del switch).
  • Es el objetivo de ataques de ciberseguridad como el **MAC Flooding (Inundación CAM)**, donde un atacante genera miles de MACs falsas para llenar la tabla, obligando al switch a actuar como un *hub* e inundar todo el tráfico en broadcast.
  • Mecanismos de defensa como **Port Security** o **Port Security Sticky** permiten limitar el número de direcciones MAC permitidas por puerto para proteger la tabla CAM.

Analogía: La tabla CAM es como el panel de casilleros del conserje de un edificio de oficinas (el switch). Cada casillero tiene asignado un número de departamento (puerto físico). Cuando llega un mensajero trayendo una carta a nombre de "Juan Pérez" (MAC destino), el conserje mira su libreta (Tabla CAM) y ve que Juan trabaja en el casillero 4. Si Juan es nuevo y no está anotado, el conserje grita por el megáfono a todos los departamentos (Flooding) preguntando quién es Juan para anotar su ubicación en la libreta.

Actividad práctica

Objetivo:

Inspeccionar la tabla CAM de un switch Cisco en entorno real o simulado (Cisco Packet Tracer), analizar el aprendizaje de direcciones MAC y configurar la purga manual de la memoria.

Tareas:

  1. Monta una topología simple con un switch y tres PCs en Packet Tracer.
  2. Accede a la CLI del switch en modo EXEC privilegiado (Enable) y visualiza el estado inicial de la tabla CAM:
    • Switch# show mac address-table (o show mac-address-table según la versión de IOS)
  3. Realiza un ping desde el PC0 hacia el PC1 para generar tráfico Ethernet.
  4. Vuelve a ejecutar el comando show mac address-table en el switch y observa cómo se han registrado las direcciones MAC de ambos PCs asociadas a sus puertos Ethernet correspondientes.
  5. Fuerza el borrado manual de todas las entradas dinámicas aprendidas mediante el comando:
    • Switch# clear mac address-table dynamic
  6. Verifica nuevamente la tabla para comprobar que las entradas aprendidas dinámicamente han desaparecido.

Preguntas de reflexión:

  1. ¿Qué ocurre exactamente cuando un switch recibe una trama cuyo puerto de destino no se encuentra registrado en su tabla CAM (Unicast desconocido)?
  2. ¿En qué se diferencia el comportamiento de lectura de una memoria CAM frente al de una memoria RAM tradicional?
  3. ¿En qué consiste un ataque de inundación de tabla MAC (MAC Flooding) y qué consecuencia directa tiene sobre la seguridad del tráfico de la red?
  4. ¿Qué parámetro del switch determina cuánto tiempo permanece guardada en la tabla CAM una dirección MAC que ha dejado de transmitir datos?
  5. ¿Por qué una consulta a la tabla ARP de un PC muestra direcciones IP asociadas a MACs, mientras que la tabla CAM de un switch Layer 2 muestra direcciones MAC asociadas a puertos físicos?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué ocurre exactamente cuando un switch recibe una trama cuyo puerto de destino no se encuentra registrado en su tabla CAM (Unicast desconocido)?

El switch realiza un proceso de **inundación (flooding)**: reenvía la trama por todos los puertos activos pertenecientes a la misma VLAN, excepto por el puerto por el que ingresó la trama. En cuanto el destinatario responde, el switch aprende su dirección MAC y la registra en la tabla CAM.


2. ¿En qué se diferencia el comportamiento de lectura de una memoria CAM frente al de una memoria RAM tradicional?

En una **RAM tradicional**, se le proporciona al sistema una dirección de memoria y este devuelve los datos almacenados en ella. En una **memoria CAM (Content Addressable Memory)**, se busca por el **contenido** (la dirección MAC): se ingresa el dato y la memoria busca simultáneamente en todos sus registros en un solo ciclo de reloj devolviendo el puerto asociado.


3. ¿En qué consiste un ataque de inundación de tabla MAC (MAC Flooding) y qué consecuencia directa tiene sobre la seguridad del tráfico de la red?

El atacante envía miles de tramas Ethernet con direcciones MAC de origen falsas y aleatorias hasta **agotar la memoria física de la tabla CAM**. Una vez llena la tabla, el switch no puede aprender nuevas MACs y entra en modo de fallo (fail-open), comportándose como un **hub** e inundando todo el tráfico por todos los puertos, lo que permite al atacante realizar sniffing de datos de otros equipos.


4. ¿Qué parámetro del switch determina cuánto tiempo permanece guardada en la tabla CAM una dirección MAC que ha dejado de transmitir datos?

El parámetro **Aging Time (Tiempo de envejecimiento)**. En switches Cisco el valor por defecto suele ser de **300 segundos (5 minutos)**. Si durante ese tiempo el switch no recibe ninguna trama procedente de esa dirección MAC en el puerto asignado, la entrada se borra automáticamente.


5. ¿Por qué una consulta a la tabla ARP de un PC muestra direcciones IP asociadas a MACs, mientras que la tabla CAM de un switch Layer 2 muestra direcciones MAC asociadas a puertos físicos?

Porque el **PC (Capa 3)** necesita traducir direcciones lógicas IP en direcciones físicas MAC para encapsular sus propios paquetes. En cambio, el **switch de Capa 2** no procesa direcciones IP; su única función es conmutar tramas Ethernet físicas basándose en la interfaz o puerto físico por el que debe enviar la trama.



La tabla CAM (Content Addressable Memory) es una estructura de datos residente en la memoria de los switches de red de capa 2. Su función principal es permitir la conmutación eficiente de tramas Ethernet mediante la asociación directa entre direcciones físicas (MAC) y los puertos físicos donde se encuentran conectados los dispositivos.

Mientras que la Tabla ARP opera en la capa 3 (asociando IPs a MACs), la Tabla CAM trabaja exclusivamente en la capa 2, permitiendo al switch decidir hacia qué puerto debe reenviar una trama basándose únicamente en la dirección MAC de destino presente en la cabecera Ethernet.



Componentes de una entrada en la tabla CAM:

  • Dirección MAC: La dirección física de origen del dispositivo conectado.

  • Puerto (Interfaz): El puerto físico del switch donde se recibió dicha dirección MAC.

  • VLAN: Identificador de red virtual al que pertenece el puerto, permitiendo segmentación lógica.

  • Tipo: Indica si la entrada es dinámica (aprendida automáticamente) o estática (configurada por el administrador).

 


Actividad práctica:

Objetivo: Visualizar el aprendizaje automático del switch y observar la tabla CAM en un entorno de red real o simulado (ej. Cisco Packet Tracer).

Escenario: Un switch conectado a varios dispositivos que generan tráfico entre sí.

Procedimiento:

  1. Limpieza de tabla: Eliminar las direcciones aprendidas para ver cómo el switch vuelve a aprenderlas desde cero.

    • Comando: clear mac address-table dynamic

  2. Generación de tráfico: Realizar un ping desde un equipo a otro. Esto obliga al switch a registrar la MAC de origen en su tabla.

  3. Inspección: Consultar la tabla para ver la asociación MAC-Puerto.

    • Comando: show mac address-table dynamic

  4. Análisis: Identificar cómo el puerto cambia de estado y qué ocurre con la tabla si un equipo cambia de puerto físico.


NOTA:
 Al igual que en la tabla ARP, las entradas en la tabla CAM tienen un temporizador de envejecimiento (aging time), usualmente configurado en 300 segundos. Si el switch no recibe tramas de una fuente específica, elimina la entrada para mantener la integridad de la base de datos de reenvío.