Mwan3 настройка: [OpenWrt Wiki] Использование нескольких WAN интерфейсов с пакетом mwan3

Содержание

OpenWRT: Общие настройки




Общие
настройки
OpenWRT

Перенос
Openwrt на USB

Настройка
второго WAN порта
на OpenWRT

Сетевое хранилище
NAS на OpenWrt

Настройка
гостевого WiFi
на OpenWRT

Подключение
веб-камеры
на OpenWRT

Настройка IPTV /
UDP multicast
на OpenWRT

Будущие настроки

Использование нескольких WAN интерфейсов с пакетом mwan3 на OpenWRT

Для начал нужно установить пакет luci-app-mwan3. Так же его можно руссифицировать пакетом luci-i18n-mwan3-ru.

    Настройку выполняем в следующем порядке:
  1. Настройка vlan
  2. Разделение сетевого моста LAN(br-lan)
  3. Назначение нового интерфейса для WiFi
  4. Создание второго WAN
  5. Настройка пакета MWAN3

Настройка vlan:


Заходим в Сеть -> Комутатор и нажимаем кнопку добавить
И делаем все по порядку как на картинке:

Нажимаем сохранить и применить.

Разделение сетевого моста LAN(br-lan)


Разделить сетевой мост нужно для стабильной работы сети.
Заходим в Сеть -> Интерфейсы и на против нашего Lan порта нажимаем кнопку Изменить

Переходим в настройки канала, снимаем галочку с «Объединить в мост» и связываем с интерфейсом eth0.1

Нажимаем сохранить и применить. И в результате вот что должно получиться:

Назначаем новый интерфейс для WiFi


Я не буду повторяться. Делаем это как в инструкции по настройке гостевого WiFi до пункта «Настройка доступа к веб-интерфейсу». И у нас должен получиться еще один интерфес как на картинке:

Для своего удобства я назначил вторую подстеть.

Создание второго WAN интерфеса


Заходим в Сеть -> Интерфейсы и нажимаем кнопку Добавить новый интерфейс
Имя нового интерфейса wan2 (рекомендую все заполнять в нижнем регитре). Связываем с интерфейсом eth0.3. И выбираем протокол в зависимости от нашего провайдера. В моем случаи DHCP.
Протокол всегда можно изменить.

Нажимаем применить и у нас открываеться следующее окно настроек. Переходим во вкладку Дополнительные настройки и устанавливаем использовать метрику шлюза «2». Так же не забудем для основного wan поставить метрику «1»

Далее нажимаем сохранить и переходим в вкладку настройка межсетевого экрана. И назначаем зону нашего wan.

Теперь можно нажать сохранить и применить. И у нас полностью настроенный второй wan интерейс:

Настройка пакета MWAN3


Теперь для того чтобы наши два wan порта работали одновременно и коректно переключались между собой, настраиваем наш пакем MWAN3.
Заходим в Сеть -> Балансировка WAN трафика (Load Baalancing). Удаляем все кроме wan.
На против кнопки добавить вписываем наш wan2 соблюдая нижний регистр и нажимаем добавить.

В открывшемся окне заполняем только отслеживание имени хоста или IP-адреса. Можно просто ввести DNS 8.8.8.8 этого будет достаточно. Так как мы уже указали в нашем wan2 интерейсе метрику 2, то она должна подхватиться сама. Если этого не произошло, то не правильно было заполнено имя интерфейса при создании интерфейса wan2 или при настройке пакета MWAN3. Нужно учитывать регистр.
Вот как должно выглядеть:

Все остальное оставляем по умолчанию. Теперь можно нажать сохранить и применить.
Вот что должно получиться:

Переходим во вкладку Узлы и удаляем там все, чтоб пониматья весь процесс. На против кнопки добавить вводим уже любое имя и нажимаем добавить

В открывшемся окне выбираем интерфейс wan, устанавливаем метрику 1 и указываем вес 3. Для чего опишу ниже

Нажимаем сохранить и применить. То же выполняем для интерфейса wan2, только указываем вес 2.
Вот в итоге что должно получиться:

При установке веса мы указываем соотношение к 100%. Т.е. 3(три) к 2(двум).
В итоге интернет будет балансировать 60% на wan интерфейс и 40% на wan2.
Если везде указать вес 1 то будет 50% на 50%.

Далее переходим во вкладку политики и удаляем все кроме политики balanced. Заходим в нее и удаляем старые узлы и добавляем наши:


Результат:

Во вкладке Правила ничего не меняем, так как в нашем правиле назначенная политика balanced не удалялась, а редактировалась.

И вот у нас полностью насроенный пакет MWAN3.
Чтоб убедиться в этом заходим Состояние -> Балансировка WAN трафика и видим:


Во вкладке Подробно наблюдаем наш баланс 40% на 60%


Вернуться в начало

Использование нескольких WAN интерфейсов : Техническая поддержка

В роутерах и контроллерах RTU, есть возможность использовать несколько внешних интерфейсов с помощью которых роутер получает доступ во внешние сети.

Начиная с прошивки 1.5.1

введен пакет Mwan3

С помощью данного пакета можно выполнить ряд конфигураций в зависимости от нужных задач:

1. Приоритетный 3G канал, WAN резервный.

2. Приоритетный WAN канал, 3G резервный.

3. Объединение двух каналов для увеличения скорости.

Для использования данного режима необходимо «разобрать» сетевой мост LAN(br-lan) и создать WAN интерфейс.

Вы можете ознакомиться с примером корректного разделения сетевого моста в статье

Разделение сетевого моста LAN(br-lan)


1. Подготовка интерфейсов

Для корректной работы необходимо создать WAN интерфейс на порту eth0 или eth2(рекомендуемый)

Имя интерфейса делаем по умолчанию wire_internet

(Важно! имя интерфейса должно быть обязательно в нижнем регистре!!!)

Не забываем указать зону межсетевого экрана WAN для нашего нового интерфейса!!!

В результате мы должны получить вот такой список:

ВАЖНО!!! Для работы Mwan3 необходимо указать разные метрики для WAN интерфейсов.

INTERNET — имеет по умолчанию метрику 2 (т.е. вторичный интерфейс)

WIRE_INTERNET — необходимо установить метрику 1 (например это у нас основной интерфейс)

Метрику изменить можно при редактировании интерфейса:

2. Настройка Резервирования WAN

Настройки пакета находятся в меню Сеть -> Резервирование WAN

Необходимо перейти в конфигурирование для того, чтобы активировать работу с интерфейсами:

По умолчанию параметр Enabled выставлен в No

Редактируем настройки нужных интерфейсов:

После включения нужных интерфейсов и редактирования параметров проверки, настраиваем Правило для трафика:

Выставляем нужное нам (например balanced):

Доступные политики по умолчанию:

eth_only — Трафик идет только через интерфейс eth, 3G не используется.

3g_only — Трафик идет только через интерфейс 3G, eth не используется.

balanced — Распределение нагрузки на интерфейсы (eth-60%, 3G-40%).

eth_prefer — Приоритет трафика на интерфейс eth, если он не работает, трафик идет через 3G.

3g_prefer — Приоритет трафика на интерфейс 3G, если он не работает, трафик идет через eth.

Проверяем работу наших каналов:

Интерфейсы работают, можно проверять скорость.

3. Консольная настройка Резервирования WAN

Настраиваем файл конфигурации /etc/config/mwan3

nano /etc/config/mwan3

Вносим изменения в структуру и сохраняем файл:

config interface ‘wire_internet’
   option count ‘1’
   option timeout ‘2’
   option down ‘3’
   option enabled ‘1’
   option reliability ‘2’
   option interval ‘5’

   option up ‘8’
   list track_ip ‘77.88.8.8’
   list track_ip ‘8.8.4.4’

config interface ‘internet’
   option enabled ‘1’
   option count ‘1’
   option down ‘3’
   list track_ip ‘77.88.8.8’
   list track_ip ‘8.8.4.4’
   option reliability ‘1’
   option timeout ‘5’
   option interval ’60’
   option up ‘8’

config rule ‘default_rule’
   option dest_ip ‘0.0.0.0/0’
   option proto ‘all’
   option sticky ‘0’
   option use_policy ‘balanced’

Перезагружаем mwan3

mwan3 restart

Отслеживаем работу mwan3

logread | grep mwan3

mwan3 status


Сопутствующие статьи:

Как подключиться к роутеру RTU?


Дополнительная информация:

Wiki на GitHub

Страница на сайте Teleofis

Контроллеры на платформе роутера RTU

Wireguard client+Mwan3 решаем проблемы с синхронизацией времени и переключением интерфейсов Failover

Wireguard тема довольно новая, поэтому многие типовые ответы еще придут а данное решение было проанализировано, оттестировано и принято на вооружение лично мной.

Многое описанное ни для кого уже не секрет, но проблема остается ( из моих многих экспериментов, и много перекуренного материала в интернетах) что Wireguard а далее по тексту буду обзывать его просто WG, очень требователен к более-менее точно времени на клиенте и именно на роутерах с прошивками openwrt. Во всем нижеописанном сабже я благодарен публикациям, supervillain с поста Хабра WireGuard — прекрасный VPN будущего?, а так-же itdog с его статьей отсюда же Точечный обход блокировок PKH на роутере с OpenWrt с помощью WireGuard и DNSCrypt. Эти публикации помогли мне запилить сие интересное решение на моем UniFi AC PRO с прошивкой Openwrt. Дело было сделано. Был настроен VPS сервер с wireguard на борту, настроен роутер с openwrt как клиента wireguard, и далее по порядку.

Настраиваем VPS+ Wireguard Server.

Я думаю что ныне ни для кого не секрет приобретение и первоначальная настройка и безопасность своего облачного сервера ( Если будет интересно готов описать минимум настроек на серверной Ubuntu мои настройки UFW). После всех нужных настроек запускаю:

wget https://raw.githubusercontent.com/l-n-s/wireguard-install/master/wireguard-install.sh -O wireguard-install.sh
bash wireguard-install.sh

Огромное спасибо

supervillain

с его постом

WireGuard — прекрасный VPN будущего?

. На этом сервер готов и можно приступать к настройке роутера.

На роутере дабы не развивать тут простыню текста опишу вкратце:

opkg update
opkg install kmod-wireguard
wireguard 
luci-proto-wireguard

Далее если кому-то интересно, состояние wireguard в web интерфейсе можно посмотерть установив пакеты:

luci-app-wireguard
luci-i18n-wireguard-ru

Далее все очень четко описано в статье

itdogТочечный обход блокировок PKH на роутере с OpenWrt с помощью WireGuard и DNSCrypt

.

И тут возникает проблема в том что мне не нужен обход по заблоченным ссылкам а нужен обход всего трафика (так-как в некоторых тоталитарных странах необходим трафик проксированый весь). Но проблема в том что после того как я сконфигурировал интерфейс WG с его настройками внутренними и Firewall, весь трафик независимо от настроек побежал через этот WG. Дело в том что при отвале интерфейса WG интернет пропадал хотя и был на основном интерфейсе WAN. На помощь приходит пакет MWAN3. Для себя я поставил таким образом:

luci-app-mwan3
mwan3
luci-i18n-mwan3-ru

Теперь утилита доступна по Network =>Load Balancing ( все действо происходит в OpenWrt 18.06.1). Далее все просто при отвале интерфейса WG с метрикой 1 LAN кидаеться на интерфейс WAN с метрикой 2 и наоборот при поднятии WG перекидывается обратно вообщем failover, если будет интересно готов описать все до точки.

Время очень важно!

Дабы не растягивать уже и без того растянутый пост опишу что wireguard неимоверно требователен ко времени геолокации внешнего IP. Я победил его вырубив встроенный NTP и установив пакеты:

collectd-mod-ntpd
luci-app-ntpc
luci-i18n-ntpc-ru

И настроив NTP сервера от стратума 2 яруса.

Ежели будет вопросы по теме, пишите.

Ни минуты оффлайн — Выбираем промышленный LTE-роутер

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

Мне надоело самостоятельно изобретать failover на USB модемах, и захотелось делегировать это отдельной умной железке. Я решил сравнить несколько промышленных роутеров, чтобы выяснить, оправдывают ли они свое название, и насколько они лучше моих костылей. В статье будут сравниваться роутеры производителей iRZ, Termit, Robustel.

Основные требования к роутерам:

  • 2 SIM-карты и автоматическое переключение между операторами — роутер должен автоматически определять потерю связи на одном операторе и переключаться на резервного. Это особенно важно для подвижных систем, когда покрытие сотовый сети не идеально.
  • Подключение по Ethernet — основная система должна видеть только шлюз по умолчанию, и не должна знать о модемной подсистеме на стороне роутера и переключениях каналов, поэтому никаких USB.
  • Поддержка современных протоколов VPN: IKEv2 и OpenVPN — для удобства администрирования, и чтобы не зависеть от реальных IP-адресов, роутеры должны уметь VPN. При этом поддерживать не только устаревшие PPTP и L2TP, но и современные протоколы.
  • (Опционально) поддержка GPS, наличие GPIO, serial интерфейсов RS-232/485 — эти функции не обязательны для наших задач, но мы рассмотрим их тоже, как бонус, который, возможно, будет кому-то полезен.

Проблема самодельных костылей


Wi-Fi-роутер c двумя USB-модемами (Фото: Дмитрий Бевза dgl.ru)

Failover — аварийное переключение интернет-канала на резервный, в случаях недоступности основного.

Обычно, для резервирования интернет-каналов я использовал бытовой Wi-Fi-роутер с прошивкой OpenWRT, и пакет mwan3. Он позволяет настроить автоматическое резервирование и балансировку между несколькими интернет-каналами, в том числе, между проводным подключением и USB-модемом.

Главный недостаток такого подхода — в разнородном оборудовании и хлипкой конструкции внешних USB-модемов. Мне нравились модемы Huawei E3372h с прошивкой HiLink (эмуляция Ethernet). Эти модемы достаточно стабильные и дешевые, но, при подключении внешних антенн, вся конструкция становится очень хлипкой. Жесткие провода антенны создают рычаг, и модемы банально вылазят из USB-порта, да и сам антенный разъем CRC9 не так надежен, как SMA, потому что не имеет резьбового крепления.


Сборки на внешних USB-модемах очень хрупкие: антенные разъемы не фиксируются, модемы вываливаются из портов

Конструкцию из двух USB-модемов с внешними антеннами приходилось очень жестко фиксировать, но все равно физические повреждения и выпадение из портов были главной проблемой. Такое решение подходит для статического монтажа в труднодоступных местах, но совершенно не подходит для установки в автомобиль или в электрощит на DIN-рейку.

Иногда в роутерах зависала подсистема USB, и модемы становились недоступны. Пришлось писать watchdog-скрипт, который бы отдельно следил за доступностью модемов, помимо mwan3, следящим за доступностью интернета. В какой-то момент мне это надоело, и я стал искать решение в одной коробочке, где все проблемы уже решили за меня.

Сравнительная таблица моделей


Промышленные роутеры дороже бытовых, даже с учетом отдельной покупки модемов. Поэтому главным критерием выбора моделей для обзора была стоимость. Дополнительные функции вроде Wi-Fi, выводов GPIO и системы GPS в нашем случае не нужны, но мы все равно сравним их как опции, влияющие на стоимость.
Модель 2 SIM Проводной WAN Порты LAN Wi-Fi GPS Цена
Termit CR41P ⁣⁣⁢⁢✓ 4 ≈13 000 ₽
Robustel R2000 2 X X ≈12 000 ₽
iRZ RU22W 4 ≈15 000 ₽

Методика тестирования


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

В качестве целевого хоста к каждому тестируемому роутеру будет подключен маленький роутер TP-Link MR3020, который будет выполнять роль компьютера с полезной нагрузкой. На нем будет запущен OpenVPN, подключенный к серверу. На сервере будет запущен мониторинг, следящий за доступностью адреса внутри VPN-тоннеля.
То есть, на стороне сервера будет мониториться один фиксированный IP-адрес, назначенный на mr3020 через VPN-тоннель. Независимо от того, через какой канал идет трафик на роутере, сервер мониторинга будет взаимодействовать с одним адресом. Соответственно, если адрес доступен, это значит, что роутер успешно переключил канал, и в сети за NAT-ом есть интернет.
Чтобы OpenVPN-тоннель восстанавливался максимально быстро, на стороне сервера установим опцию keep-alive на минимальные значения, и отключим шифрование:

cipher none
ping 1
ping-restart 4


Нужно учитывать, что на переподключение VPN уходит время, и в реальности интернет восстанавливается быстрее, чем видно на графиках. Однако такой тест позволяет более честно оценить факт переключения канала, так как показывает, что клиенты за роутером смогли восстановить TCP-подключения и вернуться к штатной работе.


К каждому роутеру подключен TP-Link MR3020, с запущенным VPN-тоннелем. Работающим интернетом считается доступность IP-адреса 10.0.0.1 на стороне сервера

PingPlotter — программа для мониторинга


