¿Cómo hacer que wlan sea siempre la ruta predeterminada? (lista de rutas ip)

8

Cada vez que agrego mi módem 4G a mi frambuesa, se pone por encima de las rutas predeterminadas ip route list, sin embargo, quiero que todo pase por wlan, y solo uso el módem 4G para recibir conexiones SSH.

He encontrado esta respuesta sobre cómo deshabilitar las rutas predeterminadas.

sin embargo, después de reiniciar, el módem 4G vuelve a la cima.

¿Cómo hago wlan0para ser siempre la primera regla por defecto?

ACTUALIZAR:

Aquí está la salida dmesg cuando conecto el dongle USB:

[426102.910168] usb 1-1.5.1: new full-speed USB device number 6 using dwc_otg
[426103.046670] usb 1-1.5.1: not running at top speed; connect to a high speed hub
[426103.056674] usb 1-1.5.1: New USB device found, idVendor=12d1, idProduct=1f01
[426103.056693] usb 1-1.5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[426103.056704] usb 1-1.5.1: Product: HUAWEI_MOBILE
[426103.056714] usb 1-1.5.1: Manufacturer: HUAWEI_MOBILE
[426103.056724] usb 1-1.5.1: SerialNumber: 0123456789ABCDEF
[426103.121355] usb-storage 1-1.5.1:1.0: USB Mass Storage device detected
[426103.122875] scsi host0: usb-storage 1-1.5.1:1.0
[426103.987177] usb 1-1.5.1: USB disconnect, device number 6
[426105.470211] usb 1-1.5.1: new full-speed USB device number 7 using dwc_otg
[426105.606666] usb 1-1.5.1: not running at top speed; connect to a high speed hub
[426105.615673] usb 1-1.5.1: New USB device found, idVendor=12d1, idProduct=14dc
[426105.615692] usb 1-1.5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[426105.615703] usb 1-1.5.1: Product: HUAWEI_MOBILE
[426105.615713] usb 1-1.5.1: Manufacturer: HUAWEI_MOBILE
[426105.766297] usb-storage 1-1.5.1:1.2: USB Mass Storage device detected
[426105.766768] scsi host0: usb-storage 1-1.5.1:1.2
[426105.855053] cdc_ether 1-1.5.1:1.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5.1, CDC Ethernet Device, 0c:5b:8f:27:9a:64
[426105.855593] usbcore: registered new interface driver cdc_ether
[426106.785653] scsi 0:0:0:0: Direct-Access     HUAWEI   TF CARD Storage  2.31 PQ: 0 ANSI: 2
[426106.803758] sd 0:0:0:0: Attached scsi generic sg0 type 0
[426106.820687] sd 0:0:0:0: [sda] Attached SCSI removable disk

Aqui esta ip addr

eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 0c:5b:8f:27:9a:64 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::584f:751f:bb3e:e26b/64 scope link 
       valid_lft forever preferred_lft forever

ACTUALIZACIÓN 2

Lo adjunté algunas veces más hasta que mostró la eth1ruta:

