Come posso trovare il server dei nomi autorevole per un nome di dominio?


317

Come posso trovare le origini dei record DNS in conflitto?

Risposte:


413

È necessario il record SOA (Start of Authority) per un determinato nome di dominio, ed è così che lo si ottiene utilizzando lo strumento da riga di comando nslookup disponibile universalmente :

command line> nslookup
> set querytype=soa
> stackoverflow.com
Server:         217.30.180.230
Address:        217.30.180.230#53

Non-authoritative answer:
stackoverflow.com
        origin = ns51.domaincontrol.com # ("primary name server" on Windows)
        mail addr = dns.jomax.net       # ("responsible mail addr" on Windows)
        serial = 2008041300
        refresh = 28800
        retry = 7200
        expire = 604800
        minimum = 86400
Authoritative answers can be found from:
stackoverflow.com       nameserver = ns52.domaincontrol.com.
stackoverflow.com       nameserver = ns51.domaincontrol.com.

La riga di origine (o server dei nomi primario su Windows) indica che ns51.domaincontrol è il server dei nomi principale per stackoverflow.com .

Alla fine dell'output vengono elencati tutti i server autorevoli, inclusi i server di backup per il dominio specificato.


158
nslookup -type = soa stackoverflow.com
Ben Amada,

6
Tuttavia, in Windows non riesco a vedere la risposta "Risposte autorevoli". Ho Windows 8 e Ubuntu 12 fianco a fianco e quindi lo stesso comando per lo stesso dominio funziona correttamente su Ubuntu ma non su Windows.
Mario Awad,

1
attenzione che questo mostra non mostra necessariamente le recenti modifiche alle configurazioni DNS, per quanto l'utilizzo mi sia digsembrato, per me (vedi risposta sotto)
rogerdpack

6
Cosa significa se non esiste una risposta autorevole ma la risposta non autorevole va bene?
Overmind

6
Se corri nslookup -type=soa stackoverflow.comsu Linux oggi (2019-febbraio), la sezione autorevole è vuota.
simpleuser

174

Hai usato il singolare nella tua domanda, ma in genere ci sono diversi server dei nomi autorevoli, RFC 1034 ne consiglia almeno due.

A meno che non si intenda "server dei nomi primario" e non "server dei nomi autorevole". I server dei nomi secondari sono autorevoli.

Per scoprire i server dei nomi di un dominio su Unix:

  % dig +short NS stackoverflow.com
 ns52.domaincontrol.com.
 ns51.domaincontrol.com.

Per scoprire il server elencato come primario (la nozione di "primario" è piuttosto confusa in questi giorni e in genere non ha una buona risposta):

% dig +short  SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.

