Кого запитує Linux, коли ви виконуєте whois?


11

Коли ви робите:

$ whois stackoverflow.com

ваш Linux спочатку робить запит DNS, знаходить IP сайту stackoverflow.com, а потім запитує інформацію безпосередньо там?

Або він запитує "root" сервера Whois (чи IP-адреса "root whois-сервера" жорстко кодується в дистрибутиві Linux, аналогічно /etc/bind/db.root?), Який потім делегує іншому серверу whois, який дає інформацію?

Який потік з'єднання?

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

або

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

Відповіді:


12

Якщо ви використовуєте Марко д'Ітріwhois , ви можете додати --verboseопцію, щоб побачити, що це робить. Для stackoverflow.com він починається з запитання whois.verisign-grs.com (див. Його список серверів WHOIS ), який дає йому ряд відомостей, включаючи той факт, що реєстратором Stack Overflow є Name.com та його WHOIS сервер - whois.name.com; тож далі переходить на запит whois.name.com.

Протокол задокументований в RFC 3912 . whoisСторінка керівництва також має корисні покажчики.


Дякую (схоже, що Debian за замовчуванням - це Марко д'Ітрі). Чи є команда сказати whoisвикористовувати інший сервер WHOIS, ніж verisign-grs? Я його не знайшов man whois.
Бась

Ще щось: ви сказали, що це запитує whois.name.com. Чи означає це, що кожен реєстратор повинен мати сервер реєстратора-Whois? Здійснюючи whois google.frце, схоже, не запитувати іншого, хто є жорстким кодом, тобто whois.nic.fr. Це так?
Бась

Так, за замовчуванням Debian whoisє Marco 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все це робити безпосередньо, коли він знайде реєстру?
Basj

Ви повинні отримати ту саму інформацію, тому whois stackoverflow.com що йде і запитує сам whois.name.com (принаймні, це робиться у версії 5.2.17). Можливо, у вас виникли проблеми з обмеженням швидкості, whois.name.com тимчасово блокує вас, якщо ви надсилаєте занадто багато запитів (але ви отримуєте повідомлення про помилку). Якщо я скидаю їх whois stackoverflow.comі whois -h whois.name.com stackoverflow.comпорівнюю, то в обох випадках я отримаю точно однаковий результат.com.
Стівен Кітт

11

Стівен відповів основними частинами, але у вас є деякі інші моменти, які я хочу вирішити:

  1. Whois - це погано визначений протокол. Немає ні ієрархії, ні кореня Whois, і т. Д. Насправді немає нічого, що стосується DNS в системах whois, ви повинні почати з того, щоб повністю розділити їх на увазі, окрім того, що вони беруть свої дані з того самого джерела (реєстр база даних) вони працюють повністю незалежно.
  2. У цьому відношенні кожен реєстр TLD працює по-різному. gTLD - це справи самостійно: згідно з контрактом ICANN, зараз кожен реєстратор зобов'язаний мати сервер Whois, який відповідає за всі імена, якими він обробляє. Реєстри мають таку саму вимогу. Whois output реєструє сервер Whois сервера реєстратора (але, як я писав у коментарі вище, це нещодавно змінилося - без поважних причин - що зламало багатьох клієнтів Whois) переважно з історичної причини, яка незабаром зникне: в минулому (і досі для .COM / .NET - .JOBS перемикався недавно, але раніше був у тому ж човні, див. https://www.icann.org/resources/pages/thick-whois-transition-policy-2017- 02-01-en) регістри, де "тонкі", що означає, що реєстр не зберігає дані про контакти, це робить лише реєстратор. Що означає, що якщо ви дійсно хочете мати дані про доменне ім’я та знайти, до кого звертатися у разі проблем (що було - і досі є - первісною метою протоколу whois), вам потрібно спершу запитати реєстр Whois Server для отримати основний набір інформації та виявити сервер регістра реєстратора, а потім зв’язатися з цим сервером реєстратора, щоб отримати доступ до всієї контактної інформації. Це пояснює, чому вихід із реєстру .COM / .NET сьогодні дає лише дані про сервери доменних імен, дати та статуси. І ім'я сервера реєстратора, якому користувач Whois намагається слідувати, але іноді не може, тому що все змінюється (див. Мій коментар вище)
  3. ccTLD майже не працюють так, навіть якщо за допомогою реєстраторів запит на сервер реєстру Whois повертає всі необхідні результати, і навіть якщо деякі відсутні (наприклад, з причини конфіденційності), вам не потрібно запитувати хтось на сервер реєстраторів як вони не мають дозволу реєстрами запускати його для ccTLD, якими вони керують (але деякі реєстратори все-таки роблять це). Це пояснює, наприклад, ваше спостереження за .frдоменним іменем.
  4. деякі сервіси жорсткого коду клієнтів 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 ви матиме рядок із 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, в експериментах для деяких реєстрів доменних імен), але він ще не є контрактом змушений використовуватись реєстраторами та реєстраторами (не з технічних причин) у gTLD Світові, а реєстри ccTLD, здається, неохоче скидають свої поточні сервери Whois, а не замість них ставлять RDAP-сервери.


2

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

Джерело: RFC 3912


Дякую. Чи tld_serv_listфайл недоступний у Debian? Я шукав у своїй файловій системі, але не можу її знайти. Чи означає це, що вона складена всередині бінарного файлу Whois /usr/bin/whois?
Бась

1
Він дійсно компілюється у двійковий (див. Вихід strings /usr/bin/whois).
Стівен Кітт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.