Настройка условной пересылки DNS-запросов в Mikrotik RouterOS

Чтобы настроить пересылку dns-запросов для определенного домена на определенный dns-сервер (Conditional DNS forwarding), можно использовать возможность инспектирования пакетов на Уровне 7 (Layer7 Protocols) в Firewall RouterOS.

Пример:

Имеем роутер MikroTik, версия RouterOS 6.27, ip-адрес dns-сервера на Микротике 192.168.15.1, требуется перенаправлять запросы для domain.local на dns-сервер домена Active Directory 192.168.55.2.

Для решения указанной задачи нужно выполнить в консоли RouterOS следующие команды:

/ip firewall layer7-protocol add name=domain.local regexp=domain.local
/ip firewall mangle add chain=prerouting dst-address=192.168.15.1 layer7-protocol=domain.local action=mark-connection new-connection-mark=domain.local-fwd protocol=tcp dst-port=53
/ip firewall mangle add chain=prerouting dst-address=192.168.15.1 layer7-protocol=domain.local action=mark-connection new-connection-mark=domain.local-fwd protocol=udp dst-port=53
/ip firewall nat add action=dst-nat chain=dstnat connection-mark=domain.local-fwd to-addresses=192.168.55.2
/ip firewall nat add action=masquerade chain=srcnat connection-mark=domain.local-fwd
Последнюю строку можно не добавлять, если у вас у вас уже есть каким либо образом настроенная маршрутизация пакетов в подсеть целевого dns-сервера.
Если нужно добавить еще домены, нужно выполнить аналогичный набор команд для каждого домена, заменив имя домена и адрес dns-сервера на соответствующие.