dig/nslookup コマンドを使用して DNS 解決手順を表示する方法

dig/nslookup コマンドを使用して DNS 解決手順を表示する方法

dig - DNS ルックアップ ユーティリティ

ドメイン名のアクセス障害が発生した場合、ドメイン名の解決をチェックして、問題が誤った解決によって発生しているかどうかを判断できます。
1. ドメイン名解決の結果がない(存在しない、または保留中(実名認証されていないなど))
2. ドメイン名が間違った IP に解決される (ブロック、ハイジャック、間違った結果に応答、解決プロセスを判断する必要がある)
3. 対応するCNAMEレコードの値を解決できない
4. 解決に異常がある(複数のドメインネームサーバーを設定している場合、複数のサーバーの解決結果が一致しません。DNSサーバーに追加された解決レコードが一致しているかどうかを確認する必要があります)

www.baidu.com を簡単に分析すると、次のようになります。

ここに写真の説明を記入してください

リクエスト セグメントとレスポンス セグメントがあり、最終的に 2 つの A レコードが解析されていることがわかります。

反復クエリの dig コマンド

解析プロセス全体を追跡するには、コマンドの後に +trace を追加します。
1. ルートドメインネームサーバーは、.comの解決を担当するトップレベルドメインネームサーバーを見つけます。
2.トップレベルドメインネームサーバーからbaidu.comのセカンドレベルドメインネームサーバーを探す
3. セカンダリドメインネームサーバーは、www.baidu.comに対応するCNAMEレコードwww.a.shifen.comを見つけます。
4. www.a.shifen.comに対応するAレコードを見つける
5. 最後に、Aレコードに対応するIPアドレスを返します。

[root@jia3 ~]# www.baidu.com を dig +trace

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> www.baidu.com +トレース
;; グローバルオプション: +cmd
. 320307 IN NS a.root-servers.net。
. 320307 IN NS k.root-servers.net.
. 320307 IN NS i.root-servers.net.
. 320307 IN NS l.root-servers.net。
. 320307 IN NS b.root-servers.net。
. 320307 IN NS e.root-servers.net.
. 320307 IN NS h.root-servers.net。
. 320307 IN NS d.root-servers.net。
. 320307 IN NS g.root-servers.net。
. 320307 IN NS j.root-servers.net。
. 320307 IN NS f.root-servers.net。
. 320307 IN NS m.root-servers.net。
. 320307 IN NS c.root-servers.net。
;; 202.106.0.20#53(202.106.0.20) から 98 ミリ秒で 228 バイトを受信

com. 172800 IN NS c.gtld-servers.net。
com. 172800 IN NS l.gtld-servers.net。
com. 172800 IN NS d.gtld-servers.net。
com. 172800 IN NS h.gtld-servers.net。
com. 172800 IN NS m.gtld-servers.net。
com. 172800 IN NS a.gtld-servers.net。
com. 172800 IN NS k.gtld-servers.net。
com. 172800 IN NS b.gtld-servers.net。
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net。
com. 172800 IN NS j.gtld-servers.net。
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net。
;; 192.5.5.241#53(192.5.5.241) から 93 ミリ秒で 491 バイトを受信

baidu.com。172800 IN NS dns.baidu.com。
baidu.com。172800 IN NS ns2.baidu.com。
baidu.com。172800 IN NS ns3.baidu.com。
baidu.com。172800 IN NS ns4.baidu.com。
baidu.com。172800 IN NS ns7.baidu.com。
;; 192.48.79.30#53(192.48.79.30) から 501 ミリ秒で 201 バイトを受信

www.baidu.com。1200 IN CNAME www.a.shifen.com。
a.shifen.com。1200 IN NS ns1.a.shifen.com。
a.shifen.com。1200 IN NS ns2.a.shifen.com。
a.shifen.com。1200 IN NS ns5.a.shifen.com。
a.shifen.com。1200 IN NS ns3.a.shifen.com。
a.shifen.com。1200 IN NS ns4.a.shifen.com。
;; 220.181.37.10#53(220.181.37.10) から 8 ミリ秒で 228 バイトを受信

ドメイン名が存在しない場合に、dig コマンドはどのように返されますか?

たとえば、ドメイン名 www.not-exists-domain.com は存在しません。
全体のプロセスは次のとおりです。
1. ルートドメイン名から.comトップレベルドメインのサーバーアドレスを返す
2. .comトップレベルドメインを検索してもセカンドレベルドメイン名が存在せず、SOAレコードが返される

[root@jia3 ~]# www.not-exists-domain.com を dig +trace

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> www.not-exists-domain.com +トレース
;; グローバルオプション: +cmd
. 319714 IN NS b.root-servers.net。
. 319714 IN NS e.root-servers.net.
. 319714 IN NS h.root-servers.net。
. 319714 IN NS d.root-servers.net。
. 319714 IN NS g.root-servers.net。
. 319714 IN NS j.root-servers.net。
. 319714 IN NS f.root-servers.net。
. 319714 IN NS m.root-servers.net。
. 319714 IN NS c.root-servers.net.
. 319714 IN NS a.root-servers.net。
. 319714 IN NS k.root-servers.net.
. 319714 IN NS i.root-servers.net.
. 319714 IN NS l.root-servers.net。
;; 202.106.0.20#53(202.106.0.20) から 105 ミリ秒で 228 バイトを受信

