Dlaczego kop zgłosi serwerowi DNS jako 127.0.0.1, kiedy korzystam z zewnętrznego DNS?

12

Używam niezwiązanych i zwykle używam openDNS jako mojego serwera DNS.

Kiedy biegnę, dig google.commówię, że rozumiem SERVER: 127.0.0.1#53(127.0.0.1). Co to dokładnie nasłuchuje na porcie nr 53? czy jest to niezwiązane, czy ma to coś wspólnego z dnsmasq (czy mam nawet zainstalowany dnsmasq, ponieważ dnsmasq.confnie jest w nim zainstalowany /etc?)

W resolv.conf jest, nameserver 127.0.0.1ale w menedżerze sieci mam serwery DNS wskazane na dwa adresy openDNS. Więc co tu się dzieje? czy lokalny serwer nazw wskazuje dnsmasq, który następnie używa wartości z menedżera sieci? czy jest to niezwiązane, które w rzeczywistości słucha?

fpghost
źródło
co próbujesz osiągnąć
Rahul Patil,
3
tylko zrozumienie naprawdę
fpghost
czy to wydanie Ubuntu Server czy co?
Rahul Patil,
nie tylko na pulpicie
fpghost

Odpowiedzi:

15

Domyślnie NetworkManager używa Dnsmasq jako resolvera DNS, jeśli jest zainstalowany. Jest to ustawienie domyślne w systemach opartych na Debianie, więc Dnsmasq działa w domyślnej konfiguracji, w której rozpoznaje tylko nazwy oparte na serwerach nadrzędnych określonych przez opcje wiersza poleceń (plus zawartość /etc/hosts). Nie masz, /etc/dnsmasq.confponieważ ten plik jest obecny tylko w opcjonalnym pakiecie dnsmasq .

Aby sprawdzić, czy Twój system obecnie używa Dnsmasq lub Unbound do zapytań DNS, uruchom netstat -ulnp | grep ":53 ".

W Ubuntu 12.04 NetworkManager nie działa dobrze z innymi rozwiązaniami DNS (patrz błąd 959037 - podsumowanie Thomasa Hooda obejmuje to wszystko). Aby nadal działać bez ograniczeń wraz z NetworkManager, najlepiej jest powiedzieć NetworkManagerowi, aby nie uruchamiał Dnsmasq (nie potrzebujesz go oprócz Unbound, chyba że używasz funkcji Dnsmasq, których nie używa NetworkManager). Aby to zrobić:

  1. Edytuj, /etc/NetworkManager/NetworkManager.confaby skomentować wiersz zawierający dns=dnsmasq(dodaj a #na początku tego wiersza).
  2. Uruchom ponownie NetworkManager za pomocą service network-manager restart.
Gilles „SO- przestań być zły”
źródło
skąd Ubuntu obecnie wie, że korzysta z Unbound? (rzeczywiście wydaje się, że go używa); Chodzi mi o to, dlaczego nie muszę coś takiego dns=unboundw /etc/NetworkManager/NetworkManager.conf? a biorąc pod uwagę, że obecnie mam dns=dnsmasqw tym pliku, dlaczego Ubuntu faktycznie używa niezwiązanego?
fpghost
@fpghost Który otrzymasz, zależy od tego, który zaczął jako pierwszy. Jeśli uruchomisz się bez sieci, otrzymasz Unbound, ponieważ rozpocznie się jako pierwsza. Jeśli uruchamiasz się z połączeniem sieciowym, myślę, że to losowanie.
Gilles „SO- przestań być zły”
OK, ale tak naprawdę zastanawiałem się raczej niż całkowite skomentowanie dns=...wiersza, aby przestał być używany dnsmasq, co jeśli zastąpię wiersz dns=unbound? W przeciwnym razie, skąd NetworkManager wie, że niezwiązany będzie lokalnym resolverem?
fpghost
1

W Ubuntu 12.04 dnsmasq jest teraz domyślnie uruchomiony, ponieważ jest na stałe zakodowany network-manager. Domyślne użycie dnsmasq jako lokalnego resolvera w instalacjach stacjonarnych To druga duża zmiana w tym wydaniu. W przypadku instalacji na komputerze, twój serwer DNS będzie miał wartość „127.0.0.1”, co wskazuje na serwer dnsmasq zarządzany przez NetworkManager.

SERVER: 127.0.0.1#53(127.0.0.1)

oznacza to, że otrzymujesz odpowiedź na swoje zapytanie z lokalnych DNS, tj. DNSMASQ.

Jeśli nie chcesz lokalnego resolvera, możesz go wyłączyć DNSMASQ, wykonując następującą procedurę.

Musisz edytować /etc/NetworkManager/NetworkManager.confplik

gksudo gedit /etc/NetworkManager/NetworkManager.conf

i skomentuj następujący wiersz z

dns=dnsmasq

do

#dns=dnsmasq

Zapisz plik i wyjdź.

Teraz musisz ponownie uruchomić network-managerza pomocą następującego polecenia

sudo systemctl restart network-manager

Link referencyjny

Rahul Patil
źródło
1
OK, ale co, jeśli mam również zainstalowany program Unbound, czy to ma pierwszeństwo przed programem dnsmasq jako lokalnym programem tłumaczącym? oboje słuchają # 53? jak oni się dogadują?
fpghost
także dlaczego jest /etc/dnsmasq.confnieobecny?
fpghost
@fpghost dnsmasq nasłuchuje na 127.0.1.1, podczas gdy niezwiązane nasłuchuje na 127.0.0.1, oba na porcie 53. Możesz ustawić dns = niezwiązane w konfiguracji menedżera sieci, aby używać niezwiązane.
talonx,
0

Aby zobaczyć, jaki rzeczywisty serwer DNS został użyty do rozwiązania twojego adresu, podczas korzystania z DNSMasq, nie można użyć, DIGponieważ tylko raportuje 127.0.0.1:

Włącz logowanie w DNSMasq:

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

Zaloguj DNSMasq i monitoruj dane wyjściowe:

journalctl --unit dnsmasq.service -f

Ping hosta:

ping google.ca

Następnie możesz zobaczyć, że mój serwer DNS upstream (192.168.1.1) rozwiązuje to:

: 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

Pinguj hosta za firmową siecią VPN (podczas tunelowania podzielonego) dla * .company.com

ping box.company.com

wyniki:

: 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
kevinf
źródło