2026年6月13日
2026年6月13日
DNSViz で TTL と NS を一括確認する方法|全権威サーバーの応答と親子の委任の食い違いを見つける
DNSViz は、対象のドメインとその上位のゾーン(ルートや TLD)の権威サーバーすべてに IPv4・IPv6 の両方で問い合わせ、NS の委任や TTL の食い違いを一覧にして示してくれる診断ツールです。1台ずつ dig を打たなくても「どのサーバーがどう答えたか」をまとめて確認できるため、ネームサーバーの変更前後の点検に向いています。この記事では、Web 版での確認手順、NS と TTL に関する結果の読み方、複数のドメインを確認したいときのコマンドライン版の使い方、見つかった問題の直し方を説明します。
DNSViz で確認できること
DNSViz は DNSSEC の可視化で知られていますが、署名していないドメインでも、委任や応答の整合性を確認するのに使えます。NS と TTL に関しては、主に次のことがわかります。
- 親ゾーンに登録された NS と、子ゾーン(自分のゾーン)の権威サーバーが返す NS が一致しているか。
- 委任先の各権威サーバーが応答するか、自分のゾーンについて権威を持った答えを返すか。
- 同じレコードの TTL や内容が、権威サーバーの間で食い違っていないか。
- 署名されたゾーンでは、TTL と署名の有効期間の関係に問題がないか。
逆に、キャッシュサーバーに残っている古い値や、利用者の環境から見た名前解決の状況はわかりません。DNSViz が見ているのは権威サーバーの側だけです。
Web 版で確認する手順
手順1:最新の状態で解析する
dnsviz.net のトップページでドメイン名を入力すると、そのドメインの解析結果が表示されます。以前に誰かが解析した結果が残っている場合は、その時点の結果が表示されるため、画面に出ている解析日時を確認し、古ければ再解析のボタン(「Update now」のような表記)から最新の状態で解析し直します。画面の構成やボタンの表記は変わることがあります(2026年10月現在)。
なお、Web 版の解析結果は、同じドメイン名で検索した人なら誰でも見られます。公開したくない名前は Web 版ではなく、後で説明するコマンドライン版で確認してください。
手順2:サーバーの一覧で NS を確かめる
解析結果の画面には、図(DNSSEC の表示)のほかに、応答の一覧やサーバーの一覧を表示するタブがあります。サーバーの一覧では、ゾーンごとに、親ゾーンが示した権威サーバーの名前とアドレス、実際に問い合わせたサーバーが並びます。ここで次の点を確かめます。
- レジストラで設定したつもりのネームサーバーがすべて並んでいるか。
- 移転前の古いネームサーバーが残っていないか。
- 各ネームサーバーに IPv4 と IPv6 のアドレスがあり、その両方で応答しているか。
手順3:エラーと警告を読む
図の横や下には、見つかった問題がエラー(赤系)と警告(黄系)に分けて表示されます。NS と TTL に関係する代表的なものは次のとおりです。文言は版によって異なるため、意味で読み取ってください。
- 親ゾーンの NS と子ゾーンの NS が一致しない、という指摘。片方にしかないネームサーバーがあると表示されます。
- 権威サーバーが応答しない、または権威のない答えを返す、という指摘。委任されているのにそのゾーンを持っていない状態(lame delegation)を示します。
- 同じレコードの内容や TTL がサーバーによって違う、という指摘。ゾーン転送の遅れや、手作業での設定の食い違いでよく起こります。
- 署名されたゾーンで、TTL が署名の残りの有効期間より長い、といった指摘。キャッシュに残っている間に署名が切れる恐れがあることを示します。
手順4:TTL の値を確かめる
応答の一覧では、問い合わせごとに各サーバーが返した内容を確認でき、図のノードを選ぶとそのレコードの詳細が表示されます。どこまでの情報が表示されるかは版によって異なるため、TTL の数値を正確に控えたいときは、DNSViz で食い違いの有無を確かめたうえで、権威サーバーに直接問い合わせて数値を確かめます。
# 権威サーバーごとに NS の TTL と内容を確かめる
for ns in ns1.example.net ns2.example.net; do
echo "== $ns"
dig @"$ns" example.com NS +norecurse +noall +answer
done
コマンドライン版でまとめて確認する
複数のドメインを定期的に確認したい場合や、社内向けの名前を外部に出したくない場合は、コマンドライン版を使います。Python のパッケージとして配布されており、pip install dnsviz で導入できます。図を作る機能を使うには Graphviz などの追加の部品が必要です。導入方法や必要な部品は、公式リポジトリの説明で確かめてください。
# 権威サーバーに直接問い合わせて、ルートからの委任ごと情報を集める
dnsviz probe -A -a . -p example.com > example.com.json
# 集めた情報を解析して、問題点を含む結果を出力する
dnsviz grok -r example.com.json -p > example.com-grok.json
# 結果をテキストで表示する
dnsviz print -r example.com.json
# 図を作る(PNG)
dnsviz graph -r example.com.json -T png -o example.com.png
probe は問い合わせを行って生の応答を保存する段階、grok はそれを解析する段階です。問い合わせと解析が分かれているので、作業前に probe の結果を保存しておけば、後から何度でも解析し直せます。probe には複数のドメイン名を並べて渡せるため、管理しているドメインをまとめて点検するのにも使えます。作業の前後で grok の結果を保存して比べると、どの指摘が増えたか、消えたかを追いやすくなります。オプションの細部は版によって変わることがあるため、dnsviz probe -h などで確かめてから使ってください。
見つかった問題を直す順番
NS の食い違いが見つかった場合は、起こりやすい順に次を確かめます。
- レジストラに登録した NS が古い、または一部だけ変わっている。親ゾーン側の一覧が誤っている場合はこれが原因です。レジストラの管理画面で NS を見直します。
- 子ゾーンの NS レコードが更新されていない。DNS 事業者の多くはゾーンの NS を自動で設定しますが、移転時に旧事業者の NS が残ることがあります。新しい事業者のゾーンの NS を確認します。
- 一部のネームサーバーがゾーンを持っていない。セカンダリの設定漏れや、移転先でゾーンを作り忘れている場合です。そのサーバーでゾーンを設定するか、委任から外します。
- ネームサーバーのアドレス(グルー)が古い。ネームサーバー名が自分のドメインの中にある場合、レジストラに登録したアドレスが実際と一致しているかを確認します。
TTL の食い違いは、ゾーン転送が止まっていないか(各サーバーの SOA のシリアルがそろっているか)を最初に確認します。直したあとは DNSViz で再解析し、指摘が消えたことを確かめます。
まとめ
- DNSViz は、ルートから対象のゾーンまでの権威サーバーすべてに問い合わせ、NS の委任や TTL の食い違いを一覧にしてくれます。
- Web 版では解析日時を確かめ、古ければ再解析してから、サーバーの一覧とエラー・警告を読みます。
- TTL の数値を正確に控えたいときは、DNSViz で食い違いを確かめたうえで dig で権威サーバーに直接問い合わせます。
- 複数のドメインや公開したくない名前は、コマンドライン版の
probeとgrokで確認します。 - NS の食い違いは、レジストラの登録、子ゾーンの NS、各サーバーのゾーンの有無、グルーの順に確かめます。