Программа мониторинга и сервер OpenVPN находятся на одном физическом компьютере с VPN-сервером. Мониторить я буду утилитой MultiPing, с помощью обычных ICMP Echo-запросов. Интервал запросов — 1 секунда — это позволяет видеть на графике даже кратковременную недоступность хоста.


Программа PingPlotter рисует удобные графики пинга, показывая задержку и потери пакетов

Признаюсь, я долго пытался выбрать систему мониторинга. Пробовал zabbix, cacti, скрипты на bash + rrdtool, но все это показалось слишком переусложненным для моих задач. В итоге я нашел прекрасную программу PingPlotter и ее упрощенный вариант без трассировки маршрута — MultiPing. Программа позволяет в реальном времени мониторить группу хостов с разрешением вплоть до 1 секунды, и рисовать подробные графики.

Антенна



Широкополосная антенна Триада MA-2697, подходит для основных диапазонов сотовой связи

Чтобы исключить разное качество приема из-за разных антенн, ко всем роутерам будут подключены одинаковые антенны Триада MA-2697. По заверениям производителя, антенна широкополосная, и работает в диапазонах GSM-900\1800 МГц, 3G-2100 МГц, Wi-Fi-2400МГц и 4G WiMAX-2600МГц. Проверять качество антенны я не буду. Даже если она плохая, все роутеры будут работать в одинаковых условиях приёма.

Мобильные операторы


В каждый роутер будут установлены SIM-карты Мегафон и МТС, с обычным тарифом для физических лиц. Мегафон будет выбран основным, МТС резервным. В таком приоритете нет никакой логики, выбор случайный. В месте проведения тестов оба оператора имеют одинаково хорошее покрытие LTE.

Недостатки тестового стенда



Тестовый стенд, развернутый на столе

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

Termit CR41P


Роутер предоставлен компанией Цифровой Ангел (digitalangel.ru)

SoC: Atheros AR9344 rev. 3
RAM: 128MB
Flash-память: 16MB
Wi-Fi: 802.11n (2.4GHz)
Модем: Quectel EC25-E (LTE Cat 4)
Прошивка: на базе OpenWRT 15.05.1
USB Host
MicroSD
Крепление на DIN-рейку
GPS/GLONASS: активная антенна 3V
Последовательные интерфейсы: RS-232/485
Выводы I/O: 2 цифровых входа (0-3V / 0-30V, гальванически развязанный), 1 аналоговый вход (0-24V), 1 цифровой выход (30V, 250 mA открытый коллектор), 1 выход реле (40V, 4A SPST)


Для установки SIM-карты необходимо раскрутить четыре винта и снять заднюю крышку.
Что ж, это повод рассмотреть внутренности подробнее.

кликабельно

Модемная часть выполнена в виде шилда, который надевается на основную плату.
В углу видно реле для мощной нагрузки, выведенное на пины I/O.

Самый богатый по функциям роутер в обзоре. Имеет проводной WAN, а также позволяет использовать Wi-Fi в режиме станции (клиента), как отдельный WAN. То есть может иметь четыре резервных интернет канала.


Веб-интерфейс сразу выдает LuCI из OpenWRT. Это видно как по дизайну, который не пытались замаскировать, так и по путям в URL. На мой взгляд, это скорее плюс, так как позволяет легко допилить систему под себя. В прошивку добавлены промышленные функции: Modbus, VRRP, MQTT. Через Modbus и MQTT можно управлять базовыми функциями, получать состояние сети, координаты GPS, температуру, переключать профили, перезагружать роутер, управлять пинами I/O.

Мониторинг интернет-каналов сделан через пакет multiwan, который в wiki OpenWRT назван устаревшим. Вместо него рекомендуется mwan3.

Обзор веб-интерфейса и дополнительных функций

Выводы I/O


Управление пинами I/O выполянется через веб-интерфейс, тут же можно посмотреть статус и переименовать каждый пин. Это не заменит полноценный микроконтроллер, но для простой автоматизации может подойти. Например, открыть дверь или поднять шлагбаум по SMS, MQTT или HTTP-запросу, выполнить действие при срабатывании датчика и послать уведомление об этом. Довольно интересная функциональность, которая позволяет обойтись одним устройством.


Интерфейс настройки триггера для аналогового входа. Можно указать диапазон напряжений, в котором сработает триггер, либо настроить на срабатывание при выходе из диапазона

Последовательные интерфейсы RS-232/485


Физически интерфейс RS-232 выполнен в виде разъема DB9 (COM-порта), а RS-485 — в виде съемной клеммной колодки. В веб-интерфейсе можно выбрать четыре режима работы порта:
  • Системная консоль — доступ как по SSH
  • Serial over IP — проброс последовательного порта через интернет
  • Шлюз Modbus — конвертер modbus TCP<->RTU
  • NTRIP client — передача данных от GPS


Выбор режима работы serial-портов

GPS


Модуль GPS встроен в чип модема и доступен как USB устройство. Позволяет отслеживать координаты устройства и синхронизировать системные часы по GPS, при этом роутер может быть NTP-сервером и предоставлять точное время для устройств в сети, даже без интернета. Есть функция Geofencing, позволяющая задать географическую зону в качестве триггера, который срабатывает при посещении зоны или ухода из неё. Может быть полезно для роуминга, при покидании домашнего региона. Зону можно определить только одну, и только в радиусе от точки, то есть зона всегда представляет собой круг.


Настройка географической зоны для срабатывания триггера

Вывод dmesg

[ 0.000000] Linux version 3.18.44 ([email protected]) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r40569) ) #14 Fri May 25 15:09:41 EEST 2018
[ 0.000000] MyLoader: sysp=30fe861a, boardp=21046795, parts=5c8953fe
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
[ 0.000000] SoC: Atheros AR9344 rev 3
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty — disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000-0x07ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x07ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000000-0x07ffffff]
[ 0.000000] On node 0 totalpages: 32768
[ 0.000000] free_area_init_node: node 0, pgdat 803802b0, node_mem_map 81000000
[ 0.000000] Normal zone: 256 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 32768 pages, LIFO batch:7
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: board=TLT-RUT900 console=ttyS0,115200 rootfstype=squashfs,jffs2 noinitrd lpj=1370112 quiet loglevel=3
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=00000000
[ 0.000000] Readback ErrCtl register=00000000
[ 0.000000] Memory: 125728K/131072K available (2611K kernel code, 155K rwdata, 552K rodata, 256K init, 189K bss, 5344K reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:83
[ 0.000000] Clocks: CPU:550.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:40.000MHz
[ 0.000000] Calibrating delay loop (skipped) preset value… 274.02 BogoMIPS (lpj=1370112)
[ 0.000000] pid_max: default: 32768 minimum: 301
[ 0.000000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] NET: Registered protocol family 16
[ 0.000000] MIPS: machine is TELTONIKA TLT-RUT900
[ 0.450000] pca953x 0-0074: interrupt support not compiled in
[ 0.450000] i2c-gpio i2c-gpio.0: using pins 17 (SDA) and 16 (SCL)
[ 0.450000] Switched to clocksource MIPS
[ 0.450000] NET: Registered protocol family 2
[ 0.450000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.450000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.450000] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.450000] TCP: reno registered
[ 0.450000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.450000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.450000] NET: Registered protocol family 1
[ 0.450000] PCI: CLS 0 bytes, default 32
[ 0.460000] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.460000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.460000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) © 2001-2006 Red Hat, Inc.
[ 0.460000] msgmni has been set to 245
[ 0.460000] io scheduler noop registered
[ 0.460000] io scheduler deadline registered (default)
[ 0.460000] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 0.460000] console [ttyS0] disabled
[ 0.480000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A
[ 0.480000] console [ttyS0] enabled
[ 0.480000] bootconsole [early0] disabled
[ 0.480000] ar934x-hs-uart.0: ttyATH0 at MMIO 0x18500000 (irq = 14, base_baud = 2500000) is a AR934X UART
[ 0.500000] m25p80 spi0.0: found gd25q128, expected m25p80
[ 0.500000] m25p80 spi0.0: gd25q128 (16384 Kbytes)
[ 0.500000] 7 teltonika partitions found on MTD device spi0.0
[ 0.500000] Creating 7 MTD partitions on «spi0.0»:
[ 0.500000] 0x000000000000-0x000000020000: «u-boot»
[ 0.500000] 0x000000020000-0x000000030000: «config»
[ 0.500000] 0x000000030000-0x000000040000: «art»
[ 0.500000] 0x000000040000-0x0000001630ac: «kernel»
[ 0.500000] 0x0000001630ac-0x000000f70000: «rootfs»
[ 0.500000] mtd: device 4 (rootfs) set to be root filesystem
[ 0.510000] 1 squashfs-split partitions found on MTD device rootfs
[ 0.510000] 0x000000b30000-0x000000f70000: «rootfs_data»
[ 0.510000] 0x000000040000-0x000000f70000: «firmware»
[ 0.510000] 0x000000f70000-0x000001000000: «event-log»
[ 0.520000] libphy: ag71xx_mdio: probed
[ 1.110000] ag71xx-mdio.1: Found an AR934X built-in switch
[ 1.140000] eth0: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
[ 1.730000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.1:04 [uid=004dd042, driver=Generic PHY]
[ 1.730000] eth2: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
[ 1.740000] TCP: cubic registered
[ 1.740000] NET: Registered protocol family 17
[ 1.740000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[ 1.740000] Bridge firewalling registered
[ 1.740000] 8021q: 802.1Q VLAN Support v1.8
[ 1.750000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[ 1.750000] Freeing unused kernel memory: 256K (803a0000 — 803e0000)
[ 5.030000] usbcore: registered new interface driver usbfs
[ 5.030000] usbcore: registered new interface driver hub
[ 5.030000] usbcore: registered new device driver usb
[ 5.050000] SCSI subsystem initialized
[ 5.050000] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 5.050000] ehci-platform: EHCI generic platform driver
[ 5.050000] ehci-platform ehci-platform: EHCI Host Controller
[ 5.050000] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[ 5.060000] ehci-platform ehci-platform: TX-TX IDP fix enabled
[ 5.060000] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[ 5.080000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[ 5.080000] hub 1-0:1.0: USB hub found
[ 5.080000] hub 1-0:1.0: 1 port detected
[ 5.080000] uhci_hcd: USB Universal Host Controller Interface driver
[ 5.090000] usbcore: registered new interface driver usb-storage
[ 5.400000] usb 1-1: new high-speed USB device number 2 using ehci-platform
[ 5.550000] hub 1-1:1.0: USB hub found
[ 5.550000] hub 1-1:1.0: 3 ports detected
[ 5.830000] usb 1-1.1: new full-speed USB device number 3 using ehci-platform
[ 6.620000] mount_root: loading kmods from internal overlay
[ 7.080000] jffs2: notice: (339) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 7.080000] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[ 7.130000] block: extroot: not configured
[ 7.240000] jffs2: notice: (336) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 7.430000] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[ 7.480000] block: extroot: not configured
[ 7.480000] mount_root: switching to jffs2 overlay
[ 9.980000] random: ubusd urandom read with 18 bits of entropy available
[ 11.260000] NET: Registered protocol family 10
[ 11.410000] ntfs: driver 2.1.31 [Flags: R/O MODULE].
[ 11.430000] Initializing XFRM netlink socket
[ 11.430000] NET: Registered protocol family 15
[ 11.440000] tun: Universal TUN/TAP device driver, 1.6
[ 11.440000] tun: © 1999-2004 Max Krasnyansky <[email protected]>
[ 11.500000] l2tp_core: L2TP core driver, V2.0
[ 11.500000] l2tp_netlink: L2TP netlink interface
[ 11.510000] gre: GRE over IPv4 demultiplexor driver
[ 11.510000] ip_gre: GRE over IPv4 tunneling driver
[ 11.540000] ip6_tables: © 2000-2006 Netfilter Core Team
[ 11.580000] nf_conntrack version 0.5.0 (1968 buckets, 7872 max)
[ 12.110000] lp: driver loaded but no devices found
[ 12.130000] ppdev: user-space parallel port driver
[ 12.290000] u32 classifier
[ 12.290000] input device check on
[ 12.290000] Actions configured
[ 12.330000] Mirror/redirect action on
[ 12.460000] cdc_acm 1-1.1:1.0: This device cannot do calls on its own. It is not a modem.
[ 12.460000] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
[ 12.460000] usbcore: registered new interface driver cdc_acm
[ 12.460000] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 12.470000] usbcore: registered new interface driver cdc_wdm
[ 12.500000] Loading modules backported from Linux version v4.4-rc5-1913-gc8fdf68
[ 12.500000] Backport generated by backports.git backports-20151218-0-g2f58d9d
[ 12.690000] Ebtables v2.0 registered
[ 12.730000] ip_tables: © 2000-2006 Netfilter Core Team
[ 12.820000] Netfilter messages via NETLINK v0.30.
[ 12.850000] usbcore: registered new interface driver usblp
[ 12.890000] usbcore: registered new interface driver usbserial
[ 12.890000] usbcore: registered new interface driver usbserial_generic
[ 12.890000] usbserial: USB Serial support registered for generic
[ 12.960000] xt_coova: ready
[ 13.050000] xt_time: kernel timezone is -0000
[ 13.050000] usbcore: registered new interface driver ark3116
[ 13.050000] usbserial: USB Serial support registered for ark3116
[ 13.060000] usbcore: registered new interface driver belkin_sa
[ 13.060000] usbserial: USB Serial support registered for Belkin / Peracom / GoHubs USB Serial Adapter
[ 13.090000] usbcore: registered new interface driver cdc_ether
[ 13.170000] usbcore: registered new interface driver cdc_ncm
[ 13.860000] usbcore: registered new interface driver ch441
[ 13.860000] usbserial: USB Serial support registered for ch441-uart
[ 13.860000] usbcore: registered new interface driver cp210x
[ 13.860000] usbserial: USB Serial support registered for cp210x
[ 13.860000] usbcore: registered new interface driver cypress_m8
[ 13.860000] usbserial: USB Serial support registered for DeLorme Earthmate USB
[ 13.860000] usbserial: USB Serial support registered for HID->COM RS232 Adapter
[ 13.860000] usbserial: USB Serial support registered for Nokia CA-42 V2 Adapter
[ 13.880000] usbcore: registered new interface driver ftdi_sio
[ 13.880000] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 13.880000] usbcore: registered new interface driver huawei_cdc_ncm
[ 13.900000] usbcore: registered new interface driver keyspan
[ 13.900000] usbserial: USB Serial support registered for Keyspan — (without firmware)
[ 13.900000] usbserial: USB Serial support registered for Keyspan 1 port adapter
[ 13.900000] usbserial: USB Serial support registered for Keyspan 2 port adapter
[ 13.900000] usbserial: USB Serial support registered for Keyspan 4 port adapter
[ 13.990000] ctnetlink v0.93: registering with nfnetlink.
[ 14.020000] usbcore: registered new interface driver pl2303
[ 14.020000] usbserial: USB Serial support registered for pl2303
[ 14.030000] PPP generic driver version 2.4.2
[ 14.040000] PPP MPPE Compression module registered
[ 14.040000] NET: Registered protocol family 24
[ 14.040000] PPTP driver version 0.8.5
[ 14.050000] usbcore: registered new interface driver qmi_wwan
[ 14.140000] l2tp_ppp: PPPoL2TP kernel driver, V2.0
[ 14.140000] usbcore: registered new interface driver option
[ 14.140000] usbserial: USB Serial support registered for GSM modem (1-port)
[ 14.160000] usbcore: registered new interface driver qcserial
[ 14.160000] usbserial: USB Serial support registered for Qualcomm USB modem
[ 14.200000] ath: EEPROM regdomain: 0x0
[ 14.200000] ath: EEPROM indicates default country code should be used
[ 14.200000] ath: doing EEPROM country->regdmn map search
[ 14.200000] ath: country maps to regdmn code: 0x3a
[ 14.200000] ath: Country alpha2 being used: US
[ 14.200000] ath: Regpair used: 0x3a
[ 14.210000] ieee80211 phy0: Selected rate control algorithm ‘minstrel_ht’
[ 14.210000] ieee80211 phy0: Atheros AR9340 Rev:3 mem=0xb8100000, irq=47
[ 14.280000] mmc_spi spi0.1: ASSUMING 3.2-3.4 V slot power
[ 17.330000] mmc_spi spi0.1: SD/MMC host mmc0, no DMA, no WP, no poweroff
[ 17.330000] mmc_spi spi0.1: no support for card’s volts
[ 17.330000] mmc0: error -22 whilst initialising SDIO card
[ 17.330000] mmc_spi spi0.1: no support for card’s volts
[ 17.330000] mmc0: error -22 whilst initialising SD card
[ 17.340000] mmc_spi spi0.1: no support for card’s volts
[ 17.340000] mmc0: error -22 whilst initialising MMC card
[ 20.700000] usb 1-1.3: new high-speed USB device number 4 using ehci-platform
[ 20.920000] option 1-1.3:1.0: GSM modem (1-port) converter detected
[ 20.920000] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[ 20.930000] option 1-1.3:1.1: GSM modem (1-port) converter detected
[ 20.940000] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[ 20.950000] option 1-1.3:1.2: GSM modem (1-port) converter detected
[ 20.950000] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
[ 20.960000] option 1-1.3:1.3: GSM modem (1-port) converter detected
[ 20.970000] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB3
[ 21.000000] qmi_wwan 1-1.3:1.4: cdc-wdm0: USB WDM device
[ 21.000000] qmi_wwan 1-1.3:1.4: Quectel EC21&EC25&EC20 R2.0 work on RawIP mode
[ 21.010000] qmi_wwan 1-1.3:1.4 wwan0: register ‘qmi_wwan’ at usb-ehci-platform-1.3, WWAN/QMI device, 3a:a9:1d:1a:9e:d9
[ 25.600000] jffs2: notice: (1621) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[ 28.880000] device eth0 entered promiscuous mode
[ 28.890000] br-lan: port 1(eth0) entered forwarding state
[ 28.890000] br-lan: port 1(eth0) entered forwarding state
[ 30.010000] br-lan: port 1(eth0) entered disabled state
[ 34.410000] device wlan0 entered promiscuous mode
[ 34.420000] br-lan: port 2(wlan0) entered forwarding state
[ 34.420000] br-lan: port 2(wlan0) entered forwarding state
[ 34.460000] br-lan: port 2(wlan0) entered disabled state
[ 41.530000] br-lan: port 2(wlan0) entered forwarding state
[ 41.530000] br-lan: port 2(wlan0) entered forwarding state
[ 43.530000] br-lan: port 2(wlan0) entered forwarding state
[ 51.350000] Ports leds ON
[ 54.390000] random: nonblocking pool is initialized

