Come fare in modo che wlan sia sempre la route predefinita? (elenco percorsi ip)


8

Ogni volta che aggiungo il mio modem 4G al mio lampone, si aggiunge alle rotte predefinite ip route list, tuttavia voglio che tutto passi attraverso la rete wireless e utilizzo il modem 4G solo per ricevere connessioni SSH.

Ho trovato questa risposta su come disabilitare i percorsi predefiniti.

tuttavia, dopo il riavvio, il modem 4G torna all'inizio.

Come faccio wlan0ad essere sempre la prima regola di default?

AGGIORNARE:

Ecco l'output di dmesg quando collego il 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

Ecco 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

AGGIORNAMENTO 2

L'ho attaccato alcune altre volte fino a quando non ha mostrato il eth1percorso:

[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

Ecco 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

Vedi che l'ho fatto ifmetric wlan0per poter usare il wlan0to sshnel mio lampone

AGGIORNAMENTO 09/10:

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

Questo non renderà la mia wlan0metrica 0. Cosa sto facendo di sbagliato?


1
Il primo passo è scoprire perché il modem 4G ottiene una route predefinita. Fa DHCP? In caso affermativo, capire come lo chiama (gestore della rete? Ifup / ifdown tradizionale?) E configurare dhclient ecc. In quella chiamata per non impostare la route predefinita per quella particolare interfaccia.
Dirkt

@dirkt è un dongle USB, quindi quando è collegato ottiene una nuova interfaccia di default. Non esiste una regola per eth1 su / etc / network / interfaces, tuttavia questo è il dispositivo Ethernet assegnato ad esso. Sai perché? Non so se funziona con DHCP, l'interfaccia è piuttosto semplice, non ci sono cose avanzate da cambiare o guardare. È un modem Huawei. Potresti dare un aiuto per la soia?
Guerlando OCs

1
Modificare la domanda con l'output di dmesge syslog (utilizzare journalctlse si dispone di systemd) dopo aver inserito il dongle USB (rientrare 4 spazi per una formattazione corretta su StackOverflow).
Dirkt

@dirkt Pubblicherò presto il dmesg quando avrò qualcuno per collegare il modem 4G per me. Nel frattempo, come trovo quale elemento sta fornendo un indirizzo IP per il mio router? Sto usando raspbian che è basato su debian, quindi hai un'idea?
Guerlando OCs,

In generale, riceverai gli indirizzi IP tramite DHCP , di solito chiamando dhclient, o, se il modem utilizza un protocollo punto-punto, da questo protocollo. Tutto ciò dovrebbe essere mostrato da qualche parte nei registri, motivo per cui stavo chiedendo i registri. Se non si dispone dell'accesso fisico a RaspPi (non è stato menzionato questo) ip linko si ip addrdovrebbe anche mostrare se si tratta di un protocollo punto-punto o meno (probabilmente è necessaria la modalità dettagliata).
Dirkt

Risposte:


5

Per modificare la priorità di routing per un'interfaccia, è necessario modificare le metriche.

Per impostazione predefinita, tutti sono 0, che è la priorità più alta. Quindi, puoi fare:

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

Per usare ifmetricin Debian, devi installarlo:

sudo apt-get install ifmetric

ifmetric

Imposta le metriche di routing per un'interfaccia di rete

ifmetric è uno strumento Linux per impostare contemporaneamente le metriche di tutte le route IPv4 collegate a una determinata interfaccia di rete. Questo può essere usato per cambiare la priorità del routing del traffico IPv4 sull'interfaccia. Metriche inferiori sono correlate a priorità più alte.

La metrica 0 indica il percorso con la priorità più alta ed è quella predefinita. Il valore di metrica più grande indica percorsi con priorità inferiore. L'indirizzo IP dell'interfaccia attiva con il valore di metrica più basso diventa quello di origine. Vedi ifmetric (8).


1
Forse dovresti anche spiegare perché questo aiuterà a ottenere DHCP da una particolare interfaccia (invece di ignorarla) se sono presenti altre interfacce.
Dirkt

@dirkt potresti spiegare meglio la cosa dhcp? Al momento ho iface wlan0 inet manual up ifmetric wlan0 0 ma wlan0 metric non apparirà come 0
Guerlando OCs

1

Questo è il buon vecchio problema di come sovrascrivere una route predefinita.

Il modo più semplice per IPv4 non è provare a cambiare la metrica / priorità ma dividere il percorso:

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

Il motivo per cui funziona è che le ricerche nella tabella di routing vengono eseguite utilizzando una ricerca con prefisso con corrispondenza più lunga. Le metriche del percorso entrano in gioco solo quando esistono due percorsi altrimenti equivalenti. In questo caso, queste due route hanno un prefisso a 1 bit che è più lungo del prefisso a 0 bit della route predefinita (0.0.0.0/0) e verrà consultato per primo. Poiché queste due route coprono l'intero 0.0.0.0/0, avranno sempre la preferenza sulla route predefinita.

Un approccio alternativo consiste nell'utilizzare una tabella di routing separata con la route predefinita che preferisci e aggiungere una regola per inviare tutto il traffico lì. Non ho mai visto alcuna automazione che si intromette con le regole IP, quindi non importa quali altri percorsi aggiungano. Il problema qui è che la tua automazione non sarà in grado di inserire percorsi aggiuntivi però.

Quindi, 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
    ....

Oppure (ma dovrai anche aggiungere tutti gli altri percorsi alla "tabella 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
    ....

0

Un modo per persistere ip route add/delin debian è di scriverli /etc/network/interfacescome di seguito:

allow-hotplug eth1
iface eth1 inet dhcp
    post-up ip route del default
    post-up ip route add default via <gateway IP> dev wlan0

Penso che in questo modo aggiungerà solo un gateway predefinito per ogni interfaccia, ma non quale viene utilizzato preferibilmente
Guerlando OCs

Ok ho capito, escluderà quello predefinito e ne aggiungerà uno per wlan0. Ma non verrà aggiunto anche uno predefinito per eth0?
Guerlando OCs

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.