Настройка бесперебойного доступа к сети с помощью утилиты Pinger на роутерах irzOS
| Статья справедлива для версий irzOS 1.1 и выше. |
При настройке промышленного роутера важно обеспечить бесперебойный доступ к сети. Чтобы в случае разрыва или нестабильной работы основного соеднинения роутер переключался на резервный канал .
Настройка осуществляется утилитой Pinger, которая выполняет две основные функции:
-
Мониторинг доступности: утилита периодически отправляет запросы к указанному целевому хосту (например, к публичному DNS-серверу), используя различные протоколы (ICMP, TCP, HTTP, ARP). Это позволяет отслеживать состояние критически важных каналов.
-
Динамическое управление маршрутизацией (Failover): при ухудшении качества связи (превышение порогов задержки или потерь пакетов) утилита автоматически увеличивает метрику проблемного маршрута и переключается на резервный, который в этом случае оказывается более приоритетным.
Перед настройкой Pinger
Первоначальная настройка происходит в разделе /mobile → modem.
Поле |
Описание |
SIM Slots |
Доступные сим-карты |
Primary SIM |
Основная сим-карта, которая будет являться приоритетной для подключения (только для одномодульных роутеров) |
Primary Timeout |
Время в секундах, по истечении которого модем переключится с резервной сим-карты обратно на основную |
Connect Timeout |
Время в секундах, в течение которого модем будет пытаться установить соединение через текущую сим-карту. Если за это время сим-карта не зарегистрировалась в сети оператора, роутер перезагрузит сотовый модуль по питанию и попытка подключения начнется заново |
Metric |
Числовой показатель, определяющий приоритет пути для передачи данных. Чем меньше значение метрики, тем более предпочтительным является маршрут. |
Default Route |
Маршрут по умолчанию |
| Автоматическое изменение метрики (Metric) применяется исключительно к тем интерфейсам, которые настроены как маршрут по умолчанию (Default Route). |
Пример настройки для одномодульного роутера при использовании двух сим-карт
В одномодульном роутере стоят две сим-карты с выходом в интернет. Проводное подключение к интернету (WAN) не используется. Таким образом, modem1 является единственным интерфейсом, который настроен как маршрут по умолчанию.
Чтобы при потере соединения на одной сим-карте роутер автоматически переключался на вторую, необходимо:
-
В разделе /mobile → modem настроить интерфейс modem1: задать параметры Primary SIM, Primary Timeout, Connect Timeout.
-
Настроить Pinger на адрес 77.88.8.8 (публичный DNS-сервер Яндекс) по протоколу ICMP, чтобы проверить доступ к интернету на текущей сим-карте (см. п. Общая настройка Pinger).
Логика работы
-
При запуске сотового модуля начинается отсчет Connect Timeout (в примере 360 секунд). В это время модем пытается установить соединение, используя сим-карту, назначенную в Primary SIM.
-
После получения роутером адреса от оператора и активации интерфейса SIM-карты начинается проверка через Pinger:
-
Если проверка проходит успешно, Primary SIM и дальше используется для подключения к интернету, Connect Timeout выключается.
-
Если проверки не проходят и их количество (подряд) достигает числа, заданного в поле Retries, сотовый модуль перезагружается. Далее он заново пытается установить соединение в течение времени, которое задано в Connect Timeout. Под установлением соединения в данном случае понимается регистрация в сети оператора и успешная проверка Pinger.
-
Если Primary SIM так и не установила соединение за отведенное время, происходит переключение на вторую сим-карту (для нее также запускается Connect Timeout). Когда вторая сим-карта успешно установит соединение, начнется отсчет Primary Timeout, по истечении которого произойдет автоматическое переключение на Primary SIM.
-
Настройка в CLI
/mobile modem modem1
debug false
defaultroute true
disabled false
metric 101
modem-connect-timeout 360
modem-primary-sim sim1
modem-primary-sim-timeout 3600
modem-sim-slot sim1,sim2
mtu 1500
peerdns true
apply
Пример настройки для двухмодульного роутера при использовании двух сим-карт
-
В разделе /mobile → modem настроить два интерфейса modem1 и modem2, которые заданы как маршруты по умолчанию. Для них необходимо указать разные метрики:
-
modem1 – Metric 204
-
modem2 – Metric 205
-
-
Настроить Pinger для каждого интерфейса отдельно на адрес 77.88.8.8 (публичный DNS-сервер Яндекс) по протоколу ICMP в формах /service → pinger → modem1 и /service → pinger → modem2 (см. п. Общая настройка Pinger).
Логика работы
-
При запуске сотовых модулей начинается отсчет Connect Timeout (для каждого модуля свой). В это время роутер пытается установить соединение на обеих сим-картах.
-
После того, как сим-карты получат адреса от операторов, и на роутере активируются соответствующие интерфейсы SIM, на каждом из них начинается отдельная проверка Pinger:
-
Если проверка проходит успешно, метрика интерфейса уменьшается на 100 и Connect Timeout выключается. В примере, если результаты проверок Pinger на обеих сим-картах будут положительными, метрики примут значения 104 (modem1) и 105 (modem2). Приоритетным будет считаться маршрут через modem1.
-
Если после ряда удачных проверок на какой-то из сим-карт происходит сбой (например, пропадает интернет) и проверка Pinger не проходит, метрика интерфейса возвращается к своему исходному значению. Приоритетным становится маршрут с меньшей метрикой.
-
Если первая проверка была неудачной – метрика интерфейса никак не изменится.
-
Если количество неудачных проверок (подряд) достигает числа, заданного в поле Retries, сотовый модуль перезагружается и заново пытается подключиться к сети. Также перезагрузка модуля происходит при истечении Connect Timeout, если соединение так и не было установлено.
-
Настройка в CLI
/mobile modem modem1
debug false
defaultroute true
disabled false
metric 204
modem-connect-timeout 360
modem-primary-sim sim1
modem-primary-sim-timeout 3600
modem-sim-slot sim1,sim2
mtu 1500
peerdns true
apply
/mobile modem modem2
debug false
defaultroute true
disabled false
metric 205
modem-connect-timeout 360
modem-primary-sim sim1
modem-primary-sim-timeout 3600
modem-sim-slot sim1,sim2
mtu 1500
peerdns true
apply
Пример настройки при использовании сим-карты и проводного подключения
-
Роутер подключен к интернету по основному каналу (modem1 – мобильная сеть) и резервному (port1 – проводное соединение). Оба интерфейса заданы как маршрут по умолчанию, для них необходимо указать разные метрики:
-
modem1 – Metric 101
-
port1 – Metric 100
-
-
Настроить Pinger на адрес 77.88.8.8 (публичный DNS-сервер Яндекс) по протоколу ICMP (см. п. Общая настройка Pinger).
Логика работы
-
Если проверка проходит успешно, метрика интерфейса уменьшается на 100 (если назначенная метрика изначально была меньше 100 – ничего не происходит, но использование данной конфигурации не рекомендуется). В примере при успешной проверке метрика примет значение 1. Приоритетным будет считаться маршрут через modem1.
-
Если первая проверка была неудачной – метрика интерфейса никак не изменится.
-
Если после ряда удачных проверок на какой-то из сим-карт происходит сбой (например, пропадает интернет) и проверка Pinger не проходит, метрика интерфейса возвращается к своему исходному значению и роутер переключается на резервный канал (его метрика должна быть меньше метрики основного канала).
Настройка в CLI
/mobile modem modem1
debug false
defaultroute true
disabled false
metric 101
modem-connect-timeout 360
modem-primary-sim sim1
modem-primary-sim-timeout 3600
modem-sim-slot sim1
mtu 1500
peerdns true
apply
/ip interface port1
defaultroute true
disabled false
metric 100
peer-dns true
apply
Общая настройка Pinger
-
Перейти в раздел /service → pinger и нажать Add. В появившемся окне выбрать интерфейс, с которого будут осуществляться проверки, в примере – modem1.
-
В открывшейся форме задать параметры:
Поле |
Описание |
Значение |
Type |
Тип проверки: icmp – стандартные ICMP эхо-запросы (ping). Является универсальным методом проверки доступности хостов в сети; |
icmp |
Host |
Список адресов для проверки в формате IP-адресов или доменных имен (в случае tcp-проверки также необходимо указать номер порта через двоеточие) |
77.88.8.8 |
Interval |
Интервал между проверками в секундах |
по умолчанию |
Retries |
Число неудачных проверок, после достижения которого утилита осуществляет перезапуск интерфейса, к которому привязан Pinger |
по умолчанию |
Request Count |
Количество пакетов, отправляемых в рамках одной попытки проверки |
по умолчанию |
Packet Size |
Размер пакета проверки в байтах |
по умолчанию |
RTT** Threshold |
Порог round-trip времени, превышение которого считается неудачей. Максимально допустимое значение задержки в миллисекундах |
по умолчанию |
Loss Threshold |
Количество потерянных пакетов, превышение которого считается неудачей, в процентах |
по умолчанию |
|
* Для работы tcp-проверки на удаленном хосте должен быть установлен сервер для утилиты Pinger. Инструкция по установке доступна по ссылке. ** RTT (Round-Trip Time) – это время, которое требуется пакету данных для отправки от источника к назначению и возвращения обратно. |
-
Для применения настроек и запуска Pinger нажать Apply.
-
Статус Result – Succeed на панели со статистикой означает, что проверка прошла успешно.
Настройка в CLI
/service pinger add interface=modem1
count 4
disabled false
host 77.88.8.8
interval 30
retries 3
rtt-threshold 500
size 32
type icmp
apply
| Для двухмодульного роутера аналогичные настройки выполняются для modem2. |
| Все настройки навсегда сохраняются в память роутера только после выполнения команды /system → config → commit или нажатия кнопки commit в web-интерфейсе. |