¿A quién pregunta Linux cuando realizas un whois?

11

Cuando tu lo hagas:

$ whois stackoverflow.com

¿Su Linux primero realiza una consulta DNS, encuentra la IP de stackoverflow.com y luego solicita la información directamente allí?

¿O le pide a un servidor whois "raíz" (la IP del "servidor whois raíz" está codificada en una distribución Linux, de manera similar a /etc/bind/db.root?), Que luego delega a otro servidor whois que proporciona la información?

¿Cuál es el flujo de conexión?

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

o

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

Respuestas:

12

Si está utilizando Marco d'Itriwhois , puede agregar la --verboseopción para ver qué está haciendo. Para stackoverflow.com, comienza preguntando whois.verisign-grs.com (consulte su lista de servidores de WHOIS ), que le proporciona una cantidad de información, incluido el hecho de que el registrador de Stack Overflow es Name.com, y su WHOIS el servidor es whois.name.com; entonces procede a preguntar whois.name.com.

El protocolo está documentado en RFC 3912 . La página de whoismanual también tiene punteros útiles.

Stephen Kitt
fuente
Gracias (parece que el whois predeterminado de Debian es Marco d'Itri). ¿Hay un comando que indique whoisque use otro servidor WHOIS que no sea verisign-grs? No lo encontré en man whois.
Basj
Algo más: lo dijiste y luego consultas whois.name.com. ¿Esto significa que cada registrador debe tener un servidor whois registrador? Cuando whois google.frlo hace, no parece consultar otro whois que el hardcoded-in-whois, es decir whois.nic.fr. ¿Está bien?
Basj
Correcto, el valor predeterminado de Debian whoises Marco d'Itri (Marco es un desarrollador de Debian). La opción que estás buscando es -h(ver whois -h whois.name.com stackoverflow.com). No todos los registradores deben tener un servidor de WHOIS; solo el registrador "autorizado" para un TLD hace AFAIK. Por lo tanto, en google.frel caso, el registrador es MARKMONITOR, pero la información proviene de AFNIC, que es el registrador de TLD .fr.
Stephen Kitt
Muchas gracias. Lo curioso es: cuando hago whois stackoverflow.com, obtengo muy poca información, pero cuando lo whois -h whois.name.com stackoverflow.comhago, obtengo mucha más información ( Admin Organization: Stack Exchange, Inc., dirección, etc.) que no obtengo al hacerlo whois stackoverflow.com. ¿Es el comportamiento esperado de whois, es decir, usted tiene que primero hacer whois domain.com, a continuación, mirando el servidor whois, usted tiene que hacer de nuevo una whois -h ... domain.compara tener más informaciones? ¿No debería whoishacer todo esto directamente cuando encuentra un registrador whois?
Basj
Usted debe obtener la misma información, ya que whois stackoverflow.com no ir y pedir whois.name.com sí (al menos, lo hace en la versión 5.2.17). Es posible que tenga problemas de limitación de velocidad, whois.name.com lo bloquea temporalmente si emite demasiadas solicitudes (pero recibe un mensaje de error). Si vuelco whois stackoverflow.comy los whois -h whois.name.com stackoverflow.comcomparo, obtengo exactamente el mismo resultado de name.com en ambos casos.
Stephen Kitt
11

Stephen respondió las partes principales, pero tiene otros puntos que quiero abordar:

  1. Whois es un protocolo mal definido. No hay jerarquía, no hay whois raíz, etc. De hecho, no hay nada relacionado con DNS en los sistemas whois, debe comenzar separándolos por completo en su mente ya que, además del hecho de que toman sus datos de la misma fuente (el registro base de datos) operan de forma completamente independiente.
  2. Cada registro de TLD funciona de manera diferente a este respecto. Los gTLD son un caso en sí mismos: según el contrato de ICANN, por ahora, cada registrador tiene la obligación de tener un servidor whois que responda por todos los nombres que maneja. Los registros tienen el mismo requisito. La salida whois del registro enumera el servidor whois del registrador (pero como escribí en un comentario anterior, esto cambió ligeramente recientemente, sin una buena razón, lo que rompió a muchos clientes whois) principalmente por una razón histórica que pronto desaparecerá: en el pasado (y todavía ahora para .COM / .NET - .JOBS se cambió recientemente pero anteriormente estaba en el mismo barco, consulte https://www.icann.org/resources/pages/thick-whois-transition-policy-2017- 02-01-es) registros donde 'delgado', lo que significa que el registro no almacena datos sobre los contactos, solo el registrador lo hace. Lo que significa que si realmente desea tener datos sobre el nombre de dominio y encontrar a quién contactar en caso de problemas (que era, y sigue siendo, el objetivo original del protocolo whois), primero debe consultar el servidor whois del registro para obtenga el conjunto básico de información y descubra el servidor whois del registrador y luego póngase en contacto con este servidor whois del registrador para obtener acceso a toda la información de contacto. Esto explica por qué la salida del registro de .COM / .NET hoy solo le brinda datos sobre servidores de nombres de dominio, fechas y estados. Y el nombre del servidor whois del registrador, que el cliente whois intenta seguir pero a veces no puede porque las cosas cambian (vea mi comentario más arriba)
  3. Los ccTLD casi nunca funcionan así, incluso si utiliza registradores, al consultar el servidor whois del registro obtiene todos los resultados necesarios e incluso si faltan algunos (por razones de privacidad, por ejemplo), no necesita consultar el servidor whois de los registradores como los registros no los obligan a ejecutarlo para los ccTLD que manejan (pero algunos registradores sí lo hacen). Esto explica su observación de un .frnombre de dominio, por ejemplo.
  4. algunos clientes de whois codifican las direcciones de los servidores de whois, algunos lo prueban whois.nic.$TLDde manera predeterminada, lo que a menudo funciona como registro y a $TLDmenudo tiene nic.$TLDcomo nombre de dominio operativo principal.
  5. IANA se encarga de la lista de registros en https://www.iana.org/domains/root/db y en cada página del Registro, como https://www.iana.org/domains/root/db/fr.html se tendrá una línea que WHOIS Serverenumera el servidor whois relacionado con el registro seleccionado. Sin embargo, tenga en cuenta que a veces puede estar desactualizado o mal. También puede acceder a estos datos haciendo una consulta whois para un TLD whois.iana.org, le dará datos sobre el registro relevante, incluido su servidor whois en la whoisclave.
  6. También hay otro truco. Si realiza una consulta DNS (pero recuerde que este punto no invalida el primer punto) $TLD.whois-servers.net, le dará el nombre del servidor whois correspondiente $TLD, como un registro CNAME. Algunos clientes whois pueden usar este truco, pero lo dudo (el whoiscliente GNU puede ser uno de ellos, o quizás sea FreeBSD). Tenga en cuenta que esta iniciativa es puramente privada y, aunque debería haberlo sido, no es manejada por las principales autoridades involucradas en todo esto, como ICANN o IANA. Por ejemplo dig uk.whois-servers.net +shortle dará: whois.nic.uk.. El encanto de esto es que debe actualizarse si esto cambia (muy raro) o (con mayor frecuencia) cuando se inician nuevos registros / TLD.
  7. Algunos registros publican su punto final de dirección de servidor whois utilizando SRVcuál es el tipo de registro DNS dedicado para especificar dónde un nombre de dominio maneja un servicio específico. Entonces, si lo hace dig _nicname._tcp.fr +short, obtendrá lo 0 0 43 whois.nic.fr.que da, además de dos primeros números que no se usan (pero podrían usarse para el equilibrio de carga / conmutación por error), el número de puerto ( 43) y el nombre del servidor whois.nic.frpara contactar para obtener nicname, ese es el whoisservicio bajo su nombre oficial registrado ( https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml ), parafrdominio. No es utilizado por muchos registros, pero debería haberlo sido, los registros SRV proporcionan exactamente este mecanismo de descubrimiento automático distribuido que incluso funciona en cualquier nivel del árbol DNS para que funcione para registros y registros "sub", etc. .

Tenga en cuenta que gran parte de lo anterior cambiará una vez que RDAP, un protocolo más nuevo, reemplace whois. Ya está definido por múltiples RFC y está en uso por algunos registros (en producción para RIR, en experimentos para algunos registros de nombres de dominio) pero todavía no está obligado contractualmente a ser utilizado por registros y registradores (por razones no técnicas) en el gTLD Los registros mundiales y de ccTLD parecen reacios a deshacerse de sus servidores whois actuales para colocar servidores RDAP.

Patrick Mevzek
fuente
2

Su cliente de WHOIS solicita un servidor de WHOIS (en el puerto TCP 43) y responde directamente. El cliente WHOIS de Debian tiene una lista codificada de servidores de los que elige automáticamente. IANA también tiene un servicio de WHOIS.

Fuente: RFC 3912

gmarmstrong
fuente
Gracias. ¿El tld_serv_listarchivo no está disponible en un Debian? Busqué en mi sistema de archivos pero no lo encuentro. ¿Esto significa que está compilado dentro del binario whois /usr/bin/whois?
Basj
1
De hecho, se compila en el binario (ver la salida de strings /usr/bin/whois).
Stephen Kitt