
У меня есть маршрутизатор, работающий, помимо прочего, dnsmasq
со стандартными настройками, поэтому я получаю DNS-прокси, дополнительные локальные серверы, а также разрешение имен для всех машин, IP-адреса которых управляются через dnsmasq
DHCP-сервер.
Серверы и другие хосты находятся на моем home.net
домене
Все идет нормально.
Теперь мне нужно подключиться через VPN к сайту клиента ( customer.net
), у которого очень похожая настройка (они не используют dnsmasq, но общий эффект тот же).
Я настроил небольшую (виртуальную) машину, работающую в качестве маршрутизатора, перенаправляющего (с NAT) из локальной сети на tun
устройство IPSec, и добавил несколько статических маршрутов к (2) хостам, которым необходимо видеть customer.net; я сделал это вручную, вместо того чтобы проталкивать маршруты через dnsmasq.
И это, кажется, работает без проблем.
Теперь у меня последняя проблема, которую я не знаю, как решить:
Я могу получить доступ к машинам в customer.net
частном адресном пространстве, только указав IP-адрес, разрешение DNS недоступно изdns.customer.net
Как я могу получить доступdns.customer.net
безтеряете связь с dns.home.net
?
ПРИМЕЧАНИЕ: Я могу изменить свои home.net
настройки (я бы предпочел ограничить изменения несколькими хостами, которые действительно задействованы), но я не могу контролироватьcustomer.net
Ситуация, которую я хотел бы иметь:
*.home.net
адреса должны быть разрешеныdnsmasq
- Маршрутизируемые адреса Интернета должны разрешаться с помощью
dnsmasq
прокси-сервера DNS моего интернет-провайдера. *.customer.net
адреса должны быть разрешеныdns.customer.net
(я могу получить доступ к этому хосту через его немаршрутизируемый IP), возможно, без прохождения через мойdnsmasq
Возможно ли это вообще? Если да, то как?
решение1
После небольшого исследования я выяснил, dnsmasq
что могу сделать то, что мне нужно.
Вот выдержка из стандартной документации (Настройка DNSmasq):
Использование специальных серверов.
Dnsmasq имеет возможность направлять DNS-запросы для определенных доменов на определенные серверы имен вышестоящего уровня. Эта функция была добавлена для использования с VPN, но она полностью общая. Сценарий таков: у вас есть стандартное подключение к Интернету через ISP, и dnsmasq настроен на пересылку запросов на серверы имен ISP, затем вы создаете VPN-подключение к сети вашей компании, предоставляя доступ к хостам внутри брандмауэра компании. У вас есть доступ, но поскольку многие внутренние хосты не видны в публичном Интернете, ваша компания не публикует их в публичном DNS, и вы не можете получить их IP-адрес от серверов имен ISP. Решение заключается в использовании сервера имен компании для частных доменов внутри компании, и dnsmasq позволяет это. Предполагая, что все внутренние компьютеры компании находятся в домене internal.myco.com, а сервер имен компании находится по адресу 192.168.10.1, то опция server=/internal.myco.com/192.168.10.1 направит все запросы во внутреннем домене на правильный сервер имен. Вы можете указать более одного домена в каждой опции сервера. Если есть более одного сервера имен, просто включите столько опций сервера, сколько необходимо, чтобы указать их все.
В конце концов я добавил и «специальный сервер» DNS, и дополнительные статические маршруты к моему основному dnsmasq (на моем брандмауэре), и все заработало как надо, как только виртуальная машина VPN была запущена и запущена.
Фактические строки, добавленные в мой dnsmasq.conf:
server=/customer.net/192.168.20.253
dhcp-option=121,192.168.2.0/24,192.168.7.11,192.168.20.0/24,192.168.7.11
Надеюсь, это поможет кому-то сократить путь.