Чому копати звіти про сервер dns як 127.0.0.1, коли я використовую зовнішній DNS?


12

Я використовую незв'язаний і зазвичай використовую openDNS як мій DNS-сервер.

Коли я біжу, dig google.comкажу, що отримую SERVER: 127.0.0.1#53(127.0.0.1). Що саме це слухає на порту № 53? це незв'язане чи це щось пов’язане з dnsmasq (чи я навіть встановив dnsmasq, як dnsmasq.confздається, немає /etc)?

У resoluv.conf є, nameserver 127.0.0.1але тоді в мережевому менеджері я DNS-сервери вказують на дві openDNS адреси. То що тут відбувається? чи вказує локальний сервер імен на dnsmasq, який потім використовує значення менеджера мережі? або це незв'язане, що насправді слухає?


що ви намагаєтеся досягти?
Рахул Патіл

3
просто розуміння дійсно
fpghost

це серверне видання ubuntu чи що?
Рахул Патіль

не просто робочий стіл
fpghost

Відповіді:


15

За замовчуванням NetworkManager використовує Dnsmasq як роздільну здатку DNS, якщо вона встановлена. Що є типовим для систем на базі Debian, тому Dnsmasq працює в конфігурації за замовчуванням, де він вирішує лише імена на основі серверів висхідного потоку, визначених параметрами командного рядка (плюс вміст /etc/hosts). У вас немає, /etc/dnsmasq.confтому що цей файл присутній лише в необов'язковому пакеті dnsmasq .

Щоб побачити, чи ваша система в даний час використовує Dnsmasq або Unbound для запитів DNS, запустіть netstat -ulnp | grep ":53 ".

У Ubuntu 12.04 NetworkManager не дуже добре грає з іншими DNS- рішеннями (див. Помилку 959037 - резюме Томаса Гуда майже все це охоплює). Щоб продовжувати працювати Unbound разом із NetworkManager, найкраще зробити, щоб сказати NetworkManager не запускати Dnsmasq (він вам не потрібен крім Unbound, за винятком випадків, якщо ви не використовуєте функції Dnsmasq, якими NetworkManager не користується). Для цього:

  1. Відредагуйте, /etc/NetworkManager/NetworkManager.confщоб прокоментувати рядок, що містить dns=dnsmasq(додайте а #на початку цього рядка).
  2. Перезавантажте NetworkManager з service network-manager restart.

як Ubuntu в даний час знає використовувати Unbound? (він справді, здається, ним користується); що я хилю ось чому мені не потрібно що - щось на зразок dns=unboundв /etc/NetworkManager/NetworkManager.conf? і враховуючи, що в даний момент я маю dns=dnsmasqу цьому файлі, чому Ubuntu насправді використовує незв’язаний?
fpghost

@fpghost Хто з них ви отримаєте, залежить від того, який з них розпочався першим. Якщо ви завантажуєтесь без мережі, ви отримаєте Unbound, оскільки вона почнеться спочатку. Якщо ви завантажуєтесь через мережеве з'єднання, я думаю, що це підкидання.
Жил 'ТАК - перестань бути злим'

Гаразд, але те, що мені справді було цікаво, а не повністю коментувати dns=...лінію, щоб зупинити використання dnsmasq, що робити, якщо я замінюю рядок dns=unbound? Інакше як NetworkManager знає, що незв’язаним буде локальний дозвіл?
fpghost

1

У ubuntu 12.04 dnsmasq тепер працює за замовчуванням через те, що вони жорстко закодовані network-manager. Використання dnsmasq як локального резолютора за замовчуванням на робочих столах. Це друга велика зміна цього випуску. Під час встановлення на робочий стіл ваш DNS-сервер буде "127.0.0.1", що вказує на сервер dnsmasq, керований NetworkManager.

SERVER: 127.0.0.1#53(127.0.0.1)

це означає, що ви отримуєте відповіді на свій запит з локальних dns, тобто DNSMASQ.

Якщо ви не хочете локального рішення, вимкніть його DNSMASQ, використовуючи наступну процедуру.

Вам потрібно відредагувати /etc/NetworkManager/NetworkManager.confфайл

gksudo gedit /etc/NetworkManager/NetworkManager.conf

і прокоментуйте наступний рядок із

dns=dnsmasq

до

#dns=dnsmasq

Збережіть файл та вийдіть.

Тепер вам потрібно перезапустити network-managerза допомогою наступної команди

sudo systemctl restart network-manager

Довідкова посилання


1
Гаразд, але що, якщо у мене також встановлено Unbound, це має перевагу над dnsmasq як локальним резолютором? ви обидва слухаєте на # 53? як вони вживаються разом?
fpghost

також чому /etc/dnsmasq.confвідсутня?
fpghost

@fpghost dnsmasq прослуховує 127.0.1.1, тоді як unbound слухає 127.0.0.1, обидва на порту 53. Ви можете встановити dns = unbound у конфігурації мережевого менеджера, щоб використовувати unbound.
талонкс

0

Щоб побачити, який власне сервер DNS використовувався для вирішення вашої адреси, під час використання DNSMasq не можна використовувати, DIGоскільки 127.0.0.1замість цього він створює лише звіти :

Увімкнути вхід у DNSMasq:

sed -i 's/\#log-queries/log-queries/' /etc/dnsmasq.conf
systemctl restart dnsmasq

Увійдіть до DNSMasq і відстежуйте вихід:

journalctl --unit dnsmasq.service -f

Передача хоста:

ping google.ca

Потім ви можете бачити, мій сервер DNS вище (192.168.1.1) вирішує це:

: query[A] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: query[AAAA] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: reply google.ca is 172.217.1.3
: reply google.ca is 2607:f8b0:400b:80f::2003
: query[PTR] 3.1.217.172.in-addr.arpa from 127.0.0.1
: forwarded 3.1.217.172.in-addr.arpa to 192.168.1.1
: reply 172.217.1.3 is iad23s25-in-f3.1e100.net
: reply 172.217.1.3 is yyz10s14-in-f3.1e100.net

Пінг-хост за компанією VPN (під час спліт-тунелю) для * .company.com

ping box.company.com

результати:

: query[A] box.company.com from 127.0.0.1
: forwarded box.company.com to vpn.ser.ver.ip
: query[AAAA] box.company.com from 127.0.0.1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.