Кто подскажет готовое решение для MultiWAN в дистрибутивах GNU/Linux?

Собственно все в заголовке
Для OpenWRT существует mwan3, который прекрасно позволяет иметь несколько каналов в режиме файловера и автоматически переключаться при падении одного из них. К сожалению mwan3 наглухо прибит гвоздями к OpenWRT и перенести его в Debain/Ubuntu нельзя.

Цель простая: имеем два канала, один по проводу/wifi — основной, второй — LTE-модем в качестве запасного. Если основной падает переключаемся на резервный, если основной вернулся возвращаемся к нему.

Понятно, что я могу сам написать скрипт который будет раз в минуту пинговать условный 1.1.1.1 и переключать гейт, но вдруг уже есть готовые решения с простым конфигом и не нужно самому ничего ваять.
  • Вопрос задан
  • 905 просмотров
Решения вопроса 1
fara_ib
@fara_ib
NetGWM
NetGWM (Network Gateway Manager) — утилита для автоматического переключения сетевых шлюзов в случае недоступности интернета в
операционной системе GNU/Linux. NetGWM позволяет с лёгкостью создавать отказоустойчивые подключения к глобальной сети.
https://github.com/flant/netgwm

Вот еще заволялось:
spoiler
Ubuntu 18.04. NIC team
Подумал, что не плохо было бы объединить эти два физических сетевых интерфейса в один логический, и настроить их
таким образом, чтобы в случае отказа основного гигабита, активировался резервный канал в 100 мегабит.
В Ubuntu 18.04 уже нет старого доброго /etc/network/interfaces, теперь все настройки ведутся через netplan.
Смотрим названия сетевых интерфейсов через ipconfig. В моём случае это enp8s0 (встроенная) и ens1u2 (внешняя usb).
Редактируем файл
sudo nano /etc/netplan/01-network.yaml
network:
version: 2
renderer: networkd
ethernets:
enp8s0:
dhcp4: false
dhcp6: false
ens1u2:
dhcp4: false
dhcp6: false
bonds:
bond0:
dhcp4: false
dhcp6: false
interfaces:
- enp8s0
- ens1u2
addresses: [10.0.0.101/24]
gateway4: 10.0.0.1
parameters:
mode: active-backup
primary: ens1u2
nameservers:
addresses: [10.0.0.1,8.8.8.8]

Обязательно. ОБЯЗАТЕЛЬНО! проверь пробелы!!! Очень важна разметка в чертовом netplan'e!
Всё очень просто. Указываем сетевые настройки каждого интерфейса
ethernets:

enp8s0:
dhcp4: false
dhcp6: false
ens1u2:
dhcp4: false
dhcp6: false

В моём случае отключил автоматическое назначение IP-адреса для обоих интерфейсов по DHCP.
Создаем новый bond-интерфейс. Отлючаем также автоматическое назначение IP-адреса
bonds:
bond0:
dhcp4: false
dhcp6: false
Перечисляем все физические интерфейсы
interfaces:
- enp8s0
- ens1u2
Назначаем сетевые настройки
addresses: [10.0.0.101/24]
gateway4: 10.0.0.1

Указываем режим работы bond-адаптера, а также основной интерфейс для режима active-backup. Подробнее о работе
каждого режима тут.
parameters:
mode: active-backup
primary: ens1u2
Завершаем указанием DNS-серверов
nameservers:
addresses: [10.0.0.1,8.8.8.8]
Сохраняем, закрываем файл. Применяем настройки
sudo netplan apply
Проверяем интерфейсы ifconfig
bond0: flags=5187 mtu 1500
inet 10.0.0.101 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::d082:35ff:fe27:e9b4 prefixlen 64 scopeid 0x20
ether d2:82:35:27:e9:b4 txqueuelen 1000 (Ethernet)
RX packets 4271 bytes 363649 (363.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 505 bytes 82870 (82.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp8s0: flags=6211 mtu 1500
ether d2:82:35:27:e9:b4 txqueuelen 1000 (Ethernet)
RX packets 1867 bytes 115515 (115.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16
ens1u2: flags=6211 mtu 1500
ether d2:82:35:27:e9:b4 txqueuelen 1000 (Ethernet)
RX packets 2404 bytes 248134 (248.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 505 bytes 82870 (82.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Теперь можно провести полевые испытания. Отправим большой файл с VAIO на рабочую станцию, или запустим видео-
файл на телевизоре, и выдернем патчкорд с гигабитной карты.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
vvpoloskin
@vvpoloskin Куратор тега Компьютерные сети
Инженер связи
Там скрипт две строчки, какое вам готовое решение нужно?
Готовое полноценное решение - подключаться по BGP, в том числе сессию можно поднять и с внешним сервером каким-нибудь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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