Establecer tabla de enrutamiento persistente en Debian

13

Modifiqué mi tabla de enrutamiento eliminando una regla y agregando dos nuevas reglas para mi segunda interfaz eth1:

route del -net 10.1.2.0 netmask 255.255.255.0
route add -host 10.1.2.51 eth1
route add -host 10.1.2.52 eth1

Quiero que las reglas sobrevivan al reinicio. Podría escribir un script rc simple para eliminar 1 regla e insertar 2 nuevas, pero me preguntaba si hay una forma de configurar ifconfig, no agregar una regla de ruta para la interfaz (eth1) cuando se inicia, o incluso mejor, para especificar qué reglas se deben agregar.

¿Cuál sería una forma limpia de hacerlo? ¿ ifconfigMe permite especificar reglas personalizadas para el enrutamiento?

Martin Vegter
fuente

Respuestas:

21

Puede agregar las llamadas al post-upenlace cuando aparezca la interfaz. La configuración de la interfaz se encuentra /etc/network/interfaces. Aquí un ejemplo:

auto eth1
iface eth1 inet dhcp
  post-up route del -net 10.1.2.0 netmask 255.255.255.0
  post-up route add -host 10.1.2.51 eth1
  post-up route add -host 10.1.2.52 eth1
  pre-down route add -net 10.1.2.0 netmask 255.255.255.0
  pre-down route add -host 10.1.2.51 eth1
  pre-down route add -host 10.1.2.52 eth1

Desde la página man - interfaces :

post-up command
Ejecute el comando después de abrir la interfaz. Si este comando falla, ifup se cancela, evitando marcar la interfaz como configurada (aunque realmente se haya configurado), imprime un mensaje de error y sale con el estado 0.

pre-down command
Ejecute el comando antes de quitar la interfaz. Si este comando falla, ifdown aborta, marca la interfaz como desconfigurada (aunque realmente no se haya desconfigurado) y sale con el estado 0.

Además, en Linux, las "herramientas de red" routeestán en desuso y deben reemplazarse por las herramientas del paquete iproute2 .

Otras lecturas:

Marco
fuente
¿podría, en lugar de eliminar la primera regla, evitar que se cree en primer lugar? ¿Cómo se crea una regla de ruta, de todos modos? Desde la configuración de red en /etc/network/interfaces? ¿Y cómo sé que cuando se ejecuta la publicación posterior, la regla que se eliminará ya existe? La página de manual no dice en qué momento se creó.
Martin Vegter
1
Como no conozco su red ni su configuración de host, no puedo decir cómo esta ruta llegó a la tabla de enrutamiento. ¿Viene con un contrato de arrendamiento de DHCP? De lo contrario, verifique sus servicios /etc/init.de investigue cuáles posiblemente podrían jugar con la tabla de enrutamiento. También eche un vistazo a la /etc/networkinclusión de subdirectorios.
Marco
55
post-upy pre-downson alias para upy down, respectivamente. Y agregar un || :al final de una línea permite que el comando falle y no moleste ifup / ifdown. Por lo general, agrego esto a route del, en caso de que la ruta aún no exista y, por lo tanto, no se pueda eliminar.
Tino