Per verificare le discrepanze tra i server dei nomi, la mia preferenza va al vecchio check_soastrumento, descritto nel libro "DNS & BIND" di Liu & Albitz (editor O'Reilly). Il codice sorgente è disponibile in http://examples.oreilly.com/dns5/

% check_soa stackoverflow.com
ns51.domaincontrol.com has serial number 2008041300
ns52.domaincontrol.com has serial number 2008041300

Qui, i due server dei nomi autorevoli hanno lo stesso numero seriale. Buona.


5
dig + short non dà sempre la risposta che mi aspetto. Ad esempio, un sito definito come www.pressero.com, che è un CNAME per un altro sito - dig + short SOA restituisce solo il target CNAME.
Ross Presser,

Come si rende autorevole un NS?
Overmind

1
@Overmind non si rende un "autorevole" NS. Se un nameserver è configurato come autorevole per alcuni domini, significa che ha file di zona localmente (in genere file testuali piatti, ma potrebbe essere fatto diversamente) per questi domini e risponde alla query per essi. Per essere utili, devono essere elencati come record NS nella zona padre per ciascuno dei domini per cui sono autorevoli, altrimenti nessuno li interrogherà per impostazione predefinita.
Patrick Mevzek,

@RossPresser la risposta stava parlando dei record NS / SOA e dubito che lo fai per www.pressero.com, probabilmente stavi pensando ai record A (che è il tipo di record predefinito digse non lo specifichi). Ma se necessario, basta aggiungere a tail -1per recuperare il risultato finale.
Patrick Mevzek,

@PatrickMevzek Come ho affermato nel mio commento, ho usato dig +short SOA www.pressero.com. Ciò restituisce solo il target CNAME, non il record SOA per il pressero.comdominio, che è quello che mi aspettavo. tail -1non aiuta le cose; dig +short SOAsta emettendo solo una riga.
Ross Presser,

40

On * nix:

$ dig -t ns <domain name>

3
Ha chiesto i server dei nomi, non l'indirizzo IPv4. Quindi il tipo (-t) dovrebbe essere NS, non A.
bortzmeyer il

1
perché non digitare SOA @bortzmeyer?
Randy L

Uh, perché questo restituisce la SOA invece del risultato NS?
Tripleee

17

Ho uno strumento di propagazione DNS progettato per rispondere a questo tipo di domande.

La fonte è rilasciata sotto AGPLv3.

(Sì, l'interfaccia è piuttosto semplice al momento :))

Puoi anche scoprire i nameserver per un dominio con il comando "host":

[davidp @ supernova: ~] $ host -t ns stackoverflow.com
server dei nomi stackoverflow.com ns51.domaincontrol.com.
server dei nomi stackoverflow.com ns52.domaincontrol.com.

@cacho È vero; Potrei aggiungere questo, se ne avrò la possibilità.
David Precious,

1
È rotto, mostra "502 Bad Gateway nginx / 1.14.2"
Marco Demaio

8

Ho scoperto che il modo migliore per aggiungere sempre l'opzione + trace:

dig SOA +trace stackoverflow.com

Funziona anche con CNAME ricorsivo ospitato in diversi provider. + trace trace implica + norecurse quindi il risultato è solo per il dominio specificato.


Nota se stai eseguendo un server NS locale come dnsmasq + trace non restituirà nulla ...
Daniel Sokolowski

Questo comando fornisce 53 righe, 3652 byte di output, molti dei quali sono valori casuali. Come dovrebbe qualcuno interpretare l'output per determinare quale sia il server dei nomi autorevole?
theferrit32

L'ho letto dal basso verso l'alto. Il record SOA è ciò che cerchi. Puoi fare in modo che SOA abbia meno dati.
Alex,

6

Il termine su cui dovresti cercare su Google è "autorevole", non "definitivo".

Su Linux o Mac è possibile utilizzare i comandi whois, dig, host, nslookupo più altri. nslookuppotrebbe funzionare anche su Windows.

Un esempio:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM

Per quanto riguarda il credito extra: Sì, è possibile.


aryeh è decisamente sbagliato, poiché il suo suggerimento di solito ti darà solo l'indirizzo IP per il nome host. Se lo usi dig, devi cercare i record NS, in questo modo:

dig ns stackoverflow.com

Tieni presente che ciò potrebbe richiedere al tuo server DNS locale e quindi fornire risposte errate o non aggiornate che ha nella sua cache.


6
Questi comandi non sono equivalenti. Nulla dice che le informazioni fornite da whois siano aggiornate. Spesso non è perché le persone aggiornano i record NS nel file di zona senza avvisare il registro o il registrar.
bortzmeyer,

Non ho mai detto che lo fossero;) È possibile modificare i record NS nella propria zona come desiderato, purché la zona padre non venga aggiornata, nulla cambierà. E un aggiornamento della zona padre di solito va di pari passo con un aggiornamento dei dati whois (almeno con i miei fornitori).

5

Abbiamo creato uno strumento di ricerca DNS che ti fornisce i server dei nomi autorevoli del dominio e i suoi record DNS comuni in una richiesta.

Esempio: https://www.misk.com/tools/#dns/stackoverflow.com

Il nostro strumento trova i server dei nomi autorevoli eseguendo una ricerca DNS (in cache) in tempo reale sui server dei nomi radice e quindi seguendo i riferimenti ai nameserver fino a raggiungere i server dei nomi autorevoli. Questa è la stessa logica utilizzata dai resolver DNS per ottenere risposte autorevoli. Un nameserver autorevole casuale viene selezionato (e identificato) su ogni query che consente di trovare record DNS in conflitto eseguendo più richieste.

È inoltre possibile visualizzare il percorso della delega del nameserver facendo clic su "Nameserver autorevoli" nella parte inferiore dei risultati della ricerca DNS nell'esempio sopra.

Esempio: https://www.misk.com/tools/#dns/stackoverflow.com@f.root-servers.net


2

È possibile utilizzare il servizio whois. Su un sistema operativo UNIX come si eseguirà il seguente comando. In alternativa, puoi farlo sul Web all'indirizzo http://www.internic.net/whois.html .

whois stackoverflow.com

Otterresti la seguente risposta.

... testo rimosso qui ...

Server di dominio nell'ordine elencato: NS51.DOMAINCONTROL.COM NS52.DOMAINCONTROL.COM

Puoi usare nslookup o scavare per scoprire maggiori informazioni sui record per un determinato dominio. Questo potrebbe aiutarti a risolvere i conflitti che hai descritto.


2
Nulla dice che le informazioni fornite da whois siano aggiornate. Spesso non è perché le persone aggiornano i record NS nel file di zona senza avvisare il registro o il registrar.
bortzmeyer,

Pur non essendo una risposta diretta alla domanda, "whois" è utile perché ti dice chi dovrebbe essere il server dei nomi da qualche parte (anche se per qualsiasi motivo non lo sia attualmente).
SomeoneElse

1

Sfortunatamente, la maggior parte di questi strumenti restituisce solo il record NS fornito dallo stesso vero server dei nomi. Per essere più accurati nel determinare quali server dei nomi sono effettivamente responsabili di un dominio, dovresti usare "whois" e controllare i domini elencati lì O usare "dig [domain] NS @ [root name server]" ed eseguirlo in modo ricorsivo fino a quando non si ottiene l'elenco dei server dei nomi ...

Vorrei che ci fosse una semplice riga di comando che potresti eseguire per ottenere quel risultato in modo affidabile e in un formato coerente, non solo il risultato che viene fornito dal server dei nomi stesso. Lo scopo di questo per me è quello di essere in grado di interrogare circa 330 nomi di dominio che gestisco in modo da poter determinare esattamente a quale server dei nomi punta ogni dominio (secondo le loro impostazioni del registrar).

Qualcuno sa di un comando usando "dig" o "host" o qualcos'altro su * nix?


2
Semplice. Supponiamo che il dominio sia esempio.org. Innanzitutto, devi trovare i server dei nomi di ".org" con 'dig + short NS org.'. Quindi interroghi uno di essi (chiunque, sono tutti autorevoli). Scegliamo d0.org.afilias-nst.org. Esegui una query con "dig @ d0.org.afilias-nst.org NS example.org.".
Bortzmeyer,

Il fatto che il resolver restituisca, per impostazione predefinita, i server dei nomi elencati dal dominio stesso è una buona cosa. Queste sono le informazioni autorevoli. La delega nella zona padre NON è autorevole.
Bortzmeyer,

E l'indicatore di whois è un'aringa rossa. Le informazioni del server dei nomi whois sono spesso obsolete. La risorsa autorevole è il DNS.
Tripleee

1
Whois è completamente arbitrario. Il valore che vedi nell'elenco whois non ha legami tecnici con DNS. È spesso obsoleto o sbagliato. Andrei fino al punto di dire che i dati whois non dovrebbero quasi mai fidarsi. Esistono registri "sottili" e "spessi". I due noti registri spessi sono i registri .com e .net. Questi registri contengono tutti i dati DNS e sono probabilmente attendibili risposte whois. Quasi altri registri sono "cose" e gestiscono i propri registri whois. Questi dati sono spesso errati.
Segna il

1

I record SOA sono presenti su tutti i server più in alto nella gerarchia, su cui il proprietario del dominio non ha alcun controllo e tutti in effetti puntano all'unico server dei nomi autorevole sotto il controllo del proprietario del dominio.

Il record SOA sul server autorevole stesso, d'altra parte, non è strettamente necessario per la risoluzione di quel dominio e può contenere informazioni false (o server primari nascosti o altrimenti limitati) e non deve essere invocato per determinare il server dei nomi autorevole per un determinato dominio.

È necessario eseguire una query sul server autorevole per il dominio di primo livello per ottenere informazioni SOA affidabili per un determinato dominio figlio.

(Le informazioni su quale server è autorevole per cui TLD può essere interrogato dai server dei nomi di root).

Quando si hanno informazioni affidabili sulla SOA dal server autorevole TLD, è quindi possibile eseguire una query autorevole sul server dei nomi primario (quello presente nel record SOA sul nameserver gTLD!) Per qualsiasi altro record NS, quindi procedere con il controllo di tutto quei server dei nomi che hai ottenuto dall'interrogazione dei record NS, per vedere se c'è qualche incoerenza per qualsiasi altro record particolare, su uno di quei server.

Tutto questo funziona molto meglio / affidabile con Linux e scavare che con nslookup / windows.


0

Un modo semplice è utilizzare uno strumento di dominio online. Il mio preferito è Domain Tools (precedentemente whois.sc). Tuttavia, non sono sicuro che possano risolvere record DNS in conflitto. Ad esempio, sono i server DNS per stackoverflow.com

  NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM

0

Ho scoperto che per alcuni domini, le risposte sopra non funzionano. Il modo più veloce che ho trovato è prima di controllare un record NS. Se ciò non esiste, verificare la presenza di un record SOA. Se ciò non esiste, risolvi ricorsivamente il nome usando dig e prendi l'ultimo record NS restituito. Un esempio che si adatta a questo èanalyticsdcs.ccs.mcafee.com.

  1. Verificare la presenza di un record NS

host -t NS analyticsdcs.ccs.mcafee.com.

  1. Se non è stato trovato alcun NS, verificare la presenza di un record SOA

host -t SOA analyticsdcs.ccs.mcafee.com.

  1. Se né NS né SOA, esegui il ricorsivo completo e prendi l'ultimo NS restituito

dig +trace analyticsdcs.ccs.mcafee.com. | grep -w 'IN[[:space:]]*NS' | tail -1

  1. Verifica che il server dei nomi restituito funzioni

host analyticsdcs.ccs.mcafee.com. gtm2.mcafee.com.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.