Скрипт ping для MikroTik последовательно проверяет несколько адресов через указанную таблицу маршрутизации и завершает поиск после первого успешного ответа. Это простой индикатор ICMP-доступности.
Успешный ping не подтверждает работу DNS, HTTP или нужного приложения. Для решения о переключении канала добавьте несколько независимых целей, задержки и проверку сервиса более высокого уровня.
### ----- start settings script ----- ###
:local addr [:toarray "8.8.8.8,8.8.4.4,77.88.8.8,77.88.8.1,77.88.8.88,77.88.8.2"];
:local Table "ISP1";
:local CheckPingCount 3;
:local CheckPingTtl 64;
:local CheckPingInterval 1;
### ----- end settings script ----- ###
:local InternetIsset false;
:foreach ipp in $addr do={
:if ($InternetIsset=false) do={
:if ([/ping address=$ipp count=$CheckPingCount routing-table=$Table interval=$CheckPingInterval ttl=$CheckPingTtl] = 0) do={
/log warning message="Internet test fail for address $ipp In table $Table";
} else={
/log warning message="Internet test success for $ipp In table $Table";
:set InternetIsset true;
}
}
}
:if ($InternetIsset=false) do={
#test failed
/log warning message="Internet fail In table $Table";
}else ={
#test success
}
Если вам необходимо выполнять какие-либо действия по результатам проверки, в сам конце скрипта находиться два блока if/else. Первый блок отвечает за выполнение при отрицательном результате, второй блок соответственно за положительный результат.
Пример как можно использовать блок
:local ruleCount [/ip route rule print count-only where disabled comment="ether1-fail"]
:if ($InternetIsset=false) do={
:if($ruleCount=0) do={
/ip route rule enable [find comment="ether1-fail"];
}
/log warning message="Internet fail In table $Table";
} else={
:if($ruleCount > 0) do={
/ip route rule disable [find comment="ether1-fail"];
}
}
Как проверить результат
- Запустите скрипт вручную и проверьте записи журнала.
- Заблокируйте одну тестовую цель и убедитесь, что проверка переходит к следующей.
- Отключите канал и проверьте отрицательный результат именно в заданной routing-table.
Источники и связанные материалы
Команды в статье меняют сетевую конфигурацию. Перед работой сохраните экспорт, подготовьте способ восстановления доступа и применяйте изменения сначала в тестовой среде.