これを行うとき:
$ whois stackoverflow.com
Linuxで最初にDNSクエリを実行し、stackoverflow.comのIPを見つけて、そこから直接情報を要求しますか?
それとも、「root」whoisサーバー(「root whoisサーバー」のIPは同様の方法で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を尋ねます。
この契約は以下に記録されています。RFC 3912。これwhois
マンページ便利な指示もあります。
答え2
Stephenは重要な部分に答えましたが、解決する必要があるいくつかの質問があります。
- 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サーバーがリストされている行が表示されます。しかし、時には古いか間違っている可能性があることに注意してください。 TLDに対してwhoisクエリを実行してこのデータにアクセスすることもできますwhois.iana.org
。これにより、キーのwhoisサーバーを含む関連レジストリに関するデータが提供されますwhois
。 - もう一つのトリックがあります。 DNSクエリを実行すると(ただし、これが最初のエントリを無効にするわけではないことに注意してください)、そのwhoisサーバーの名前をCNAMEレコードとして
$TLD.whois-servers.net
提供します。$TLD
一部のwhoisクライアントはこのトリックを使用できますが、私はそれが疑わしいです(GNUwhois
クライアントはそのうちの1つでもFreeBSDクライアントかもしれません)。このイニシアチブは純粋に非公開であり、そうする必要があるとしても、ICANNやIANAなど、これらすべてに関連する最高機関では処理されません。たとえば、次のようにdig uk.whois-servers.net +short
なりますwhois.nic.uk.
。これの利点は、これが変更された場合(非常にまれ)、または新しいレジストリ/ TLDがオンラインで表示されるとき(より一般的に)更新される必要があることです。 - 一部のレジストリは、特別なDNSレコードタイプを使用して、
SRV
ドメイン名が特定のサービスを処理する場所を指定するwhoisサーバーアドレスエンドポイントを公開します。したがって、これは()に接続するポート番号とサーバー名に加えて、未使用の最初の2つの数字(しかしロードバランシング/フェイルオーバーに使用できます)をdig _nicname._tcp.fr +short
取得します。その下のサービス(0 0 43 whois.nic.fr.
43
whois.nic.fr
nicname
whois
https://www.iana.org/locationments/service-names-port-numbers/service-names-port-numbers.xhtml)、fr
ドメインの場合。多くのレジストリでは使用されていませんが、SRVレコードはまさにこれらの分散自動検出メカニズムを提供し、DNSツリーの任意のレベルで機能することができるため、レジストリと「サブ」レジストリの両方で機能します。
RDAP(最新プロトコル)がwhoisを置き換えると、上記の内容のほとんどが変更されます。これはいくつかのRFCによって定義されており、いくつかのレジストリ(RIRの本番、一部のドメイン名レジストリの実験)で使用されていますが、まだレジストリと登録機関に契約上適用されていません(技術的でない理由で)。一般的なトップレベルドメイン(gTLD)の世界とccTLDレジストラは、現在RDAPサーバーのためにwhoisサーバーを放棄することを意図していないようです。
答え3
WHOISクライアントはWHOISサーバー(TCPポート43)に要求して直接応答します。Debian 用 WHOIS クライアント一つあるハードコーディングされたサーバーのリストその中から自動的に選択されます。IANAはWHOISサービスも提供しています。
源泉:RFC 3912