N
N
Neill Rinov2020-07-09 19:20:52
linux
Neill Rinov, 2020-07-09 19:20:52

Who will tell you a ready-made solution for MultiWAN in GNU / Linux distributions?

Actually everything in the title
For OpenWRT, there is mwan3, which perfectly allows you to have several channels in filer mode and automatically switch when one of them crashes. Unfortunately mwan3 is tightly nailed to OpenWRT and cannot be transferred to Debain/Ubuntu.

The goal is simple: we have two channels, one by wire / wifi - the main one, the second - an LTE modem as a spare. If the main one falls, we switch to the backup, if the main one returns, we return to it.

It is clear that I can write a script myself that will ping the conditional 1.1.1.1 once a minute and switch the gate, but suddenly there are already ready-made solutions with a simple config and you don’t need to sculpt anything yourself.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
F
fara_ib, 2020-07-09
@rinovnill

NetGWM
NetGWM (Network Gateway Manager) is a utility for automatically switching network gateways when the Internet is unavailable in
the GNU/Linux operating system. NetGWM makes it easy to create fault-tolerant WAN connections.
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 на рабочую станцию, или запустим видео-
файл на телевизоре, и выдернем патчкорд с гигабитной карты.

V
Valentin, 2020-07-09
@vvpoloskin

There's a two-line script, what kind of ready-made solution do you need?
A ready-made full-fledged solution - to connect via BGP, including the session can be raised with some external server.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question