====== Pi-hole и Mikrotik ======
Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
[[https://курсы-по-ит.рф/lp-mikrotik-mtcna?utm_source=wiki-rtza&utm_medium=cpc&utm_campaign=35| Узнать подробности]]
Дано: есть Mikrotik в качестве роутера, есть хост или ВМ с Pi-Hole на борту.
Задача: Пересылать все DNS-запросы с Mikrotik на Pi-Hole (если он работает), иначе использовать Mikrotik в качестве DNS-сервера (эдакая отказоустойчивость).
Решение #1: с интервалом в 1 минуту проверяем доступность IP-адреса сервера с Pi-Hole, если он доступен - пересылаем на него все DNS-запросы. Если нет - отключаем правило и DNS-сервером работает Mikrotik.
Решение #2: https://github.com/arkashiks/dns_healthcheck - скрипт как раз для определения работы DNS, с простой логикой: пытается раз'именовать имя и если не получается переключает на резервный DNS
Добавляем на Mikrotik правила в IP -> Firewall -> NAT
/ip firewall nat
add chain=dstnat action=dst-nat to-addresses=192.168.8.1 protocol=tcp in-interface=bridge-local dst-port=53 log=no log-prefix="" comment="forward DNS queries to Pi-Hole"
add chain=dstnat action=dst-nat to-addresses=192.168.8.1 protocol=udp in-interface=bridge-local dst-port=53 log=no log-prefix="" comment="forward DNS queries to Pi-Hole"
Необходимо обратить внимание на комментарий - именно по нему будет определяться правило
Добавляем скрипт переключения в System -> Scripts
Имя скрипта: PiHole-Activator
Права скрипта: read
Код скрипта:
:local checkpihole [/ping 192.168.8.1 count=5]
:if (checkpihole > 0) do={
/ip firewall nat enable [find comment="forward DNS queries to Pi-Hole" && disabled=yes];
} else={
/ip firewall nat disable [find comment="forward DNS queries to Pi-Hole"];
}
Настраиваем запуск скрипта в System -> Schedule
Наименование: PiHole-Activator
Права: read, write
Интервал запуска: 1 минута
Код:
/system script run PiHole-Activator
{{tag>mikrotik pi-hole pihole DNS}}