Привет!
Данная статья не претендует на уникальность, возможно где-то уже реализовано. Но однако понадобилось. Итак, имеем, роутер Mikrotik RB3011 и два канала разных операторов с «белыми» IP-адресами, свой домен и сервисы которые должны быть доступны извне сотрудникам. Само наше оборудование запитано хорошо, АКБ +дизель. Но в силу того, что головной офис расположен в городе Махачкала, а с электричеством у нас иногда бывает ахтунг, то может оказаться в оффлайне один из коммутаторов оператора и соответственно канал связи!
А все сервисы связанные с этим каналом и «белым» IP-адресом будут не доступны для удаленных сотрудников, решено было завести второго, а еще и третьего оператора и настроить DNS.
/
DNS-хостинг приобрели на nic.ru (услуга всего-то стоит 600 руб. в год. ), завели А-записи. Можно возразить, что есть куча бесплатных DNS, типа яндекс, но у того же яндекса не возможно установить ttl меньше 900 сек, а в данном случае нужно меньше. Если есть бесплатный DNS-хостинг с API и гибким ttl, прошу подсказать…
1. Получаем логин и пароль для управлени по API в разделе в Услугах DNS-Хостинг, в разделе Динамический DNS и нажимаем получить логин и пароль
Далее в микротике создаем скрипт.
Смена значения для записи, например VPN.MYDOMAIN.COM":
/tool fetch url="https://<b>ЛОГИН</b>:<b>ПАРОЛЬ</b>@api.nic.ru/dyndns/update?hostname=vpn.mydoain.com" mode=https
Далее не стали особо заморачивать и сделали родным микротиковским NetWatch, приблизительно так
Обработка при падении канала основного провайдера:
/ip route disable [find comment="ISP1"]
/ip route set distance=1 [find comment="ISP2"]
/system script run NICRU-MYDOMAIN-VPN
Логика очень простая, каждые 15 сек. пингуется хост 8.8.8.8 через канала основного оператора с указанием таймаута 1000 мс., соответственно при его недоступности в роутинг таблице ищется маршрут на основного провайдера с комментом ISP1 и переводит его в статус — disabled. А маршрут резервного, изменяется с указанием administrativ distance на 1. Далее запускается наш скрипт, который по API меняет значение A-записи в домене!
При этом, чтоб не ошибиться с оценкой о состоянии доступности 8.8.8.8 через основного провайдера, небходимо в фаерволе создать правило запрещающее через резервного оператора пакеты на 8.8.8.8 или банально написать маршрут на 8.8.8.8 через основного оператора, как мы и сделали.
Ну вроде как и все, у нас это работает без проблем.
Конечно, можете сказать что у микротика есть своя DDNS, но нас это не устраивает. SSL для сайта и разнообразные сервисы которые переносим и меняются в зависимости от обстоятельства бизнеса.
Буду рад, если кому-либо это решение поможет в облегчении…
Автор: ювелир