À qui Linux demande-t-il lorsque vous effectuez un whois?

11

Quand vous faites:

$ whois stackoverflow.com

votre Linux effectue-t-il d'abord une requête DNS, trouve-t-il l'IP de stackoverflow.com, puis demande-t-il directement les informations?

Ou demande-t-il un serveur whois "racine" (l'IP du "serveur whois racine" est-elle codée en dur dans une distribution Linux, d'une manière similaire à /etc/bind/db.root?), Qui délègue ensuite à un autre serveur whois qui donne les informations?

Quel est le flux de connexion?

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

ou

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

Réponses:

12

Si vous utilisez Marco d'Itriwhois , vous pouvez ajouter l' --verboseoption pour voir ce qu'il fait. Pour stackoverflow.com, il commence par demander à whois.verisign-grs.com (voir sa liste de serveurs WHOIS ), ce qui lui donne un certain nombre d'informations, y compris le fait que le bureau d'enregistrement de Stack Overflow est Name.com, et son WHOIS le serveur est whois.name.com; il passe alors à demander à whois.name.com.

Le protocole est documenté dans la RFC 3912 . La whoispage de manuel contient également des pointeurs utiles.

Stephen Kitt
la source
Merci (il semble que le whois par défaut de Debian soit celui de Marco d'Itri). Existe-t-il une commande pour indiquer whoisd'utiliser un autre serveur WHOIS que verisign-grs? Je ne l'ai pas trouvé man whois.
Basj
Autre chose: vous l'avez dit puis interroge whois.name.com. Est-ce à dire que chaque bureau d'enregistrement doit avoir un serveur de bureau d'enregistrement whois? En le faisant, whois google.fril ne semble pas interroger un autre whois que celui codé en dur, c'est-à-dire whois.nic.fr. Est-ce correct?
Basj
À droite, Debian par défaut whoisest Marco d'Itri (Marco est un développeur Debian). L'option que vous recherchez est -h(voir whois -h whois.name.com stackoverflow.com). Les bureaux d'enregistrement n'ont pas tous besoin d'un serveur WHOIS; seul le bureau d'enregistrement «faisant autorité» pour un TLD fait l'AFAIK. Ainsi dans google.frle cas de, le bureau d'enregistrement est MARKMONITOR, mais les informations proviennent de l'AFNIC qui est le bureau d'enregistrement du TLD .fr.
Stephen Kitt
Merci beaucoup. Ce qui est drôle, c'est que lorsque whois stackoverflow.comj'obtiens, je reçois très peu d'informations, mais lorsque whois -h whois.name.com stackoverflow.comj'obtiens, j'obtiens beaucoup plus d' informations ( Admin Organization: Stack Exchange, Inc., adresse, etc.) que je n'obtiens pas en faisant whois stackoverflow.com. Est-ce le comportement attendu de whois, c'est-à-dire que vous devez d' abord le faire whois domain.com, puis en regardant le serveur whois, vous devez refaire un whois -h ... domain.compour avoir plus d'informations? Ne devrait-il pas whoisfaire tout cela directement quand il trouve un registraire whois?
Basj
Vous devriez obtenir les mêmes informations, parce que whois stackoverflow.com ne va et demander whois.name.com lui - même (au moins, il le fait dans la version 5.2.17). Vous rencontrez peut-être des problèmes de limitation de débit, whois.name.com vous bloque temporairement si vous émettez trop de demandes (mais vous obtenez un message d'erreur). Si je les vide whois stackoverflow.comet les whois -h whois.name.com stackoverflow.comcompare, j'obtiens exactement la même sortie name.com dans les deux cas.
Stephen Kitt,
11

Stephen a répondu aux parties principales, mais vous avez d'autres points que je veux aborder:

  1. Whois est un protocole mal défini. Il n'y a pas de hiérarchie, pas de root whois, etc. base de données), ils fonctionnent en toute indépendance.
  2. Chaque registre TLD fonctionne différemment à cet égard. Les gTLD sont un cas à part entière: selon le contrat de l'ICANN, pour le moment, chaque bureau d'enregistrement a l'obligation d'avoir un serveur whois répondant pour tous les noms qu'il gère. Les registres ont la même exigence. La sortie whois du registre répertorie le serveur whois du registraire (mais comme je l'ai écrit dans un commentaire ci-dessus, cela a légèrement changé récemment - sans raison valable - qui a cassé de nombreux clients whois) principalement pour une raison historique qui disparaîtra bientôt: dans le passé (et encore maintenant pour .COM / .NET - .JOBS a récemment changé de type mais était auparavant dans le même bateau, voir https://www.icann.org/resources/pages/thick-whois-transition-policy-2017- 02-01-fr) registres où «mince», ce qui signifie que le registre ne stocke pas de données sur les contacts, seul le bureau d'enregistrement le fait. Ce qui signifie que si vous voulez vraiment avoir des données sur le nom de domaine et trouver qui contacter en cas de problèmes (ce qui était - et est toujours - l'objectif initial du protocole whois), vous devez d'abord interroger le serveur whois du registre pour obtenir l'ensemble d'informations de base et découvrir le serveur whois du bureau d'enregistrement, puis contacter ce serveur whois du bureau d'enregistrement pour accéder à toutes les informations de contact. Cela explique pourquoi la sortie de registre de .COM / .NET aujourd'hui ne vous donne que des données sur les serveurs de noms de domaine, les dates et les statuts. Et le nom du serveur whois du bureau d'enregistrement, que le client whois essaie de suivre mais parfois ne peut pas parce que les choses changent (voir mon commentaire ci-dessus)
  3. Les ccTLD ne fonctionnent presque toujours pas comme ça, même si vous utilisez des bureaux d'enregistrement, interroger le serveur whois du registre vous renvoie tous les résultats nécessaires et même si certains sont manquants (pour des raisons de confidentialité par exemple), vous n'avez pas besoin d'interroger le serveur whois des bureaux d'enregistrement comme ils ne sont pas mandatés par les registres pour l'exécuter pour les ccTLD qu'ils gèrent (mais certains bureaux d'enregistrement le font néanmoins). Cela explique votre observation pour un .frnom de domaine par exemple.
  4. certains clients whois codent en dur des adresses de serveurs whois, d'autres essaient whois.nic.$TLDpar défaut qui fonctionne souvent comme registre ou $TLDsouvent nic.$TLDcomme nom de domaine principal.
  5. L'IANA gère la liste des registres sur https://www.iana.org/domains/root/db et dans chaque page de registre, comme https://www.iana.org/domains/root/db/fr.html vous aura une ligne WHOIS Serverrépertoriant le serveur whois lié au registre sélectionné. Veuillez noter cependant qu'il peut parfois devenir obsolète ou erroné. Vous pouvez également accéder à ces données en effectuant une requête whois pour un TLD whois.iana.org, il vous donnera des données sur le registre concerné, y compris son serveur whois dans la whoisclé.
  6. Il y a aussi une autre astuce. Si vous effectuez une requête DNS (mais n'oubliez pas que ce point n'invalide pas le premier point) car $TLD.whois-servers.netil vous donnera le nom du serveur whois correspondant pour $TLD, en tant qu'enregistrement CNAME. Certains clients whois peuvent utiliser cette astuce, mais j'en doute (le whoisclient GNU peut être l'un d'eux cependant, ou c'est peut-être celui de FreeBSD). Notez que cette initiative est purement privée et, même si elle aurait dû l'être, n'est pas gérée par les plus hautes autorités impliquées dans tout cela, comme l'ICANN ou l'IANA. Par exemple dig uk.whois-servers.net +shortvous donnera: whois.nic.uk.. Le charme de ceci est qu'il devrait être mis à jour si cela change (très rare) ou (plus souvent) lorsque de nouveaux registres / TLD sont mis en ligne.
  7. Certains registres publient leur point de terminaison d'adresse de serveur whois en utilisant SRVle type d'enregistrement DNS dédié pour spécifier où un nom de domaine gère un service spécifique. Donc, si vous le faites, dig _nicname._tcp.fr +shortvous obtiendrez en effet 0 0 43 whois.nic.fr.ce qui donne, outre deux premiers numéros qui ne sont pas utilisés (mais pourraient être utilisés pour l'équilibrage de charge / basculement), le numéro de port ( 43) et le nom du serveur whois.nic.frà contacter pour obtenir nicname, c'est-à-dire le whoisservice sous sa nom officiel enregistré ( https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml ), pour lefrdomaine. Il n'est pas utilisé par beaucoup de registres, mais il aurait dû l'être, les enregistrements SRV fournissent exactement ce mécanisme de découverte automatique distribué qui fonctionne même à n'importe quel niveau de l'arborescence DNS afin qu'il fonctionne pour les registres et les sous-registres, etc. .

Notez que beaucoup de ce qui précède changera une fois que RDAP, un protocole plus récent, remplacera whois. Il est déjà défini par plusieurs RFC et utilisé par certains registres (en production pour les RIR, dans des expériences pour certains registres de noms de domaine) mais il n'est pas encore contractuellement contraint à être utilisé par les registres et les bureaux d'enregistrement (pour des raisons non techniques) dans le gTLD monde, et les registres ccTLD semblent réticents à abandonner leurs serveurs whois actuels pour remplacer les serveurs RDAP.

Patrick Mevzek
la source
2

Votre client WHOIS demande un serveur WHOIS (sur le port TCP 43) et il répond directement. Le client WHOIS de Debian a une liste codée en dur de serveurs parmi lesquels il choisit automatiquement. L'IANA dispose également d'un service WHOIS.

Source: RFC 3912

gmarmstrong
la source
Merci. Le tld_serv_listfichier n'est-il pas disponible dans une Debian? J'ai cherché sur mon système de fichiers mais je ne le trouve pas. Est-ce à dire qu'il est compilé à l'intérieur du binaire whois /usr/bin/whois?
Basj
1
Il est en effet compilé dans le binaire (voir la sortie de strings /usr/bin/whois).
Stephen Kitt