Arquitecturas de Forwarding en Cisco
Para entender cómo operan los routers modernos, especialmente en el ecosistema de Cisco, primero debemos distinguir los dos planos de operación que rigen su funcionamiento:
- Control Plane (Plano de Control): Es el "cerebro" del equipo. Aquí la CPU procesa los protocolos de enrutamiento (OSPF, BGP, EIGRP) y construye la tabla de rutas.
- Data Plane (Plano de Datos): También conocido como Forwarding Plane. Es el encargado de mover los paquetes desde la interfaz de entrada hacia la de salida basándose en las decisiones del plano de control.
Antes de profundizar en las arquitecturas, debemos entender el proceso lógico que el router realiza con cada paquete:
- Analizar la IP de destino.
- Consultar la tabla de enrutamiento (RIB).
- Resolver la dirección MAC del siguiente salto (Next Hop).
- Reescribir la cabecera de Capa 2 (Encapsulación).
- Enviar el paquete por la interfaz correspondiente.
A continuación, exploraremos la evolución de las arquitecturas de forwarding de Cisco, comenzando por el método más rudimentario.
1. Process Switching
Este es el método más antiguo y básico. Su funcionamiento se basa en el uso intensivo de la CPU para procesar absolutamente todos los paquetes que transitan por el router.
Cuando un paquete llega a un router configurado con Process Switching, ocurre lo siguiente:
- El hardware de la interfaz recibe el paquete y genera una solicitud de interrupción (IRQ) al CPU.
- El CPU detiene sus tareas actuales para procesar el paquete individualmente a través del proceso de routing del sistema operativo (IOS).
- El CPU consulta la tabla de routing en la RAM para encontrar la mejor coincidencia.
- Se determina la interfaz de salida y el próximo salto.
- El CPU realiza la reencapsulación del paquete con la nueva información de Capa 2 (cambio de MAC origen/destino).
- Finalmente, el paquete se envía a la interfaz de salida.
Desventaja principal:
Debido a que el CPU debe intervenir en cada paquete, este método es extremadamente lento y poco escalable. Con grandes volúmenes de tráfico, el uso de la CPU se dispara, lo que puede saturar el dispositivo, aumentar la latencia y provocar la caída de servicios críticos. En este punto, conceptualmente, tanto el control plane como el data plane no están separados, y todo es realizado por la CPU.
2. Fast switching
El Fast Switching fue la primera evolución significativa de Cisco para intentar aliviar la carga de trabajo de la CPU. Su filosofía se basa en el principio de: "Procesa el primer paquete por software, pero conmuta el resto por hardware".
A diferencia del Process Switching, este método utiliza un sistema de Caché de Rutas (Route Cache). El proceso ocurre de la siguiente manera:
- El primer paquete de un flujo: Cuando llega un paquete hacia un destino nuevo, el router no sabe qué hacer con él todavía. Por lo tanto, lo envía al Control Plane (CPU).
- Generación del caché: El CPU realiza la búsqueda en la tabla de rutas, determina la interfaz de salida y la MAC del siguiente salto. Pero, antes de enviar el paquete, guarda esta solución en un caché rápido.
- Los siguientes paquetes: Todos los paquetes posteriores que pertenezcan al mismo flujo (mismo destino) ya no interrumpen al CPU. El router consulta el caché, ve que ya tiene la respuesta y los envía directamente a través del Data Plane.
3. Cisco Express Forwarding (CEF)
CEF es el mecanismo de forwarding por defecto en los routers modernos de Cisco y representa la solución definitiva al problema del consumo de CPU. A diferencia de sus predecesores, CEF logra una separación física y lógica total entre el Control Plane y el Data Plane, permitiendo escalar a volúmenes de tráfico masivos.
A diferencia del Fast Switching (que es reactivo y necesita que llegue un primer paquete para crear un caché), CEF es proactivo. En lugar de esperar al tráfico, CEF toma la información del Plano de Control y construye dos tablas especializadas en el Plano de Datos:
- FIB (Forwarding Information Base): Es una copia optimizada de la tabla de rutas. Contiene todas las IP de destino y la interfaz de salida, organizada de una forma que el hardware puede consultar a una velocidad increíble (usando estructuras llamadas MTRIE).
- Adjacency Table (Tabla de Adyacencia): Mantiene la información de Capa 2 (direcciones MAC) de todos los vecinos directamente conectados.
El proceso de forwarding con CEF:
Cuando llega un paquete, el router ya no tiene que preguntar nada a la CPU ni esperar a que un "primer paquete" procesado por software cree una entrada en el caché.
- El router busca el destino en la FIB.
- Cruza esa información con la Tabla de Adyacencia para obtener la MAC.
- El paquete se reencapsula y se envía directamente por el hardware (Data Plane).
Ventajas principales:
- Cero latencia de inicio: No hay penalización por el "primer paquete".
- Uso mínimo de CPU: La CPU solo se encarga de actualizar las tablas cuando hay cambios en la red (por ejemplo, si cae un enlace), pero no interviene en el movimiento de los paquetes.
- Alta escalabilidad: Permite procesar millones de paquetes por segundo mediante el uso de ASICs o procesadores de red especializados.
4. Ternary Content Addressable Memory (TCAM)
Si CEF es la arquitectura lógica, la TCAM es el componente físico (hardware) que hace posible el milagro de la velocidad. Mientras que una memoria RAM normal requiere que el CPU busque en una dirección para encontrar un dato, la TCAM funciona al revés: se le da el dato y ella te dice, en un solo ciclo de reloj, si existe y dónde está.
¿Por qué "Ternaria"?
A diferencia de la memoria CAM estándar (utilizada para tablas MAC), que es binaria y solo entiende de 0 y 1 (Match exacto), la TCAM introduce un tercer estado:
- 0: Indica un valor de bit "0".
- 1: Indica un valor de bit "1".
- X (Don't Care): Actúa como un comodín. Esto es fundamental para las subredes (máscaras de red) y las Listas de Control de Acceso (ACLs).
La TCAM organiza la información en una estructura de tres componentes clave para decidir qué hacer con un paquete de forma instantánea:
- Value (Valor): Son los campos que queremos comparar, como la IP de origen/destino, puertos TCP/UDP o etiquetas de QoS.
- Mask (Máscara): Determina qué bits del "Value" son relevantes. Por ejemplo, en una ruta /24, la máscara le dice a la TCAM que solo le importan los primeros 24 bits.
- Result (Resultado): Es la acción final que se ejecuta tras el match. No solo es "enviar el paquete", sino que puede incluir:
- Permitir o denegar (ACLs).
- Aplicar una política de calidad de servicio (QoS Policer).
- Redirigir a una interfaz específica.
5. Centralized Forwarding
- La interfaz recibe el paquete, pero no sabe qué hacer con él.
- El paquete es enviado a través del backplane (el bus interno del equipo) hacia la CPU central.
- El motor de forwarding central consulta sus tablas (FIB/Adjacency) y decide la interfaz de salida.
- El paquete vuelve a viajar por el backplane hacia la tarjeta de línea de salida para ser transmitido.
- Cerebro Único: Solo hay un motor de búsqueda y una tabla de reenvío para todo el chasis.
- Hardware más simple: Las tarjetas de línea (donde se conectan los cables) son "tontas" o menos complejas, ya que no necesitan procesadores potentes ni mucha memoria propia; solo actúan como puertos de entrada y salida.
- Costo: Suele ser más económico de implementar en dispositivos de gama media o baja.
- El backplane y la CPU central se saturan si hay demasiado tráfico.
- Si tienes un switch de 48 puertos y todos están enviando tráfico masivo, la CPU central se convierte en un embudo.
6. Distributed Forwarding (dCEF)
- Sincronización: El RP construye las tablas maestras (FIB y Adjacency Table) en el Plano de Control.
- Distribución: El RP envía copias exactas de estas tablas a cada una de las tarjetas de línea del chasis.
- Decisión Local: Cuando llega un paquete a una interfaz, la tarjeta de línea consulta su propia copia local de la FIB.
- Conmutación Directa: El paquete se envía directamente a través del switch fabric hacia la interfaz de salida, sin que la CPU principal se entere siquiera de que el paquete pasó por el router.
- Line Card CPUs/ASICs: Cada tarjeta tiene sus propios procesadores especializados para consultar la memoria local (donde reside la TCAM).
- Switch Fabric: Es la interconexión de alta velocidad que une las tarjetas de línea, permitiendo que los datos fluyan entre ellas en paralelo.
- Escalabilidad Masiva: El rendimiento total del equipo es la suma de las capacidades de todas sus tarjetas. Si agregas más tarjetas, aumentas la capacidad de procesamiento total.
- Eficiencia del Plano de Control: La CPU principal queda libre para tareas críticas como mantener los protocolos de enrutamiento (OSPF, BGP) o gestionar el equipo, ya que no pierde tiempo moviendo paquetes.
- Redundancia: Si el motor de forwarding de una tarjeta tiene un problema, las demás pueden seguir funcionando de manera independiente.
7. Software CEF (Software-Based CEF)
8. Hardware CEF (Hardware-Based CEF)
- Programación: El Plano de Control (CPU) construye la FIB y la Tabla de Adyacencia (tal como en Software CEF).
- Instalación: Una vez construidas, estas tablas se "descargan" o programan directamente en la memoria de hardware, principalmente en la TCAM (Ternary Content Addressable Memory).
- Forwarding: Cuando un paquete entra al equipo, los ASICs consultan la TCAM de forma paralela y ultra veloz. La decisión de hacia dónde enviar el paquete se toma en nanosegundos.
- ASICs: Chips diseñados con un solo propósito: mover bits lo más rápido posible.
- TCAM: Como vimos anteriormente, es la memoria que permite buscar prefijos IP y reglas de ACL en un solo ciclo de reloj.
- Distributed Architecture: En equipos modulares, cada tarjeta de línea tiene su propio hardware CEF, lo que permite el Distributed Forwarding que mencionamos antes.
9. Stateful Switchover (SSO)
- Sincronización del Sistema Operativo: Ambos procesadores ejecutan la misma versión de IOS y mantienen configuraciones idénticas.
- Sincronización de Protocolos: El estado de las interfaces y ciertos protocolos se mantienen "espejeados".
- reservación del Plano de Datos: SSO trabaja de la mano con Non-Stop Forwarding (NSF). Mientras el Control Plane está reiniciando o cambiando de procesador, el Data Plane (CEF) sigue moviendo paquetes usando la información que ya tenía grabada en el hardware (ASICs/TCAM).

Comentarios
Publicar un comentario