[10787.229141] usb 1-1.5: new full-speed USB device number 7 using dwc_otg
[10787.363515] usb 1-1.5: New USB device found, idVendor=05e3, idProduct=0606
[10787.363533] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10787.363544] usb 1-1.5: Product: USB Hub 2.0
[10787.363555] usb 1-1.5: Manufacturer: ALCOR
[10787.365166] hub 1-1.5:1.0: USB hub found
[10787.369831] hub 1-1.5:1.0: 4 ports detected
[10797.419094] usb 1-1.5.1: new full-speed USB device number 8 using dwc_otg
[10797.555636] usb 1-1.5.1: not running at top speed; connect to a high speed hub
[10797.565759] usb 1-1.5.1: New USB device found, idVendor=12d1, idProduct=1f01
[10797.565777] usb 1-1.5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10797.565789] usb 1-1.5.1: Product: HUAWEI_MOBILE
[10797.565799] usb 1-1.5.1: Manufacturer: HUAWEI_MOBILE
[10797.565808] usb 1-1.5.1: SerialNumber: 0123456789ABCDEF
[10797.630477] usb-storage 1-1.5.1:1.0: USB Mass Storage device detected
[10797.631101] scsi host0: usb-storage 1-1.5.1:1.0
[10798.472745] usb 1-1.5.1: USB disconnect, device number 8
[10799.469081] usb 1-1.5.1: new full-speed USB device number 9 using dwc_otg
[10799.630768] usb 1-1.5.1: not running at top speed; connect to a high speed hub
[10799.646891] usb 1-1.5.1: New USB device found, idVendor=12d1, idProduct=14dc
[10799.646909] usb 1-1.5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10799.646920] usb 1-1.5.1: Product: HUAWEI_MOBILE
[10799.646930] usb 1-1.5.1: Manufacturer: HUAWEI_MOBILE
[10799.814489] usb-storage 1-1.5.1:1.2: USB Mass Storage device detected
[10799.815008] scsi host0: usb-storage 1-1.5.1:1.2
[10799.897788] cdc_ether 1-1.5.1:1.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5.1, CDC Ethernet Device, 0c:5b:8f:27:9a:64
[10799.898127] usbcore: registered new interface driver cdc_ether
[10800.889652] scsi 0:0:0:0: Direct-Access     HUAWEI   TF CARD Storage  2.31 PQ: 0 ANSI: 2
[10800.910585] sd 0:0:0:0: Attached scsi generic sg0 type 0
[10800.923297] sd 0:0:0:0: [sda] Attached SCSI removable disk

Aqui esta route -n

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         192.168.8.1     0.0.0.0         UG    207    0        0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG    303    0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     202    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     204    0        0 docker0
169.254.0.0     0.0.0.0         255.255.0.0     U     206    0        0 veth4557ad2
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
192.168.8.0     0.0.0.0         255.255.255.0   U     207    0        0 eth1

Mira que hice ifmetric wlan0para poder usar el wlan0to sshen mi frambuesa

ACTUALIZACIÓN 09/10:

allow-hotplug wlan0
iface wlan0 inet dhcp
    up ifmetric wlan0 0
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Esto no hará que wlan0tenga métrica 0. ¿Qué estoy haciendo mal?

Guerlando OCs
fuente
1
El primer paso es descubrir por qué el módem 4G obtiene una ruta predeterminada. ¿Hace DHCP? En caso afirmativo, averigüe qué lo llama (administrador de red? Ifup / ifdown tradicional?), Y configure dhclient, etc. en esa llamada para no establecer la ruta predeterminada para esa interfaz en particular.
dirkt
@dirkt es un dongle USB, por lo que cuando está conectado obtiene una nueva interfaz por defecto. No hay una regla para eth1 en / etc / network / interfaces, sin embargo, este es el dispositivo ethernet asignado. ¿Sabes por qué? No sé si hace DHCP, la interfaz es bastante simple, no hay cosas avanzadas para cambiar o mirar. Es un módem Huawei. ¿Podrías ayudarme?
Guerlando OCs
1
Edite la pregunta con la salida de dmesgy syslog (use journalctlsi tiene systemd) después de enchufar el dispositivo de seguridad USB (sangría 4 espacios para el formateo adecuado en stackoverflow).
dirkt
@dirkt Publicaré el dmesg pronto cuando haga que alguien conecte el módem 4G por mí. Mientras tanto, ¿cómo encuentro qué cosa está dando una dirección IP para mi enrutador? Estoy usando raspbian que está basado en Debian, ¿tienes una idea?
Guerlando OCs
En general, obtendrá direcciones IP a través de DHCP , generalmente llamando dhclient, o, si el módem utiliza un protocolo punto a punto, de este protocolo. Todo eso debería mostrarse en algún lugar de los registros, por eso estaba pidiendo los registros. Si no tiene acceso físico al RaspPi (no mencionó esto), ip linko ip addrtambién debe mostrar si es un protocolo punto a punto o no (posiblemente necesite el modo detallado).
dirkt

Respuestas:

5

Para cambiar la prioridad de enrutamiento de una interfaz, cambie las métricas.

