Linuxにおけるアプリケーション層のDNSドメイン名解決コマンドdigコマンドの詳細説明

単一のドメイン名の DNS 情報をクエリする


dig このコマンドの最も一般的な使用法は、単一のホストに関する情報をクエリすることです。

linuxidc@linuxidc:~$ dig www.linuxidc.com

; < <>> DiG 9.11.3-1Ubuntu1.5-Ubuntu < <>> www.linuxidc.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 17774
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.linuxidc.com.  IN A

;; ANSWER SECTION:
www.linuxidc.com. 5 IN A 122.228.238.15
www.linuxidc.com. 5 IN A 106.42.25.203

;; Query time: 10 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 03 10:55:35 CST 2019
;; MSG SIZE  rcvd: 77

dig コマンドのデフォルトの出力情報は比較的豊富で、大きく 5 つの部分に分けることができます。

  • 最初の部分には、dig コマンドのバージョンと入力されたパラメーターが表示されます。
  • 2 番目の部分には、サービスによって返される技術的な詳細が示されていますが、より重要なのはステータスです。status の値が NOERROR の場合、クエリが正常に終了したことを意味します。
  • 3 番目の部分の「QUESTION SECTION」には、クエリしたいドメイン名が表示されます
  • 4 番目の部分「ANSWER SECTION」はクエリの結果です。
  • 5 番目の部分は、このクエリに関する統計情報です。たとえば、所要時間、どの DNS サーバーにクエリが実行されたか、クエリが実行された時刻などです。

デフォルトでは、dig コマンドは A レコードを照会します。上図に示されている A は、照会されるレコード・タイプが A レコードであることを示します。他の種類のレコードをクエリする前に、まず一般的な DNS レコードの種類を理解しましょう。

一般的な種類の DNS レコード


タイプの目的

アドレス レコードは、ドメイン名の IPv4 アドレスを指定するために使用されます。ドメイン名が IP アドレスを指すようにする必要がある場合は、A レコードを追加する必要があります。
AAAA は、ホスト名 (またはドメイン名) に対応する IPv6 アドレス レコードを指定するために使用されます。

CNAME ドメイン名が別のドメイン名を指し、別のドメイン名から IP アドレスを指定する必要がある場合は、CNAME レコードを追加する必要があります。

CNAME はエイリアスと呼ばれることがよくあります。ホストのエイリアスを設定できます。たとえば、ホスト www.rddns.com を指すように test.mydomain.com を設定した場合、今後は test.mydomain.com を使用して www.rddns.com にアクセスできます。

例証します:

  • CNAME のターゲット ホスト アドレスには、IP アドレスではなく、ホスト名のみを使用できます。
  • ホスト名の前に他のプレフィックス (http:// など) を付けることはできません。
  • A レコードは CNAME レコードよりも優先されます。つまり、ホスト アドレスに A レコードと CNAME レコードの両方がある場合、CNAME レコードは有効になりません。


MX メールボックスでメールを受信できるようにメールボックスを設定する必要がある場合は、MX レコードを追加する必要があります。
NS ドメイン ネーム サーバー レコード: 解決のためにサブドメイン名を他の DNS サーバーに引き渡す必要がある場合は、NS レコードを追加する必要があります。
SOA SOA このレコードはすべてのカルチャ ファイルで必須です。これはファイル内の最初のレコードである必要があります。
TXT は何でも書き込めますが、長さは 255 に制限されています。TXT レコードの大部分は SPF レコード (スパム対策) に使用されます。

CNAME タイプのレコードをクエリする


A レコードに加えて、一般的な DNS レコードには CNAME が含まれます。クエリを実行するときに、クエリする DNS レコードのタイプを指定できます。 

linuxidc@linuxidc:~$ dig m.linuxidc.com CNAME

; < <>> DiG 9.11.3-1ubuntu1.5-Ubuntu < <>> m.linuxidc.com CNAME
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 61349
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;m.linuxidc.com.   IN CNAME

;; Query time: 26 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 03 11:20:34 CST 2019
;; MSG SIZE  rcvd: 43

この方法では、結果には CNAME レコードのみが含まれます。実際、クエリでは任意の DNS レコード タイプを指定できます。

指定したDNSサーバーからのクエリ


何らかの理由で、特定の DNS サーバーからクエリを実行することが望ましい (デフォルトの DNS サーバーから得られる結果は正確ではない可能性があります)。DNS サーバーを指定するには、@ 記号を使用します。

linuxidc@linuxidc:~$ dig @8.8.8.8 m.linuxidc.com

; < <>> DiG 9.11.3-1ubuntu1.5-Ubuntu < <>> @8.8.8.8 m.linuxidc.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 38966
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;m.linuxidc.com.   IN A

;; ANSWER SECTION:
m.linuxidc.com.  199 IN A 122.228.238.71
m.linuxidc.com.  199 IN A 113.107.238.155

;; Query time: 120 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Mar 03 11:21:48 CST 2019
;; MSG SIZE  rcvd: 75

上の図からわかるように、このクエリの DNS サーバーは 8.8.8.8 です。 

DNS サーバーを指定しない場合、dig は /etc/resolv.conf 内のアドレスを DNS サーバーとして使用します。

linuxidc@linuxidc:~$ dig m.linuxidc.com

 上記でクエリされた DNS サーバーは次のようになります。

13 個のルート ドメイン サーバーを表示しています


インターネット上には 13 のルート ドメイン サーバーがあります。これらのサーバー情報を表示するには、パラメーターを指定せずに dig コマンドを使用します。

linuxidc@linuxidc:~$ dig

; < <>> DiG 9.11.3-1ubuntu1.5-Ubuntu < <>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 41525
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;.    IN NS

;; ANSWER SECTION:
.   5 IN NS b.root-servers.net.
.   5 IN NS c.root-servers.net.
.   5 IN NS d.root-servers.net.
.   5 IN NS e.root-servers.net.
.   5 IN NS f.root-servers.net.
.   5 IN NS g.root-servers.net.
.   5 IN NS h.root-servers.net.
.   5 IN NS i.root-servers.net.
.   5 IN NS j.root-servers.net.
.   5 IN NS k.root-servers.net.
.   5 IN NS l.root-servers.net.
.   5 IN NS m.root-servers.net.
.   5 IN NS a.root-servers.net.

;; Query time: 8 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 03 11:37:11 CST 2019
;; MSG SIZE  rcvd: 239

おすすめ

転載: blog.csdn.net/qq_34556414/article/details/133026323