Windows nslookupコマンドを使用してDNS関連情報を確認
WindowsでDNSの関連情報を確認する際に使用するnslookupコマンドについて、基本的な使用例を以下に示します。
※ここではWindows10を使用して、動作確認を行なっています。
※DNSのルートサーバーからの問い合わせの流れについては、当サイトのWindows nslookupコマンドを使用してDNSのルートサーバーからの問い合わせの流れを確認のページをご覧ください。
※DNSのリソースレコードのTTLの値を確認する方法については、当サイトのWindows nslookupコマンドを使用してDNSのリソースレコードのTTLの値を確認のページをご覧ください。
SOAレコードを確認
ゾーンの管理情報は、SOA(Start Of Authority)レコードに設定されています。
SOAレコードを確認するには、以下のようにnslookupコマンドを実行します。
C:¥Users¥user01>,nslookup -type=soa example.com サーバー: UnKnown Address: xxx.xxx.xxx.xxx 権限のない回答: example.com primary name server = ns.icann.org responsible mail addr = noc.dns.icann.org serial = 2019121383 refresh = 7200 (2 hours) retry = 3600 (1 hour) expire = 1209600 (14 days) default TTL = 3600 (1 hour)
-
「-type」オプションで、ドメインに対して確認するレコードの種類を指定します。
ここでは、SOAレコードを確認するようにしています。
-
コマンドの引数に、確認するドメインを指定します。
ここでは、ドメイン「example.com」を確認対象にしています。
SOAレコードでは、ゾーン(サブドメインも含むドメインの管理範囲)が指定対象となります。(ドメイン「www.example.com」は、ゾーン「example.com」に含まれています。)
SOAレコードの内容は、以下のようになります。
ここでは対象のゾーンは「example.com」となります。
-
primary name server:対象のゾーンのゾーンデータを管理しているプライマリのネームサーバーになります。
-
responsible mail addr:対象のゾーンの管理者のメールアドレスになります。
「@」は「.」に置き換えられます。ここでは「noc@dns.icann.org」が置き換え前のメールアドレスとなります。
-
serial:対象のゾーンのゾーンデータのシリアル番号になります。
年(4桁)、月(2桁)、日(2桁)に2桁の管理番号を組み合わせた形式が使われることが多くあります。
セカンダリのネームサーバーは、プライマリのネームサーバーからゾーンデータを取得する際に、この値が以前のものより大きくなっていると、ゾーンデータを更新するようになります。
-
refresh:セカンダリのネームサーバーは、前回ゾーンデータの更新を行なった後、この時間が経過すると、再度プライマリのネームサーバーに対し、ゾーンデータの更新を行うようになります。
時間は秒単位となります。
-
retry:セカンダリのネームサーバーは、前回のゾーンデータの更新が失敗した場合、この時間が経過すると、再度プライマリのネームサーバーに対し、ゾーンデータの更新を行うようになります。
時間は秒単位となります。
-
expire:セカンダリのネームサーバーは、前回ゾーンデータの更新を行なった後、その後のゾーンデータの更新が失敗し、この時間が経過してもゾーンデータの更新が行われていない状態が続くと、自身のゾーンデータを無効なものとします。
時間は秒単位となります。
-
default TTL:以前はTTLのデフォルト値として扱われていたようですが、現在はminimumフィールドとして扱われているようです。※参照 RFC2308
Linuxのdigコマンドでは、minimumフィールドとして表示されます。
問い合わせを行うDNSサーバー(フルリゾルバーと呼ばれている)は、取得しようとしたリソースレコードが存在しなかった場合に、そのリソースレコードは存在しなかったという情報をキャッシュし、同じ問い合わせを行わないようになっていますが(このことはネガティブキャッシュと呼ばれている)、このネガティブキャッシュを保持する時間がminimumフィールドに設定されているものとなります。
時間は秒単位となります。
NSレコードを確認
ゾーンのデータを保持しているネームサーバー(権威サーバーと呼ばれている)の情報は、NS(Name Server)レコードに設定されています。
NSレコードを確認するには、以下のようにnslookupコマンドを実行します。
C:¥Users¥user01>,nslookup -type=ns example.com サーバー: UnKnown Address: xxx.xxx.xxx.xxx 権限のない回答: example.com nameserver = a.iana-servers.net example.com nameserver = b.iana-servers.net a.iana-servers.net internet address = 199.43.135.53 a.iana-servers.net AAAA IPv6 address = 2001:500:8f::53 b.iana-servers.net internet address = 199.43.133.53 b.iana-servers.net AAAA IPv6 address = 2001:500:8d::53
-
「-type」オプションで、ドメインに対して確認するレコードの種類を指定します。
ここでは、NSレコードを確認するようにしています。
-
コマンドの引数に、確認するドメインを指定します。
ここでは、ドメイン「example.com」を確認対象にしています。
NSレコードでは、ゾーン(サブドメインも含むドメインの管理範囲)が指定対象となります。(ドメイン「www.example.com」は、ゾーン「example.com」に含まれています。)
NSレコードの内容は、以下のようになります。
-
対象のゾーン(ここでは「example.com」)のゾーンデータを保持しているネームサーバーのドメインとIPアドレスが表示されます。
ここではSOAレコードのプライマリーのネームサーバー「ns.icann.org」が表示されていませんが、プライマリーのネームサーバーは問い合わせの応答用には公開されておらず、ゾーンデータをセカンダリーのネームサーバーに共有し、2つのセカンダリーのネームサーバーが問い合わせに応答するようになっているものと思われます。
-
サブドメインが別のゾーンとしてゾーンデータの管理が行われている場合は、そのサブドメインのNSレコードもここに表示されるようになります。
Aレコードを確認
ドメインに対するIPv4のIPアドレスの情報は、A(Address)レコードに設定されています。
Aレコードを確認するには、以下のようにnslookupコマンドを実行します。
C:¥Users¥user01>,nslookup -type=a www.example.com サーバー: UnKnown Address: xxx.xxx.xxx.xxx 権限のない回答: 名前: www.example.com Address: 93.184.216.34
-
「-type」オプションで、ドメインに対して確認するレコードの種類を指定します。
ここでは、Aレコードを確認するようにしています。
-
コマンドの引数に、確認するドメインを指定します。
ここでは、ドメイン「www.example.com」を確認対象にしています。
Aレコードの内容は、以下のようになります。
-
対象のドメイン(ここでは「www.example.com」)のIPv4のIPアドレスが表示されます。
MXレコードを確認
ドメインのメールアドレスに対してメールを送信する際に使用するメールサーバーの情報は、MX(Mail Exchange)レコードに設定されています。
MXレコードを確認するには、以下のようにnslookupコマンドを実行します。
C:¥Users¥user01>,nslookup -type=mx example.com サーバー: UnKnown Address: xxx.xxx.xxx.xxx 権限のない回答: example.com MX preference = 0, mail exchanger = (root)
-
「-type」オプションで、ドメインに対して確認するレコードの種類を指定します。
ここでは、MXレコードを確認するようにしています。
-
コマンドの引数に、確認するドメインを指定します。
ここでは、ドメイン「example.com」を確認対象にしています。
MXレコードの内容は、以下のようになります。
-
ここでの例では表示されていませんが、実在していれば対象のドメインのメールサーバーのドメインとIPアドレスが表示されます。
TXTレコードを確認
ドメインに対するテキスト情報は、TXT(Text)レコードに設定されています。
TXTレコードを確認するには、以下のようにnslookupコマンドを実行します。
C:¥Users¥user01>,nslookup -type=txt example.com サーバー: UnKnown Address: xxx.xxx.xxx.xxx 権限のない回答: example.com text = 'v=spf1 -all'
-
「-type」オプションで、ドメインに対して確認するレコードの種類を指定します。
ここでは、TXTレコードを確認するようにしています。
-
コマンドの引数に、確認するドメインを指定します。
ここでは、ドメイン「example.com」を確認対象にしています。
TXTレコードの内容は、以下のようになります。
-
対象のドメイン(ここでは「example.com」)のテキスト情報が表示されます。
TXTレコードには、メール送信時のドメイン認証で使用されるSPFレコードが設定されることがあります。
SPFレコードの詳細については、ここでは割愛します。
Windows nslookupコマンドを使用してDNS関連情報を確認については、以上です。