0% del curso completado
Cómo conmuta un switch: tabla MAC, forwarding y flooding
📋 En esta lección
El switch es el dispositivo más común en cualquier red LAN, pero pocas personas entienden realmente qué pasa cuando llega una trama. Aquí aprendes el mecanismo exacto: cómo el switch construye su tabla MAC, cuándo reenvía a un puerto específico, cuándo inunda todos los puertos, y por qué esto importa para el rendimiento y la seguridad.
El problema que resuelve el switch
Antes de que existieran los switches modernos, las LANs usaban hubs (concentradores). Un hub es un repetidor multipuerto: recibe una señal eléctrica por un puerto y la regenera por todos los demás. El resultado: todos los dispositivos comparten el mismo medio y solo uno puede transmitir a la vez sin provocar una colisión.
Con 10 dispositivos conectados a un hub de 10 Mbps, cada dispositivo tiene en la práctica 1 Mbps disponible. Con 100 dispositivos, el caos es inmanejable.
El switch resuelve esto creando segmentos de colisión individuales por puerto. Cada puerto tiene su propio ancho de banda dedicado. Y a diferencia del hub, que es "estúpido" (replica todo a todos), el switch es inteligente: aprende dónde está cada dispositivo y envía las tramas solo al puerto correcto.
La tabla MAC (CAM table)
El corazón del switch es su tabla de direcciones MAC, también llamada CAM table (Content Addressable Memory) porque el hardware especial que la implementa permite buscar entradas por contenido en un ciclo de reloj.
La tabla tiene tres columnas:
| MAC address | Puerto | VLAN |
|---|---|---|
| 00:1A:2B:3C:4D:5E | Gi0/1 | 1 |
| AA:BB:CC:DD:EE:FF | Gi0/3 | 1 |
| 11:22:33:44:55:66 | Gi0/7 | 10 |
Cada entrada asocia una dirección MAC con el puerto por el que llegó la última trama de ese dispositivo, y la VLAN a la que pertenece. Las entradas tienen un temporizador de aging — por defecto 300 segundos (5 minutos). Si no llega ninguna trama de esa MAC durante 5 minutos, la entrada se elimina de la tabla para no acumular MACs de dispositivos que ya no están conectados.
! Ver la tabla MAC en IOS:
Switch# show mac address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001a.2b3c.4d5e DYNAMIC Gi0/1
1 aabb.ccdd.eeff DYNAMIC Gi0/3
10 1122.3344.5566 DYNAMIC Gi0/7
El proceso de conmutación: aprende, decide y actúa
Cuando llega una trama a un puerto del switch, ocurren dos pasos en paralelo, en microsegundos:
Paso 1: Aprender (Learning)
El switch lee la MAC origen de la trama y busca esa MAC en su tabla. Si no está, la añade asociada al puerto de entrada y a la VLAN del puerto. Si ya está, actualiza el temporizador de aging y (si cambió de puerto) actualiza el puerto.
Este proceso es completamente automático y pasivo — el switch aprende mirando de dónde vienen las tramas, sin necesidad de ninguna configuración.
Paso 2: Forwarding
El switch lee la MAC destino de la trama y busca esa MAC en la tabla. Aquí tiene tres opciones:
1. Forward (reenviar a un puerto específico) La MAC destino está en la tabla. El switch reenvía la trama solo por ese puerto. Si el puerto de destino es distinto del de entrada, la trama llega al dispositivo correcto sin que nadie más la vea. Esto es lo que hace al switch eficiente y seguro frente al hub.
2. Flood (inundar por todos los puertos) La MAC destino no está en la tabla (unknown unicast). El switch no sabe dónde está ese dispositivo, así que reenvía la trama por todos los puertos activos de la misma VLAN excepto el de entrada. Es la única opción disponible cuando no hay información. Esto también ocurre siempre con el broadcast (FF:FF:FF:FF:FF:FF) y el multicast desconocido.
3. Filter (no reenviar) La MAC destino está en la tabla y está asociada al mismo puerto que la MAC origen. Esto ocurre cuando dos dispositivos están en el mismo segmento (por ejemplo, conectados a un hub que a su vez conecta al switch). El switch descarta la trama porque el destinatario ya puede recibirla directamente. También es el mecanismo de seguridad de Port Security.
📝 📝 El flujo completo simplificado
Llega una trama → Aprendo la MAC origen → ¿Conozco la MAC destino?
- Sí, está en la tabla → Forward al puerto de la tabla
- No está en la tabla → Flood a todos los puertos (excepto entrada)
- Está en la tabla, mismo puerto → Filter (descartar)
Por qué el flooding no es gratis
El flooding es necesario pero costoso. Cuando el switch inunda, crea tráfico en todos los segmentos de la VLAN — incluyendo dispositivos que no son el destinatario. En una red con muchos dispositivos y mucho tráfico de unknown unicast o broadcast, el flooding puede consumir ancho de banda significativo en todos los puertos.
ARP es el principal culpable. Antes de que un dispositivo pueda enviar un paquete IP a otro, necesita conocer su MAC para construir la trama Ethernet. Si no la tiene en su caché ARP local, envía un ARP Request en broadcast: "¿Quién tiene la IP 192.168.1.5? Dime tu MAC." El switch inunda ese broadcast por toda la VLAN. El dispositivo con esa IP responde con un ARP Reply unicast con su MAC — el switch aprende esa MAC y a partir de ese momento puede hacer forward directo.
! ARP en Windows:
C:\> arp -a
! ARP en Linux/macOS:
$ arp -n
! Ver vecinos ARP en IOS:
Router# show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.1.1 - 001a.2b3c.4d5e ARPA GigabitEthernet0/0
Internet 192.168.1.10 5 aabb.ccdd.eeff ARPA GigabitEthernet0/0
💡 💡 ARP y el primer paquete perdido
Cuando un dispositivo envía el primer paquete a una IP desconocida, primero hace ARP. Mientras espera la respuesta, el paquete original se pierde. Por eso en algunos tests de latencia el primero
pingtiene un tiempo mayor o falla — el segundo ya usa la caché ARP. Es comportamiento esperado, no un problema de red.
Dominios de colisión y dominios de broadcast
El switch fragmenta la red en dos tipos de dominios:
Dominio de colisión: conjunto de dispositivos que comparten el mismo medio y donde puede haber colisiones. En un switch con full-duplex, cada puerto es un dominio de colisión propio. Con un hub, todos los puertos forman un solo dominio de colisión.
Dominio de broadcast: conjunto de dispositivos que reciben el mismo broadcast de capa 2. Por defecto, todos los puertos del switch en la misma VLAN forman un único dominio de broadcast. El broadcast no cruza routers — son los routers (y las VLANs configuradas en L3) quienes segmentan los dominios de broadcast. En redes grandes, un dominio de broadcast demasiado grande provoca mucho tráfico de ARP y otros broadcasts que consume recursos en todos los dispositivos.
| Dispositivo | Dominios de colisión | Dominios de broadcast |
|---|---|---|
| Hub (4 puertos) | 1 | 1 |
| Switch L2 (4 puertos, 1 VLAN) | 4 | 1 |
| Switch L2 (4 puertos, 2 VLANs) | 4 | 2 |
| Router (2 puertos) | 2 | 2 |
Modos de forwarding del switch
Los switches implementan el forwarding en uno de estos modos:
Store-and-Forward: el switch recibe la trama completa, verifica el FCS y solo entonces la reenvía. Si hay error, la descarta sin reenviarla. Añade latencia proporcional al tamaño de la trama, pero garantiza que no se propagan tramas corruptas.
Cut-Through: el switch empieza a reenviar la trama en cuanto lee la MAC destino (después de los primeros 14 bytes), sin esperar el resto. Latencia mínima, pero puede propagar tramas corruptas (el FCS llega al final y para entonces la trama ya está en camino).
Fragment-Free (cut-through modificado): espera los primeros 64 bytes antes de reenviar. Los primeros 64 bytes son el tamaño mínimo de una trama válida — filtra los runts (resultado de colisiones) sin esperar el FCS. Equilibrio entre latencia y seguridad.
Los switches Cisco modernos usan store-and-forward por defecto, aunque algunos modelos ofrecen corte-al-vuelo configurable. En entornos de alta velocidad (data center, latencia crítica), cut-through puede tener sentido.
Cómo se llena (y se vacía) la tabla MAC
La tabla MAC tiene un tamaño máximo según el modelo del switch. Un switch de acceso típico puede almacenar entre 8.000 y 16.000 entradas MAC. Un switch de core puede almacenar 128.000 o más.
Si la tabla se llena completamente (MAC address table overflow), el switch empieza a tratar como unknown unicast todo el tráfico nuevo — y lo inunda por todos los puertos. Esto tiene dos consecuencias negativas: sobrecarga de tráfico y vulnerabilidad de seguridad (un atacante puede escuchar tráfico que no le corresponde). Esta es la base del ataque MAC flooding, donde se envían miles de MACs falsas para saturar la tabla.
La defensa es Port Security: limitar el número de MACs permitidas por puerto, o especificar exactamente qué MACs pueden conectarse.
! Port Security básico en IOS (máximo 1 MAC por puerto):
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 1
Switch(config-if)# switchport port-security violation shutdown
Relación con otros conceptos
- Los dominios de broadcast son la motivación principal para las VLANs — una VLAN = un dominio de broadcast separado. Lo veremos en el Módulo 5.
- El flooding de ARP es la fuente del "primer paquete lento" — lo viste brevemente en la lección 1.5 y lo profundizaremos en IPv4 (Módulo 4).
- La tabla MAC es lo que diferencia un switch de un router: el switch trabaja con MACs (L2), el router trabaja con IPs (L3). Los switches L3 hacen las dos cosas — Módulo 5.
- El diagnóstico de la tabla MAC (
show mac address-table) es una herramienta fundamental en troubleshooting — la usaremos en la lección 2.4.
Resumen
El switch aprende MACs de las tramas entrantes (MAC origen → puerto) y reenvía las salientes al puerto de la MAC destino (forward). Si no conoce la MAC destino, inunda toda la VLAN (flood). Si la MAC destino está en el mismo puerto de entrada, descarta (filter). Las entradas de la tabla MAC caducan a los 5 minutos. Cada puerto del switch es un dominio de colisión independiente; todos los puertos de la misma VLAN comparten un dominio de broadcast. ARP es el protocolo que más flooding genera — y la razón por la que los dominios de broadcast grandes son problemáticos.