
У меня два интернет-подключения от двух разных провайдеров. ADSL на eth0 и 4G на wlan0. Есть ли способ, чтобы в случае сбоя одного провайдера другой автоматически взял на себя управление без физического маршрутизатора и с помощью Host OS (Ubuntu 18.04)?
решение1
Я никогда лично не пробовал сделать это из хостовой ОС. Но после долгих раздумий я решил покопаться в интернете, чтобы посмотреть, смогу ли я найти то, что вы ищете.
Я нашел пример скрипта для аварийного переключения шлюза на gist.github.com, созданный пользователем "Apsu". Вы можете загрузить bash-скриптздесь.
Вам придется изменить это в соответствии с вашей конкретной настройкой, добавить имена интерфейсов, адреса шлюзов, и все будет готово.
Скрипт для хостовой ОС:
#!/bin/bash
# Set defaults if not provided by environment
CHECK_DELAY=${CHECK_DELAY:-5}
CHECK_IP=${CHECK_IP:-8.8.8.8}
PRIMARY_IF=${PRIMARY_IF:-eth0}
PRIMARY_GW=${PRIMARY_GW:-1.2.3.4}
BACKUP_IF=${BACKUP_IF:-eth1}
BACKUP_GW=${BACKUP_GW:-2.3.4.5}
# 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-маршрутизатора позволяет вам увеличить пропускную способность вашего интернет-соединения. Вы можете балансировать нагрузку трафика для ваших конкретных нужд. Вы можете получить избыточность интернет-соединения и отказоустойчивость.
С уважением,