Постоянное изменение таблицы маршрутизации

У меня есть модель малины PI 2 B с версией Raspbian Jessie, и я пытаюсь вывести Интернет с моего компьютера на Малину. У меня есть 2 сетевых интерфейса между ними, один по Ethernet, а другой - по Wi-Fi. Я настроил IP-адрес Ethernet в малине, чтобы быть статичным, потому что у меня есть небольшая компьютерная сеть дома со статическими IP-адресами, и я хочу, чтобы малина была ее частью. Поскольку мой интернет очень медленный (я использую модем с набором номера), я не хочу делиться этим медленным Интернетом через интерфейс ethernet, потому что я не хочу, чтобы все компьютеры, подключенные к этой сети, стекали мою скорость интернета. Поскольку я только намерен подключить Интернет к Малине, я создал точку доступа Wi-Fi на моем ПК, которая динамически назначает IP-адрес моей малине (у программного обеспечения «горячих точек» есть своего рода DHCP), и именно так я разделяю мой медленный интернет только с Малина.

Но потом моя проблема начинается, по умолчанию после включения (или если я отключусь и подключаюсь снова), Малина не подключается к Интернету. Набрав ifconfig Получаю:

eth0     
Link encap:Ethernet  HWaddr b8:27:eb:4e:35:65  
inet addr:100.100.100.25  Bcast:100.100.100.255  Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe4e:3565/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     
Link encap:Ethernet  HWaddr 74:da:38:55:f3:a2  
inet addr:192.168.137.201  Bcast:192.168.137.255  Mask:255.255.255.0
inet6 addr: fec0::12:c4f1:c3fc:eb1e:3153/64 Scope:Site
inet6 addr: 2002:be0f:9cea:12:1bc0:1969:c17d:f854/64 Scope:Global
inet6 addr: fe80::bdca:7255:2e27:8341/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Когда я печатаю route -n, я получаю:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
0.0.0.0         192.168.137.1   0.0.0.0         UG    303    0        0 wlan0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

Здесь вы можете увидеть, как метрика моего статического шлюза Ethernet-соединения (100.100.100.1) меньше, чем показатель моего шлюза подключения DHCP Wifi (192.168.137.1), поэтому моя малина пытается получить Интернет через неправильный интерфейс

после ввода:

sudo route delete  default gateway 192.168.137.1 

, а затем:

sudo route add  default gateway 192.168.137.1

моя таблица маршрутизации привязана к:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.137.1   0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         100.100.100.1   0.0.0.0         UG    202    0        0 eth0
100.100.100.0   0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     303    0        0 wlan0

, а малина может получить доступ к интернету.

Мои вопросы:

  1. Есть ли способ автоматизировать этот процесс, поэтому мне не придется вручную делать это каждый раз, когда я включаю малину?
  2. Есть ли способ автоматизировать его, чтобы он всегда узнавал, что он должен получить интернет от Wi-Fi независимо от диапазона IP, заданного точкой доступа DCHP к этому интерфейсу?
  3. Почему нижняя метрика автоматически назначалась интерфейсу Ethernet?

Я уже проверил решение в Как внести изменения в таблицу маршрутизации? , но это не работает для меня, потому что в Raspbian Jessie вы не редактируете непосредственно /etc/network/interfaces, а вы редактируете /etc/dhcpcd.conf, чтобы получить статический IP-адрес

4 голоса | спросил VMMF 29 TueEurope/Moscow2015-12-29T23:57:34+03:00Europe/Moscow12bEurope/MoscowTue, 29 Dec 2015 23:57:34 +0300 2015, 23:57:34

2 ответа


6
  

Есть ли способ автоматизировать этот процесс, поэтому мне не придется вручную делать это каждый раз, когда я включаю малину?

Это не нужно, если вопрос №2 можно решить - и он может ...

  

Есть ли способ автоматизировать его так, чтобы он всегда узнавал, что он должен получить интернет от Wi-Fi независимо от диапазона IP, заданного DCHP Hotspot для этого интерфейса?

В /etc/dhcpcd.conf добавить

interface wlan0;
metric 200;

interface eth0
metric 300;

Это назначит нижнюю метрику интерфейсу WLAN, так что будет выбран для запросов в Интернете.

  

Почему нижняя метрика автоматически присваивалась интерфейсу Ethernet?

Потому что это то, как метрики назначаются в соответствии с человеком dhcpcd.conf ( 5) :

 metric metric
         Metrics are used to prefer an interface over another one, lowest
         wins.  dhcpcd will supply a default metric of 200 +
         if_nametoindex(3).  An extra 100 will be added for wireless
         interfaces.
ответил Thomas Weller 8 J000000Friday16 2016, 00:55:11
0

Что я делаю, так это просто запустить его при загрузке.

Добавить sudo route delete default и sudo route add default gateway 192.168.137.1, в этом конкретном порядке, в вашем файле /etc/init.d/rc.local.

Я забыл, что /etc/init.d/rc.local работает из коробки для Джесси, или даже если вы должны ее коснуться или нет, но это должно быть тривиально, чтобы найти другое решение (я уже сделал) .

И это решает # 1.


Для определения приоритетов соединений я рекомендую установить ifmetric. Затем просто назначьте приоритеты своим соединениям в /etc/network/interfaces

Самый высокий приоритет равен 0, затем 1, затем 2 и т. д.

iface eth0 inet dhcp
 metric 1

iface wlan0 inet static
 address 192.168.0.1
 netmask 255.255.255.0
 network 192.168.0.0
 metric 0

iface eth1 inet dhcp
 metric 2

И это для # 2.


Я думаю, что # 3 произошло потому, что разработчики считали, что WiFi приоритет в крестьянах не-poweruser. Я мог только предположить, так как я не могу найти информацию об этом.

ответил pandalion98 6 Jam1000000amWed, 06 Jan 2016 11:17:57 +030016 2016, 11:17:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132