kakiro-webカキローウェブ

システム開発情報の紹介サイト

Windows nslookupコマンドを使用してDNSのリソースレコードのTTLの値を確認

DNSのリソースレコードは、それを管理しているDNSサーバー(権威サーバーと呼ばれている)に設定されているものを、問い合わせを行うDNSサーバー(フルリゾルバーと呼ばれている)が取得して、TTLに設定されている時間だけキャッシュとして保持するようになります。

ここでは、Windowsのnslookupコマンドを使用して、権威サーバーが管理しているリソースレコードのTTLの値と、フルリゾルバーがキャッシュしているリソースレコードのTTLの値を確認する方法を以下に示します。

例として「www.example.com」のAレコードのTTLの値を確認するようにしています。

※ここではWindows10を使用して、動作確認を行なっています。

※nslookupコマンドの基本的な使用例については、当サイトのWindows nslookupコマンドを使用してDNS関連情報を確認のページをご覧ください。

※DNSのルートサーバーからの問い合わせの流れについては、当サイトのWindows nslookupコマンドを使用してDNSのルートサーバーからの問い合わせの流れを確認のページをご覧ください。

権威サーバーが管理しているリソースレコードのTTLを確認

権威サーバーが管理しているドメイン「www.example.com」のAレコードに設定されているTTLを確認するには、以下のようにnslookupコマンドを実行します。

C:¥Users¥user01>nslookup -debug -nosearch -type=a www.example.com a.iana-servers.net
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 1, rcode = NOERROR
        header flags:  response, auth. answer, want recursion
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        3.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.8.0.0.0.0.5.0.1.0.0.2.ip6.arpa, type = PTR, class = IN
    ANSWERS:
    ->  3.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.8.0.0.0.0.5.0.1.0.0.2.ip6.arpa
        name = a.iana-servers.net
        ttl = 28800 (8 hours)

------------
サーバー:  a.iana-servers.net
Address:  2001:500:8f::53

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  response, auth. answer, want recursion
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        www.example.com, type = A, class = IN
    ANSWERS:
    ->  www.example.com
        internet address = 93.184.216.34
        ttl = 86400 (1 day)

------------
名前:    www.example.com
Address:  93.184.216.34
  • 「-debug」オプションを指定すると、デバッグモードとなり、TTLの値も確認できるようになります。

  • 「-nosearch」オプションを指定すると、ドメイン検索リストを付加したドメインでの問い合わせが行われないようになります。

    「-debug」オプションを指定したときは、問い合わせ対象に指定したドメイン(ここでは「www.example.com」)の末尾に、ドメイン検索リストを付加したドメインに対しても問い合わせが行われるようになるため、「-nosearch」オプションを指定して付加されないようにしています。

  • 「-type」オプションで、ドメインに対して確認するレコードの種類を指定します。

    ここでは、Aレコードを確認するようにしています。

  • コマンドの第1引数に、確認するドメインを指定します。

    ここでは、ドメイン「www.example.com」を確認対象にしています。

  • コマンドの第2引数に、問い合わせを行うDNSサーバーを指定します。

    ここでは、「example.com」のドメインを管理しているDNSサーバー「a.iana-servers.net」を指定しています。

    「example.com」のドメインを管理しているDNSサーバーは、当サイトのWindows nslookupコマンドを使用してDNSのルートサーバーからの問い合わせの流れを確認のページで紹介している方法で確認することができます。

コマンドの実行結果は、以下のようになります。

  • コマンドの実行結果の後半で、ドメイン「www.example.com」のAレコードの問い合わせに対する回答として、権威サーバーに設定されているTTLは「ttl = 86400 (1 day)」であることが表示されています。

    時間は秒単位となります。

    このAレコードを取得したフルリゾルバーは、86400秒の間はレコードの情報をキャッシュし、同じ問い合わせを権威サーバーに対して行わないようになります。

フルリゾルバーがキャッシュしているリソースレコードのTTLを確認

フルリゾルバーがキャッシュしているドメイン「www.example.com」のAレコードのTTLを確認するには、以下のようにnslookupコマンドを実行します。

C:¥Users¥user01>nslookup -debug -nosearch -type=a www.example.com
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 1, rcode = NXDOMAIN
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        b.8.f.2.2.7.e.f.f.f.7.6.f.1.2.0.0.0.6.2.0.c.9.0.1.5.0.4.0.0.4.2.ip6.arpa, type = PTR, class = IN
    AUTHORITY RECORDS:
    ->  0.4.0.0.4.2.ip6.arpa
        ttl = 9779 (2 hours 42 mins 59 secs)
        primary name server = ns6-tk01.ocn.ad.jp
        responsible mail addr = root.ocn.ad.jp
        serial  = 1
        refresh = 10800 (3 hours)
        retry   = 3600 (1 hour)
        expire  = 3600000 (41 days 16 hours)
        default TTL = 86400 (1 day)

------------
サーバー:  UnKnown
Address:  2400:4051:9c0:2600:21f:67ff:fe72:2f8b

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        www.example.com, type = A, class = IN
    ANSWERS:
    ->  www.example.com
        internet address = 93.184.216.34
        ttl = 41648 (11 hours 34 mins 8 secs)

------------
権限のない回答:
名前:    www.example.com
Address:  93.184.216.34
  • 「-debug」オプションを指定すると、デバッグモードとなり、TTLの値も確認できるようになります。

  • 「-nosearch」オプションを指定すると、ドメイン検索リストを付加したドメインでの問い合わせが行われないようになります。

    「-debug」オプションを指定したときは、問い合わせ対象に指定したドメイン(ここでは「www.example.com」)の末尾に、ドメイン検索リストを付加したドメインに対しても問い合わせが行われるようになるため、「-nosearch」オプションを指定して付加されないようにしています。

  • 「-type」オプションで、ドメインに対して確認するレコードの種類を指定します。

    ここでは、Aレコードを確認するようにしています。

  • コマンドの第1引数に、確認するドメインを指定します。

    ここでは、ドメイン「www.example.com」を確認対象にしています。

  • ここではフルリゾルバーに対して問い合わせを行いますので、コマンドの第2引数で問い合わせを行うDNSサーバーは指定しないようにしています。

コマンドの実行結果は、以下のようになります。

  • コマンドの実行結果の後半で、ドメイン「www.example.com」のAレコードの問い合わせに対する回答として、フルリゾルバーに設定されているTTLは「ttl = 41648 (11 hours 34 mins 8 secs)」であることが表示されています。

    時間は秒単位となります。

    このAレコードを取得したフルリゾルバーは、権威サーバーに設定されているTTLである86400秒の間はレコードの情報をキャッシュし、同じ問い合わせを権威サーバーに対して行わないようになりますが、その残りの時間が41648秒であることを示しています。

Windows nslookupコマンドを使用してDNSのリソースレコードのTTLの値を確認については、以上です。