Как сделать так, чтобы wlan всегда был маршрутом по умолчанию? (список маршрутов ip)


8

Всякий раз, когда я добавляю свой модем 4G в свой raspberry, он попадает поверх стандартных маршрутов ou ip route list, однако я хочу, чтобы все проходило через wlan, и использую только модем 4G для получения соединений SSH.

Я нашел этот ответ о том, как отключить маршруты по умолчанию.

однако после перезагрузки модем 4G возвращается к началу.

Как мне сделать так, wlan0чтобы всегда было первое правило по умолчанию?

ОБНОВИТЬ:

Вот вывод dmesg при подключении 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

Вот 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

ОБНОВЛЕНИЕ 2

Я прикрепил его еще несколько раз, пока он не показал eth1маршрут:

[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

Вот 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

Смотрите , что я сделал ifmetric wlan0для того , чтобы быть в состоянии использовать , wlan0чтобы sshв мою малину

ОБНОВЛЕНИЕ 09/10:

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

Это не сделает мою wlan0метрику 0. Что я делаю не так?


1
Первый шаг - выяснить, почему модем 4G получает маршрут по умолчанию. Это делает DHCP? Если да, выясните, что он вызывает (сетевой менеджер? Традиционный ifup / ifdown?), И настройте dhclient и т. Д. В этом вызове, чтобы не устанавливать маршрут по умолчанию для этого конкретного интерфейса.
Диркт

@dirkt - это USB-ключ, поэтому при подключении он получает новый интерфейс по умолчанию. Для eth1 нет правил в / etc / network / interfaces, однако это назначенное ему устройство Ethernet. Ты знаешь почему? Я не знаю, использует ли он DHCP, интерфейс довольно прост, нет никаких сложных вещей, которые можно изменить или посмотреть. Это модем huawei. Не могли бы вы помочь?
OCs Guerlando

1
Пожалуйста, отредактируйте вопрос с выходными dmesgданными и syslog (используйте, journalctlесли у вас есть systemd) после подключения USB-ключа (отступ 4 пробелов для правильного форматирования в stackoverflow).
dirkt

@dirkt Вскоре я опубликую dmesg, когда мне предложат подключить модем 4G. В то же время, как я могу найти, какая вещь дает IP-адрес для моего маршрутизатора? Я использую raspbian на основе Debian, так что у вас есть идея?
OCs Guerlando

В общем, вы будете получать IP-адреса через DHCP , обычно с помощью вызова dhclientили, если модем использует двухточечный протокол, из этого протокола. Все это должно быть показано где-то в журналах, поэтому я и просил журналы. Если у вас нет физического доступа к RaspPi (вы не упомянули об этом), ip linkили вы ip addrтакже должны показать, является ли это протоколом «точка-точка» или нет (возможно, вам нужен подробный режим).
Диркт

Ответы:


5

Для изменения приоритета маршрутизации для интерфейса вы меняете метрики.

По умолчанию все равны 0, что является наивысшим приоритетом. Итак, вы можете сделать:

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

Чтобы использовать ifmetricв Debian, вы должны установить его:

sudo apt-get install ifmetric

ifmetric

Установите метрики маршрутизации для сетевого интерфейса

ifmetric - это инструмент Linux для настройки метрик всех маршрутов IPv4, подключенных к данному сетевому интерфейсу одновременно. Это может использоваться для изменения приоритета маршрутизации трафика IPv4 через интерфейс. Более низкие показатели коррелируют с более высокими приоритетами.

Метрика 0 означает маршрут с наивысшим приоритетом и является маршрутом по умолчанию. Большее значение метрики означает маршруты с более низким приоритетом. IP-адрес активного интерфейса с наименьшим значением метрики становится исходящим. См. Ifmetric (8).


1
Возможно, вам также следует объяснить, почему это поможет получить DHCP из определенного интерфейса (вместо того, чтобы игнорировать его), если присутствуют другие интерфейсы.
18:00

@dirkt не могли бы вы объяснить, что такое Dhcp? В настоящее время у меня есть руководство iface wlan0 inet up ifmetric wlan0 0, но метрика wlan0 не будет отображаться как 0
OCs Guerlando

1

Это старая проблема, как переопределить маршрут по умолчанию.

Самый простой способ для IPv4 - не пытаться изменить метрику / приоритет, а разделить маршрут:

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

Причина, по которой это работает, заключается в том, что поиск в таблице маршрутизации выполняется с использованием поиска с самым длинным соответствием. Метрики маршрутов вступают в игру только тогда, когда есть два в другом случае эквивалентных маршрута. В этом случае эти два маршрута имеют 1-битный префикс, который длиннее 0-битного префикса маршрута по умолчанию (0.0.0.0/0), и с ним будут обращаться в первую очередь. Поскольку эти два маршрута охватывают весь 0.0.0.0/0, они всегда будут иметь преимущество перед маршрутом по умолчанию.

Альтернативный подход заключается в использовании отдельной таблицы маршрутизации с маршрутом по умолчанию, который вы предпочитаете, и добавлении правила для отправки всего трафика туда. Я никогда не видел никакой автоматизации, которая бы мешала правилам ip, поэтому не имеет значения, какие другие маршруты они добавляют. Проблема в том, что ваша автоматизация не сможет вставить дополнительные маршруты.

Итак, д-р:

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

Или (но вам также нужно добавить все остальные маршруты в «таблицу 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

Один из способов сохранить ip route add/delв Debian - записать их, /etc/network/interfacesкак показано ниже:

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

Я думаю, что таким образом он просто добавит шлюз по умолчанию для каждого интерфейса, но не тот, который используется предпочтительно
OCs Guerlando

Хорошо, я понял, он исключит один по умолчанию и добавит один для wlan0. Но не будет ли добавлено значение по умолчанию для eth0?
OCs Guerlando

0

Я думаю, что вопрос по умолчанию шлюза. Вот учебник.

Я кратко объясню шаги. Сначала вам нужно удалить шлюз по умолчанию и добавить тот, который вы хотите добавить. Затем вы редактируете "/ etc / network / interfaces" для постоянного изменения. Наконец, вы перезапустите сервис.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.