¿Por qué Linux no elimina la ruta de la tabla de routing si la interfaz está físicamente inactiva?

Como se ve a continuación, Linux (3.7-trunk-686-pae) mantiene la ruta a 10.10.12.64/28 en la tabla de routing aunque la interfaz está físicamente inactiva:

root@kali:~# ip addr show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether b4:99:ba:57:7c:5f brd ff:ff:ff:ff:ff:ff inet 10.10.12.77/28 scope global eth0 root@kali:~# ip route show dev eth0 10.10.12.64/28 proto kernel scope link src 10.10.12.77 root@kali:~# ip route get 10.10.12.69 10.10.12.69 dev eth0 src 10.10.12.77 cache root@kali:~# 

La ruta se elimina de la tabla de routing si desactivo la interfaz administrativamente ("set de enlaces ip dev eth0").

¿Cuál es el propósito de mantener la ruta en la tabla de routing mientras la interfaz está físicamente inactiva? Por ejemplo, si la ruta más específica 10.10.12.64/28 no estaría presente mientras la interfaz está inactiva, entonces el tráfico podría enviarse a una ruta less específica (por ejemplo, 0.0.0.0/0) a otra interfaz que esté activa.

No hay garantía de que otra interfaz encaminará el tráfico de manera apropiada. Incluso si se dirige a un dispositivo en la dirección especificada, es posible que el dispositivo no sea el dispositivo deseado. Hay una serie de problemas que podrían popup:

Cambiar el routing a otra interfaz puede infligir reglas NAT en el tráfico, lo que rompería las conexiones cuando aparezca la interfaz.

Para ranges de direcciones IP privadas, tal como se especifica en la pregunta, la interfaz puede conectarse a otra organización con una networking completamente diferente. La networking local 10.0.0.0/8 sería un lugar inadecuado para enrutar dicho tráfico. Incluso en la misma organización, el bloque puede ser una networking de testing que replica una networking de producción.

Para las direcciones que pueden enrutarse a través de Internet, puede haber razones de security para no enrutar el tráfico a través de Internet. Aunque no se recomienda, es posible utilizar el routing local para enrutar el tráfico que debe mantenerse seguro. Si bien sería mejor encriptar el tráfico, en algunos casos esto puede ser difícil de hacer.

Mi mejor sugerencia sería usar netplug – http://www.networking-bean.com/~bos/

Solo usa esto para ejecutar

  ip link set eth0 down 

cuando el cable está desenchufado Y al revés cuando vuelve a upload.

Esto está bien para una máquina que es puramente un enrutador. Pero si la máquina tiene otros services, estos services tendrían que estar vinculados a las direcciones IP internas.