2026年6月17日

2026年6月17日

DNSViz と host の違いと使い分け|DNSSEC の導入や DNS 事業者の移転で、どの確認をどちらに任せるか

host は、1つの名前・1つの種別を1台のサーバーに問い合わせ、結果を短い文で返す軽いコマンドです。DNSViz は、ルートから対象のドメインまでの委任と DNSSEC の署名のつながりをまとめて検査し、図とエラーの一覧で示す診断ツールです。個々の値の確認や繰り返しの監視は host、鍵と DS の対応や委任全体の整合性の判断は DNSViz、と役割を分けると、DNSSEC の導入や DNS 事業者の移転を安全に進めやすくなります。この記事では、両者の違いを整理したうえで、作業の段階ごとにどちらで何を確かめるかを説明します。

2つのツールの違い

観点 host DNSViz
調べる単位 1つの名前・1つの種別・1台のサーバー 名前とその上位のゾーン全体
DNSSEC DS や DNSKEY を表示できるが、検証はしない 署名・鍵・DS の対応を検証する
出力 短い文(-v で詳しい形式) ゾーンのつながりの図、エラー・警告の一覧、JSON
実行場所 手元の端末やサーバー Web 版、または自分の環境で CLI 版
向いている使い方 すばやい確認、スクリプトでの監視 変更作業の前後の診断、不具合の原因探し

host は ISC の BIND に付属するコマンドで、dig と同じパッケージに入っています。DNSViz は Web 版(dnsviz.net)のほか、オープンソースのコマンドライン版があり、Python のパッケージとして導入できます。

大事なのは、host は「そのサーバーが何を返したか」しか教えてくれない、という点です。DS と DNSKEY を別々に表示できても、両者が正しく対応しているか、署名の期限が切れていないかは判断しません。逆に DNSViz は全体を検査できる反面、1回の解析に時間がかかり、短い間隔で何度も実行する用途には向きません。

host で確かめること

権威サーバーの間で内容がそろっているか

host -C example.com

-C を付けると、ドメインのすべての権威サーバーに SOA を問い合わせて並べます。シリアル番号がそろっていれば、同じ内容のゾーンが配られていると判断できます。DNS 事業者の移転中や、セカンダリサーバーを使っている構成で、1台だけ古いままになっていないかをすばやく確認できます。

親ゾーンに DS が登録されているか

host -t DS example.com

DS は親ゾーン(.com や .jp など)に置かれるレコードで、レジストラ経由で登録します。結果には、キータグ・アルゴリズム番号・ダイジェストの種類・ダイジェスト値が並びます。DNS 事業者の管理画面に表示されている DS の値と見比べ、登録漏れや古い DS の残りが無いかを確かめます。

各権威サーバーが同じ鍵を公開しているか

host -t DNSKEY example.com ns1.example.net
host -t DNSKEY example.com ns2.example.net

DNSKEY のフラグの値が 257 のものが鍵署名鍵(KSK)、256 のものがゾーン署名鍵(ZSK)として使われるのが一般的です。権威サーバーごとに公開している鍵が違うと、問い合わせが当たったサーバーによって検証が成功したり失敗したりします。鍵のキータグ(DS の先頭の数値と対応する番号)を見たいときは、dig DNSKEY example.com +multi を使うと、各鍵の横に番号が表示されます。

検証を行うキャッシュサーバーで失敗していないか

host www.example.com 1.1.1.1

DNSSEC の検証を行う公開 DNS に問い合わせて、SERVFAIL が返らないかを確かめます。host は検証の理由までは表示しないので、失敗していることがわかったら DNSViz に切り替えます。

DNSViz で確かめること

DNSViz では、host で個別に見ていた値がつながっているかを、まとめて判断します。

  • 親ゾーンの DS が、子ゾーンに実在する DNSKEY を指しているか
  • その鍵で、ゾーン内のレコードの署名(RRSIG)が検証できるか
  • 署名の有効期間が切れていないか、切れそうになっていないか
  • 存在しない名前への応答(NSEC や NSEC3 による否定の証明)が正しく作られているか
  • すべての権威サーバーが応答し、同じ内容を返しているか