Настройка WAN


Интерфейс настройки приоритетов интернет-каналов. Можно выбрать один основной и два резервных. В нашем случае, модем выбран основным, а проводной WAN резервным.


Настройка приоритетов интернет-каналов. Можно выбрать основной и резервные

Нужно иметь в виду, что модем (радиомодуль) в роутере один, и только одна SIM-карта может быть одномоментно в сети. Система мониторинга проверяет доступность интернета в каждом канале с помощью ping-запросов на заданный хост. При этом нельзя проверить, на какой из двух SIM-карт есть интернет, можно только переключить на другой канал: проводной или Wi-Fi. Условия переключения SIM-карт настраиваются отдельно, и не зависят от общего мониторинга.


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

Так как мониторинг доступности (пакет multiwan из openwrt) воспринимает модем как один интерфейс, он не может инициировать переключение SIM-карты в случае недоступности интернета на модеме. Пакет multiwan может только переключать основной сетевой интерфейс. Условия переключения SIM-карты настраиваются отдельно, и среди условий можно выбрать только следующее: слабый сигнал, лимит трафика, роуминг, нет сети, отсутствует подключение PPP. То есть, в некоторых случаях, модем может не переключить SIM-карту, даже если на ней нет интернета. Например, если у оператора сбой в сети, при этом на модеме есть IP-адрес, или если оператор заблокировал доступ в сеть за неуплату, и редиректит запрос на заглушку с интерфейсом оплаты. В таком случае, ни одно условие переключения SIM-карты не будет выполнено, так как формально связь с оператором есть.


Настройка условий переключения между SIM-картами не работает в связке с мониторингом доступности интернета

Симуляция аварии


Нам не удалось придумать способ программно симулировать условия для переключения SIM-карты на резервную в этом роутере, поэтому мы будем проверять переключение на резервный проводной канал. Для этого отключим антенны от роутера и посмотрим на график. Время переключения составляет в среднем 12-15 секунд, с учетом восстановления VPN-подключения. Можно сократить это время, уменьшив интервал проверок и число потерянных пакетов для срабатывания переключения, но слишком агрессивные настройки мониторинга будут часто вызывать ложные срабатывания, когда связь пропала всего на пару секунд.


Время переключения на резервный канал составляет около 15 секунд

Вывод


Роутер с большим количеством дополнительных функций. Интересно выполнена работа с модулем I/O: есть аналоговые и цифровые выводы, силовое реле. Можно управлять выводами удаленно и настроить триггеры. Это позволяет на одном лишь роутере построить простую автоматизацию с внешней периферией. Например, управлять теплицей или обогревом помещения.

Плюсы


  • Много дополнительных функций
  • Открытая платформа OpenWRT
  • Поддержка LTE Cat 4
  • Три типа WAN: модем, Ethernet, WiFi

Минусы


  • Нельзя указать разные адреса мониторинга для каждой SIM-карты
  • Условия переключения на резервную SIM-карту вынесены отдельно от мониторинга доступности интернета

Robustel R2000


Роутер предоставлен компанией Евромобайл (euromobile.ru)

SoC: Atheros 533MHz
RAM: 64MB
Flash память: 16MB
Модем: Huawei ME909s-120 (LTE Cat 4)
Прошивка: закрытая, на основе Linux

Роутер с двумя Ethernet-портами и минимумом функций. Только один из LAN-портов может выполнять роль WAN. Прошивка закрытая, root доступа по SSH нет. Консоль ограничена своим интерпретатором с несколькими командами (подобно устройствам Ubiquiti).

Обзор веб-интерфейса

Настройка WAN


Есть несколько режимов резервирования и балансировки. Второй вариант может быть полезен для быстрого переключения между каналами.
  • Cold backup: активен только основной канал, резервные каналы отключаются
  • Warm backup: резервные каналы активны, используется только основной (невозможно активировать две SIM одновременно)
  • Load balancing: Используются оба канала одновременно

В настройках по-умолчанию почему-то отключено возвращение на основной канал после переключения на резервный. Это задается в Revert Interval, при установке в ноль, канал никогда не переключится назад после перехода на резервный.


Настройка приоритетов и режимов WAN

Каждая SIM-карта настраивается как отдельный интерфейс: WWAN1 и WWAN2. Для каждого интерфейса можно отдельно настроить адрес для проверки доступности интернета, и свои интервалы. Это единственный роутер в обзоре, где можно указать сразу два хоста для проверки. Это полезно для защиты от ложных срабатываний, когда проверочный хост упал, но интернет при этом есть.


Каждой SIM-карте можно установить свои настройки для проверки доступности интернета

Прошивка роутера не предполагает root-доступа к системе, поэтому без вскрытия корпуса мне не удалось выяснить, на каком чипсете сделано устройство. Соответственно никакие самодельные скрипты и пакеты на роутер установить не получится, вся функциональность строго ограничена возможностями родной прошивки. Есть возможность установить несколько дополнительных пакетов из родного репозитория robustel.com/products/app-center/, но это не сравнится с набором пакетов из репозитория OpenWRT.
С другой стороны, такая закрытость системы может быть полезна для защиты от неконтролируемых изменений прошивки, которые потом нельзя увидеть в веб-интерфейсе.

Симуляция аварии


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


Переключение на вторую SIM-карту занимает 15-30 секунд

В среднем роутер переключается на вторую SIM-карту за 15-30 секунд. Полагаю, что больше всего времени занимает регистрация в сети второго оператора. Так как во всех наших роутерах используется один модем, одномоментно в сети может находится только одна SIM-карта. Существуют промышленные роутеры с двумя независимыми модемами, которые одновременно подключены к двум мобильным операторам. В таком случае переключение канала происходит быстрее.

Вывод


Компактный и простой роутер с минимумом функций, простой в настройке. Закрытая платформа и отсутсвие root-доступа может кому-то помешать. Можно рекомендовать для случаев, когда простота настройки важнее.

Плюсы


  • Отдельные настройки failover для каждой SIM-карты
  • Поддержка LTE Cat 4
  • Режим «Warm backup», в котором резервный канал не отключается
  • Простота настройки

Минусы


  • Закрытая платформа, нет root-доступа
  • Урезанная SSH-консоль
  • Только один Ethernet-порт может работать как WAN

iRZ RU22W


Роутер предоставлен компанией Цифровой Ангел (digitalangel.ru)

SoC: MediaTek MT7620A ver:2 eco:6
RAM: 64
Flash память: 16
Wi-Fi: 802.11n (2.4GHz)
Модем: Huawei MU709s-2
Поддержка карт MicroSD
GPS
Прошивка: на базе OpenWRT 15.05

Роутер без поддержки LTE, поддерживаются только 3G-стандарты HSPA+/UMTS (900/2100 MHz) и 2G GSM/GPRS (850/900/1800/1900 MHz), при этом самый дорогой. Есть поддержка GPS, Wi-Fi и последовательных интерфейсов. По-умолчанию все Ethernet-порты объединены в один коммутатор, при желании каждый порт можно выделить в отдельный VLAN и использовать его как WAN. Wi-Fi может работать в режиме станции (клиента), и также быть WAN. Суммарно, с двумя SIM-картами это позволяет получить 7 WAN-интерфейсов. Неплохо.

Обзор веб-интерфейса

Веб-интерфейс



Главная страница, доступная без авторизации, показывает состояние интерфейсов, таблицу маршрутизации, IMEI, и много другой информации.


Wi-Fi-интерфейс может работать в режиме точки доступа (AP) или клиента (Station). Сканирования сетей нет, нужно явно указывать SSID вручную.

VPN


OpenVPN поддерживается полностью, а вот IPSec — нет. Есть только Cisco IPSec, при этом нет IKEv2.
Интерфейс настройки Cisco IPSec не поддерживает протокол IKEv2

Есть поддержка Ethernet over IP

RS-232/485


Последовательные интерфейсы можно настроить только в режиме serial over ip и конвертера modbus TCPRTU. Режим AT-модема через последовательный порт недоступен.

GPIO


Работа c GPIO сделана странно. Можно только переключать состояния из веб-интерфейса, при этом нельзя создать триггеры, вызываемые по изменению состояния. Возможно, есть какое-то API, реализованное через фирменный софт, не знаю. Нельзя даже переименовать нужные пины. Пользы от такого управления не вижу.

Настройка WAN



Приоритеты интерфейсов выбираются в меню Routes. Можно выбрать один из двух режимов: failover и балансировка. Первый переключит канал на резервный интерфейс в случае недоступности основного, а второй распределит трафик поровну между интерфейсами, на уровне NAT.

Мониторинг доступности и аварийное переключение интерфейсов сделано с помощью самодельных bash-скриптов компании iRZ. Например, сервис /usr/bin/pinger посылает пинги, переключает интерфейсы и управляет светодиодами. Довольно суровый bash-изм 🙂

Настройка SIM-карт


Для каждой SIM-карты можно установить свой хост проверки связи. Это удобно для случаев, когда мы хотим выбрать разные сервера, в зависимости от оператора связи. Например, в роуминге мы используем один сервер, а в домашнем регионе другой.

Можно установить разные хосты, до которых будет проверяться связь, для каждой SIM-карты

GPS


Я не нашел возможности как-либо задействовать GPS-модуль, кроме как через gpsctl из консоли. В веб-интерфейсе вообще нет его упоминания. Полагаю, что он задействуется через родные облачные сервисы для централизованного управления роутерами. Невозможность использовать API GPS самостоятельно считаю недостатком.

Симуляция аварии


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

Из нескольких попыток среднее время переключения составляет 30 секунд, иногда вторая SIM-карта долго регистрируется, и переключение растягивается на минуту. Не уверен, связано ли это с модемом или с особенностями мобильного оператора.

Вывод


Понравилась возможность получить целых 4 проводных WAN и отдельные настройки failover для каждой SIM-карты. Осталось непонятным назначение GPS-модуля, воспользоваться им без стороннего софта не получилось.

Плюсы


  • Открытая платформа на базе OpenWRT
  • Отдельные настройки failover для каждой SIM-карты
  • Все LAN-порты могут работать как WAN

Минусы


  • Нет поддержки IPsec IKEv2
  • Непонятно, как пользоваться GPS и выводами GPIO без стороннего софта


Заключение


На мой взгляд, специализированные промышленные решения намного удобнее самодельных конструкций на базе SOHO-роутера. Хотя в большинстве случаев используется та же прошивка OpenWRT, все нюансы уже учтены, настройка сводится к установке нескольких параметров в веб-интерфейсе, и не нужно самому писать костыли типа watchdog-скриптов, все уже есть из коробки.
Дополнительные функции вроде GPIO и модуля GPS позволяют, во многих случаях, обойтись одним устройством вместо двух, для простых задач автоматизации и сбора данных.

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

Let’s block ads! (Why?)

Резервный интернет канал через 3g

На текущий момент многие производители выпускают «домашние» марштрутизаторы, способные использовать 3G модемы, подключаемые по USB для выхода в интернет.

Например — Zyxel Keenetic Giga.

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

В данной статье описывается настройка маршрутизатора TPLink с прошивкой OpenWRT для установки соединения в интернет через 3G при падении основного канала. Также подобную задачу решает пакет mwan3, который можно установить на OpenWRT систему.

Настройка резервного 3G канала с автоматическим переключением на OpenWRT

По опыту решения «всяких» задач, выбор пал на TP-Link. Выбрать было просто, Open WRT дружит со всеми TP-Link‘ами (запасной вариант). Так же требования по 3g связи. Предоставили мне Huawei E367 от мегафона.

Коробка попала ко мне в руки. (описывать ее не буду, описаний много, сразу к делу). Приятные плюшки от TP-Link’а радовали всегда. В «поле» он у нас ни когда не тестился. Работа всегда велась с более стабильными роутерами. Но Open WRT в данном вопросе — перевесил все сомнения. И как оказалось — не зря, но об этом позже.

Базовая прошивка, базовая настройка, Wan preffered, запуск, тест. Эмуляция «сетевой кабель не подключен» работает на ура. В обе стороны как надо переключается канал. Но мы то знаем, что «падения» бывают не только на «крыше», но и дальше. Кто то что то копал, задел кабель, порвал. Свитч жив, линк по кабелю жив, роутер «думат» что всё ок. Нас это не устраивает.

Задача:
1) TP-LINK TL-MR3420 V2
2) 3g интернет Мегафон Huawei E367
3) Провайдер с настройками по Static IP и проводом с RJ-45

Сразу оговорюсь, что статья не для новичков, вы должны осознавать всё то, что вы делае

Обшарив прошивку — нужного нам не нашли. Да и прошивка отключает 3g если он не используется, так что переход на 3g занимает довольно много времени, пока включится, пока идентифицирует «свисток», пока подключится, проходит где то минута, полторы в лучшем случае.

Значит Open WRT. TP-Link обновил железо, официальной прошивки нет, но где то с 13 января 2013 года много положительных отзывов об использовании этого роутера на прошивках OpenWRT. Качаем, пробуем, завелась. (как шить Open WRT можно найти в интернете).

Далее настройка по шагам

Этап 1. Веб морда.
Заходим на http://192.168.1.1/
root

Шаг 1.
Настройка провайдера — Static IP, всё интуитивно понятно, заработало сразу. IP, Маска, шлюз, 2 DNS. Advanced Settings — Use gateway metric ставим 20, не нужно спрашивать почему, не отвечу. Надо) Всё что угодно, отличное от 0.
Firewall Settings оставляем в wan

Шаг 2.
Настройка 3g.
UMTS/GPRS/EV-DO
/dev/ttyUSB0
UMTS/GPRS
APN: internet
username: megafon
password: megafon
Advanced Settings — Use gateway metric ставим 10.
Firewall Settings создаем зону wan_3g

Шаг 3.
Настройка lan
Делаем как нравится.

Все интерфейсы должны включаться при загрузке роутера (Bring up on boot)

Шаг 4.
Network – Firewall
Редактируем lan, Inter-Zone Forwarding добавляем и wan, и wan_3g.
Это избавит нас от головной боли с фаерволом (я не дружу с iptables)
для зоны wan_3g копируем галочки с зоны wan.

Шаг 5.
System — Scheduled Tasks
*/1 * * * * /etc/config/rezerv/t5t > /dev/null

Это наш скрипт проверки связи, запускается раз в минуту.
О файлах — ниже, сначала вебморда.

Шаг 6.
Имена хостов
Так как интернет домашний, или нам могут понадобиться другие наши хосты — добавляем то, что нам нужно.
Шаг важный. Для теста мы выбрали www.ru, будем его пинговать
Создаем хост alltimeallivehost.lan и берем IP с www.ru -194.87.0.50.
alltimeallivehost.lan — будет участвовать в проверке.

С мордой вроде бы всё.

Этап 2 SSH
берем putty, заходим 192.168.1.1

[email protected]:~# cd /etc/config/
[email protected]:/etc/config# mkdir rezerv
[email protected]:/etc/config# cd ./rezerv

создаем файлики:

[email protected]:/etc/config/rezerv# cat > имя_файла

Копируем текст
жмем Ctrl + Z
Файл создан.
Моя папка выглядит так:

[email protected]:/etc/config/rezerv# ls -l
-rwxrwxrwx    1 root     root           190 Feb 19 20:49 3g_on
-rwxrwxrwx    1 root     root           186 Feb 19 21:14 t5t
-rwxrwxrwx    1 root     root          1136 Feb 20 13:44 test_sh
-rw-r--r--    1 root     root             0 Feb 20 13:44 wan
-rwxrwxrwx    1 root     root           100 Feb 20 12:13 wan_on