com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net。
com. 172800 IN NS j.gtld-servers.net。
com. 172800 IN NS l.gtld-servers.net。
com. 172800 IN NS k.gtld-servers.net。
com. 172800 IN NS g.gtld-servers.net。
com. 172800 IN NS m.gtld-servers.net。
com. 172800 IN NS a.gtld-servers.net。
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net。
com. 172800 IN NS b.gtld-servers.net。
com. 172800 IN NS f.gtld-servers.net。
com. 172800 IN NS d.gtld-servers.net。
;; 192.112.36.4#53(192.112.36.4) から 228 ミリ秒で 503 バイトを受信

com. 900 IN SOA a.gtld-servers.net. nstld.verisign-grs.com. 1524576381 1800 900 604800 86400
;; 192.12.94.30#53(192.12.94.30) から 333 ミリ秒で 116 バイトを受信

nslookup - インターネットネームサーバーを対話的に照会する

nslookup は、対話型と非対話型の 2 つの方法で使用できます。

ここに写真の説明を記入してください

nslookup では、解決のためにドメイン ネーム サーバーを指定することもできます。コマンドの形式は次のとおりです。

nslookup www.baidu.com 8.8.8.8 (ドメインネームサーバーアドレス)

ここに写真の説明を記入してください

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Win2003 DNSサーバ設定方法【図解】
  • Win7+xp コマンドラインでワンクリックで IP と DNS を変更
  • Win2003 サーバーのセットアップ DNS サーバー構成図チュートリアル (詳細)
  • Windows 2003 DNS サーバーの構成 (図とテキスト)
  • Nginx DNS リゾルバの設定例
  • Windows Server 2008 R2 DNS サーバー構成のグラフィック チュートリアル
  • ネットワーク カード名を取得するためのバッチ コード (IP、ゲートウェイ、DNS を変更するためのスクリプトを含む)
  • サイトのさまざまな応答時間を取得します(DNS解決時間、応答時間、送信時間)
  • バッチ処理、IP、デフォルトゲートウェイ、DNS、WINS、IE プロキシを自動的に設定する VBS (フル)
  • Javaを使用してDNSドメイン名解決を実装する簡単な例

<<:  アイデアコンパイラvueインデントエラー問題シナリオの分析

>>:  MySQL 5.7 でパスワードを忘れた場合の解決方法の詳細な説明

推薦する

mysql5.7.14 解凍版インストールグラフィックチュートリアル

MySQL は、コミュニティ エディション (コミュニティ サーバー) とエンタープライズ エディシ...

フレックスレイアウトは左のテキストオーバーフローを実現し、右のテキストの適応を省略します

テキストの長さに応じて、左側のテキストの幅を自動調整できる状況を実現したい。1行が表示できない場合、...

TCPパフォーマンスチューニングの実装原理とプロセス分析

3ウェイハンドシェイクフェーズクライアントSYNパケットの再試行回数sysctl -w net.ip...

docker compose helloworld を使い始めるための詳細なプロセス

前提条件Compose は、Docker コンテナをオーケストレーションするためのツールです。Doc...

Helloダイアログボックスのデザイン体験の共有

「どうしたの?」特定の種類のダイアログ ボックスに慣れていない限り、ダイアログ ボックスが表示された...

自己終了XHTMLタグを書くときに注意すべきこと

XHTMLの img タグは、次のように記述する必要があります: <img alt="...

JavaScript で実装された 6 つの Web ページ画像カルーセル効果の詳細な説明

目次1. マウスがカルーセル モジュール上を通過すると、左右のボタンが表示され、モジュールを離れると...

CSS 疑似要素と疑似クラスの魔法のような使い方についての簡単な説明

CSS は Web ページで非常に重要な役割を果たします。近年の CSS の発展に伴い、疑似要素/疑...

Vueバスの簡単な使い方

Vueバスの簡単な使い方シナリオの説明:コンポーネント A にはコンポーネント B と C が含まれ...

CSSで記事の区切り線のスタイルを実装するさまざまな方法のまとめ

この記事では、CSS で記事の区切り線を実装するさまざまな方法をまとめています。区切り線はページを美...

SQL Server データベース エラー 5123 の解決方法

なぜなら、SQL Server 2005 に基づくデータベース チュートリアルがあり、そこで使用され...

rem をモバイル デバイスに適応させる方法の例

序文モバイル端末のREM適応ソリューションのレビューと概要remの使い方rem 単位の計算は、HTM...

Reactのコンポーネント共同利用実装

目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...

アコーディオン効果を実現するJavaScript

この記事では、アコーディオン効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

MySQL テーブルタイプ ストレージエンジンの選択

目次1. 現在のデータベース支出のストレージエンジンを表示する方法1:方法2: 2. ENGINE=...