図ではゾーンが上から順に並び、親の DS と子の DNSKEY が線で結ばれます。検証に失敗する状態(bogus)が表示された場合は、DNSSEC を検証するキャッシュサーバーで名前解決ができなくなっている、深刻な状態です。警告は運用上の注意で、すぐに名前解決が止まるとは限りません。権威サーバーの応答の仕方(TCP や EDNS への対応など)について警告が出ることもあります。

画面の表示や凡例は更新で変わることがあります。ここでの説明は執筆時点(2026年10月現在)の一般的な構成にもとづきます。

作業の段階ごとの使い分け

DNSSEC を有効にするとき

  1. DNS 事業者の管理画面で署名を有効にしたら、host で各権威サーバーに DNSKEY を問い合わせ、すべてのサーバーが鍵を公開しているかを確かめます
  2. この段階で DNSViz を実行すると、ゾーンは署名されているものの、親に DS が無いため「署名していない状態(insecure)」として表示されます。これは想定どおりです
  3. レジストラで DS を登録したら、host -t DS で親ゾーンに反映されたかを確かめます。キャッシュの影響で、反映が見えるまで時間がかかることがあります
  4. 最後に DNSViz で解析し、DS から DNSKEY、署名までのつながりが検証できる状態になったことを確認します

DS の登録は、鍵が全権威サーバーで公開されてからにするのが基本です。順番を逆にすると、DS が指す鍵が見つからない状態になり、検証するキャッシュサーバーで名前解決が失敗します。

DNSSEC を使ったまま DNS 事業者を移転するとき

移転先の事業者では鍵が新しく作られるため、何もしないと親ゾーンの DS が古い鍵を指したままになります。進め方は事業者ごとに違い、いったん DS を削除して DNSSEC を外してから移る方法や、両方の事業者の鍵を一時的に公開して切り替える方法があります。どの方法を取るかは、移転元と移転先の事業者の案内で確認してください。

どの方法でも、各段階で次の確認を繰り返します。

  • host -C で、親ゾーンが案内する権威サーバーがすべて応答し、SOA がそろっているか
  • host -t DS で、親ゾーンの DS が想定どおり(削除済み、または新しい鍵を含む)になっているか
  • DNSViz で、検証に失敗する状態になっていないか

作業前の DNSViz の結果を画像で保存しておくと、問題が起きたときに比較できます。

鍵の更新(ロールオーバー)のとき

KSK を更新するときは、新しい鍵の公開、DS の差し替え、古い鍵の削除という段階を踏みます。各段階で host -t DNSKEY と host -t DS で値を確かめ、DNSViz で新しい DS と鍵がつながっていることを確認してから次に進みます。各段階の間は TTL の分だけ待つ必要があるため、事業者の自動更新を使っている場合は、その案内に示された手順と時間に従います。

日常の監視には host を使う

変更作業のないときは、host をスクリプトに組み込んで、異常に早く気づけるようにしておくと安心です。

#!/bin/sh
# DS の有無と、全権威サーバーの SOA を記録する例(表示形式は版で確認)
zone=example.com

if host -t DS "$zone" | grep -q 'has DS record'; then
  echo "$(date '+%F %T') DS: あり"
else
  echo "$(date '+%F %T') DS: 見つからない"
fi

host -C "$zone" | grep 'SOA'

cron で実行してログに残しておけば、DS が意図せず消えた、1台の権威サーバーだけ古い、といった変化を追えます。異常が見つかったら、その時点で DNSViz を実行して原因を調べます。署名の期限切れを事前に見つけたい場合は、DNSViz の CLI 版を定期的に実行するか、DNSSEC に対応した外部の監視サービスの利用も検討してください。

まとめ

  • host は個々の値を1行で確かめる道具、DNSViz は委任と DNSSEC のつながりを検査する道具です。
  • host では -C で全権威サーバーの SOA、-t DS で親ゾーンの DS、-t DNSKEY で各サーバーの鍵を確認します。
  • 鍵と DS の対応、署名の期限、否定の証明、サーバー間の食い違いの判断は DNSViz に任せます。
  • DNSSEC の導入では、鍵の公開を確かめてから DS を登録し、最後に DNSViz でつながりを確認します。
  • 移転や鍵の更新は事業者の案内に従い、各段階で host と DNSViz の確認を繰り返します。
  • 日常の監視は host をスクリプトで実行し、異常があれば DNSViz で詳しく調べます。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