
Когда вы это делаете:
$ whois stackoverflow.com
ваш Linux сначала делает DNS-запрос, находит IP-адрес stackoverflow.com, а затем запрашивает информацию непосредственно там?
Или он запрашивает «корневой» whois-сервер (IP-адрес «корневого whois-сервера» жестко закодирован в дистрибутиве Linux, подобно тому, как это делается /etc/bind/db.root
?), который затем делегирует полномочия другому whois-серверу, который предоставляет информацию?
Каков поток соединения?
my computer doing `whois ...` ---> root whois server ---> another whois server ---> information
или
my computer doing `whois ...` ---> DNS server (?) ---> ... ?
решение1
Если вы используетеМарко д'Итриwhois
, вы можете добавить --verbose
опцию, чтобы увидеть, что он делает. Для stackoverflow.com он начинается с вопроса whois.verisign-grs.com (см. егосписок серверов WHOIS), который предоставляет ему ряд сведений, включая тот факт, что регистратором Stack Overflow является Name.com, а его сервером WHOIS является whois.name.com; поэтому затем он запрашивает whois.name.com.
Протокол задокументирован вЗапрос на предложение 3912.whois
страница руководстватакже содержит полезные указания.
решение2
Стивен ответил на основные вопросы, но есть и другие моменты, на которые я хотел бы обратить внимание:
- Whois — плохо определенный протокол. Нет иерархии, нет корневого whois и т. д. Фактически, в системах whois нет ничего, связанного с DNS, вам следует начать с полного разделения их в своем сознании, поскольку, помимо того, что они берут свои данные из одного источника (базы данных реестра), они работают совершенно независимо.
- Каждый реестр TLD работает по-разному в этом отношении. gTLD — это отдельный случай: согласно контракту ICANN, на данный момент каждый регистратор обязан иметь сервер whois, отвечающий за все имена, которые он обрабатывает. У реестров есть одно и то же требование. В выходных данных реестра whois указан сервер whois регистратора (но, как я уже писал в комментарии выше, это недавно немного изменилось — на самом деле, без всякой причины — что сломало многие клиенты whois), в основном по исторической причине, которая скоро исчезнет: в прошлом (и до сих пор для .COM/.NET — .JOBS недавно переключился, но раньше был в той же лодке, см.https://www.icann.org/resources/pages/thick-whois-transition-policy-2017-02-01-en) реестры, где «тонкие», что означает, что реестр не хранит данные о контактах, это делает только регистратор. Это означает, что если вы действительно хотите иметь данные о доменном имени и найти, к кому обратиться в случае проблем (что было — и остается — изначальной целью протокола whois), вам нужно сначала запросить сервер whois реестра, чтобы получить базовый набор информации и обнаружить сервер whois регистратора, а затем связаться с этим сервером whois регистратора, чтобы получить доступ ко всей контактной информации. Это объясняет, почему вывод реестра .COM/.NET сегодня дает вам только данные о серверах доменных имен, датах и статусах. И имя сервера whois регистратора, которому клиент whois пытается следовать, но иногда не может, потому что все меняется (см. мой комментарий выше)
- ccTLD почти всегда не работают таким образом, даже если вы используете регистраторов, запрос к серверу whois реестра возвращает вам все необходимые результаты, и даже если некоторые из них отсутствуют (например, по соображениям конфиденциальности), вам не нужно запрашивать сервер whois регистраторов, поскольку они не обязаны регистраторами запускать его для ccTLD, с которыми они работают (но некоторые регистраторы все же делают это). Это объясняет ваше наблюдение для
.fr
доменного имени, например. - некоторые клиенты whois жестко кодируют адреса серверов whois, некоторые пытаются использовать
whois.nic.$TLD
значение по умолчанию, которое часто работает как реестр или$TLD
часто имеетnic.$TLD
в качестве основного рабочего доменного имени. - IANA обрабатывает список реестров наhttps://www.iana.org/domains/root/dbи на каждой странице реестра, напримерhttps://www.iana.org/domains/root/db/fr.htmlу вас будет строка,
WHOIS Server
в которой перечислены серверы whois, связанные с выбранным реестром. Обратите внимание, однако, что иногда они могут устареть или быть неверными. Вы также можете получить доступ к этим данным, выполнив запрос whois для TLD в направленииwhois.iana.org
, он предоставит вам данные о соответствующем реестре, включая его сервер whois вwhois
ключе. - Есть еще один трюк. Если вы сделаете DNS-запрос (но, пожалуйста, помните, что этот пункт не отменяет первый пункт) для ,
$TLD.whois-servers.net
он даст вам имя соответствующего whois-сервера для$TLD
, как запись CNAME. Некоторые клиенты whois могут использовать этот трюк, но я сомневаюсь в этом (whois
хотя клиент GNU может быть одним из них, или это может быть FreeBSD). Обратите внимание, что эта инициатива является чисто частной и, даже если бы она должна была быть, не обрабатывается высшими органами, вовлеченными во все это, такими как ICANN или IANA. Например,dig uk.whois-servers.net +short
даст вам:whois.nic.uk.
. Прелесть этого в том, что он должен обновляться, если это изменится (очень редко) или (чаще) когда новые реестры/TLD будут запущены. - Некоторые реестры публикуют свои адреса серверов whois endpoint, используя
SRV
which, который является выделенным типом записи DNS, чтобы указать, где доменное имя обрабатывает определенную службу. Так что если вы это сделаете,dig _nicname._tcp.fr +short
вы действительно получите0 0 43 whois.nic.fr.
which, помимо двух первых чисел, которые не используются (но могут использоваться для балансировки нагрузки/переключения при отказе), номер порта (43
) и имя сервера,whois.nic.fr
с которым нужно связаться, чтобы получитьnicname
, то естьwhois
службу под ее официальным зарегистрированным именем (https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml), дляfr
домена. Он не используется многими реестрами, но должен был бы использоваться, записи SRV как раз и обеспечивают этот распределенный механизм автоматического обнаружения, который работает даже на любом уровне дерева DNS, так что он работает для реестров и «под»-реестров и т. д.
Обратите внимание, что многое из вышеперечисленного изменится, как только RDAP, новый протокол, заменит whois. Он уже определен несколькими RFC и используется некоторыми реестрами (в производстве для RIR, в экспериментах для некоторых реестров доменных имен), но он пока не является контрактно обязательным для использования реестрами и регистраторами (по нетехническим причинам) в мире gTLD, и реестры ccTLD, похоже, неохотно отказываются от своих текущих серверов whois, чтобы вместо них поставить серверы RDAP.
решение3
Ваш WHOIS-клиент запрашивает WHOIS-сервер (на TCP-порту 43), и он отвечает напрямую.Клиент Debian WHOISимеетжестко заданный список серверовиз которых он автоматически выбирает.У IANA также есть служба WHOIS.
Источник:Запрос на предложение 3912