Risoluzione dei problemi relativi al DNS

2

Ho uno strano problema in cui la risoluzione DNS del sistema non funziona, ma non so come potrei risolverlo, o persino trovare un log (proveniente da Linux). Ho configurato manualmente 8.8.8.8, 8.8.4.4 come server DNS nella GUI, che sembra aver preso:

$ scutil --dns
DNS configuration

resolver #1
  search domain[0] : Home
  nameserver[0] : 8.8.8.8
  nameserver[1] : 8.8.4.4
  flags    : Request A records
  reach    : Reachable

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : Home
  nameserver[0] : 8.8.8.8
  nameserver[1] : 8.8.4.4
  if_index : 4 (en0)
  flags    : Scoped, Request A records
  reach    : Reachable

Tuttavia, quando il sistema tenta di risolvere un nome fallisce con un timeout, solo alcuni software, ad esempio Chrome che non utilizza il risolutore di sistema, non sono interessati:

$ ping google.com
ping: cannot resolve google.com: Unknown host

$ scutil -r google.com
Not Reachable

Possono essere interrogati manualmente:

$ nslookup google.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 2.127.237.183
...

$ dig google.com
google.com.     50  IN  A   2.127.237.183
;; Query time: 226 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)

E i risultati sono validi:

$ ping 2.127.237.183
64 bytes from 2.127.237.183: icmp_seq=0 ttl=60 time=37.086 ms

$ scutil -r 2.127.237.183
Reachable

Il mio file hosts non contiene nulla di sorprendente:

$ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost

Anche la richiesta di un nuovo lease DHCP non ha funzionato. La reimpostazione dei server non cambia nulla:

$ networksetup -getinfo Wi-Fi
DHCP Configuration
IP address: 192.168.0.2
Subnet mask: 255.255.255.0
Router: 192.168.0.1
Client ID:
IPv6: Automatic
IPv6 IP address: none
IPv6 Router: none

$ networksetup -setdnsservers Wi-Fi Empty

$ scutil --dns
DNS configuration

resolver #1
  search domain[0] : Home
  nameserver[0] : 192.168.0.1
  if_index : 4 (en0)
  flags    : Request A records
  reach    : Reachable,Directly Reachable Address

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : Home
  nameserver[0] : 192.168.0.1
  if_index : 4 (en0)
  flags    : Scoped, Request A records
  reach    : Reachable,Directly Reachable Address

$ scutil -r google.com
Not Reachable

I log disponibili in Console.app mostrano principalmente app che lamentano timeout (penso che questo sia particolarmente strano: la risoluzione non fallisce immediatamente perché non c'è un server disponibile, ma fallisce sempre con un timeout, come se cercasse di raggiungili ma non puoi?)

Diversamente da Linux, dig / nslookup non sembra utilizzare il risolutore di sistema che tutte le altre app / servizi stanno utilizzando. C'è uno strumento che usa il risolutore di sistema e ha alcune opzioni per dirmi cosa c'è che non va?

    
posta pascal 26.08.2014 - 20:52
fonte

1 risposta

1

Non so cosa potrebbe causare un problema come questo, ma posso darti alcuni suggerimenti per la risoluzione dei problemi.

  • Per prima cosa, prova a eseguire una query manuale su 8.8.4.4 ( dig google.com @8.8.4.4 ) - dig , nslookup e host sembrano utilizzare il primo server elencato, ma il resolver di sistema utilizza uno strano sistema round-robin-ish che fallirà in modo intermittente se alcuni dei server DNS configurati non funzionano correttamente. Allo stesso modo, potresti provare a configurare il sistema operativo per utilizzare solo 8.8.8.8 e vedere se questo cambia qualcosa.

  • Parlando del risolutore di sistema, è possibile che si trovi in uno stato strano, quindi riavviarlo potrebbe risolvere il problema. In realtà, reimpostare sia opendirectoryd (che invia tutti i tipi di ricerche) sia mDNSResponder (che in realtà fa la parte DNS), per ogni evenienza. sudo killall opendirectoryd mDNSResolver dovrebbe fare il trucco. Nota che entrambi i daemon saranno riavviati automaticamente.

  • Puoi ottenere maggiori informazioni da mDNSResponder inviando segnali. Probabilmente la più utile è la funzione di registrazione dei pacchetti, che consente di registrare ogni pacchetto DNS inviato e amp; ricevuto su /var/log/system.log. Puoi attivarlo su & spento con sudo killall -USR2 mDNSResponder . Le voci del registro dovrebbero apparire come questo (per una ricerca riuscita, cioè):

    -- Sent UDP DNS Query (flags 0100) RCODE: NoErr (0) RD ID: 28215 25 bytes from port 61186 to 172.20.0.1:53 --
     1 Questions
     0 scanme.insecure.net. Addr
     0 Answers
     0 Authorities
     0 Additionals
    --------------
    -- Received UDP DNS Response (flags 8180) RCODE: NoErr (0) RD RA ID: 28215 272 bytes from 172.20.0.1:53 to 172.20.6.67:61186 --
     1 Questions
     0 scanme.insecure.net. Addr
     1 Answers
     0 TTL    3600    4 scanme.insecure.net. Addr 5.45.96.131
     4 Authorities
     0 TTL   86400   17 insecure.net. NS ns3.eurodns.com.
     1 TTL   86400   17 insecure.net. NS ns2.eurodns.com.
     2 TTL   86400   17 insecure.net. NS ns4.eurodns.com.
     3 TTL   86400   17 insecure.net. NS ns1.eurodns.com.
     7 Additionals
     0 TTL    3600    4 ns1.eurodns.com. Addr 80.92.65.2
     1 TTL    3600   16 ns1.eurodns.com. AAAA 2001:0B20:1001:0004:0000:0000:0000:0002
     2 TTL    3600    4 ns2.eurodns.com. Addr 80.92.89.242
     3 TTL    3600   16 ns2.eurodns.com. AAAA 2001:0B20:1001:0011:0000:0000:0000:0242
     4 TTL     600    4 ns3.eurodns.com. Addr 80.92.95.42
     5 TTL    3600    4 ns4.eurodns.com. Addr 192.174.68.100
     6 TTL    3600   16 ns4.eurodns.com. AAAA 2001:067C:01BC:0000:0000:0000:0000:0100
    --------------
    

    Puoi anche inviare un segnale USR1 per attivare la registrazione di debug (che sembra richiedere di sapere molto sugli interni di mDNSResponder per dare un senso a), e il segnale INFO lo fa scaricare il suo stato interno in il registro di sistema (probabilmente informativo, ma lotti di informazioni da ordinare).

risposta data 27.08.2014 - 04:26
fonte

Leggi altre domande sui tag