Назад | Перейти на главную страницу

Делегирование сервера имен в частную подсеть

В настоящее время у меня возникли проблемы с делегированием поддомена, например lan.example.com на сервер имен в частной сети.

Моя частная сеть разделена на подсети

192.168.0.1/24 <--- 192.168.0.1
Physical LAN        172.20.20.1 ---> 172.20.20.1/24
                   OpenWRT Router    VPN

У меня есть некоторые службы, работающие в физической локальной сети, и клиенты должны обращаться к ним со статическим DNS-именем, независимо от того, подключен ли клиент к физической локальной сети или VPN. Маршрутизатор OpenWRT также действует как преобразователь DNS для всех клиентов в физической LAN и может разрешать локальные имена хостов, например server.lan.example.com.

Общедоступный сервер имен example.com имеет записи NS.

lan.example.com         IN NS lan-router.example.com
lan-router.example.com  IN A  192.168.0.1

Теоретически все DNS-запросы к * .lan.example.com должны быть делегированы моему серверу OpenWRT, но клиент, подключенный к VPN, использует сервер имен своей домашней сети. Эти серверы пытаются рекурсивно отвечать на запросы DNS, но, естественно, не могут достичь 192.168.0.1.

Запрос dig +trace A server.lan.example.com @8.8.8.8 работает нормально, но тот же запрос без +trace нет.

Вы знаете, как это исправить, не устанавливая 192.168.0.1 в качестве сервера имен для всех клиентов VPN? Это увеличило бы задержку для нормального доступа в Интернет на этих клиентах.

Проблема в том, что вы хотите, чтобы DNS по-разному отвечал в зависимости от того, кто спрашивает. Это называется конфигурацией с разделенным обзором или с разделенным горизонтом. К сожалению, DNSMasq не очень хорошо поддерживает это. Я настоятельно рекомендую вам удалить dnsmasq и установить bind. В bind вы можете настраивать представления и устанавливать списки ACL для того, кто их может видеть. Фактически, вы можете дать 172 ответа сети 172 ... и 192 ответа сети 192.

Более подробную информацию можно найти Вот для настройки разделенных представлений в привязке.