Условная переадресация DNS-запросов на MikroTik

Когда используется MikroTik с настроенным vpn между офисами, столкнулся с проблемой переадресации DNS-запросов на внутренний сервер имён. Существует DNS-сервер, который автоматически разрешает имена сайтов на другом конце туннеля. Однако, если вы запрашиваете DNS-запись для внутреннего домена, например – microfin.local, на другом конце, маршрутизатор MikroTik попытается преобразовать запрос через собственный DNS-сервер, который, не имеет необходимой информации.

Итак, VPN между маршрутизаторами поднят, маршруты добавлены, по ip-адресам все пингуется в обе стороны нормально. Попытки пинговать по именам заканчиваются неудачей.

Используемые данные для решения задачи:

Внутренний IP адрес маршрутизатора MikroTik (192.168.24.1), он же указан в качестве DNS-сервера на той стороне
IP адрес внутреннего DNS сервера (192.168.23.5)
Имя локального домена (domain.local)

ip firewall layer7-protocol add name=domain.local regexp=domain.local

ip firewall mangle add chain=prerouting dst-address=192.168.24.1 layer7-protocol=domain.local action=mark-connection new-connection-mark=domain.local-forward protocol=tcp dst-port=53

ip firewall mangle add chain=prerouting dst-address=192.168.24.1 layer7-protocol=domain.local action=mark-connection new-connection-mark=domain.local-forward protocol=udp dst-port=53

ip firewall nat add action=dst-nat chain=dstnat connection-mark=domain.local-forward to-addresses=192.168.23.5

ip firewall nat add action=masquerade chain=srcnat connection-mark=domain.local-forward

После этого требуется перезагрузка RouterOS. После перезагрузки получаем нужный результат

Проверить можно с помощью nslookup в windows