🦊
nslookupとdigで特定のDNSサーバーに問い合わせる方法
1. はじめに
DNSレコードの設定を変更した際、その結果が反映されるまでには、各DNSキャッシュサーバーのキャッシュが更新されるのを待つ必要があります。とはいうものの、設定が正しく行われたかをすぐに確認したい状況がよくあります。
この記事では、nslookupやdigといったコマンドを使い、特定のDNSサーバー(権威DNSサーバーや公開キャッシュDNSサーバーなど)に直接問い合わせることで、名前解決の結果を素早く確認する方法を解説します。
2. nslookupの使い方
nslookupでは、問い合わせたいドメイン名の後に、DNSサーバーのIPアドレスを引数として指定します。
ここでは例として、Googleが提供する公開DNSサーバー 8.8.8.8 を指定して amazon.co.jp のIPアドレスを問い合わせます。
$ nslookup amazon.co.jp 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: amazon.co.jp
Address: 52.119.168.48
Name: amazon.co.jp
Address: 52.119.164.121
Name: amazon.co.jp
Address: 52.119.161.5
-
Server: 8.8.8.8:問い合わせ先のDNSサーバーが8.8.8.8であることを示しています。 -
Non-authoritative answer: 権威サーバーからの直接の応答ではない(キャッシュサーバーからの応答である)ことを意味します。 -
Address: ...:amazon.co.jpに紐づくIPアドレスのリストです。
3. digの使い方
digでは、問い合わせたいドメイン名の後に @ を付け、続けてDNSサーバーのIPアドレスを指定します。
nslookup と同じく、8.8.8.8 に問い合わせてみます。
$ dig amazon.co.jp @8.8.8.8
; <<>> DiG 9.18.1-1ubuntu1.2-Ubuntu <<>> amazon.co.jp @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41036
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;amazon.co.jp. IN A
;; ANSWER SECTION:
amazon.co.jp. 56 IN A 52.119.164.121
amazon.co.jp. 56 IN A 52.119.161.5
amazon.co.jp. 56 IN A 52.119.168.48
;; Query time: 8 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Sun Jan 15 21:16:37 JST 2023
;; MSG SIZE rcvd: 89
-
ANSWER SECTION:amazon.co.jpのAレコード(IPアドレス)の応答結果です。 -
SERVER: 8.8.8.8#53(8.8.8.8): どのサーバーから応答を得たかを示しています。
4. 【応用】権威DNSサーバーに直接問い合わせる方法
DNSレコードの変更が正しく反映されたかを確認するには、キャッシュの影響を受けない権威DNSサーバーに直接問い合わせるのが最も確実です。
4.1. 権威DNSサーバーを調べる
まず、ドメインのNS(ネームサーバー)レコードを調べて、権威DNSサーバーを特定します。
$ dig -t ns amazon.co.jp
;; ANSWER SECTION:
amazon.co.jp. 172800 IN NS pdns1.ultradns.net.
amazon.co.jp. 172800 IN NS pdns6.ultradns.co.uk.
# ... (いくつか表示される)
ANSWER SECTION に表示されているのが amazon.co.jp の権威DNSサーバーです。
4.2. 権威DNSサーバーに問い合わせる
次に、特定した権威DNSサーバー(例:pdns1.ultradns.net)を指定して、Aレコードを問い合わせます。
$ dig amazon.co.jp @pdns1.ultradns.net
;; ANSWER SECTION:
amazon.co.jp. 60 IN A 52.119.161.5
amazon.co.jp. 60 IN A 52.119.168.48
amazon.co.jp. 60 IN A 52.119.164.121
この結果が、あなたが設定したレコードと一致していれば、設定は正しく反映されています。
Discussion