Network Manager rompe rutas manuales

9

Tengo Ubuntu 13.10, Saucy Salamander x64 ejecutándose como invitado en VirtualBox (con Windows 7 como host).

Escribí esto /etc/network/interfacesporque necesito agregar una gran cantidad de rutas estáticas manuales permanentes:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp
    up ip -force -b /etc/network/eth1-routes

eth1-routes contiene varias líneas de la forma:

route add 10.0.0.0/8 via 172.x.x.x dev eth1

¿Dónde 172.x.x.xestá la puerta de enlace que me da VBox NAT?

Al ejecutar netstat -nr, parece que todas mis rutas manuales se han agregado con éxito, incluidas las rutas para llegar a dos servidores DNS 172.x.x.x.

Sin embargo, el administrador de red dice que ambos dispositivos "no están administrados". Si configuro /etc/NetworkManager/NetworkManager.conf managed=true, el administrador de red funciona nuevamente pero mis rutas se pierden. Así que mi compromiso actual es establecer managed=falsey comentar las eth0líneas /etc/network/interfaces.

¿Hay alguna manera de administrar un dispositivo y seguir haciendo rutas manuales como se indicó anteriormente?

Reinderien
fuente

Respuestas:

4

Network Manager no reconoce las declaraciones que escribió /etc/network/interfaces.

Entonces puede agregar su script eth1-routescomo script de despachador para Network Manager en /etc/network/if-up.d/. Se ejecutará cada vez que se active una interfaz. Quizás tenga que escribir en su script una "cláusula if" para agregar solo las rutas si eth1aparece. Me gusta esto:

if [ "$IFACE" == "eth1" ]; then
  route add ...
  route add ...
fi
caos
fuente
5

Network Manager administra sus propias rutas estáticas: abra el administrador de red y seleccione "conexión por cable 1". Selecciona editar. seleccione la pestaña IPv4. Al final de esta página hay un botón para "Rutas". Ahí es donde los agregas. Cuando termine, NM escribe en un archivo con permisos de root en su directorio / etc / NetworkManager / system-connections / llamado "Conexión cableada 1"

El siguiente ejemplo

ls -l /etc/NetworkManager/system-connections/
total 4.0K
-rw------- 1 root root 216 Aug 26 10:38 Wired connection 1

sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1

[802-3-ethernet]
mac-address=A:Real:Mac:Add:re:ss

[connection]
id=Wired connection 1
uuid=df4491fc-0981-4071-82ae-04c7b2d6d9fc
type=802-3-ethernet

[ipv6]
method=auto

[ipv4]
method=auto
route1=10.2.2.0/24,10.1.1.68,1

Donde 10.2.2.0 es la red de destino y 10.1.1.68 es la puerta de enlace.

Fred
fuente
1

Si desea agregar una ruta a Ubuntu que persista en el reinicio y no use la interfaz predeterminada como puerta de enlace, entonces puede agregar una declaración de ruta al archivo de configuración de NetworkManager para la interfaz específica.

Agregue una ruta al archivo de configuración / etc / NetworkManager / system-connections / "nombre de conexión" agregando la declaración de ruta al archivo de configuración para (suponiendo IPv4). La ruta tiene cuatro partes; "la primera es la red o dirección IPv4 de destino (orden de bytes de red), la segunda es la red de destino o el prefijo de dirección (1 - 32), la tercera es el siguiente salto (orden de bytes de red) si existe, y la cuarta es la ruta métrica " .

[ipv4]
method=auto
route1=172.16.0.0/16,192.168.3.1,1

Esto es equivalente a configurar la ruta usando la siguiente declaración de ruta:

route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.3.1

El nombre clave de la ruta se define en la Tabla 12 en la documentación del desarrollador de NetmorkManager. Consulte la siguiente URL para obtener más información: https://developer.gnome.org/NetworkManager/0.9/ref-settings.html

nuwandame
fuente