Cambio de puerta de enlace predeterminado

28

Estoy usando 3 interfaces ethernet en Ubuntu pero cuando reinicio, la puerta de enlace predeterminada está cambiando a una interfaz diferente. Cada vez que inicio, tengo que cambiar la puerta de enlace predeterminada a eth1 eliminando la puerta de enlace predeterminada y agregándola nuevamente con eth1. ¿Como puedo solucionar este problema?

Baran
fuente
¿Lo configuró manualmente usando el /etc/network/interfacesarchivo o con un software como Network Manager o wicd?
Lekensteyn
1
"Puerta de enlace" no es igual a "ruta". Una puerta de enlace es específica de una interfaz donde una ruta dice qué interfaz se debe utilizar.
Lekensteyn
La puerta de enlace suele ser una interfaz en un dispositivo remoto en el que el nodo local depende para tomar decisiones de enrutamiento. Una declaración de ruta en sí misma puede referirse a una interfaz local o no, pero el destino de enrutamiento debe ser reconocible desde una búsqueda recursiva, una interfaz conectada o una ruta predeterminada. Una ruta o puerta de enlace predeterminada es la 'puerta de enlace de último recurso', que se utilizará en ausencia de una ruta más específica disponible.
belacqua
¿Puede proporcionar su tabla de enrutamiento y la lista de la interfaz, y otra configuración de red relevante que haya realizado?
belacqua

Respuestas:

33

Para cambiar temporalmente la ruta predeterminada, puede usar un comando ip como este:

$ sudo ip route change default via 192.168.1.1 dev eth0

Si tiene una configuración de IP estática /etc/network/interfaces, puede agregar una declaración de puerta de enlace para que sea permanente.

iface eth0 inet static
    gateway 192.168.1.1
    […]

Usando DHCP para configurar la red, debe ajustar otro archivo en su lugar. Agregue la declaración de reemplazo en /etc/dhcp/dhclient.conf.

supersede routers 192.168.1.1;
webwurst
fuente
1
Versión programable (debe haber un espacio entre comillas):echo supersede routers $(ip route | grep default | cut -f3 -d" ")\; | sudo tee --append /etc/dhcp/dhclient.conf
colan
¿Qué pasa si tengo varias interfaces? ¿No deberían todos tener una 'puerta de enlace' para cada interfaz? ? Pero lo que afecta el ejemplo '' por defecto a través de la salida 192.168.3.1 dev eth6" del comando ip route Presenta una interfaz específica, ¿verdad?
JohnyTex
7

Abre el archivo /etc/network/interfaces

encuentre la interfaz deseada y agregue lo siguiente:

gateway 192.x.x.x

Reiniciar red:

sudo /etc/init.d/networking restart
mount.cifs
fuente
16
¿Qué sucede si la interfaz deseada se configura a través de DHCP y no sé la dirección de puerta de enlace que asignará?
devmiles.com
0

Tuve el mismo problema para mi interfaz wifi wlp3s0en Ubuntu 18.04. Estaba afectando mi capacidad de conectarme al enrutador y anclaje de Android fuera de casa. La forma de resolver el problema para mí fue comentar en el archivo /etc/dhcpcd.conflo siguiente:

interface wlp3s0
        static ip_address=192.168.0.16/24
        static routers=192.168.0.1
        static domain_name_servers=127.0.0.1

para obtener lo siguiente

#interface wlp3s0
#        static ip_address=192.168.0.16/24
#        static routers=192.168.0.1
#        static domain_name_servers=127.0.0.1

Luego, me desconecté de mi red actual y reconecté un intento route -no nmclipara ver cambios

También puede eliminar las mismas líneas cuando esté seguro de que funciona para usted.

Debido a estas líneas, el NetworkManager siempre agregaba una ruta predeterminada con una puerta de enlace incorrecta, en particular cuando no estaba en mi red doméstica. Estaba recibiendo "Host de destino inalcanzable" cuando estaba haciendo un ping 8.8.8.8. La codificación de una puerta de enlace /etc/network/interfacesno era una solución viable ya que me conecto mucho a wifis públicos (por lo tanto, nunca el mismo enrutador o puerta de enlace wifi) y normalmente DHCP debería funcionar "fuera de la caja" en mi humilde opinión.

PD: nunca he editado manualmente, /etc/dhcpcd.confasí que no sé por qué el archivo /etc/dhcpcd.confcontenía estas líneas.

ThomasG77
fuente