В то время как на сайте 1, мне нужно подключиться к сайту 2 через OpenVPN. После подключения сайт OpenVPN2 выдвигает DNS-сервер имен и параметры поиска домена. Это приводит к сбою всех разрешений имен для site1.
Пример:
Физически подключенный на сайте 1, DHCP выдвигает параметры DNS и управляет ими resolvconf.
/etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 172.16.1.101 nameserver 172.16.1.102 search site1.internal.domain
Откройте туннель OpenVPN для site2, OpenVPN передает dhcp-опцию DNS и DOMAIN для site2 и
/etc/openvpn/update-resolv-conf
отправляет их в resolvconf.
/etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.1.5 nameserver 172.16.1.101 nameserver 172.16.1.102 search site2.internal.domain site1.internal.domain
Разрешение DNS работает для server.site2.internal.domain, но не работает для server.site1.internal.domain
Есть ли способ, чтобы любой сбойный DNS-запрос к site21 должен был перейти на DNS-серверы site1? Или настройте resolvconf, чтобы запросы имен для site2.internal.domain передавались только на сервер имен site2?
Я использую машину Ubuntu 14.04 на сайте site1, а сервер OpenVPN на сайте site2 представляет собой pfSense 2.2. Я управляю обоими сайтами, поэтому внесение изменений в обе стороны не является проблемой. Оба домена являются закрытыми и предназначены только для внутреннего использования.
источник
Ответы:
Вы можете настроить локальный сервер кэширования, который будет наблюдать за вашим сервером
/etc/resolv.conf
, поскольку он изменяетсяresolvconf
скриптами, и пытаться получить его ответы от всех перечисленных там серверов имен.На многих системах будет достаточно установить пакет dnsmasq , в дополнение к resolvconf.
Значения по умолчанию должны «просто работа» при условии , что
no-resolv
иno-poll
директивы отсутствуют/etc/dnsmasq.conf
иlo
интерфейс в верхней части/etc/resolvconf/interface-order
. Если вышестоящий сервер имен возвращает несколько произвольных IP-адресов для неразрешимых адресов,strict-order
в dnsmasq.conf может помочь Ваш/etc/resolv.conf
должен только показатьnameserver 127.0.0.1
.Если вы предпочитаете фиксированную настройку или подключаетесь к нескольким несвязанным сетям и хотите избежать утечки имен вашей частной сети для всех серверов имен, вам следует настроить dnsmasq для запроса определенных серверов на основе домена:
Дополнительную информацию о параметрах dnsmasq смотрите здесь: http://oss.segetech.com/intra/srv/dnsmasq.conf
источник
resolv.conf перечисляет все доступные DNS-серверы. Пока первый в списке запущен, все запросы будут отправляться на него. Ничего для других, если только не первый. Итак, если первый DNS-сервер в списке включен и знает ответ, он отвечает «Я знаю это!», Иначе он скажет: «Боюсь, я не знаю ...». И это все. Вы должны сделать 192.168.1.5 (DNS-сервер сайта 2) осведомленным обо всех записях сайта 1 и наоборот. Приветствую
источник
Я не пробовал это на Ubuntu, но мне удалось получить аналогичную настройку, работающую на Arch Linux, используя openresolv и dnsmasq.
Все изменения будут на машине клиента VPN. Сервер VPN не должен нуждаться в каких-либо изменениях, поскольку он уже включает DNS-сервер имен и параметры поиска домена.
resolvconf -l
для просмотра всех файлов resolv.conf. Определите имя resolvconf вашего интерфейса VPN (то есть X в "resolv.conf from X"). В моем случае это былоtun0
, что я буду использовать в оставшейся конфигурации.Изменить,
/etc/resolvconf.conf
чтобы добавить эти параметры:Изменить,
/etc/dnsmasq.conf
чтобы добавить эти параметры:Запустите
resolvconf -u
для создания файлов конфигурации dnsmasq.Запустите
dnsmasq
службу и настройте ее для запуска при загрузке. На Arch это делается с помощью команды:name_servers
Опция говорит Resolvconf в список только те серверы имен в/etc/resolv.conf
(т.е. он указывает на свой локальный экземпляр Dnsmasq). Вdnsmasq_
опции сказать Resolvconf писать серверы имен , которые пошли бы в/etc/resolv.conf
к Dnsmasq конфигурационных файлов вместо этого.private_interface
Опция говорит Resolvconf , что неймсерверы предоставляемых этого интерфейс (ваш VPN) следует использовать только при разрешении имен узлов , которые находятся в одной из областей , указанных вsearch
строке. Это создаст соответствующую конфигурацию dnsmasq, чтобы это произошло.В этом конфиге запросы на хосты под site2.internal.domain должны идти к 192.168.1.5, а все остальные запросы должны идти к 172.16.1.101 или 172.16.1.102.
Если ваша система не использует IPv6, удалите :: 1 из
name_servers
опции.источник