¿Dónde se almacena la tabla de adyacencia de Cisco Hardware dCEF?

8

Para Cisco Hardware dCEF, basado en algunos documentos publicados en el sitio web de Cisco, en la tarjeta / interfaz de línea de entrada, conceptualmente busca la FIB con la dirección IP dst, y obtiene un puntero a una entrada de la tabla de adyacencia, donde se almacena la información de reescritura de L2, por ejemplo, nexthop mac, etc.

Pero lo que me confunde es, ¿no ocurre la reescritura de L2 en la tarjeta / interfaz de línea de salida? Si es así, ¿por qué esta tabla de adyacencia se almacena en el ingreso? ¿O dónde está sucediendo la tabla de adyacencia? ingreso o egreso? Si esto está entrando, ¿se transfiere la información de reescritura L2 de la tarjeta de entrada a la tarjeta de línea de salida? ¿No sería eso una pérdida de ancho de banda de tela?

wei
fuente
1
Piense: ¿cómo se puede reenviar un paquete a la interfaz de salida si la interfaz de entrada no tiene adyacencia?
Ricky Beam
Bueno, no tiene que almacenar la tabla de adyacencia de quién, puede almacenar algún tipo de identificación de adyacencia, luego, al salir, puede usar esta identificación de adyacencia para buscar la tabla de adyacencia y obtener la información de reescritura L2. De hecho, si esta tabla de adyacencia se almacena en el ingreso asic, tendrá que almacenar la información de adyacencia de cada tarjeta de salida en la tarjeta de entrada, ¿no sería un gran desperdicio de memoria?
wei

Respuestas:

9

Pero lo que me confunde es, ¿no ocurre la reescritura de L2 en la tarjeta / interfaz de línea de salida?

En realidad no, la decisión de avance / caída, la búsqueda de adyacencia L2, la disminución de TTL, el cálculo de la suma de verificación de IP, etc., todo sucede en la tarjeta de línea de entrada .

Conceptualmente, puede dividir el flujo de información en un plano de control y un plano de datos, incluso dentro del chasis del enrutador. Parece que la mayor parte de su confusión gira en torno a cómo funciona el avión de control ... este es un diagrama rápido que pirateé para ilustrar ...

IPC y CEF

  • El procesador de ruta crea la tabla CEF a partir de información de adyacencia de capa 2 (incluyendo ethernet, ppp, sonet, etc.), así como todas las rutas preferidas
  • Toda la información de la tabla CEF y de adyacencia se empaqueta en mensajes IPC, que se envían entre el procesador de ruta y todas las tarjetas de línea. Las entradas CEF individuales se representan como XDR dentro del mensaje IPC. Un XDR es solo una forma específica de Cisco de escribir entradas CEF en un mensaje IPC.
  • Las tarjetas de línea individuales desempaquetan los XDR de los mensajes de IPC y crean (lo que debería ser) una copia exacta de la tabla de adyacencia y CEF del procesador de ruta en la tarjeta de línea.
  • Una vez que la tarjeta de línea completa las revisiones de las tablas de adyacencia y CEF, se ejecuta un proceso específico de la plataforma en la tarjeta de línea para calcular las estructuras de datos necesarias para que el hardware de la plataforma reenvíe y reescriba los paquetes en la tarjeta de línea.

El IPC sincronizado es bastante crítico para la operación de dCEF; Si no mantiene los mensajes sincronizados entre todas las tarjetas de línea, puede terminar con inconsistencias de prefijo .

La mecánica de cómo el enrutador hace esto es específica de la plataforma, por lo que haré referencia a la plataforma que mejor conozco, que es Catalyst 6500 con Supervisor720 / Supervisor2T. El motor de reenvío y reescritura de una tarjeta de línea Catalyst 6500 dCEF es en realidad una copia en miniatura del Supervisor; por lo que todo el proceso de reenvío y conmutación de IP se ejecuta de la misma manera que si el paquete fuera reenviado centralmente al supervisor. La tarjeta de línea dCEF de ingreso busca la información requerida en la tabla CAM / CEF, y luego construye un encabezado que adjunta al paquete.

La tarjeta de línea de salida mira el encabezado y usa la información de adyacencia dentro de él para escribir el paquete en el cable.

¿Por qué esta tabla de adyacencia se almacena en el ingreso?

Para que pueda tomar toda la decisión de reenvío sobre el ingreso.

Si esto está entrando, ¿se transfiere la información de reescritura L2 de la tarjeta de entrada a la tarjeta de línea de salida?

si

¿No sería eso una pérdida de ancho de banda de tela?

No lo creo, pero podría ser parcial :-)

Mike Pennington
fuente
Muchas gracias por la respuesta detallada! Básicamente estoy asumiendo que linecard fib está sincronizado con rp. Mi confusión es en realidad alrededor del plano de datos, porque sé que algunos productos que no son de Cisco están haciendo una búsqueda en la tabla de adyacencia en la salida, por lo que estoy tratando de averiguar si Cisco realmente elige hacerlo en el ingreso y por qué, para mí, esto desperdicia memoria y ancho de banda de tela.
wei
El desperdicio es subjetivo. Tienes que hacer la búsqueda en alguna parte; se podría argumentar que hacer una búsqueda en egreso desperdicia recursos y hace que el producto sea más caro. El debate podría continuar durante mucho tiempo arrojando piedras en los diversos ángulos del objeto de su disgusto. En pocas palabras, Cisco elige gastar una cantidad modesta de memoria en la tarjeta de línea de entrada, y la información de adyacencia no se envía a través de la estructura en el Catalyst6500 de todos modos; Los resultados de adyacencia se envían a la tarjeta de salida a través de un RBUS dedicado.
Mike Pennington
Para más información sobre el RBUS: documento de arquitectura Sup720
Mike Pennington
3

Cuando Cisco Express Forwarding distribuido está habilitado, las tarjetas de línea, como las tarjetas de línea VIP o las tarjetas de línea de Cisco 12000 Series Internet Router, mantienen una copia idéntica de las tablas de adyacencia y FIB. Las tarjetas de línea realizan un reenvío rápido entre los adaptadores de puerto, aliviando así al RP de la participación en la operación de conmutación. Cisco Express Forwarding distribuido utiliza un mecanismo de comunicación entre procesos (IPC) para garantizar la sincronización de las tablas FIB y las tablas de adyacencia en el RP y las tarjetas de línea. - Cisco

El RP (que ejecuta varios procesos de protocolo de enrutamiento) construye el FIB y lo publica en todas las tarjetas de línea. Hay una FIB, pero se replica en cada tarjeta de línea. (sí, a veces se desincronizan).

Ricky Beam
fuente
Sí, esa parte la entiendo. La parte sobre la que estoy confundido es que todos los documentos publicados en Cisco parecen implicar que la información de reescritura de L2 se busca al ingresar, lo que no tiene mucho sentido para mí.
wei