3g_on, wan_on, t5t, test_sh – исполняемые файлы
делаются так:

[email protected]:/etc/config/rezerv# chmod 777 файл

Теперь алгоритм и файлы.
wan_on – включает wan интерфейс.
3g_on – включает 3g интерфейс.
test_sh – основной алгоритм работы
t5t – вызов test_sh 5 раз. (он же выше указывался в cron, System — Scheduled Tasks)

t5t:

/etc/config/rezerv/test_sh; sleep 8;
/etc/config/rezerv/test_sh; sleep 8;
/etc/config/rezerv/test_sh; sleep 8;
/etc/config/rezerv/test_sh; sleep 8;
/etc/config/rezerv/test_sh; sleep 8;

2 секунды на проверку, спим 8 секунд, итого 50 секунд. Всё прозрачно.

wan_on:

#wan
/sbin/ifconfig 3g-3g down
#ifconfig eth0 up
/sbin/route add default gw 10.112.28.253 metric 0

Файлик опускает один интерфейс и подымает второй, но! Нам eth0 нужен постоянно живым, что бы понять — поднялся основной канал или нет. По этому мы его не подымаем. (строка за комментирована). Дальше будет понятно почему.

3g_on:

#3g - vklu4aem 3g
/sbin/ifconfig eth0 down
/sbin/ifconfig 3g-3g up
/sbin/route add default gw 10.64.64.64 metric 0
/sbin/ifconfig eth0 up
/sbin/route add default gw 10.112.28.253 metric 20

Отключаем eth0, при отключении все маршруты интерфейса обнуляются, поднимаем 3g, прописываем маршрут для 3g, подымает eth0. Тут eth0 прописывает маршрут default с метрикой 20 (смотрите Этап 1, вебморда), и у нас 2 маршрута default с разными метриками.
Ну и дописываем маршрут, так как он все равно куда то терялся.

wan – файл флаг, говорит о том, что у нас проводной интернет в данный момент.

Последний файл — основной скрипт:

test_sh
[email protected]:/etc/config/rezerv# cat test_sh
#!/bin/sh

#blok1
DIR=/etc/config/rezerv/
#DIR=/home/calc/rezerv/
ROUTE=/sbin/route
GREP=/bin/grep
RM=/bin/rm
TOUCH=/bin/touch

#blok2
#tested address www.ru
#WWW_RU=194.87.0.50
WWW_RU=alltimeallivehost.lan

#blok3
#flags
F3G=3g
FWAN=wan
FCUR=$FWAN

#blok4
#on
ON_3G=3g_on
ON_WAN=wan_on
ON_DEF=$ON_WAN

#blok5
#def routines
R_WAN=10.112.28.253
R_3G=10.64.64.64
R_CUR=$R_WAN

#blok6
#proverka flagov
if [ ! -f $DIR$F3G ]; then
  if [ ! -f $DIR$FWAN ]; then
    echo "no one file exist, use default iface"
    echo $DIR$ON_DEF
  else
    R_CUR=$R_WAN
    FCUR=$FWAN
  fi
else
  R_CUR=$R_3G
  FCUR=$F3G
fi

#blok7
#proverka tekushego marshruta
if [ "$ROUTE | $GREP default | $GREP $R_CUR | wc -l" != "0" ]; then
  echo "$FCUR route exist"
else
  echo "add $FCUR route"
  $ROUTE add default gw $R_CUR metric 0
fi

#blok8
#toggle if not work
##PING www.ru
if ping -w3 -c2 -I eth0  $WWW_RU > /dev/null 2>&1; then
  echo "MAIN working";
  if [ -f $DIR$F3G ]; then
    echo "3g used, wan_on"
    $DIR$ON_WAN
    $RM $DIR$F3G
    $TOUCH $DIR$FWAN
  fi
else
  echo "MAIN not working";
  #if [ -f $DIR$FWAN ]; then
    echo "wan used, 3g_on"
    $DIR$ON_3G
    $RM $DIR$FWAN
    $TOUCH $DIR$F3G
  #fi
fi

Блок 1
По опыту работы с разными Linux переменные окружения куда то пропадают, ну бывает, по этому всё в жесткую.

Блок 2
alltimeallivehost.lan — прописывали в морде в хосты.

Блок 3
Файлы — флаги.
Если файл есть, значит этот интерфейс используется.

Блок 4
Скрипты включения интерфейсов

Блок 5
Маршруты, с ними почему то возникали проблемы, по этому раз в 10 секунд будем проверять наличие этих маршрутов и добавлять их при необходимости.

Блок 6
Проверяет вообще наличие флагов, если их нет, то включаем интерфейс по умолчанию (wan, проводной). Так же смотрим какой интерфейс в данный момент используется.

Блок 7
Проверяем наличие маршрута default для используемого подключения, если нет ни одного, то добавляем маршрут.

Блок 8
Основная проверка работоспособности интерфейса.
Если пинтуется наш хост через eth0, то проверяем какой интерфейс включен, если 3g, включаем wan, если wan, ни чего не делаем.
Если не пингуется, и используется интерфейс wan, то включаем интерфейс 3g.

Основная логика готова.

Теперь забиваем последние гвозди.

[email protected]:/etc/config/rezerv# cat /etc/rc.local
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

echo $((10*1024*1024)) > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0

#udalaem flagi
rm /etc/config/rezerv/wan
rm /erc/config/rezerv/3g

exit 0

Т.е. При загрузке роутера удаляем наши флаги.

в /etc/dnsmasq.conf дописываем строку

dhcp-option=lan,6,10.112.1.1,10.112.2.1,8.8.8.8

что бы на интерфейс компьютера сразу выдавались нужные нам dns. Я проблемы с DNS не решал, так оказалось проще и быстрее. Сказался недостаток знаний.

Надо не забыть включить сервис dnsmasq и cron, можно сделать через Веб морду.

Результат работы:

C:\Users\calc>ipconfig /all
Ethernet adapter Подключение по локальной сети:

   DNS-суффикс подключения . . . . . : lan
   Описание. . . . . . . . . . . . . : Atheros AR8161/8165 PCI-E Gigabit Etherne
t Controller (NDIS 6.20)
   Физический адрес. . . . . . . . . : 10-BF-48-22-58-64
   DHCP включен. . . . . . . . . . . : Да
   Автонастройка включена. . . . . . : Да
   Локальный IPv6-адрес канала . . . : fe80::d1de:d8aa:f5c4:667b%13(Основной)
   IPv4-адрес. . . . . . . . . . . . : 192.168.1.112(Основной)
   Маска подсети . . . . . . . . . . : 255.255.255.0
   Аренда получена. . . . . . . . . . : 20 февраля 2013 г. 12:11:43
   Срок аренды истекает. . . . . . . . . . : 21 февраля 2013 г. 0:36:25
   Основной шлюз. . . . . . . . . : 192.168.1.1
   DHCP-сервер. . . . . . . . . . . : 192.168.1.1
   IAID DHCPv6 . . . . . . . . . . . : 353419080
   DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-17-6E-9B-C2-10-BF-48-22-58-64

   DNS-серверы. . . . . . . . . . . : 10.112.1.1
                                       10.112.2.1
                                       8.8.8.8
   NetBios через TCP/IP. . . . . . . . : Включен

Схема: Интернет — зона провайдера — свитч — роутер — ноутбук
Рвем связь перед свитчем:

C:\Users\calc>ping www.ru -t

Обмен пакетами с www.ru [194.87.0.50] с 32 байтами данных:
Ответ от 194.87.0.50: число байт=32 время=2мс TTL=57
Ответ от 194.87.0.50: число байт=32 время=2мс TTL=57
Ответ от 194.87.0.50: число байт=32 время=2мс TTL=57
#рвем савязь
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 194.87.0.50: число байт=32 время=1946мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=78мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=56мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=55мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=64мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=53мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=52мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=61мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=60мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=59мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=57мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=57мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=55мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=54мс TTL=47
#где то тут мы вставили кабель обратно
Ответ от 194.87.0.50: число байт=32 время=62мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=61мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=60мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=59мс TTL=47
Ответ от 194.87.0.50: число байт=32 время=58мс TTL=47
#вернулись на wan
Ответ от 194.87.0.50: число байт=32 время=2мс TTL=57
Ответ от 194.87.0.50: число байт=32 время=2мс TTL=57
Ответ от 194.87.0.50: число байт=32 время=2мс TTL=57