Por defecto, todos son 0, que es la máxima prioridad. Entonces, puedes hacer:

allow-hotplug eth1
iface eth1 inet dhcp
    up ifmetric eth1 30

Para usar ifmetricen Debian, debe instalarlo:

sudo apt-get install ifmetric

ifmetric

Establecer métricas de enrutamiento para una interfaz de red

ifmetric es una herramienta de Linux para configurar las métricas de todas las rutas IPv4 conectadas a una interfaz de red dada a la vez. Esto se puede usar para cambiar la prioridad del enrutamiento del tráfico IPv4 sobre la interfaz. Las métricas más bajas se correlacionan con las prioridades más altas.

La métrica 0 significa la ruta de mayor prioridad y es la ruta predeterminada. El valor métrico mayor significa rutas de menor prioridad. La dirección IP de la interfaz activa con el valor métrico más bajo se convierte en la de origen. Ver ifmetric (8).

Rui F Ribeiro
fuente
1
Tal vez también debería explicar por qué esto ayudará a obtener DHCP desde una interfaz particular (en lugar de ignorarla) si hay otras interfaces presentes.
dirkt
@dirkt, ¿podrías explicar mejor lo de dhcp? Actualmente tengo iface wlan0 inet manual arriba ifmetric wlan0 0 pero wlan0 metric no aparecerá como 0
Guerlando OCs
1

Este es el viejo problema de cómo anular una ruta predeterminada.

La forma más fácil para IPv4 es no intentar cambiar la métrica / prioridad, sino dividir la ruta:

ip route add 0.0.0.0/1 via wlan0-gw
ip route add 128.0.0.0/1 via wlan0-gw

La razón por la que esto funciona es que las búsquedas en la tabla de enrutamiento se realizan utilizando una búsqueda de prefijo de coincidencia más larga. Las métricas de ruta solo entran en juego cuando hay dos rutas equivalentes. En este caso, estas dos rutas tienen un prefijo de 1 bit que es más largo que el prefijo de 0 bits de la ruta predeterminada (0.0.0.0/0) y se consultará primero. Dado que estas dos rutas cubren la totalidad de 0.0.0.0/0, siempre tendrán preferencia sobre la ruta predeterminada.

Un enfoque alternativo es usar una tabla de enrutamiento separada con la ruta predeterminada que prefiera y agregar una regla para enviar todo el tráfico allí. Nunca he visto ninguna automatización que interfiera con las reglas de ip, por lo que no importará qué otras rutas agreguen. Sin embargo, el problema aquí es que su automatización no podrá insertar rutas adicionales.

Entonces, tl; dr:

iface wlan0 inet manual
    up ip route add 0.0.0.0/1 via wlan0-gw
    up ip route add 128.0.0.0/1 via wlan0-gw
    ....

O (pero también tendrá que agregar todas las demás rutas a la "tabla 5"):

iface wlan0 inet manual
    up ip rule add to 0.0.0.0/0 table 5
    up ip route add default via wlan0-gw table 5
    ....
V13
fuente
0

Una forma de persistir ip route add/delen in debian es escribirlos /etc/network/interfacescomo se muestra a continuación:

allow-hotplug eth1
iface eth1 inet dhcp
    post-up ip route del default
    post-up ip route add default via <gateway IP> dev wlan0
Ezwig
fuente
Creo que de esta manera solo agregará una puerta de enlace predeterminada para cada interfaz, pero no cuál se usa preferiblemente
Guerlando OCs
Ok, lo entendí, excluirá el predeterminado y agregará uno para wlan0. ¿Pero no se agregará también uno predeterminado para eth0?
Guerlando OCs
0

Creo que el asunto de la puerta de enlace predeterminada. Aquí está el tutorial.

Explico brevemente los pasos. Primero, debe eliminar la puerta de enlace predeterminada y agregar la que desea agregar. Luego, edita "/ etc / network / interfaces" para un cambio permanente. Finalmente, reinicia el servicio.

https://www.wikihow.com/Add-or-Change-the-Default-Gateway-in-Linux

jefferyear
fuente