Использование двух интернет-соединений одновременно для повышения стабильности в Linux

620
Daniyal

У меня два интернет-соединения от двух разных провайдеров. ADSL на eth0 и 4G на wlan0. Есть ли способ, что если один провайдер выйдет из строя, другой перехватит автоматически без физического маршрутизатора и с помощью Host OS (Ubuntu 18.04)?

1
Смотрите [это] (https://unix.stackexchange.com/questions/125114/using-wifi-port-as-redundant-link) xenoid 5 лет назад 2
@xenoid: У меня есть серьезные сомнения в том, что связывание может _полезно_ работать с двумя разными восходящими провайдерами. grawity 5 лет назад 2
Как вы собираетесь обнаружить, если один «провайдер провалился»? Пинг зондов через равные промежутки времени? Информация о роутере? Выберите метод, реализуйте его, напишите скрипт для обновления маршрутов при изменении статуса. Извините, нет оригинального способа AFAIK. dirkt 5 лет назад 0
@grawity Для большого количества использования с мягкими соединениями, это будет (веб-серфинг, почта ..). Конечно, длительная передача HTTP будет прервана. xenoid 5 лет назад 1
Какой роутер? Как правило, это не обрабатывается ПК независимо от операционной системы, но маршрутизатором ... многие высокопроизводительные маршрутизаторы SOHO и большинство маршрутизаторов коммерческого класса могут справиться с этим плавно и автоматически, поскольку это на самом деле обычное приложение. acejavelin 5 лет назад 0
[Балансировка нагрузки с несколькими ISP, двумя маршрутизаторами и брандмауэром] (https://networkengineering.stackexchange.com/q/19721/16289), [Объединение нескольких ссылок ISP] (https://superuser.com/q/848001/241386 ) phuclv 5 лет назад 0
@Tim_Stewart, как даже вы отметили в своем решении, для этого необходимо указать компьютеру работать в качестве маршрутизатора (pfsense), так как примечания phuclv, избыточность канала маршрутизатора и балансировка нагрузки - это вопросы, которые были заданы и даны здесь ответы ранее. music2myear 5 лет назад 0
Что заставляет вас так говорить? Одним из предложенных ответов является ответ SU. music2myear 5 лет назад 0
@Tim_Stewart конечно, есть предложения? Я просто добавил `без физического роутера и от Host OS` Daniyal 5 лет назад 0
@Tim_Stewart Также я изменил сценарий, чтобы именно то, что я хочу: https://gist.github.com/Daniyal-Javani/6ea632dbbbb744f0e4f6dd0004b0351e Daniyal 5 лет назад 1
отлично! Спасибо за размещение ссылки. Tim_Stewart 5 лет назад 0

1 ответ на вопрос

2
Tim_Stewart

Я никогда лично не пытался сделать это с хост-ОС. Но после того, как я вернулся туда-сюда, я решил покопаться в интернете, чтобы посмотреть, смогу ли я найти то, что вы ищете.

Я нашел пример скрипта для переключения при отказе шлюза на gist.github.com, созданный пользователем «Apsu». Вы можете скачать скрипт bash здесь.

Вам придется изменить это в соответствии с вашими настройками, добавить имена интерфейсов, адреса шлюзов, и вы должны быть в порядке.

Скрипт для хоста ОС:

#!/bin/bash  # Set defaults if not provided by environment CHECK_DELAY=$ CHECK_IP=$ PRIMARY_IF=$ PRIMARY_GW=$ BACKUP_IF=$ BACKUP_GW=$  # Compare arg with current default gateway interface for route to healthcheck IP gateway_if() { [[ "$1" = "$(ip r g "$CHECK_IP" | sed -rn 's/^.*dev ([^ ]*).*$/\1/p')" ]] }  # Cycle healthcheck continuously with specified delay while sleep "$CHECK_DELAY" do # If healthcheck succeeds from primary interface if ping -I "$PRIMARY_IF" -c1 "$CHECK_IP" &>/dev/null then # Are we using the backup? if gateway_if "$BACKUP_IF" then # Switch to primary ip r d default via "$BACKUP_GW" dev "$BACKUP_IF" ip r a default via "$PRIMARY_GW" dev "$PRIMARY_IF" fi else # Are we using the primary? if gateway_if "$PRIMARY_IF" then # Switch to backup ip r d default via "$PRIMARY_GW" dev "$PRIMARY_IF" ip r a default via "$BACKUP_GW" dev "$BACKUP_IF" fi fi done 

С сетевым оборудованием:

Использование маршрутизатора для этой функции имеет значительные преимущества по сравнению с простым переключением с хост-системы. Что сразу приходит на ум, так это использование пропускной способности обоих соединений одновременно. (Полностью используя оба подключения ISP)

Вы можете использовать PFsense / OpenSense в качестве двойного маршрутизатора WAN. (Большинство старого оборудования ПК будет работать.) Я считаю, что маршрутизаторы, поддерживаемые DD-WRT, также способны к отказоустойчивости WAN с некоторыми изменениями. Или вы можете использовать готовое решение, такое как Sophos или Netgear prosafe, я уверен, что есть и другие, но большинство готовых решений дороже, чем домашние пользователи готовы платить. Настройка двойного маршрутизатора WAN позволяет увеличить пропускную способность вашего интернета. Вы можете загрузить баланс трафика для ваших конкретных потребностей. Вы можете получить избыточность интернет-соединения и аварийное переключение.

С Уважением,

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