Статистика Ping для 194.87.0.50:
    Пакетов: отправлено = 32, получено = 25, потеряно = 7
    (21% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 2мсек, Максимальное = 1946 мсек, Среднее = 120 мсек
Control-C

Настоящее суммирование интернет-каналов — OpenMPTCPRouter

Можно ли объединить несколько интернет-каналов в один? Вокруг этой темы куча заблуждений и мифов, даже сетевые инженеры с опытом часто не знают о том, что это возможно. В большинстве случаев, объединением каналов ошибочно называют балансировку на уровне NAT или failover. Но настоящее суммирование позволяет пустить одно единственное TCP-подключение одновременно по всем интернет-каналам, например видеотрансляцию так, чтобы при обрыве любого из интернет-каналов вещание не прерывалось.

Существуют дорогие коммерческие решения для видеотрансляций, но такие устройства стоят много килобаксов. В статье описывается настройка бесплатного, открытого пакета OpenMPTCPRouter, разбираются популярные мифы о суммировании каналов.

Мифы про суммирование каналов


Есть много бытовых роутеров, поддерживающих функцию Multi-WAN. Иногда производители называют это суммированием каналов, что не совсем верно. Многие сетевики верят, что кроме LACP и суммирования на L2 уровне, никакого другого объединения каналов не существует. Мне часто доводилось слышать, что это вообще невозможно от людей, которые работают в телекомах. Поэтому попробуем разобраться в популярных мифах.

Балансировка на уровне IP-подключений


Это самый доступный и популярный способ утилизировать несколько интернет-каналов одновременно. Для простоты представим, что у вас есть три интернет провайдера, каждый выдаёт вам реальный IP-адрес из своей сети. Все эти провайдеры подключены в роутер с поддержкой функции Multi-WAN. Это может быть OpenWRT с пакетом mwan3, mikrotik, ubiquiti или любой другой бытовой роутер, благо сейчас такая опция уже не редкость.

Для моделирования ситуации представим, что провайдеры выдали нам такие адреса:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

То есть, подключаясь к удалённому серверу example.com через каждого из провайдеров, удаленный сервер будет видеть три независимых source ip клиента. Балансировка позволяет разделить нагрузку по каналам и использовать их все три одновременно. Для простоты представим, что мы делим нагрузку между всеми каналами поровну. В итоге, когда клиент открывает сайт, на котором условно три картинки, он загружает каждую картинку через отдельного провайдера. На стороне сайта это выглядит как подключения с трёх разных IP.


При балансировке на уровне подключений, каждое TCP-подключение идёт через отдельного провайдера.

Такой режим балансировки часто несёт проблемы для пользователей. Например, многие сайты жёстко привязывают cookie и токены к IP-адресу клиента, и если он внезапно изменился, то запрос отбрасывается или клиента разлогинивает на сайте. Это часто воспроизводится в системах клиент-банка и на других сайтах со строгими правилами пользовательских сессий. Вот простой наглядный пример: музыкальные файлы в VK.com доступны только при действительном ключе сессии, который привязан к IP, и у клиентов, использующих такую балансировку, часто не проигрываются аудио, потому что запрос ушёл не через того провайдера, к которому привязана сессия.


При загрузке торрентов балансировка на уровне подключений суммирует пропускную способность всех каналов

Такая балансировка позволяет получить суммирование скорости интернет-канала, при использовании множества подключений. Например, если у каждого из трёх провайдеров скорость 100 Мегабит, то при загрузке торрентов мы получим 300 Мегабит. Потому что торрент открывает множество подключений, которые распределяются между всеми провайдерами и в итоге утилизируют весь канал.

Важно понимать, что одно единственное TCP-подключение всегда пройдёт только через одного провайдера. То есть если мы скачиваем один большой файл по HTTP, то это подключение будет выполнено через одного из провайдеров, и если связь с этим провайдером оборвется, то загрузка тоже сломается.


Одно подключение всегда будет использовать только один интернет-канал

Это справедливо и для видео-трансляций. Если вы вещаете потоковое видео на какой-то условный Twitch, то балансировка на уровне IP-подключений не даст никакой особенной пользы, так как видео-поток будет транслироваться внутри одного IP-подключения. В данном случае, если у провайдера WAN 3 начнутся проблемы со связью, например потери пакетов или снижение скорости, то вы не сможете моментально переключиться на другого провайдера. Трансляцию придётся останавливать и переподключаться заново.

Настоящее суммирование каналов


Реальное суммирование каналов даёт возможность пустить одно подключение к условному Twitch сразу через всех провайдеров таким образом, что, если любой из провайдеров сломается, подключение не оборвется. Это на удивление сложная задача, которая до сих пор не имеет оптимального решения. Многие даже не знают, что такое возможно!

По предыдущим иллюстрациям мы помним, что условный сервер Twitch может принять от нас видеопоток только от одного source IP адреса, значит он должен быть у нас всегда постоянным, вне зависимости от того, какие провайдеры у нас отвалились, а какие работают. Чтобы этого добиться, нам потребуется суммирующий сервер, который будет терминировать все наши подключения и объединять их в одно.


Суммирующий сервер агрегирует все каналы в один тоннель. Все подключения происходят с адреса суммирующего сервера

В такой схеме используются все провайдеры, и отключение любого из них не вызовет обрыв связи с сервером Twitch. По сути, это особый VPN-тоннель, под капотом у которого сразу несколько интернет-каналов. Главная задача такой схемы — получить максимально качественный канал связи. Если на одном из провайдеров начались проблемы, потеря пакетов, увеличение задержек, то это не должно никак отразиться на качестве связи, так как нагрузка автоматически будет распределяться по другим, более качественным каналам, которые есть в распоряжении.

Коммерческие решения


Эта проблема давно беспокоит тех, кто ведёт прямые трансляции мероприятий и не имеет доступа к качественному интернету. Для таких задач существуют несколько коммерческих решений, например компания Teradek делает такие монструозные роутеры, в которые вставляются пачки USB модемов:
Роутер для видеотрансляций с функцией суммирования каналов

В таких устройствах, обычно, встроена возможность захвата видеосигнала по HDMI или SDI. Вместе с роутером продаётся подписка на сервис суммирования каналов, а также обработки видеопотока, перекодирования его и ретрансляции дальше. Цена таких устройств начинается от 2к$ с комплектом модемов, плюс отдельно подписка на сервис.

Иногда это выглядит достаточно устрашающе:

Настраиваем OpenMPTCPRouter


Протокол MP-TCP (MultiPath TCP) придуман для возможности подключения сразу по нескольким каналам. Например, его поддерживает iOS и может одновременно подключать к удалённому серверу по WiFi и через сотовую сеть. Важно понимать, что это не два отдельных TCP-подключения, а именно одно подключение, установленное сразу по двум каналам. Чтобы это работало, удалённый сервер должен поддерживать MPTCP тоже.

OpenMPTCPRouter — это открытый проект программного роутера, позволяющего по-настоящему суммировать каналы. Авторы заявляют, что проект находится в статусе альфа-версии, но им уже можно пользоваться. Он состоит из двух частей — суммирующего сервера, который размещается в интернете и роутера, к которому подключаются несколько интернет-провайдеров и сами клиентские устройства: компьютеры, телефоны. В качестве пользовательского роутера может выступать Raspberry Pi, некоторые WiFi-роутеры или обычный компьютер. Есть готовые сборки под различные платформы, что очень удобно.


Принцип работы OpenMPTCPRouter

Настройка суммирующего сервера


Суммирующий сервер располагается в интернете и терминирует подключения со всех каналов клиентского роутера в одно. IP-адрес этого сервера будет внешним адресом при выходе в интернет через OpenMPTCPRouter.

Для этой задачи будем использовать VPS-сервер на Debian 10.

Требования к суммирующему серверу:

  • MPTCP не работает на виртуализации OpenVZ
  • Должна быть возможность установки собственного ядра Linux

Сервер разворачивается выполнением одной команды. Скрипт установит ядро с поддержкой mptcp и все необходимые пакеты. Доступны установочные скрипты для Ubuntu и Debian.
wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh

Результат успешной установки сервера.

Сохраняем пароли, они потребуются нам для настройки клиентского роутера, и перезагружаемся. Важно иметь в виду, что после установки SSH будет доступен на порту 65222. После перезагрузки нужно убедиться, что мы загрузились с новым ядром

uname -a 
Linux test-server.local 4.19.67-mptcp

Видим рядом с номером версии надпись mptcp, значит ядро установилось корректно.

Настройка клиентского роутера


На сайте проекта доступны готовые сборки для некоторых платформ, например Raspberry Pi, Banana Pi, роутеры Lynksys и виртуальные машины.
Эта часть openmptcprouter основана на OpenWRT, в качестве интерфейса используется LuCI, знакомый всем, кто когда-либо сталкивался с OpenWRT. Дистрибутив весит около 50Мб!

В качестве тестового стенда я буду использовать Raspberry Pi и несколько USB-модемов с разными операторами: МТС и Мегафон. Как записать образ на SD-карту, полагаю, не нужно рассказывать.

Изначально Ethernet-порт в Raspberry Pi настроен как lan со статическим IP-адресом 192.168.100.1. Чтобы не возиться с проводами на столе, я подключил Raspberry Pi к WiFi точке доступа и задал на WiFi-адаптере компьютера статический адрес 192.168.100.2. DHCP-сервер по умолчанию не включен, поэтому нужно использовать статические адреса.

Теперь можно зайти в веб-интерфейс 192.168.100.1

При первом входе система попросит задать пароль root, с этим же паролем будет доступен SSH.


В настройках LAN можно задать нужную подсеть и включить DHCP-сервер.

Я использую модемы, которые определяются как USB Ethernet интерфейсы с отдельным DHCP-сервером, поэтому это потребовало установки дополнительных пакетов. Процедура идентична настройке модемов в обычном OpenWRT, поэтому я не буду рассматривать её здесь.

Далее нужно настроить WAN-интерфейсы. Изначально в системе создано два виртуальных интерфейса WAN1 и WAN2. Им нужно назначить физическое устройство, в моем случае это имена интерфейсов USB-модемов.

Чтобы не запутаться в именах интерфейсов, я советую смотреть сообщения dmesg, подключившись по SSH.

Так как мои модемы сами выступают роутерами, и сами имеют DHCP-сервер, мне пришлось изменить настройки их внутренних диапазонов сетей и отключить DHCP-сервер, потому что изначально оба модема выдают адреса из одной сети, а это вызывает конфликт.

OpenMPTCPRouter требует, чтобы адреса WAN-интерфейсов были статическими, поэтому придумываем модемам подсети и настраиваем в меню system → openmptcprouter → interface settings. Здесь же нужно указать IP-адрес и ключ сервера, полученный на этапе установки суммирующего сервера.

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

По умолчанию используется режим shadowsocks + mptcp. Это такой прокси, который заворачивает в себя все подключения. Изначально он настроен обрабатывать только TCP, но можно включить и UDP.

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

В этом случае можно использовать другой режим работы, без использования MPTCP, подробнее об этом здесь.

Заключение


Проект OpenMPTCPRouter очень интересный и важный, так как это, пожалуй, единственное открытое комплексное решение проблемы суммирования каналов. Всё остальное либо наглухо закрытое и проприетарное, либо просто отдельные модули, разобраться с которыми обычному человеку не под силу. На текущем этапе развития проект ещё достаточно сырой, крайне бедная документация, многие вещи просто не описаны. Но при этом он всё-таки работает. Надеюсь, что он будет и дальше развиваться, и мы получим бытовые роутеры, которые будут уметь нормально объединять каналы из коробки.



Подписывайтесь на нашего разработчика в Instagram


Настройка OpenWRT- инструкция -Статьи -Статьи, обзоры, тесты

Подключение к роутеру


Для подключения роутера к сети Интернет (либо любой другой WAN-сети) используется WAN-порт. Для проводного подключения роутера к локальным пользовательским устройствам (компьютеру, ноутбуку, телевизору с функцией SmartTV, роутеру, коммутатору и т.д.) используется один из портов LAN. Также пользовательские устройства могут быть подключены по беспроводному интерфейсу Wi-Fi.

Проводное соединение (LAN):

Для настройки роутера подключите любой LAN-порт роутера к порту сетевой карты компьютера при помощи патч-корда, идущего в комплекте поставки. Подключите блок питания к роутеру (тоже идёт в комплекте).

На компьютере необходимо проверить настройки TCP/IPv4 в свойствах подключения по локальной сети: везде должны быть автоматические настройки. Автоматические настройки обычно установлены по умолчанию.

Откройте в браузере данный URL: http://192.168.1.1 — по этому адресу находится WEB-интерфейс роутера.

По умолчанию роутер не имеет пароля на учетной записи администратора. Это сделано для того, чтобы пользователь сам установил пароль, который известен только ему.
При работе без пароля на учётной записи, роутер напоминает о необходимости установления пароля.
Для установления пароля необходимо нажать на ссылку «Перейти к настройке пароля» или «Система» → «Управление» 
Откроется окно, где будет предложено ввести пароль.


При наличии проблем при подключении к роутеру проверьте следующее:

Наличие питания на роутере. Должен быть активен светодиод «Power»

1. Наличие соединения на стороне роутера. Для этого обратите внимание на LAN-порт роутера:

    • Сетевой кабель должен быть вставлен в порт роутера
    • Если у порта есть индикаторы, то при успешном соединении оранжевый светодиод должен гореть, зелёный может периодически мерцать

2. Тот ли сетевой кабель вставлен в порт компьютера

3. Активно ли автоматическое определение IP в операционной системе

Подключение к сети (WAN):

Для проводного подключения роутера к сети Интернет или любой другой внешней сети используется порт WAN.

Обычно для подключения роутера к сети достаточно выполнить следующее:

  1. Вставьте сетевой кабель в WAN-порт. Если у вас внешняя сеть без L2TP, PPTP, то чаще всего больше не нужно ничего настраивать, интернет заработает сам.
  2. Если у вас внешняя сеть с L2TP, PPTP, то откройте в браузере WEB-интерфейс роутера по адресу http://192.168.1.1/
  3. Авторизуйтесь в системе. После этого перед вами будет интерфейс системы


Выберите вкладку «Сеть» и в ней подменю «Интерфейсы»


Загрузится список всех сетевых интерфейсов. Среди них будет «WAN» который принадлежит IPv4 и «WAN6» для IPv6. Нажмите на кнопку «Изменить» в WAN-интерфесе


В выпадающем меню «Протокол» выберите протокол согласно вашим настройкам. Эти настройки вам должен предоставить ваш интернет-провайдер.

Нажмите на появившуюся кнопку «Изменить протокол».

Теперь вы можете ввести настройки, предоставленные вашим интернет-провайдером.

После ввода настроек необходимо нажать кнопку «Сохранить и применить».

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

Беспроводное соединение (Wi-Fi):

Включите на вашем устройстве (например, на телефоне) Wi-Fi, найдите в списке ваш роутер (название роутера — это SSID, его название находится на этикетке с обратной стороны роутера), выберите его и вбейте пароль (тоже написан на этикетке).

Сброс роутера на заводские настройки.

Если вы забыли пароль для входа в роутер или случайно удалили настроенные профили для модема, выполните аппаратный сброс роутера.
Для этого при включенном питании роутера нажмите и удерживайте в течении 5 секунд кнопку сброса. После отпускания кнопки перегрузите роутер, отключив и затем включив питание. После перезагрузки роутера зайдите в через браузер по адресу 192.168.1.1. Пароль и настройки роутера будут заводскими.

Настройка WiFi сети

Wi-Fi модуль роутера может работать в нескольких режимах работы:

  1. Точка доступа (Режим по-умолчанию)
  2. Клиент
  3. Репитер

Настройка Wi-Fi:

  1. Откройте в браузере WEB-интерфейс роутера, вбив адрес http://192.168.1.1/ и авторизуйтесь в системе.
  2. Выберите вкладку «Сеть» и в ней подпункт «WiFi». В этом меню будет выведены все радиомодули и Wi-Fi сети роутера
  3. Выберите интересующую вас Wi-Fi сеть и нажмите на кнопку «Изменить»


Загрузится окно настройки Wi-Fi сети.

Рассмотрим основные пункты:

«Настройки устройства»

  1. Вкладка «Основные настройки»
  2. Статус. В этом блоке выведена информация о Wi-Fi сети
  3. «Беспроводная сеть включена» / «Беспроводная сеть отключена». В этом блоке можно отключить или включить радиомодуль.
  4. «Настройка частоты»

Режим работы. «Legacy» предназначен для работы Wi-Fi модуля с поддержкой устаревших устройств. «N» предназначен для новых устройства

Канал. Позволяет выбрать частоту вещания Wi-Fi модуля. Выбор оптимального значения (менее нагруженного) увеличит стабильность и скорость соединения.

Ширина. Непосредственно влияет на скорость и дальность передачи.

«20 MHz» — Скорость ниже, но выше стабильность и дальность

«40 MHz» — Скорость выше, но ниже стабильность и дальность

«Мощность передатчика». Влияет на дальность приёма. Иногда имеет смысл понизить значения для уменьшения нагрузки на передатчик

«Дополнительные настройки»

«Код страны» — выбор стандартов и ограничений согласно законодательству вашей страны

«Оптимизация расстояния» — автоматический расчёт задержек согласно указанному расстоянию

«Настройки сети»

«Основные настройки»

«ESSID» — название сети

«Режим» — режим работы Wi-Fi модуля

«Сеть» — Указывается, с какими сетями устройство работает в режиме моста

«Скрыть ESSID» — можно скрыть название сети

«Режим WMM» — приоритет мультимедиа (Видео- и аудио-звонки, потоковое видео, игровой трафик) над обычным

«Безопасность беспроводной сети»

«Шифрование» — выбор алгоритма шифрования для обеспечения безопасности сети

«Ключ шифрования» (или подобные настройки) — определяются согласно выбранному режиму

«MAC-фильтр». Данная настройка может создать список разрешенных/ запрещенных клиентов. Это позволит защитить устройство от несанкционированного доступа. Но это не должно являться единственным средством защиты, так как злоумышленник может подделать MAC.

Точка доступа (AP)

По умолчанию роутер работает режиме точки доступа. В этом режиме роутер может раздавать интернет, предоставлять доступ к локальной сети для Wi-Fi клиентов. Также в этом режиме роутер может создать до четырёх Wi-Fi сетей.

Создание точки доступа

  1. Выберите вкладку «Сеть» и в ней подпункт «WiFi»
  2. Нажмите кнопку «Добавить»

Настройте параметры согласно предпочтениям. Можно оставить все настройки без изменения кроме следующих пунктов:

«ESSID» — назовите свою Wi-Fi сеть своим названием

«Режим» — «Точка доступа»

Сеть «lan» — поставьте галочку

«Безопасность беспроводной сети»

«Шифрование» — выберите «WPA-PSK/WPA2-PSK Mixed Mode»

«Пароль (ключ)» — введите пароль для доступа к Wi-Fi сети (8-16 символов)

После этого нажмите на кнопку «Сохранить и применить». Точка доступа успешно создана.

Существует ряд простых рекомендаций для безопасной Wi-Fi сети:
— «Шифрование» — «WPA-PSK/WPA2-PSK Mixed Mode»
— Длина пароля более 8 символов
— Если не требуется дальность передачи, понизьте мощность передатчика
— Не сообщайте пароль непроверенным источникам
— Если у вас есть гости — создайте гостевую Wi-Fi сеть, которая будет в другой подсети

Настройка точки доступа

Выберите вкладку «Сеть» и в ней подпункт «WiFi»

Выберите интересующую сеть и нажмите на кнопку «Изменить»

Далее согласно пункту Создание точки доступа

Клиент

В этом режиме работы роутер можно подключить к существующей Wi-Fi сети для получения доступа к интернету. При настройке через WEB-интерфейс все существующие точки доступа на роутере будут удалены

Выберите вкладку «Сеть» и в ней подпункт «WiFi»

Нажмите на кнопку «Сканировать». Запустится компонент поиска Wi-Fi точек доступа в радиусе действия


Выберите точку доступа, к которой нужно подключаться и нажмите кнопку «Подключение к сети»

Если требуется необходимо ввести «пароль WPA» (пароль доступа к WiFi точке)

«Создать / назначить зону сетевого экрана» — укажите сетевую зону («lan» если вы доверяете сети и хотите ей разрешить доступ к вашей, «wan» в противном случае)

Нажмите кнопку «Применить»

Роутер должен создать сеть «wwan»


Нажмите «Сохранить и применить»

Если всё прошло успешно, то вы имеете доступ к сети в режиме «Wi-Fi клиента». Во вкладке «Сеть» «Интерфейсы» должен появиться интерфейс «WWAN» в котором идёт отчёт «времени работы».

Репитер

В этом режиме роутер может раздавать интернет от другой точки доступа. Для этого достаточно выполнить 2 пункта:

Создание Wi-Fi клиента

Создание точки доступа

Теперь роутер в режиме повторителя. В этом режиме скорость понижена, так как роутер создал две Wi-Fi точки на одном передатчике.

Балансировка трафика


Балансировка трафика позволяет настроить несколько сетевых интерфейсов непосредственно под нужды пользователя.

Есть два основных режима работы балансировщика:

  1. Балансировка трафика с функцией суммирования
  2. Резервирование канала

Настройка балансировщика

Роль балансировщика исполняет утилита MWAN3. В роутере она находится на странице «Сеть» → «Load Balancing».

Это основной экран балансировщика. Он состоит из нескольких пунктов:

Обзор

Настройка

Advanced (расширенные)

Обзор

В этом пункте есть две вкладки:

Interface Status (Статус интерфейса). В нём наглядно показаны используемые интерфейсы и лог последних событий.

Detailed Status (Подробный статус). В нём аналогичная информация, но информация представлена в числом виде для удобства анализа.

Настройка

Пункт настройки состоит из следующих вкладок:

Интерфейсы. В этой вкладке можно добавить интерфейс в балансировщик, а также увидеть настройки используемых интерфейсов.


Для добавления интерфейса внизу есть текстовое поле и кнопка «Добавить». Необходимо использовать точное название интерфейса из «Сеть» → «Интерфейсы» (система чувствительна к регистру вводимых символов)

После добавления интерфейса откроется окно с точной настройкой:


Рассмотрим пункты:

«Включено» — активность интерфейса для обработчика

«Tracking IP» — список IP для проверки доступности интерфейса. Можно вводить несколько IP. Например, можно использовать «8.8.8.8, 8.8.4.4» — Google Public DNS


«Tracking reliability» — показывает сколько из IP обязательно должны быть доступны для активации интерфейса

«Ping count» — показывает сколько раз попытаться связаться с узлом за одну попытку

«Ping timeout» — показывает через сколько времени, признать попытку провальной

«Ping interval» — показывает как часто пытаться связаться с узлом

«Interface down» — показывает сколько попыток должно быть успешными для деактивации интерфейса

«Interface up» — показывает сколько попыток должно быть успешными для активации интерфейса

«Members» — элементы для формирования правил. Состоят из трёх настроек.


«Интерфейс» — интерфейс, которым происходит управление

«Метрика» — приоритетность интерфейса. Чем ближе к нулю, тем важнее.

«Weight» (Вес) — если есть несколько «Members» с одной «Метрикой» в одном «Policies» то их важность определяется весом.

«Policies» — Политика управления «Members». В ней формируется список «Members», который используется для балансировки.

«Members assigned» — список «Members»

«Last resort» — какое действие после полного отказа политики

«Rules» — непосредственно правило поведения для баланировщика. Там существуют следующие инструкции:

«Адрес источника» — ip адрес устройства или подсети, к которой применяется данное правило. По умолчанию применяется ко всей подсети роутера.

«Порт источника» — порт, к которому применимо данное правило. По умолчанию применимо ко всем портам.

«Адрес назначения» — показывает, к какой сети назначения применимо данное правило. 0.0.0.0/0 — ко всему IPv4

«Порт назначения» — показывает к каким портам назначения это правило применимо

«Протокол» — протокол по которому работает система

«Sticky» — фиксация интерфейса. Если мы обратились к какому либо ресурсу, то система фиксирует интерфейс через который это было сделано и использует по возможности только его. Это происходит в течении (Sticky timeout)

«Sticky timeout» — время фиксации интерфейса

«Policy assigned» — используемая политика

Балансировка трафика

В этом режиме в роутере одновременно используется несколько активных сетевых интерфейсов. В случае сбоя какого-либо интерфейса система в течение 1-5 секунд перейдёт на другой интерфейс.

Для настройки балансировщика необходимо выполнить следующие шаги:

Зайти в настройки балансировщика

Добавить нужные сетевые интерфейсы

Добавить «Member» для каждого сетевого интерфейса, с одинаковой метрикой и весом в соответствии с важностью

Создать «Policies» с нужными «Member»

Создать своё сетевое правило с использованием созданноо «Policies». Или добавить свой «Policies» в «default_rule» (по умолчанию)

Резервирование канала

В этом режиме роутер поддерживает активными сетевые интерфейсы, но использует их лишь в случае отказа другого интерфейса.

Для настройки резервирования необходимо выполнить следующие шаги:

Зайти в настройки балансировщика

Добавить нужные сетевые интерфейсы

Добавить «Member» для каждого сетевого интерфейса с разной метрикой и весом в соответствии с важностью. Роутер будет использовать интерфейсы от меньшей метрики к большей. Ты можно разделить интерфейсы на группы по порядку использования

Создать «Policies» с нужными «Member»

Создать своё сетевое правило с использованием созданного «Policies». Или добавить свой «Policies» в «default_rule» (по умолчанию)

Проброс портов для удаленного доступа через интернет

Для настройки проброса портов сначала необходимо включить режим DMZ на модеме. Для этого в строке браузера укажите IP адрес 192.168.8.1.
Загрузится страница модема. Затем перейдите в раздел Настройки->Настройки DMZ.
В этом разделе укажите статус DMZ- «Включить», как показано на рисунке ниже. Нажмите кнопку «Применить».

Теперь приступим к настройке проброса портов на роутере.

Итак, чтобы пробросить нужный порт на роутере выполним следующие действия:

  1. зайдите в раздел Сеть-> Межсетевой экран;
  2. перейдите во вкладку «Перенаправление портов», как показано на рисунке ниже;
    — в поле «Имя» укажите название вашего порта. Например «Удаленный рабочий стол» или «видеонаблюдение»;
    — в поле «Протокол» укажите тип протокола: TCP+UDP, TCP, UDP или другое;
    — в поле «Внешняя зона» указан WAN порт;
    — в поле «Внешний порт» укажите номер порта на внешнем интерфейсе WAN;
    — в поле «Внутренняя зона» указан LAN порт;
    — в поле «Внутренний IP адрес» укажите локальный адрес устройства, к которому пробрасывается порт;
    — в поле «Внутренний порт» укажите порт внутреннего устройства;

После завершения настройки нажмите кнопку «Сохранить и применить»

Работа с модемом. Замер уровня сигнала и определение качества

Для более точного измерения уровня сигнала оператора в модеме есть встроенная утилита. С помощью этой утилиты можно более точно навести 3G/4G антенну на базовую станцию сотового оператора и получить максимальную скорость. Для получения информации об уровне сигнала перейдите в меню «?».


Как видно на рисунке ниже, уровень сигнала RSSI, принимаемый модемом от базовой станции равен -57dBm.
А соотношение сигнал/шум SINR равен 0dB (высокий уровень шума).

Антенну необходимо настроить так, чтобы значение RSSI было максимальным (не забывайте, что оно отрицательное, поэтому чем меньше значение, тем выше сигнал).
Значение SINR должно быть больше нуля. Чем выше значение SINR, тем выше полезный сигнал относительно шума. Например SINR=10dB — это хороший сигнал.

Переход на LTE с помощью mwan3 [Turris wiki]

Эта документация относится только к Turris OS 3.x, которой больше нет в недавно проданных маршрутизаторах. Новая документация находится по адресу https://docs.turris.cz/.

Это руководство написано для пользователей Turris Omnia с активным подключением к сети с использованием LTE и WAN. Цель состоит в том, чтобы установить соединение в режим переключения при отказе, когда основное соединение осуществляется через WAN, а в случае сбоя весь трафик направляется через LTE.

Для этой цели доступна служба mwan3 , которая заменяет более старую и больше не поддерживаемую Multiwan .

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

Проверка подключения

Перед началом установки и настройки mwan3 рекомендуется проверить, работают ли и LTE, и WAN.Если это не так, их необходимо сначала ввести в действие — для этого вы можете использовать, например, руководство по установке модема LTE.

Проверьте соединение с помощью команды ping:

 корень @ turris: ~ # ping -c 1 -I eth2 8.8.8.8
корень @ turris: ~ # ping -c 1 -I 3g-lte 8.8.8.8 

Если вы действовали согласно руководству по установке модема LTE, имя интерфейса LTE будет 3g-lte . Кроме того, вы можете получить его из выходных данных команды ifconfig в качестве интерфейса, который использует протокол Point-to-Point .

Настройка маршрутизации и межсетевого экрана

Сначала мы настраиваем статическую маршрутизацию для обоих подключений, чтобы после загрузки системы весь сетевой трафик мог проходить через интерфейс WAN. Это можно сделать внутри конфигурации в / etc / config / network, где значение метрики ’10’ установлено для интерфейса ‘wan’, стандартная маршрутизация отключена в разделе interface ‘lte’ через значение defaultroute ‘0’ , а затем добавляется новый раздел с новым правилом маршрутизации route ‘lte_route’ , который используется для интерфейса lte.

Отдельные элементы в правиле маршрутизации route ‘lte_route’ могут быть установлены в соответствии с примером для / и т.д. / config / сеть . Элементы target и netmask устанавливаются на адрес 0.0.0.0 , который управляет правилом маршрутизации по умолчанию. Адрес для шлюза установлен на 10.64.64.64 , который является стандартным адресом при подключении с PPP (протокол точка-точка). Этот адрес также можно просмотреть с помощью команды ifconfig.

LTE должен иметь более высокую метрику, чем WAN, потому что для маршрутизации используется путь с меньшей метрикой. Более подробную информацию о возможных вариантах конфигурации можно найти в вики OpenWrt.

/ и т.д. / config / сеть
 конфигурационный интерфейс 'wan'
        опция ifname 'eth2'
        вариант proto 'dhcp'
        опция defaultroute '1'
        опция метрика '10'

конфигурационный интерфейс 'lte'
        вариант прото '3g'
        дополнительное устройство '/ dev / ttyUSB2'
        опция услуги 'umts'
        вариант apn 'интернет'
        пин-код опции '1234'
        опция ipv6 'auto'
        опция defaultroute '0'

config route 'lte_route'
        опция интерфейса 'lte'
        option target '0.0,0,0 '
        дополнительный шлюз '10 .64.64.64 '
        опция netmask '0.0.0.0'
        опция метрическая '50' 

lte — это логическая метка в файле конфигурации / etc / config / network , которая отличается от имени интерфейса, которое можно получить с помощью команды ifconfig .

Последний шаг — настройка отслеживания соединений в конфигурации брандмауэра / etc / config / firewall . В разделе WAN просто установите параметр conntrack ‘1’ .

/ и т. Д. / Config / брандмауэр
 зона конфигурации
        опция conntrack '1'
        имя опции 'wan'
        опция ввода 'REJECT'
        опция вывода 'ПРИНЯТЬ'
        вариант вперед 'REJECT'
        опция masq '1'
        опция mtu_fix '1'
        опция сети 'wan wan6 lte' 

Установка и настройка mwan3

Сервис mwan3 не может работать параллельно с Multiwan. Если установлен Multiwan, необходимо деактивировать его с помощью одной из следующих команд.

 root @ turris: ~ # /etc/init.d/multiwan stop
root @ turris: ~ # /etc/init.d/multiwan отключить 

После этого установите пакет mwan3:

 root @ turris: ~ # обновление opkg
root @ turris: ~ # opkg install mwan3 

После установки mwan3 выполните настройки, изменив конфигурацию в / etc / config / mwan3 . Конфигурация по умолчанию удаляется и заменяется новой, в которой мы определяем раздел interface и member для wan и lte и раздел policy и rule .Правило раздела «по умолчанию» определяет, что весь трафик маршрутизируется на основе правила, которое определено в разделе политики «wan_lte» .

/ и т. Д. / Config / mwan3
 конфигурационный интерфейс 'wan'
list track_ip '217.31.204.130'
list track_ip '193.29.206.206'
list track_ip '8.8.4.4'
list track_ip '8.8.8.8'
опция включена '1'
вариант надежности '1'
количество вариантов '1'
время ожидания опции '2'
вариант интервала '5'
вариант вниз '3'
вариант до '8'

конфигурационный интерфейс 'lte'
Кириллович '217.31.204.130 '
list track_ip '193.29.206.206'
list track_ip '8.8.4.4'
list track_ip '8.8.8.8'
опция включена '1'
вариант надежности '1'
количество вариантов '1'
время ожидания опции '2'
вариант интервала '5'
вариант вниз '5'
вариант до '10'

политика конфигурации 'wan_lte'
список use_member 'wan_m1_w1'
список use_member 'lte_m2_w2'
опция last_resort "недоступен"

член конфигурации 'wan_m1_w1'
опция интерфейса 'wan'
метрика опции '1'
вес опции '1'

член конфигурации 'lte_m2_w2'
опция интерфейса 'lte'
метрика опции '2'
вес варианта '2'

правило конфигурации 'по умолчанию'
вариант прото 'все'
вариант липкий '0'
опция use_policy 'wan_lte'
option dest_ip '0.0,0.0 / 0 '

Отдельные элементы в данных разделах имеют следующие значения:

Раздел интерфейса

  • track_ip — IP-адрес, на котором проверяется соединение

  • enable — активирует данный интерфейс

  • надежность — определяет, сколько IP-адресов, определенных в track_ip , должно отвечать на запрос, чтобы данный интерфейс считался активным.

  • count — количество запросов, отправленных на адрес, определенный как track_ip во время теста

  • таймаут — перерыв в секундах между отдельными тестовыми запросами

  • interval — интервал времени в секундах между отдельными тестами

  • вниз — количество неудачных тестов, необходимых для признания соединения неактивным

  • вверх — количество успешных тестов, необходимых для произнесения соединения активным

Раздел участников

  • interface — устанавливает интерфейс, который раздел элементов применяет к

  • метрика — элементы, помеченные как , элементы с меньшим значением имеют приоритет над элементами с большим значением в рамках политики . раздел

    .
  • вес — элементов с идентичным значением метрики распределяют передаваемые данные на основе отношения установленных значений

Раздел политики

  • use_member — определяет список используемых элементов элементов

  • last_resort — определяет, что происходит с пакетами в случае, если все интерфейсы, определенные через use_member, неактивны.Возможные значения: unreachable (возвращенный ответ: unreachable ), blackhole (пакеты незаметно отбрасываются) или default .

Правило «по умолчанию», раздел

Устанавливает стандартное правило переадресации, используемое для всех передаваемых данных.

  • proto — имена протоколов, к которым применяется данное правило

  • sticky — разрешает маршрутизацию данных с одним и тем же исходным IP-адресом в пределах исходного интерфейса в течение времени, установленного лимитом тайм-аута.

  • use_policy — определяет используемую политику

  • dest_ip — устанавливает целевой IP-адрес (или диапазон адресов), для которого используется правило. 0.0.0.0/0 устанавливает использование для всех целевых адресов.

Наконец, мы запускаем службу mwan3 и перезапускаем сеть служб и брандмауэр:

 корень @ turris: ~ # mwan3 start
root @ turris: ~ # /etc/init.d/network restart
root @ turris: ~ # /etc/init.d/firewall restart 

Имя интерфейса должно соответствовать имени интерфейса в конфигурационном файле / etc / config / network .

Тестирование

Чтобы проверить настройку mwan3, запустите:

 root @ turris: ~ # mwan3 status 

Чтобы проверить соединение, вы можете использовать один из веб-сервисов (например,http://ip4.me), которые отображают общедоступный IP-адрес. После отключения кабеля от WAN-интерфейса система должна автоматически перенаправить трафик через LTE, что будет проявляться в смене IP-адреса.

Другие варианты использования и настройки сервиса mwan3 описаны в вики OpenWrt.

Введение в Mwan3, краткое изложение учебника

MWAN3 на OpenWRT может поддерживать несколько сетевых кабелей или несколько учетных записей PPPoE при использовании набора номера и балансировки нагрузки.И он также может обнаруживать линию прерывания и автоматически маскировать линию прерывания с помощью команды ping. Macroid также поддерживает IP, порт и даже DNSMASQ с использованием доменных имен для интеллектуальной переадресации нескольких линий. Очень практично. В основном используется в следующих сценариях:

1. В Интернете много людей, и сетевой кабель не может удовлетворить потребности, и необходимо ввести несколько сетевых кабелей для балансировки нагрузки.

2, дома уже есть широкополосный доступ, но, поскольку ваш мобильный телефон потребляет высокий уровень, оператор отправил вам широкополосный доступ (часто это делает China Mobile), тогда лучше объединить его с использованием широкополосного доступа.

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

4, хотите доставить трафик, хотите, чтобы некоторый трафик передавался в широкополосную сеть A, другой трафик направляется в широкополосную сеть B. Или автоматически соедините два разных сегмента сети.


Это не беспокоит в OpenWRT, в основном разделено на следующие шаги.

1. Используйте исходный порт LAN для порта WAN и добавьте новую VLAN для этой новой WAN.

2, установите все новые порты WAN и значения MAC

3. Настройте новый порт WAN на MWAN3 и установите коэффициент разделения каждого порта WAN.

4. Напишите соответствующую стратегию маршрутизации и добавьте ее в соответствующие правила.

Инструкции по настройке

# Это пример конфигурации mwan3. Для работы mwan3 вам понадобится как минимум. Это пример настройки MWAN3. Для запуска MWAN3 может потребоваться по крайней мере несколько из следующего:
#
# — 2 интерфейса (2 интерфейса)
# — 2 ЧЛЕНА (2 члена)
# — 1 Политика (1 политика)
# — 1 правило (1 rule)
#
# Сначала определите все ваши WAN-интерфейсы.Имя интерфейса должно совпадать с именем
#, используемым в вашей сетевой конфигурации:
(Прежде всего, установите все порты WAN, имя порта WAN должно соответствовать файлу конфигурации NetWork)

Интерфейс

config ‘interface’ ‘wan1’
option ‘enabled’ 1 ‘
List’ track_ip » 8.8.4.4 ‘(Эти IP-адреса являются тестовыми IP, убедитесь, что их 4, их 4, первые два — бесплатные DNS-серверы предоставляется Google, и внутренний доступ должен быть медленным.)
list ‘track_ip’ ‘8.8.8.8 ‘
list’ track_ip » 208.67.222.222 ‘
list’ track_ip » 208.67.220.220 ‘
Option’ Reliability » ‘2’ (надежность, надежность указанного выше IP, должно быть количеством отвечающих ссылок . Простое высказывание — запросить указанный выше IP-адрес для проверки связи)
Параметр «count» «1» (проверка связи несколько раз)
Параметр «Тайм-аут» «2» (если время истекло, время ожидания составляет несколько секунд)
Параметр «интервал» ‘5’ (интервал между несколькими эхо-запросами)
Опция «Вниз» «3» (если несколько эхо-запросов не проходят, это будет определяться портом WAN)
Опция «Вверх» «8» (когда несколько пингов могут быть успешными , он определит WAN-порт, который снова отключен и находится в режиме онлайн.)

config ‘interface’ wan2 ‘
option’ enabled ‘1’
list ‘track_ip’ 8.8.8.8 ‘
list’ track_ip ‘208.67.220.220’
option ‘надежность’ 1 ‘
option’ count » 1 ‘
option’ timeout ‘2’
option ‘interval’ 5 ‘
option’ down ‘3’
option ‘up’ 8 ‘

2. Участник

# Далее определите элемент и настройте метрику и значение веса для этого элемента. (Затем установите веса элемента и значения переходов)
# Каждый интерфейс может иметь несколько определений элементов.Дайте каждому ЧЛЕНУ ПРАВИЛЬНОЕ (Каждый интерфейс может содержать несколько определений членов. Каждое имя члена должно иметь правильное имя)
# name (A-Z, a-z, 0-9, «_» и без пробелов).

config ‘member’ wan1_m1_w3 ‘
option’ interface ‘wan1’
Option ‘metric’ 1 ‘(range 1-1000)
Option’ weight ‘3’ (range 1-1000)

config ‘member » wan1_m2_w3 ‘
option’ interface ‘wan1’
option ‘metric’ 2 ‘
option’ weight » 3 ‘

config’ member ‘wan2_m1_w2’
option ‘interface’ wan2 ‘
option’ metric ‘ ‘1’
опция ‘вес’ 2 ‘

config’ member ‘wan2_m2_w2’
option ‘interface’ wan2 ‘
option’ metric ‘2’
option ‘weight’ ‘2’


3.Стратегия

# После этого создайте политику маршрутизации. Политика маршрутизации, состоящая из одного или нескольких (затем создайте политику маршрутизации. Включите одного или нескольких участников. Каждая политика должна иметь правильное имя. Вы можете создать несколько стратегий, чтобы вы могли выполнять разные обходы связи с разными основными / временными портами WAN)
# участник. Дайте каждой политике правильное имя (A – Z, a – z, 0–9, «_» и без пробелов). Вы
# можете создать несколько политик, так что для разного трафика на
# возможно использование разных первичных и / или резервных интерфейсов.

Config ‘policy’ WAN1_ONLY ‘(только WAN1)
list’ use_member ‘wan1_m1_w3’

Config ‘policy’ wan2_only ‘(только WAN2)
list’ use_member » wan2_m1_w2 ‘

AN

Config WAN1, WAN2 Load Balancing)
list ‘use_member’ ‘wan1_m1_w3’
list ‘use_member’ ‘wan2_m1_w2’

Config ‘policy’ WAN1_PRI_WAN2_SEC ‘(WAN1 Lord, WAN2)
list’ use_member ‘ wan2_m2_w2 ‘

Config’ policy ‘WAN2_PRI_WAN1_SEC’ (WAN2 Lord, WAN1)
list ‘use_member’ ‘wan1_m2_w3’
list ‘use_member’ ‘wan2_m1_w2’

config define # И для завершения правил трафика определите конфигурацию.Правила совпадают сверху вниз с (наконец, устанавливая правила связи. Его совпадения с правилами, которые вы установили, совпадают сверху вниз, если вы определяете соответствие правил, назад Правила будут проигнорированы. Если была установлена ​​опция баланса, Mwan3 позволит каждому новому пакету перейти к балансировке нагрузки, если не установлен, то MWAN3 автоматически загружает баланс в соответствии с целевым адресом)
# bottom order. Если вы определяете правило и оно соответствует, все следующие правила игнорируются.
#
# Если установлена ​​опция equalize, mwan3 будет балансировать нагрузку каждый новый сеанс на один и тот же хост
#.Если не установлен, балансировка нагрузки будет зависеть от места назначения.

config ‘rule’
Option ‘src_ip’ 192.168.21.0/24 ‘(исходный IP-адрес, представление сетевых сегментов)
Option’ Proto ‘TCP’ (укажите соглашение)
OPTION ‘DEST_PORT’ » 563 ‘(Target Порт)
Option ‘use_policy’ ‘WAN2_ONLY’ (укажите, какая политика установлена ​​выше)

config ‘rule’
option ‘src_ip’ 192.168.21.0/24 ‘
option’ proto ‘tcp’
option ‘dest_port’ 995 ‘
option’ use_policy » wan1_only ‘

config’ rule ‘
Option’ dest_ip »88.154.0.0 / 16 ‘(Целевой IP-адрес)
option’ proto » tcp ‘
Option’ DEST_PORT ‘1024: 65535’ (все порты 1024-65535)
Option ‘Equalize’ ‘1’ (выбрано 1. Если выбрано, Mwan3 позволит каждому новому пакету перейти к балансировке нагрузки. Если нет, MWAN3 автоматически загрузит балансировку в соответствии с целевым адресом)

option ‘use_policy’ ‘wan1_wan2_loadbalanced’

config ‘rule’
option ‘dest_ip’ ‘ 77.11.41.0/24 ‘
option’ proto » tcp ‘
option’ dest_port ‘1024: 65535’
option ‘use_policy’ ‘wan1_pri_wan2_sec’

config ‘rule’
option ‘dest_ip’ 112.136.0.0 / 16 ‘
option’ proto » udp ‘
option’ dest_port ‘5352’
option ‘use_policy’ ‘wan2_pri_wan1_sec’

config ‘rule’
option ‘dest_ip’ 0.0.0.0/0 ‘
option ‘use_policy’ ‘wan1_wan2_loadbalanced’

Установка и настройка

Загрузите и установите

 обновление opkg
opkg установить mwan3
opkg установить luci-app-mwan3 

2. / etc / config / mwan3 конфигурация

В следующем примере показано, как напрямую изменить файл конфигурации, запустить
/ etc / init.d / mwan3 start
Измените / etc / config / mwan3
Объяснение: После изменения следующего файла конфигурации нагрузка на двойной сетевой порт сбалансирована, и скорость сети накладывается.

 1 конфигурационный интерфейс 'wan'
 2 опция включена '1'
 3 списка track_ip '8.8.4.4'
 4 списка track_ip '8.8.8.8'
 5 список track_ip '208.67.222.222'
 6 список track_ip '208.67.220.220'
 7 вариант надежности '2'
 8 вариантов кол-во '1'
 9 вариант тайм-аута '2'
10 вариантов интервала '5'
11 вариант вниз '3'
12 вариант до '8'
13 конфигурационный интерфейс 'wan2'
14 опция включена '1'
15 список track_ip '8.8.8.8 '
16 список track_ip '208.67.220.220'
17 вариант надежности '1'
18 вариантов, кол-во '1'
19 вариант тайм-аута '2'
20 вариантов интервала '5'
21 вариант вниз '3'
22 вариант до '8'
23 член конфигурации 'wan_m1_w1'
24 варианта интерфейса 'WAN'
25 вариант метрики '1'
26 вариант веса '1'
27 член конфигурации 'wan2_m1_w1'
28 вариант интерфейса 'wan2'
29 вариант метрики '1'
30 вариант веса '1'
31 конфигурационная политика 'wan_only'
32 список use_member 'wan_m1_w1'
33 конфигурационная политика 'wan2_only'
34 список use_member 'wan2_m1_w1'
35 config policy 'сбалансированная'
36 список use_member 'wan_m1_w1'
37 список use_member 'wan2_m1_w1'
38 правило конфигурации 'default_rule'
39 option dest_ip '0.0,0,0 / 0 '
40 вариант use_policy 'сбалансированный' 

3. Просмотреть статус

  статус mwan3
  

Может видеть процент загрузки двойного сетевого порта и устанавливать правила

Цитата

https://blog.csdn.net/qq_29373285/article/details/115872289

Потребляет ли мой маршрутизатор данные?

Пятница, 21 мая 2021 г. Дэвид Томс

Маршрутизатор — это система на базе Linux, имеющая список запущенных программ для нормальной работы.Есть 3 процесса, которые потребляют некоторые данные, даже если вы не используете маршрутизатор. Это служба mwan3, предназначенная для переключения при отказе нескольких WAN или балансировки нагрузки: служба NTP, которая синхронизирует время с серверами времени; и панель управления маршрутизатором, когда она отображается в браузере, которая обнаруживает подключение к Интернету и показывает статус пользователям.

сервис mwan3
«Mwan3» — это процесс мониторинга каждого соединения WAN с последующей автоматической маршрутизацией исходящего трафика на другой интерфейс WAN, если первый интерфейс WAN теряет соединение.Это основано на присвоенном числовом весе. При выполнении этого процесса приоритетом исходящего трафика WAN будет WAN> Repeater> Tethering> 4G-модем. Когда этот прогресс отключен, маршрутизатор может выбрать только одно WAN-соединение на основе текущей таблицы маршрутизации. Чтобы избежать путаницы, у вас должно быть только одно WAN-соединение с отключенным mwan3.

Сетевой трафик службы mwan3 составляет около 220 КБ в час.

Убедитесь, что он работает

Но как проверить, работает ли служба mwan3 в фоновом режиме?

1.Войдите в свой маршрутизатор по SSH, затем проверьте результат выполнения команды, есть ли какие-либо результаты выполнения mwan3.

2. Кроме того, список некоторых других доступных команд выглядит следующим образом.

Выключить

Но что, если вы хотите отключить службу mwan3, правильный способ — полностью удалить ее.

1. Войдите в веб-интерфейс вашего маршрутизатора, перейдите в ПРИЛОЖЕНИЯ> Плагины и выполните поиск «mwan3» в поле фильтра.

2. Найдите пакет mwan3 и нажмите «Удалить», чтобы удалить этот пакет.

3. Если вы хотите восстановить эту функцию, просто установите этот пакет mwan3 обратно.

Изменить интервалы

Обратите внимание, что mwan3 работает, проверяя связь с некоторыми общедоступными серверами в Интернете, чтобы определить, доступен ли Интернет. Маршрутизатор будет пинговать OpenDNS и общедоступные DNS-серверы Google каждые 5 секунд. Вы можете изменить эти интервалы, используя следующие методы:

1. SSH войдите в этот маршрутизатор, введите «vi / etc / config / mwan3», чтобы перейти в систему конфигурации.

2. Найдите интерфейс, для которого вы хотите изменить интервал, здесь мы возьмем WAN в качестве примера.

4. Нажмите кнопку «Esc», чтобы выйти из режима печати.

5. Одновременно нажмите «shift» + «:», затем введите «wq» для записи и выхода.

Служба NTP

Служба NTP обеспечивает синхронизацию времени на основе сети эталонных часов, расположенных по всему миру. Обратите внимание, этот процесс очень важен. Вы должны оставить его включенным. Если ваш маршрутизатор не имеет правильной настройки времени, он может работать некорректно.Например, вы не можете подключиться к некоторым службам vpn. Сетевой трафик службы NTP составляет около 5 КБ в час.

Как отключить службу NTP?

1. SSH войдите в этот маршрутизатор, введите «vi / etc / config / system», чтобы перейти в систему конфигурации.

2. Найдите службу NTP, как показано на следующем рисунке.

3. Нажмите кнопку «i» на клавиатуре, чтобы перейти в режим редактирования, затем вы можете изменить параметр включенной опции с «1» на «0».

4.Нажмите кнопку «Esc», чтобы выйти из режима редактирования.

5. Одновременно нажмите «shift» + «:», затем введите «wq» для записи и выхода.

Панель управления через Интернет

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

Сетевой трафик службы веб-конфигурации составляет около 10 КБ в час.

Как отключить службу веб-конфигурации?

Вы можете просто закрыть портал веб-конфигурации, и он больше не будет потреблять данные.

О GL.iNet

GL.iNet создает сетевое оборудование и программные решения, которые обеспечивают доступное и безопасное сетевое соединение для семей и предприятий по всему миру. Мы работаем с широким спектром отраслей, решая повседневные проблемы с подключением к Интернету в офисах и предоставляя комплексные сетевые решения, такие как интеллектуальные здания и управление автопарком IoT. В GL.iNet мы верим, что любой успешный бизнес строится на прочном и безопасном фундаменте, поэтому нашим главным приоритетом является улучшение сетевой безопасности и надежности для наших партнеров.

Балансировка нагрузки mwan3 от Openwrt, многострочная система с несколькими набираемыми номерами

mwan (mulit wan), то есть порт multi-wan и технология multi-dial. Он может обеспечить балансировку нагрузки исходящего трафика WAN на основе распределения веса или переключения при отказе с несколькими интерфейсами WAN.
mwan3 запускается событием горячего подключения и может обнаруживать изменения интерфейса и его действительность.

Сценарии использования:
1. Маршрутизатор поддерживает как сетевой кабель, так и 4g.В настоящее время mwan3 можно использовать для управления сетевым кабелем и 4g, а также для настройки распределения трафика в соответствии с установленным весом для достижения баланса нагрузки.
2. Из-за ограничения трафика восходящего порта LAN, mwan3 может использовать несколько глобальных сетей для достижения одновременного трафика и расширения трафика.

  .config - Конфигурация OpenWrt
 > LuCI> 3. Приложения ────────────────────────────────────────────── ─────────────────
  ┌───────────────────────────────── 3.(-) ────────────────────────────────────────────────── ────────────────────── │
  │ │ <> luci-app-https-dns-proxy ..................... DNS через HTTPS-прокси W│ │
  │ │ <> luci-app-ksmbd .......... Сетевые ресурсы - Ksmbd файлы ядра SMB│ │
  │ │ <> luci-app-lxc ....................................... Управление LXC W│ │
  │ │ <> luci-app-minidlna .............................. LuCI Поддержка min│ │
  │ │ <> luci-app-mjpg-streamer ........ Конфигурация сервиса MJPG-Streamer m│ │
  │ │ <*> luci-app-mwan3 ........ Поддержка LuCI для MWAN3 multiwan hotplug s│ │
  │ │ <> luci-app-nextdns ................................ Поддержка LuCI для Ne│ │
  │ │ <> luci-app-nft-qos ....................................... Qos по Nft│ │
  │ │ <> luci-app-nlbwmon ...................... учетная запись полосы пропускания на основе Netlink │
  │ │ <> luci-app-ntpc .............. Конфигурация синхронизации времени NTP m│ │
  │ │ <> luci-app-nut............................. Настройка сетевых средств ИБП│ │
  │ │ <> luci-app-ocserv ......................... Поддержка LuCI для OpenConnec│ │
  │ │ <> luci-app-olsr ....................... Конфигурация и состояние OLSR m│ │
  │ │ <> luci-app-olsr-services │ │
  │ └────v (+) ────────────────────────────────────────── ───────────────────────────── │
  ├──────────────────────────────────────────────────── ─────────────────────────────────
  │ <Выбрать> <Выход> <Справка> <Сохранить> <Загрузить> │
  └──────────────────────────────────────────────────── ─────────────────────────────────
  
  • Параметры настройки веб-интерфейса

название Характеристики
интерфейс Установите параметры интерфейса mwan, настройки сервера ping, время ping, настройки интервала, настройки уведомлений и т. Д.
член Используется для установки количества переходов (т. Е. Приоритета интерфейса) и доли каждого интерфейса MWAN.
Стратегия Сгруппируйте участников в группы и сообщите MWAN, как распределять трафик с помощью этой стратегии в «правилах». Сначала будут использоваться участники с более низкой метрикой, а участники с такой же метрикой будут балансировать нагрузку трафика.
  • В соответствии с вашим приложением установка завершена, и файл конфигурации имеет следующий вид
  [адрес электронной почты защищен]: ~

config globals 'globals'
        опция mmx_mask '0x3F00'
        опция rtmon_interval '5'
        список rt_table_lookup '1'
        список rt_table_lookup '2'

конфигурационный интерфейс 'wan'
        опция включена '1'
        list track_ip '8.8.4.4 '
        list track_ip '8.8.8.8'
        list track_ip '208.67.222.222'
        list track_ip '208.67.220.220'
        семейство опций 'ipv4'
        вариант надежности '2'
        опция initial_state 'онлайн'
        опция track_method 'ping'
        количество вариантов '1'
        вариант размера '56'
        option max_ttl '60'
        опция check_quality '0'
        время ожидания опции '2'
        вариант интервала '5'
        option failure_interval '5'
        опция recovery_interval '5'
        вариант вниз '3'
        вариант до '3'
        список flush_conntrack 'ifup'
        список flush_conntrack 'ifdown'
        список flush_conntrack 'connected'
        список flush_conntrack 'отключен'

политика конфигурации 'wan_only'
        list use_member 'wan_m1_w3'
        опция last_resort 'по умолчанию'

политика конфигурации 'сбалансированная'
        list use_member 'wan_m1_w3'
        list use_member 'wan4g_m3_w1'
        опция last_resort 'по умолчанию'

правило конфигурации https
        вариант липкий '1'
        опция dest_port '443'
        опция proto 'tcp'
        опция use_policy 'сбалансированный'

правило конфигурации 'default_rule_v4'
        option dest_ip '0.0,0,0 / 0 '
        опция use_policy 'сбалансированный'
        семейство опций 'ipv4'

правило конфигурации 'default_rule_v6'
        опция dest_ip ':: / 0'
        опция use_policy 'сбалансированный'
        семейство опций 'ipv6'

интерфейс конфигурации 'wan_4g'
        опция включена '1'
        опция initial_state 'онлайн'
        семейство опций 'ipv4'
        list track_ip '8.8.8.8'
        list track_ip '8.8.4.4'
        list track_ip '114.114.114.114'
        list track_ip 'www.baidu.com'
        опция track_method 'ping'
        вариант надежности '2'
        количество вариантов '1'
        вариант размера '56'
        option max_ttl '60'
        опция check_quality '0'
        время ожидания опции '2'
        вариант интервала '5'
        option failure_interval '5'
        опция recovery_interval '5'
        вариант вниз '3'
        вариант до '3'
        список flush_conntrack 'ifup'
        список flush_conntrack 'ifdown'
        список flush_conntrack 'connected'
        список flush_conntrack 'отключен'

член конфигурации 'wan_m1_w3'
        опция интерфейса 'wan'
        метрика опции '1'
        вес опции '3'

член конфигурации 'wan4g_m3_w1'
        опция интерфейса 'wan_4g'
        метрика опции '3'
        вес опции '1'

политика конфигурации 'wan4g_only'
        list use_member 'wan4g_m3_w1'
        опция last_resort 'по умолчанию'


  
  • mwan3.приложение пользовательского скрипта

При изменении статуса WAN-порта процесс mwan3 автоматически вызывает сценарий mwan3.user и выполняет соответствующую обработку в соответствии с глобальными параметрами ACTION, INTERFACE и DEVICE.

Например, когда порт wan отключен, порт wan_4g будет автоматически перезапущен.

  echo "$ INTERFACE $ INTERFACE $ ACTION"> / dev / console

case "$ ACTION" в
ifdown | \
отключен)
если ["$ INTERFACE" = "wan"]
    тогда
        echo "перезапустить 4G"> / dev / console

        ifdown wan_4g
        ifup wan_4g

        echo "готово"> / dev / console
