Linux proporciona una serie de herramientas para la selección de enrutamiento flexible.
Tabla de enrutamiento individual
En el caso más simple, solo hay una tabla de enrutamiento del núcleo y ninguna ruta con el atributo SRC. Esta tabla contiene varias rutas, que fueron colocadas allí manualmente ( ip route add
), por el demonio DHCP, o por demonios de enrutamiento. En este caso, el núcleo elige:
- la ruta más específica;
- si hay varias rutas igualmente específicas, la que tiene la métrica de kernel más pequeña.
Tenga en cuenta que el ip route show
daemon de enrutamiento elige la métrica del núcleo (mostrada por ) y no está necesariamente relacionada con la métrica de ningún protocolo de enrutamiento en particular. Por ejemplo, Quagga usa la misma métrica para todas las rutas que instala en el núcleo, independientemente de la métrica del protocolo.
Rutas específicas de origen
Linux también admite rutas con un atributo SRC que solo coincide con paquetes con una dirección de origen determinada. SRC solo funciona para IPv6, y estuvo defectuoso hasta hace muy poco (3.11, si la memoria sirve); No recomiendo usarlo a menos que sepa lo que está haciendo.
Múltiples tablas de enrutamiento
Si necesita más flexibilidad que la anterior, deberá jugar con varias tablas de enrutamiento y escribir reglas para elegir una tabla de enrutamiento particular para cada paquete. Una técnica común es despachar en la dirección de origen para simular rutas específicas de origen. Otra técnica es ejecutar cada daemon de enrutamiento en su propia tabla de enrutamiento y simular la "distancia administrativa" de Cisco. Todo esto se describe en detalle en el Capítulo 4 de LARTC .