サイトアイコン puti se blog

DNSレコード単位のTTLを確認する方法。WindowsのnslookupでDNS詳細通信を見る

LinuxのDNSコマンドにはdigが存在し、DNSレコード単位のTTLまでわかるのですが、Windowsではそこまでわかりません(SOA情報はわかりますが)。

WindowsでDNSレコード単位のTTLを確認する方法はないのでしょうか?

環境・前提条件

のコマンドプロンプトで確認しました。

普通のWindowsのnslookupコマンドでは上記のように表示されますよね、TTL情報無し。

結論、nslookupのdebugオプションで詳細DNS通信がわかる!

上記のように、通常のnslookupコマンド出力の間のデバック情報がわかります。
これはDNSトラブルの解析時には便利ですね!

この場合は、厳密にはキャッシュ時間です。
だいたいのレコード単位のTTLがわかりますけど、キャッシュ時間ですので、TTL時間がカウントダウンされ減ってしまうんですよね。

正確なTTL値を知るにはコンテンツDNSに問い合わせる!

上記画面は、nslookup先をキャッシュDNSではなく、コンテンツDNSへ問い合わせした結果です。
具体的には、以下のコマンドを実施しました。

nslookup -debug www.yahoo.co.jp. ns11.yahoo.co.jp

すると、

これでWindows nslookupでもDNSレコードの正確なTTL値がわかりますね!

考えてみれば、当然の結果ですね。

コンテンツDNSサーバーを知る方法

では、そのDNSレコードのコンテンツDNSサーバーを知るには、どうしたらよいかといいますと、

set type=allオプションでDNSレコードをnslookupするか

nslookup -type=all www.yahoo.co.jp

もしくは、set type=nsオプションでDNSレコードのドメインをnslookupするか

nslookup -type=ns yahoo.co.jp

で、nameserver(コンテンツDNSサーバー)情報が得られます。

以下、参考情報です。

SOAではなくレコード単位のTTL設定とは?(Bind例)

DNSサーバーで有名なフリーソフトのBindでレコード単位のTTL設定というのは、ゾーンファイルに上記のような設定をしたものです。
ゾーン全体に設定するSOA情報のTTLとは異なって設定が可能です。

Linuxのdigコマンド出力はどういう情報なの?

Linuxのdigコマンドの出力は上記のような出力です。
レコード単位のTTL(厳密にはキャッシュ時間ですけど)がわかり、nslookupのdebugオプション時と同じような情報であることがわかります。

モバイルバージョンを終了