фи
;;
подключен | \
ifup)
echo "нет действия"> / dev / console
;;
*)
echo "*"> / dev / console
;;
esac

возврат 0
  

сомнения? ?
1.Сетевой порт wan + usb 4g wan.
2. Если сетевой кабель WAN-порта не подключается в первый раз, петлевая сеть системы автоматически активирует сеть 4G.
3. При подключении сетевого кабеля WAN-порта петлевая сеть системы автоматически переключается на сеть WAN-порта.
4. После отсоединения сетевого кабеля порта WAN петля системы не переключается снова на сеть 4g? ?
5. Интерфейс 4g (ifdown ifup) нужно перезапустить снова, а последний перезапускает сеть для подключения к 4g снова ???

MultiWAN [V3.13]

Используя функцию MultiWAN, вы можете включить до 250 интерфейсов WAN для:

  • Обеспечивает балансировку нагрузки по нескольким интерфейсам WAN на основе присвоения числового веса.

  • Отслеживайте соединения с помощью повторяющихся тестов ping и может автоматически направлять исходящий трафик на другой интерфейс WAN, если первый интерфейс WAN теряет связь.

  • Установите правила, чтобы указать, какие исходящие соединения должны использовать какой интерфейс WAN

  • Настройте правила на основе различных параметров, таких как IP: s, порт (ы) и протокол.

