Кого Linux спрашивает, когда вы выполняете whois?

11

Когда вы делаете:

$ 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 (?) ---> ... ?
Basj
источник

Ответы:

12

Если вы используете Marco d'Itri'swhois , вы можете добавить --verboseопцию, чтобы увидеть, что он делает. Для stackoverflow.com он начинается с запроса whois.verisign-grs.com (см. Его список серверов WHOIS ), который дает ему ряд фрагментов информации, в том числе тот факт, что регистратором Stack Overflow является Name.com и его WHOIS. сервер whois.name.com; поэтому он продолжает спрашивать whois.name.com.

Протокол задокументирован в RFC 3912 . На whoisman-странице также есть полезные ссылки.

Стивен Китт
источник
Спасибо (кажется, что по умолчанию в Debian используется Whois Марко д'Итри). Есть ли команда, указывающая whoisиспользовать другой сервер WHOIS, кроме verisign-grs? Я не нашел его в man whois.
Basj
Что-то еще: вы сказали, что затем запрашивает whois.name.com. Значит ли это, что у каждого регистратора должен быть сервер whois регистратора? При этом whois google.frон, похоже, не запрашивает другой whois, а не hardcoded-in-whois, т.е. Это правильно?
Basj
Да, по умолчанию в Debian используется whoisMarco d'Itri (Marco - разработчик Debian). Вариант, который вы ищете, это -h(см. whois -h whois.name.com stackoverflow.com). Регистраторы не все должны иметь сервер WHOIS; AFAIK выполняет только «официальный» регистратор TLD. Таким образом google.fr, в нашем случае регистратором является MARKMONITOR, но информация поступает от AFNIC, для которого регистратор TLD .fr.
Стивен Китт
Большое спасибо. Самое смешное: когда whois stackoverflow.comя делаю, я получаю очень мало информации, но когда whois -h whois.name.com stackoverflow.comя делаю, я получаю гораздо больше информации ( Admin Organization: Stack Exchange, Inc.адрес улицы и т. Д.), Чего не получаю при этом whois stackoverflow.com. Является ли это ожидаемое поведение whois, то есть вы должны первым дел whois domain.com, то глядя на WhoIs сервера, вы должны повторитьwhois -h ... domain.com иметь больше информации? Не следует ли whoisделать все это напрямую, когда он находит регистратор whois?
Basj
Вы должны получить ту же информацию, потому что whois stackoverflow.com она идет и спрашивает само whois.name.com (по крайней мере, в версии 5.2.17). Вы можете столкнуться с проблемами ограничения скорости, whois.name.com временно блокирует вас, если вы делаете слишком много запросов (но вы получаете сообщение об ошибке). Если я дам whois stackoverflow.comи whois -h whois.name.com stackoverflow.comсравню их, я получу одинаковый вывод name.com в обоих случаях.
Стивен Китт
11

Стивен ответил на основные вопросы, но у вас есть еще несколько моментов, на которые я хочу обратить внимание:

  1. Whois - это плохо определенный протокол. Нет иерархии, корневого whois и т. Д. На самом деле в whois-системах нет ничего, связанного с DNS, вы должны начать с того, чтобы полностью разделить их в своем уме, помимо того, что они берут свои данные из одного и того же источника (реестра). базы данных) они работают полностью независимо.
  2. В этом отношении каждый реестр TLD работает по-своему. рДВУ - дело само по себе: на данный момент в соответствии с контрактом ICANN каждый регистратор обязан иметь сервер Whois, отвечающий за все имена, которые он обрабатывает. Реестры предъявляют те же требования. В выводе whois реестра перечисляется сервер whois регистратора (но, как я уже писал в комментарии выше, в последнее время это изменилось незначительно - фактически, без веской причины - что сломало многих клиентов whois), главным образом по исторической причине, которая вскоре исчезнет: в прошлом (и все еще сейчас для .COM / .NET - .JOBS вроде переключился недавно, но ранее был в той же лодке, см. https://www.icann.org/resources/pages/thick-whois-transition-policy-2017- 02-01-ен) регистры, где «тонкий» означает, что в реестре не хранятся данные о контактах, это делает только регистратор. Это означает, что если вы действительно хотите получить данные о доменном имени и найти, к кому обращаться в случае возникновения проблем (которые были и остаются первоначальной целью протокола whois), вам необходимо сначала запросить сервер whois реестра, чтобы получить базовый набор информации и найти whois-сервер регистратора, а затем связаться с этим whois-сервером регистратора, чтобы получить доступ ко всей контактной информации. Это объясняет, почему вывод реестра .COM / .NET сегодня дает вам только данные о доменных именах серверов, датах и ​​статусах. И имя сервера Whois регистратора, за которым whois-клиент пытается следовать, но иногда не может, потому что все меняется (см. Мой комментарий выше)
  3. ccTLD почти всегда не работают таким образом, даже если при использовании регистраторов запрос сервера whois реестра возвращает вам все необходимые результаты, и даже если некоторые из них отсутствуют (например, по соображениям конфиденциальности), вам не нужно запрашивать whois сервер регистратора как реестры не обязывают их запускать те нДВУ, с которыми они работают (однако некоторые регистраторы делают это). Это объясняет ваше наблюдение за .frдоменным именем, например.
  4. некоторые клиенты whois жестко кодируют адреса серверов whois, некоторые пытаются whois.nic.$TLDпо умолчанию, который часто работает как реестр, $TLDчасто имеет в nic.$TLDкачестве основного имени рабочего домена.
  5. IANA обрабатывает список реестров по адресу https://www.iana.org/domains/root/db и на каждой странице реестра, например https://www.iana.org/domains/root/db/fr.html you. будет иметь строку со WHOIS Serverсписком whois-сервера, связанного с выбранным реестром. Обратите внимание, однако, что иногда это может быть устаревшим или неправильным. Вы также можете получить доступ к этим данным, выполнив запрос whois для TLD whois.iana.org, и он предоставит вам данные о соответствующем реестре, включая его whois-сервер в whoisключе.
  6. Есть еще одна хитрость. Если вы делаете запрос DNS (но помните, что этот пункт не лишает законной силы первый пункт), $TLD.whois-servers.netон даст вам имя соответствующего сервера whois для $TLDзаписи CNAME. Некоторые клиенты whois могут использовать этот трюк, но я сомневаюсь в этом ( whoisхотя клиент GNU может быть одним из них, или это может быть FreeBSD). Обратите внимание, что эта инициатива является чисто частной и, даже если бы она была таковой, не обрабатывается высшими органами власти, участвующими во всем этом, такими как ICANN или IANA. Например dig uk.whois-servers.net +shortдаст вам: whois.nic.uk.. Прелесть этого в том, что он должен быть обновлен, если это изменится (очень редко) или (чаще), когда новые реестры / TLD вступят в действие.
  7. Некоторые реестры публикуют свою конечную точку адреса сервера whois, используя SRVкоторой является выделенный тип записи DNS, чтобы указать, где доменное имя обрабатывает конкретную службу. Так что если вы это сделаете, dig _nicname._tcp.fr +shortвы действительно получите, 0 0 43 whois.nic.fr.который дает, помимо двух первых чисел, которые не используются (но могут быть использованы для балансировки нагрузки / переключения при сбое), номер порта ( 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, в экспериментах для некоторых реестров доменных имен), но пока еще не является обязательным для использования реестрами и регистраторами (по нетехническим причинам) в рДВУ. мировые реестры и реестры нДВУ, похоже, неохотно отказываются от своих текущих серверов whois, чтобы вместо них установить серверы RDAP.

Патрик Мевзек
источник
2

Ваш клиент WHOIS запрашивает сервер WHOIS (через порт TCP 43), и он отвечает напрямую. WHOIS-клиент Debian имеет жестко запрограммированный список серверов, с которых он автоматически выбирает. IANA также имеет службу WHOIS.

Источник: RFC 3912

gmarmstrong
источник
Спасибо. Является ли tld_serv_listфайл не доступен в Debian? Я искал в своей файловой системе, но не могу ее найти. Значит ли это, что он скомпилирован в бинарном файле whois /usr/bin/whois?
Basj
1
Он действительно скомпилирован в двоичный файл (см. Вывод strings /usr/bin/whois).
Стивен Китт,