![]() |
ubuntu 14.04.2 lts и несколько DNS серверов Доброго времени суток. Настроил такую связку: Client --> Local DNS Cache (dnsmasq 127.0.1.1:53) --> Local DNSCrypt Proxy (dnscrypt-proxy 127.0.2.1:53) <--https--> Remote Open DNS Server В параметрах сетевого соединения wlan0 (wifi) прописал в качестве DNS сервера 127.0.2.1. В /etc/resolv.conf только одна строчка 127.0.1.1 dnsmasq работает по dbus в связке с NetworkManager. Т. е. при установке/разрыве соединения NetworkManager уведомляет dnsmasq, чтобы он добавил/убрал DNS-сервера, полученные по DHCP, или прописанные в соединении (в моем случае 127.0.2.1). больше dnsmasq ниоткуда не берет списки (запускается с no_resolv, и на механизм resolveconf не обращает внимания). при старте dnsmasq, однако уведомляет resolvconf, чтобы тот зарегистрировал его у себя и так как в ubuntu по умолчанию включена опция simoncat@l01:~$ cat /etc/default/resolvconf TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=yes то формируется только одна строчка в simoncat@l01:~$ cat /etc/resolv.conf nameserver 127.0.1.1 соответственно, все DNS запросы идут на dnsmasq 127.0.1.1:53 он их перенаправляет на dnscrypt-proxy 127.0.2.1:53, а тот по https отправляет на opendns сервер с поддержкой DNSCrypt. Все работает. Но есть еще VPN. Откуда по DHCP передаются также и DNS сервера конторы. NetworkManager добавляет их по dbus в dnsmasq (192.168.0.3) в соответствии с описанным выше, а resolveconf рефрешит /etc/resolv.conf. simoncat@l01:~$ cat /etc/resolv.conf nameserver 127.0.1.1 search mydomain.local И тогда получается ситуация. Пока VPN не включен DNS запросы идут как надо на OpenDNS сервера 127.0.1.1->127.0.2.1->https->opendns.com Когда VPN включен 127.0.1.1->192.168.0.3 Можно ли как-то сделать, чтобы ломилось всегда на 127.0.1.1(dnsmasq)->127.0.2.1, а если не получилось разрешить имя то 127.0.1.1(dnsmasq)->192.168.0.3, как бы задать в dnsmasq чтобы приоритет отдавал 127.0.2.1, а только потом 192.168.0.3? |
Прописать насильно в свойствах VPN-подключения: первым DNS - 127.0.2.1, вторым - 192.168.0.3? |
DNS1 - 127.0.2.1 DNS2 - 192.168.0.3 при таком раскладе, после установления, идет на 127.0.2.1 но nslookup myserver НЕ НАХОДИТ сервер а если прописать DNS1 - 127.0.2.1 DNS2 - 192.168.0.3 DOMAIN SEARCH mydomain.local при таком раскладе, nslookup myserver НАХОДИТ сервер но DNS запросы идут на 192.168.0.3 |
при таком раскладе, nslookup myserver НАХОДИТ сервер но ВООБЩЕ ВСЕ DNS запросы идут на 192.168.0.3 |
Курю статейку. Пока не знаю поможет ли [url]http://blog.nixpanic.net/2013/03/use-dnsmasq-for-separating-dns-queries.html[/url] Если есть мысли - буду благодарен. |
[url=https://wiki.archlinux.org/index.php/Dnsmasq_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#NetworkManager]Здесь[/url] показано как использовать разные DNS для разных доменов через NetworkManager и dnsmasq. Возможно, это то что нужно? |
5-droidman > большое вам спасибо. очень похоже на то. завтра man'ы подробнее почитаю и потестирую. отпишусь. |
5-droidman > большое спасибо вам, ссылка очень помогла. 1) поставил всем соединениям настройки DHCP в address only, а для VPN соединения address only + прописал DOMAIN SEARCH mydomain.local 2) для dnsmasq прописал в simoncat@l01:~$ cat /etc/NetworkManager/dnsmasq.d/server server=127.0.2.1 server=/mydomain.local/192.168.0.3 server=/mydomain.local/192.168.0.4 2) и все заработало как хотел 3) после (2) столкнулся с проблемой описанной здесь [url]http://www.lowlevelmanager.com/2011/09/fix-linux-dns-issues-with-local.html[/url] применил оттуда решение и все теперь работает как и задумывал :) корпоративные сервера резолвятся через их домены интернеты резолвятся через dnscryptproxy/opendns |
| Текущее время: 18:30. Часовой пояс GMT +3. |