Зачем мне использовать mwan3?

Если у вас несколько подключений к Интернету, вы хотите контролировать, какой трафик проходит через какие WAN.

Mwan3 может обрабатывать несколько уровней первичного и резервного интерфейсов, с балансировкой нагрузки или без нее. У разных источников могут быть разные основные или резервные глобальные сети.

Mwan3 использует маску метки netfilter для совместимости с другими пакетами (такими как OpenVPN, PPTP VPN, QoS-скрипт, туннели и т. Д.), Поскольку вы можете настроить трафик для использования таблицы маршрутизации по умолчанию.

Mwan3 также может балансировать нагрузку трафика, исходящего от самого маршрутизатора.

Настройки MultiWAN разделены на вкладки.

Настройки

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

→ Читать дальше …

участников

Вкладка Members позволяет вам создавать группы участников для интерфейсов, чтобы использовать их с политиками для управления трафиком.Параметры метрики и веса используются для управления трафиком в группах участников.

→ Читать дальше …

Политики

Вкладка Policies позволяет группировать участников в наборы политик для использования с правилами трафика.

→ Читать дальше …

Правила

Вкладка Rules позволяет вам определить, как трафик LAN должен фильтроваться и распределяться по доступным глобальным сетям.

Правила — это способ применения политик к трафику.Каждое правило предназначено для пакетов с каким-либо фильтром.

