маршрутизация IP linux: 2 шлюза по умолчанию

Я использую последнюю версию Raspbian и мое устройство подключено к 2 локальным сетям, каждая из которых имеет шлюз в интернет. (Устройство подключено к одной локальной сети с помощью кабеля ethernet, а к другой с помощью USB - A USB-привязанного мобильного телефона.)

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

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    202    0        0 eth0
default         192.168.42.129  0.0.0.0         UG    205    0        0 usb0

однако, интересно, если устройство будет все еще быть в состоянии получить доступ к интернету, если шлюз на одной из локальных сетей случайно ломается? у меня установлен пакет iproute2, но я ничего не знаю о том, как это работает, и не нашли ответа в интернете. Благодаря.

24
задан snoopy
31.03.2023 0:38 Количество просмотров материала 2978
Распечатать страницу

2 ответа

У вас есть 2 метрики. 202 будет использоваться для маршрутизации трафика. 205 будет в случае неудачи. У вас есть флаги UG: Up & Gateway. Если U исчезает, это означает, что шлюз не работает. Он будет выключен, если сок между вашим рашпилем и маршрутизатором или чем-то посередине сломается. Если маршрутизатор глючит или его интернет-линия не работает, трафик будет направляться в тупик.

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

например: скрипт с "ping-I usb0" для google, и еще один с-i eth0 для google. Если один с более низкой метрикой и не обращаетесь в Google, изменение его метрики, и резко закрыл его. (метрики: IP-маршрут добавьте${адрес}/${маска} через ${шлюз} метрика $ {номер}).

Если вы измените метрику, вы все равно можете попробовать ping и восстановить соединение, когда ping удовлетворит.

использовать очень медленный пинг, и пусть у него 3 или 4 сбоя перед переключением.

Это не серебряная пуля для вашей проблемы, но это классный сценарий, чтобы создать некоторые интересные и легкие скрипты :) :).

2
отвечен Michael Manuel Vandycke 2023-04-01 08:26

ваши шлюзы имеют другую метрику, поэтому, даже если у вас есть два маршрута по умолчанию, вы всегда будете использовать только один из них. Это хорошо, потому что обычные интернет-протоколы (TCP, UDP)немногосетевой: вы не можете использовать их для формирования одного соединения с использованием нескольких локальных и/или удаленных IP-адресов при маршрутизации по разным путям.

таким образом, вы не можете использовать два подключения к интернету одновременно, если вы не делаете какой-то балансировки нагрузки, используя статический критерии. Что нетривиально для того чтобы настроить.

Что касается того, что произойдет, если один шлюз "случайно сломается", это зависит от того, как он сломается, и как ваш RaspPi обнаружит поломку: если один интерфейс перейдет в нерабочее состояние, я думаю (но не тестировал), он будет использовать другой маршрут по умолчанию. Если сам шлюз "ломается" (например, теряет соединение с интернетом), но подключение к RaspPi нормально, RaspPi с удовольствием продолжать использовать этот шлюз, разорвать интернет-соединение для RaspPi так же.

2
отвечен dirkt 2023-04-01 10:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх