¿Cuál es la diferencia entre reenviar y enrutar tablas?
fuente
¿Cuál es la diferencia entre reenviar y enrutar tablas?
El enrutamiento es la decisión sobre qué interfaz se enviará un paquete. Esta decisión también debe tomarse para los paquetes creados localmente. Las tablas de enrutamiento contienen direcciones de red y la interfaz asociada o nexthop. Esto se refiere a ip route
y ip rule
(en un contexto de Linux).
El reenvío se refiere a los paquetes que llegan a un sistema pero no están destinados a este sistema. El reenvío es una decisión del sistema: "Tomo el paquete e intento llevarlo hacia su destino". En lugar de dejarlo caer. "reenvío" es un término común en el contexto de los filtros de paquetes. Netfilter de Linux tiene tres cadenas en su tabla base: INPUT, OUTPUT y FORWARD. Esta cadena simplemente toma la decisión "¿Deberá enviarse o descartarse este paquete?" (si el reenvío generalmente está habilitado en el sistema; Linux nuevamente: / proc / sys / net / ipv4 / ip_forward).
En la mayoría de los sistemas, aquellos con una sola conexión de red, serán lo mismo. En un enrutador, sin embargo, tenderán a ser diferentes.
La tabla de enrutamiento contiene todas las rutas que un enrutador aprende de sus pares y vecinos utilizando un protocolo de enrutamiento dinámico como OSPF o BGP. Cada ruta se ordena y evalúa, según los parámetros del protocolo de enrutamiento en uso, y el subconjunto de entradas de la tabla de enrutamiento que son "mejores" se colocan en la tabla de reenvío. Cuando el enrutador recibe un paquete, busca la dirección de destino en la tabla de reenvío para decidir a través de qué interfaz enviar el paquete y cuál debe ser la dirección del siguiente salto. A medida que se aprenden nuevas rutas, se activan o desactivan las interfaces o se realizan cambios de política en el esquema de clasificación, la tabla de enrutamiento se vuelve a evaluar y la tabla de reenvío se actualiza.
Las tablas de enrutamiento generalmente se almacenan en RAM; Las tablas de reenvío de equipos de alto rendimiento se distribuirán a través de tarjetas de línea (en sistemas modulares) y se almacenarán en TCAM de mayor velocidad. Normalmente hay un número finito de rutas que se pueden mantener en TCAM; cuando la tabla de reenvío excede la capacidad de TCAM, los paquetes pueden descartarse o enrutarse en el software (que es significativamente más lento).
fuente
En primer lugar, en mi punto de vista, creo que primero debe comprender claramente la distinción entre reenvío y enrutamiento , que a menudo se descuida. De acuerdo con el libro Computer Networks en la página 240 de Lary L.Peterson , el reenvío es una serie de acciones que el enrutador tomará una vez que reciba un paquete, incluyendo mirar su dirección de destino, consultar una tabla y enviar el paquete en una dirección determinada por esa mesa. Sin embargo, el enrutamiento aquí se refiere al proceso por el cual se construyen las tablas de reenvío.
Volviendo a la pregunta original, podemos llegar a la conclusión de que aunque podemos mantener una tabla de reenvío y una tabla de enrutamiento en las mismas estructuras, hay muchas razones para separarlas. Una tabla de reenvío generalmente debe estructurarse para optimizar el proceso de búsqueda de una dirección al reenviar un paquete, que contiene más información, como la dirección MAC. Por el contrario, la tabla de enrutamiento generalmente se enfoca en calcular los cambios en la topología, y las entradas en la tabla de enrutamiento generalmente son más sucintas, solo incluyen la IP del siguiente salto.
fuente
La tabla de enrutamiento contiene todas las rutas al destino diferente (el mismo destino puede tener 2 o más rutas diferentes)
pero
La tabla de reenvío solo contiene la mejor ruta a cada destino (solo una ruta para cada destino)
fuente