Было бы здорово добавить условную пересылку DNS в Кэширующий DNS форвардер в RouterOS. То есть, возможность указать «если приходит запрос на запись с суффиксом foo.bar, пересылать его на 172.16.0.2, а не на обычный DNS-сервер». Это особенно полезно для разрешения частных DNS-зон через VPN-соединение, при этом публичные DNS-зоны продолжают разрешаться локальным публичным DNS-сервером (особенно важно, чтобы не потерять DNS, если VPN-ссылка упадёт!).
Я полностью в курсе трюка с реализацией этого через NAT, Mangle и правила Layer7 Protocol в фаерволе. Но у этого решения есть разные проблемы, и одна из них большая. Главная — оно работает только для DNS-запросов по UDP; любые DNS-запросы по TCP просто не проходят при попытке использовать этот метод. Понятно, что DNS в основном использует UDP, но иногда переключается на TCP и в самый неподходящий момент всё ломается.
Меньшая, но тоже реальная проблема — для этого способа нужно разбираться в структуре UDP DNS-пакетов. Большинство туториалов на форумах и в других местах ошибаются в регулярных выражениях. Запросы, которые обрабатываются трюком Layer7 NAT, не кешируются MikroTik’ом, поэтому их приходится пересылать каждый раз.
Если MikroTik не хочет добавлять это как базовую функцию DNS форвардера в RouterOS, я бы очень хотел увидеть более продвинутый DNS форвардер в виде отдельного пакета, как это сделано с полнофункциональным NTP-клиентом и сервером.
Я полностью в курсе трюка с реализацией этого через NAT, Mangle и правила Layer7 Protocol в фаерволе. Но у этого решения есть разные проблемы, и одна из них большая. Главная — оно работает только для DNS-запросов по UDP; любые DNS-запросы по TCP просто не проходят при попытке использовать этот метод. Понятно, что DNS в основном использует UDP, но иногда переключается на TCP и в самый неподходящий момент всё ломается.
Меньшая, но тоже реальная проблема — для этого способа нужно разбираться в структуре UDP DNS-пакетов. Большинство туториалов на форумах и в других местах ошибаются в регулярных выражениях. Запросы, которые обрабатываются трюком Layer7 NAT, не кешируются MikroTik’ом, поэтому их приходится пересылать каждый раз.
Если MikroTik не хочет добавлять это как базовую функцию DNS форвардера в RouterOS, я бы очень хотел увидеть более продвинутый DNS форвардер в виде отдельного пакета, как это сделано с полнофункциональным NTP-клиентом и сервером.
