суббота, 18 апреля 2015 г.

Заглушка для клиентов при пропадании интернета.

Создаем правило:
add action=redirect chain=dstnat comment=zagluchka disabled=yes protocol=tcp \
    src-address=192.168.23.0/24 to-ports=8080

Включаем на порту 8080 web-proxy.
/ip proxy access
add action=deny
Правим error.html под свои нужды.
Добавляем статическую запись днс, что б клиенты смогли зарезольвить адреса:
/ip dns static
add address=192.168.23.254 comment=zagluchka disabled=yes name=.* ttl=10s
где  192.168.23.254 адрес роутера. ttl=10s = для быстрого переключения.

Ставим в Scheduler на 5 минут:

:local sts [/ip firewall nat get value-name=disabled [find comment=zagluchka]];
:local PingCount 3;
#YandexDNS
:local PingTarget1 77.88.8.8;
#OpenDNS
:local PingTarget2 208.67.222.222;
#GoogleDNS
:local PingTarget3 8.8.8.8;
:local PingResult1 [/ping $PingTarget1 count=$PingCount];
:local PingResult2 [/ping $PingTarget2 count=$PingCount];
:local PingResult3 [/ping $PingTarget3 count=$PingCount];
:delay 180;
:local PingResult11 [/ping $PingTarget1 count=$PingCount];
:local PingResult22 [/ping $PingTarget2 count=$PingCount];
:local PingResult33 [/ping $PingTarget3 count=$PingCount];
:if (($PingResult1 + $PingResult2 + $PingResult3 + $PingResult11 + $PingResult22 + $PingResult33) >= 7) do={ if ($sts=true) do={} else={/ip firewall nat disable [find comment=zagluchka]; /ip dns static disable [find name=.*]}}  else={ if ($sts=true) do={/ip firewall nat enable [find comment=zagluchka]; /ip dns static enable [find name=.*]} else={}}

Подписаться на новые статьи.

Комментариев нет:

Отправить комментарий