Chi ti chiede Linux quando esegui un whois?


11

Quando lo fai:

$ whois stackoverflow.com

il tuo Linux prima fa una query DNS, trova l'IP di stackoverflow.com e poi chiede le informazioni direttamente lì?

Oppure chiede un server whois "root" (l'IP del "server whois root" è codificato in una distribuzione Linux, in modo simile a /etc/bind/db.root?), Che quindi delega a un altro server whois che fornisce le informazioni?

Qual è il flusso di connessione?

my computer doing `whois ...` ---> root whois server ---> another whois server ---> information

o

my computer doing `whois ...` ---> DNS server (?) ---> ... ?

Risposte:


12

Se stai usando Marco d'Itriwhois , puoi aggiungere l' --verboseopzione per vedere cosa sta facendo. Per stackoverflow.com, inizia chiedendo whois.verisign-grs.com (vedi l' elenco dei server WHOIS ), che gli fornisce una serie di informazioni, incluso il fatto che il registrar di Stack Overflow è Name.com e il suo WHOIS il server è whois.name.com; quindi procede a chiedere whois.name.com.

Il protocollo è documentato in RFC 3912 . La whoismanpage contiene anche utili suggerimenti.


Grazie (sembra che il whois predefinito di Debian sia quello di Marco d'Itri). Esiste un comando per dire whoisdi usare un altro server WHOIS di verisign-grs? Non l'ho trovato man whois.
Basj,

Qualcos'altro: l'hai detto e poi le domande whois.name.com. Questo significa che ogni registrar deve avere un server registrar-whois? Quando whois google.frlo fa non sembra interrogare un altro whois oltre a quello hardcoded-in-whois, ovvero whois.nic.fr. È giusto?
Basj,

Bene, l'impostazione predefinita di Debian whoisè Marco d'Itri (Marco è uno sviluppatore Debian). L'opzione che stai cercando è -h(vedi whois -h whois.name.com stackoverflow.com). I registrar non devono tutti avere un server WHOIS; solo il registrar “autorevole” per un TLD fa AFAIK. Quindi, nel google.frcaso, il registrar è MARKMONITOR, ma le informazioni provengono da AFNIC che è il registrar TLD per .fr.
Stephen Kitt,

Molte grazie. La cosa divertente è: quando lo faccio whois stackoverflow.comottengo pochissime informazioni, ma quando lo faccio whois -h whois.name.com stackoverflow.comottengo molte più informazioni ( Admin Organization: Stack Exchange, Inc., indirizzo, ecc.) Che non ottengo quando lo faccio whois stackoverflow.com. È il comportamento previsto di whois, cioè devi prima fare whois domain.com, poi guardando il server whois, devi rifare a whois -h ... domain.comper avere maggiori informazioni? Non dovrebbe whoisfare tutto questo direttamente quando trova un registrar whois?
Basj,

Si dovrebbe ottenere le stesse informazioni, perché whois stackoverflow.com non andare a chiedere whois.name.com sé (almeno, lo fa nella versione 5.2.17). Potresti riscontrare problemi di limitazione della velocità, whois.name.com ti blocca temporaneamente se emetti troppe richieste (ma ricevi un messaggio di errore). Se eseguo il dump whois stackoverflow.come whois -h whois.name.com stackoverflow.comli confronto, ottengo esattamente lo stesso output name.com in entrambi i casi.
Stephen Kitt,

11

Stephen ha risposto alle parti principali, ma hai alcuni altri punti che voglio affrontare:

  1. Whois è un protocollo mal definito. Non esiste una gerarchia, nessun root whois, ecc. In realtà non c'è nulla di correlato al DNS nei sistemi whois, dovresti iniziare separandoli completamente nella tua mente come, oltre al fatto che prendono i loro dati dalla stessa fonte (il registro database) funzionano in modo completamente indipendente.
  2. Ogni registro TLD funziona diversamente a questo proposito. I gTLD sono un caso a sé stante: per contratto ICANN, per ora, ogni registrar ha l'obbligo di avere un server whois che risponda a tutti i nomi che gestisce. I registri hanno lo stesso requisito. L'output whois del registro elenca il server whois del registrar (ma come ho scritto in un commento sopra, questo è cambiato leggermente di recente - senza una buona ragione in realtà - che ha rotto molti client whois) principalmente per un motivo storico che presto scomparirà: in passato (e ancora adesso per .COM / .NET - .JOBS è passato di recente ma era precedentemente nella stessa barca, vedi https://www.icann.org/resources/pages/thick-whois-transition-policy-2017- 02-01-it) dove registri "thin", il che significa che il registro non memorizza i dati relativi ai contatti, ma solo il registrar. Ciò significa che se vuoi davvero avere dati sul nome di dominio e trovare chi contattare in caso di problemi (che era - ed è ancora - l'obiettivo originale del protocollo whois), devi prima interrogare il server whois del registro su ottenere il set di informazioni di base e scoprire il registrar whois server e quindi contattare questo registrar whois server per ottenere l'accesso a tutte le informazioni di contatto. Questo spiega perché l'output del registro di .COM / .NET oggi fornisce solo dati su server dei nomi di dominio, date e stati. E il registrar whois nome server, che whois client tenta di seguire ma a volte non può perché le cose cambiano (vedi il mio commento sopra)
  3. i ccTLD quasi sempre non funzionano così, anche se si utilizzano registrar, interrogando il server whois del registro si ottengono tutti i risultati necessari e anche se alcuni mancano (per motivi di privacy, ad esempio), non è necessario interrogare il server whois dei registrar come non sono incaricati dai registri di eseguirlo per i ccTLD che gestiscono (ma comunque alcuni registrar lo fanno). Questo spiega ad esempio la tua osservazione per un .frnome di dominio.
  4. alcuni client whois indirizzano gli indirizzi hardcode dei server whois, altri tentano whois.nic.$TLDdi default che spesso funziona come registro di sistema $TLDspesso ha nic.$TLDcome nome di dominio operativo primario.
  5. IANA gestisce l'elenco dei registri a https://www.iana.org/domains/root/db ed in ogni pagina Registro di sistema, come ad esempio https://www.iana.org/domains/root/db/fr.html voi avrà una riga che WHOIS Serverelenca il server whois relativo al registro selezionato. Tuttavia, a volte potrebbe essere obsoleto o sbagliato. Puoi anche accedere a questi dati facendo una query whois per un TLD verso whois.iana.org, ti fornirà i dati sul registro rilevante, incluso il suo server whois nella whoischiave.
  6. C'è anche un altro trucco. Se esegui una query DNS (ma ricorda che questo punto non invalida il primo punto) poiché $TLD.whois-servers.netti darà il nome del server whois corrispondente per $TLD, come record CNAME. Alcuni client whois possono usare questo trucco, ma ne dubito (il whoisclient GNU potrebbe essere uno di questi, o forse è quello di FreeBSD). Si noti che questa iniziativa è puramente privata e, anche se avrebbe dovuto essere, non è gestita dalle principali autorità coinvolte in tutto ciò, come ICANN o IANA. Per esempio dig uk.whois-servers.net +shortvi darà: whois.nic.uk.. Il fascino di questo è che dovrebbe essere aggiornato se questo cambia (molto raro) o (più spesso) quando i nuovi registri / TLD diventano attivi.
  7. Alcuni registri pubblicano il proprio endpoint dell'indirizzo del server whois utilizzando SRVquale è il tipo di record DNS dedicato per specificare dove un nome di dominio gestisce un servizio specifico. Quindi, se lo fai dig _nicname._tcp.fr +shortotterrai effettivamente ciò 0 0 43 whois.nic.fr.che dà, oltre a due primi numeri che non sono usati (ma potrebbero essere usati per il bilanciamento del carico / failover), il numero di porta ( 43) e il nome del server whois.nic.frda contattare per ottenere nicname, questo è il whoisservizio sotto il suo nome ufficiale registrato ( https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml ), per ilfrdominio. Non viene utilizzato da molti registri, ma avrebbe dovuto essere, i record SRV forniscono esattamente questo meccanismo di rilevamento automatico distribuito che funziona anche a qualsiasi livello dell'albero DNS in modo che funzioni per registri e registri "secondari", ecc. .

Si noti che molte delle precedenti cambieranno una volta che RDAP, un protocollo più recente, sostituirà whois. È già definito da più RFC e utilizzato da alcuni registri (in produzione per RIR, in esperimenti per alcuni registri di nomi di dominio) ma non è ancora contrattualmente costretto ad essere utilizzato da registri e registrar (per motivi non tecnici) nel gTLD world, e i registri ccTLD sembrano riluttanti a abbandonare i loro attuali server whois per mettere invece i server RDAP.


2

Il tuo client WHOIS chiede a un server WHOIS (sulla porta TCP 43) e risponde direttamente. Il client WHOIS di Debian ha un elenco di server hardcoded da cui seleziona automaticamente. IANA ha anche un servizio WHOIS.

Fonte: RFC 3912


Grazie. Il tld_serv_listfile non è disponibile in un Debian? Ho cercato sul mio filesystem ma non riesco a trovarlo. Questo significa che è compilato all'interno del binario whois /usr/bin/whois?
Basj,

1
È infatti compilato nel binario (vedi l'output di strings /usr/bin/whois).
Stephen Kitt,
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.