Правила применяются в порядке сверху вниз. Несколько правил, которые могут использовать одну и ту же политику, но нацелены на разный трафик.

→ Читать дальше …

1: Интерфейсы WAN

В качестве первого шага вам необходимо добавить все сетевые интерфейсы, которые должны быть частью MultiWAN.

→ Читать дальше …

2: участники

Затем в каждом интерфейсе должен быть хотя бы один член, причем каждому интерфейсу присваиваются соответствующие метрика и вес.

→ Читать дальше …

4: Правила

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

→ Читать дальше …

Конфигурация OpenWrt MWAN3

http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=178799

# Это пример конфигурации mwan3. Для работы MWAN3 вам понадобится хотя бы пример настройки MWAN3. Для запуска MWAN вам потребуется как минимум следующее:
#
# -2 Интерфейсы (2 соединителя)
# -2 Члены (2 члена)
# -1 политика (одна стратегия)
# 1 правило (1 правило)
#
# Определите все ваши интерфейсы WAN.Имя интерфейса должно совпадать с именем
#, используемым в вашей сетевой конфигурации:
(Все порты WAN должны быть установлены первыми, и имя WAN будет таким же, как имя порта WAN в файле конфигурации сети.)
Config ‘ interface ‘wan1’
Option ‘enabled’ 1 ‘
List’ track_ip ‘8.8.4.4’ (это тестовые IP-адреса, проверьте, можно ли пропинговать проход. Их 4, первые два — бесплатные DNS-серверы, предоставленные Google. , а внутренний доступ должен быть относительно медленным.)
Список ‘track_ip’ 8.8.8.8 «
Список« track_ip »208.67.222.222 чтобы запросить указанный выше IP-адрес, несколько раз могут пройти пинг)
Опция «count ‘1» (ping несколько раз)
Опция «Timeout» 2 (тайм-аут после проверки связи через несколько секунд)
Option «Interval’ 5 ‘(временной интервал между несколькими pings)
Опция ‘Down’ 3 ‘(когда найдено несколько ping, WAN отключена)
Option’ Up ‘8’ (когда несколько ping могут быть успешными, предполагается, что линия была сброшена и WAN порт находится в сети)

Config ‘interface’ wan2 ‘
Option’ enabled ‘1’
List ‘track_ip’ 8.8.8.8 ‘
Список’ track_ip ‘208.67.220.220’
Опция ‘Надежность’ 1 ‘
Опция’ count ‘1’
Опция ‘Тайм-аут’ 2 ‘
Опция’ интервал ‘5’
опция ‘Вниз’ 3 ‘
option ‘Up’ ‘8’

# Next Определите и настройте для этого значения метрики и веса. (Затем установите вес и значение шага элемента)
# Каждый интерфейс может иметь несколько определений элементов. Дайте каждому члену правильный, каждый интерфейс может содержать несколько определений членства. У каждого имени участника должно быть правильное имя)
# имя (A – Z, A – Z, 0–9, «_» и без пробелов).

Элемент конфигурации ‘WAN1_M1_W3’
Опция ‘интерфейс’ Wan1 ‘
Опция’ метрическая ‘1’ (диапазон 1-1000)
Опция ‘Вес’ 3 ‘(диапазон 1-1000)

Элемент конфигурации’ WAN1_M2_W3 ‘
Option’ интерфейс ‘Wan1’
Option ‘Metric’ 2 ‘
Option’ weight ‘3’

Config ‘member’ WAN2_M1_W2 ‘
Option’ interface ‘wan2’
Option ‘metric’ 1 ‘
Option’ Weight ‘2 ‘

Config’ member ‘WAN2_M2_W2’
Option ‘interface’ wan2 ‘
Option’ Metric ‘2’
Option ‘Weight’ 2 ‘

# После этого создайте политику маршрутизации.Политика маршрутизации состоит из одного или нескольких (а затем создает политику маршрутизации). Включает в себя одного или нескольких членов. У каждой политики должно быть правильное название. Можно создать несколько политик, чтобы разный трафик мог принимать разные первичные / вторичные порты WAN.
# участников. Дайте каждой политике правильное имя (A – Z, A – Z, 0–9, «_» и без пробелов). Вы
# можете создать несколько политик, так что это возможно для разного трафика на
# иметь разные первичные и / или резервные интерфейсы.

Config ‘policy’ wan1_only ‘(Only go wan1)
List’ Use_member ‘WAN1_M1_W3’

Config ‘policy’ wan2_only ‘(Only go wan2)
List’ Use_member ‘wan2_m1_w2 policy’

9_load2 Config , балансировка нагрузки wan2)
Список ‘Use_member’ WAN1_M1_W3 ‘
Список’ Use_member ‘wan2_m1_w2’

Config ‘policy’ wan1_pri_wan2_sec ‘(Wan1 master, wan2 Times)
Список’ Use_member ‘WAN1_M289_Wan2_Me1000_WAN1_M289_Wan2 Конфиг ‘policy’ wan2_pri_wan1_sec ‘(wan2 master, wan1 Times)
Список’ Use_member ‘WAN1_M2_W3’
Список ‘Use_member’ wan2_m1_w2 ‘

# и для завершения настройки определите свои правила трафика.Правила сопоставляются сверху (и, наконец, устанавливает правило связи). Он из правил, которые вы настроили для сопоставления сверху вниз, если вы определяете сопоставление правил, следующие правила будут проигнорированы. Если опция баланса была установлена, MWAN3 будет заставлять каждый новый пакет переходить на тот же адрес хоста назначения для балансировки нагрузки, если не установлен, то MWAN3 автоматически загрузит баланс в соответствии с адресом назначения.
# Нижний заказ. Если вы определяете a и он совпадает, все следующие правила игнорируются.
#
# Если установлена ​​опция Equalize, mwan3 будет балансировать нагрузку каждого нового сеанса на один и тот же хост
#. Если не установлен, балансировка нагрузки будет зависеть от пункта назначения.

Config ‘rule’
Option ‘Src_ip’ 192.168.21.0/24 ‘(исходный IP-адрес, поддержка представления сегмента сети)
Option’ Proto ‘TCP’ (укажите протокол)
Option ‘Dest_port’ 563 ‘(порт назначения)
Опция «Use_policy» wan2_only »(укажите, какую стратегию использовать выше)

Config« rule »
Option« src_ip »192.168.21.0 / 24 ‘
Option’ proto ‘TCP’

OpenWRT условная маршрутизация имени хоста с использованием MWAN3 и ipset

Мое главное требование — направлять интернет-трафик к определенному WAN-соединению условно в зависимости от его имени хоста. Например, если кто-то попытается получить доступ к facebook.com , twitter.com или youtube.com и т. Д., Я хочу, чтобы эти запросы направлялись через конкретную глобальную сеть (или интернет-маршрутизатор), а все остальные запросы должны маршрутизироваться через 2-е подключение к Интернету (WAN).

Вторым требованием было отслеживать и собирать статистику использования моей домашней локальной сети и сохранять ее для последующего анализа. Одним из мотивирующих факторов для сбора данных об использовании было то, что в нашей стране ходят слухи о том, что некоторые интернет-провайдеры (ISP) взимают больше данных, чем фактически потреблено пользователем 🙂

Ниже приведены настройки моей сети:

Источники диаграмм: lucid и excalidraw

Я использую маршрутизатор Linksys WRT 1900AC V2 (Cobra) с последней прошивкой OpenWRT (v19.07.5). Но вы можете использовать любое устройство, совместимое с OpenWRT, чтобы настроить это. Есть несколько прошивок типа OpenWRT i: e dd-wrt & 🍅 Tomato

Для начала вам необходимо настроить ssh на маршрутизаторе OpenWRT и получить доступ к маршрутизатору как пользователь root ssh -v [электронная почта защищена] . Большинство настроек можно выполнить через веб-интерфейс, но легко отслеживать изменения при настройке через командную строку, я делал резервные копии с помощью scp и редактировал файлы конфигурации на ноутбуке и отправлял их обратно на маршрутизатор через scp. .

OpenWRT имеет пакет mwan3 , который позволяет настраивать различные правила и политики для подключений WAN. Я использую mwan3 для настройки условной балансировки нагрузки / маршрутизации для выполнения моих вышеуказанных требований.

Для установки пакета mwan3 используйте

  обновление opkg
opkg установить mwan3  

После установки mwan3 отложите его и настройте IPSet, а позже мы можем ссылаться на имена IPSet и сразу создать файл конфигурации mwan3 .

Чтобы настроить динамическую базовую маршрутизацию WAN для имени хоста, вам нужно сделать 3 вещи

  1. создать ipset

    в приведенном выше twitter — это имя хэша ipset : ip — это своего рода шаблон, когда маршрутизатор получает свой первый запрос ping. Следующая команда выведет список всех наборов IP

    .

    Для получения информации о конкретном ip установите

    Где twitter — имя набора IP, Если система разрешила IP-адреса для имени, тогда эти IP-адреса будут отображаться в разделе Members , параметр

      [адрес электронной почты защищен]: ~ # ipset -L twitter
    Имя: twitter
    Тип: hash: ip
    Редакция: 4
    Заголовок: семейство inet hashsize 1024 maxelem 65536
    Объем в памяти: 416
    Ссылки: 1
    Количество записей: 9
    Члены:
    69.195.179.128
    69.195.182.128
    69.195.165.128
    104.244.42.2
    104.244.42.194
    104.244.42.66
    69.195.177.128
    209.237.193.128
    104.244.42.130  

    Здесь важно отметить следующее: когда вы запустите указанную выше команду, ip set будет добавлен в память, и они не сохранятся. Следовательно, перезапуск маршрутизатора очистит все добавленные ipset. Другими словами правила ipset сохраняются в памяти, при перезагрузке они будут потеряны. По этой причине я создал сценарий запуска (исходный код)

    , чтобы добавить все нужные IP-адреса при запуске роутера.В приведенном выше исходном тексте приведены инструкции по добавлению сценария запуска. Для получения дополнительной информации о том, как написать сценарий инициализации в OpenWRT, следуйте этому официальному документу

    .
  2. Обновление dnsmasq.conf с именем ipset и именем DNS

    Что такое dnsmasq

    Откройте

    в маршрутизаторе и добавьте записи ipset, как показано ниже

      ipset = /. Twitter.com/twitter  

    здесь, AFAIK twitter после последней косой черты — это имя ipset, ниже — образец dnsmasq.conf содержимое конфигурации

     
    
    
    
    
    
    
    
    
    
    ipset = /. facebook.com/facebook
    ipset = /. instagram.com/instagram
    ipset = /. fbcdn.net/fbcdn
    ipset = /. twitter.com/twitter
    ipset = /. twimg.com/twimg  

    после обновления файла конфигурации запустить

    для обновления dnsmasq Обратите внимание: В моем случае инструмент dnsmasq по умолчанию, поставляемый с установкой OpenWRT, не работал, и мне пришлось удалить предустановленный dnsmasq и установить dnsmasq-full , чтобы получить эту работу!

  3. Теперь IP-наборы готовы, последнее, что нужно сделать, это настроить mwan3

    Если вы новичок в mwan3 , в документации OpenWRT есть действительно хорошая документация, охватывающая все аспекты.маршрут

    Если вам интересно, как он разрешает все IP-адреса, поиск в Google по поиску ASN, я также изначально думал, что как найти все IP-адреса принадлежат определенному домену, и мне может потребоваться добавить их в таблицу маршрутизации или что-то в этом роде, но это здесь не требуется. Хорошо, это для вашей информации о кодах AS и IP-адресах, теперь запустите

    и проверьте, разрешен ли IP-адрес участника. Настроить mwan3 можно также через пользовательский интерфейс. Но для удобства я положу сюда элементы конфигурации.Я предполагаю, что вы в некоторой степени знакомы с конфигурациями OpenWRT и mwan3 , поэтому сразу перейдете в конфигурацию mwan3. mwan3 Конфигурация находится в

    , а ниже — образец конфигурации

      правило конфигурации 'facebook'
            вариант прото 'все'
            семейство опций 'ipv4'
            вариант липкий '1'
            опция ipset 'facebook'
            опция use_policy 'testp'  

    В приведенной выше конфигурации правила option sticky: важно установить true в пользовательском интерфейсе или ‘1’ в конфигурации option ipset: Имя набора IP создано с помощью ipset -N {name} и ipset = {domain} / {name} в файле конфигурации option use_policy: это имя политики, в которой WAN является членом, которому вы хотите переслать запрос, совпадающий с указанным выше ipset (i: e facebook.com запросы идут в Dialog 4G WAN) Измените вышеуказанную конфигурацию соответствующим образом и поместите ее в конфигурацию mwan3 вверху (получит приоритет из конфигов сверху вниз) Наконец перезапустите службу mwan3

    и проверьте статус mwan3

    или проверьте статус в веб-интерфейсе он должен показать добавленное выше новое правило в . Активные правила пользователя ipv4: раздел

Маршрутизатор

Войдите в роутер по ssh и проверьте следующие выходы

запустите указанную выше команду и проверьте, разрешены ли какие-либо IP-адреса участников

запустите указанную выше команду и проверьте, указано ли новое добавленное правило в разделе

активных правил пользователя ipv4.
  • Проверьте синтаксис конфигурации dnsmasq, используя команду ниже

Внешнее устройство (Ноутбук)

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

Речь идет о мониторинге трафика домашней сети с помощью OpenWRT. Это тема, отличная от обсуждаемой выше.

Я использовал пакет статистики luci app в OpenWRT, он обеспечивает хороший охват параметров, от сетевых интерфейсов до использования памяти и ЦП, и в collectd поддерживается намного больше. Этот пакет дает более похожие выходные данные графиков, которые доступны в графиках трафика LERAN. Поэтому я считаю, что этот пакет luci_app_statistics дает более профессиональную статистику в маршрутизаторах OpenWRT.

По умолчанию конфигурация rrd хранит данные мониторинга во временном каталоге ( / tmp / ), поэтому данные графика очищаются при перезапуске маршрутизатора.В приведенном выше документе они указали на некоторые сценарии и документы, в которых объясняется, как выполнить резервное копирование данных на внешнее устройство, подключенное к USB-интерфейсу маршрутизатора. Единственное, чего не хватает, — это как использовать существующий флеш-накопитель в формате vFat / Fat32 для резервного копирования данных. Так что мне пришлось гуглить и собирать информацию из разных источников, и при этом организовывать их здесь. Чтобы смонтировать раздел vFat / FAT32, вам понадобится следующий пакет в роутере

А дальше просто следуйте инструкциям в usb-install и usb-drive Чтобы делать резервную копию каждые X (т.е. 6 часов) интервал, вы можете использовать этот сценарий. Это планирование выполняется с помощью corntabs

Для редактирования crontab введите

и следующие по расписанию команды выключат радио Wi-Fi в середине ночи и включатся в 5 утра.А также он переключит политики MWAN3 в полночь и восстановит их обратно в 8 утра (именно здесь начинается пиковое время для SLT-подключений)

  0 * / 6 * * * /etc/init.d/rrdbackup резервное копирование
0 8 * * * uci set mwan3.all.use_policy = 'Dialog4G_Only'; uci commit; mwan3 перезапуск
0 0 * * * uci set mwan3.	

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *