2026年6月17日

2026年6月17日

host で TTL と NS を一括確認する方法|-v で TTL を表示し、複数ドメインをまとめて点検する

host コマンドは標準の表示では TTL を出しませんが、-v を付けると dig と同じ形式で TTL まで表示します。これを使えば、NS と各レコードの TTL を一度に確かめられ、短いスクリプトで複数ドメインをまとめて点検することもできます。この記事では、host で TTL と NS を表示する書き方、キャッシュの残り時間と設定値の見分け方、権威サーバーごとの差の確認、複数ドメインを一括で調べる手順を説明します。

なぜ TTL と NS を一緒に確認するのか

サーバー移転やネームサーバーの変更の前には、「今どのネームサーバーが答えているか」と「変更がどのくらいで行き渡るか」を把握しておく必要があります。前者が NS レコード、後者の目安が TTL です。

たとえば WordPress サイトを別のサーバーへ移す場合、A レコードの TTL が1日のままだと、切り替え後も最大1日ほど古いサーバーにアクセスが届く可能性があります。事前に TTL を確かめ、必要なら短くしてから切り替えるのが一般的な段取りです。その際、変更すべき DNS がどの事業者の管理画面にあるかは NS を見なければわかりません。管理画面で値を直したのに反映されない原因として多いのが、実際には使われていない DNS 事業者の画面を編集していたというものです。

host の基本の表示と -v の違い

host は BIND に付属する問い合わせツールで、Debian・Ubuntu では bind9-host、RHEL 系では bind-utils パッケージに含まれます(パッケージ名は配布元によって変わることがあります)。

# 標準の表示(TTL は出ない)
host -t NS example.com

# -v で TTL を含む詳しい表示にする
host -v -t NS example.com

標準の表示は「example.com name server ns1.example.net.」のような1行の文で、読みやすい反面 TTL がありません。-v を付けると次のような表示になります(値は説明用の例です)。

Trying "example.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.com.			IN	NS

;; ANSWER SECTION:
example.com.		84012	IN	NS	ns1.example.net.
example.com.		84012	IN	NS	ns2.example.net.

Received 79 bytes from 192.0.2.53#53 in 15 ms

ANSWER SECTION の各行は「名前、TTL、クラス、種別、値」の順です。この例の 84012 が TTL(秒)で、約23時間を表します。-t を省くと host は A・AAAA・MX などを続けて問い合わせるため、一括確認では種別を明示したほうが出力を整理しやすくなります。

なお host -a は -v -t ANY と同じ意味ですが、多くのサーバーは ANY への答えを最小限に絞る運用(RFC 8482)をしており、すべてのレコードが返るとは限りません。一括確認の手段としては使わず、種別ごとに問い合わせます。

キャッシュの残り時間と設定値を見分ける

問い合わせ先がキャッシュサーバー(プロバイダーや公開 DNS)の場合、表示される TTL は「キャッシュに残っている時間」です。同じコマンドを続けて実行すると、数字が少しずつ減っていくのが確認できます。ゾーンに設定した本来の値を知りたいときは、権威サーバーに直接問い合わせます。

# まず権威サーバーの名前を調べる
host -t NS example.com

# 権威サーバーを指定し、再帰なし(-r)で問い合わせる
host -v -r -t A www.example.com ns1.example.net

サーバーを指定すると、出力の先頭に「Using domain server:」と問い合わせ先の名前・アドレスが表示されます。flags の欄に aa(authoritative answer)が含まれていれば権威サーバー自身の答えで、そこに表示される TTL が設定値です。aa が無い場合は、指定したサーバーがそのゾーンを持っていない可能性があります。

もう1つ見ておきたいのが、親ゾーン(.com や .jp など)に登録されている NS です。ネームサーバーの変更は親ゾーンの登録が書き換わって初めて有効になり、その TTL は子ゾーンの NS とは別に、TLD 側で決められています。

# .com の権威サーバーの1つに、再帰なしで NS を尋ねる
host -t NS com
host -v -r -t NS example.com a.gtld-servers.net

親ゾーンのサーバーは答えそのものではなく委任先を返すため、NS は ANSWER SECTION ではなく AUTHORITY SECTION に表示されます。ここに出る NS とその TTL が、レジストラで設定したネームサーバーと、その情報がキャッシュに残る時間です。子ゾーン側の NS と食い違っていないかも同時に確認できます。

権威サーバーごとの差を -C で確認する

NS が複数ある場合、すべてのサーバーが同じ内容を返しているとは限りません。-C を付けると、host は対象ドメインの各権威サーバーに SOA を問い合わせて並べて表示します。

host -C example.com

各サーバーの行に SOA のシリアル番号が出るので、1台だけ番号が古ければ、そのサーバーへのゾーンの転送や同期が止まっていると判断できます。DNS 事業者のサービスを使っている場合は事業者に、自前の BIND などの場合はゾーン転送の設定とログを確認します。

複数ドメインの TTL と NS を一括で調べる

管理しているドメインが多い場合は、ドメインの一覧ファイルを用意してまとめて確認します。以下は、1行1ドメインで書いた domains.txt を読み、NS と A の TTL を表示する例です。

#!/bin/sh
# 使い方: sh check_ttl_ns.sh domains.txt
while read -r d; do
  [ -z "$d" ] && continue
  echo "== $d"
  for t in NS A; do
    host -v -t "$t" "$d" 2>/dev/null |
      awk -v n="$d." -v t="$t" '$1 == n && $3 == "IN" && $4 == t {print "  " t, $5, "TTL=" $2}'
  done
done < "$1"

awk では、問い合わせた名前と種別が一致する行だけを取り出しています。-v の出力には問い合わせた名前以外のレコード(追加情報として返るネームサーバーのアドレスなど)が含まれることがあるため、名前でも絞り込んでいます。www のように CNAME になっている名前を A で引くと、別名の先の A は名前が異なるため表示されません。その場合は t の一覧に CNAME を加えて確認します。

何も表示されないドメインがあれば、個別に host -v -t NS ドメイン を実行して status の欄を見ます。NXDOMAIN はドメイン自体が見つからない状態、SERVFAIL は問い合わせ先のサーバーが答えを作れなかった状態で、ドメインの期限切れ、委任の誤り、DNSSEC の検証失敗などが考えられます。

確認結果をどう使うか

  • 移転の前:A や CNAME の TTL が長ければ、切り替えの1日以上前に短い値(例:300秒)へ下げます。下げた変更自体も、元の TTL の時間がたつまでは行き渡らない点に注意します。
  • ネームサーバー変更の後:親ゾーンの NS が新しい事業者になっているか、各権威サーバーの SOA のシリアルがそろっているかを確認します。
  • 切り替えが終わった後:TTL を元の長さに戻します。短いままでも動作はしますが、問い合わせの回数が増えます。

推奨される TTL の値は DNS 事業者や用途によって考え方が異なり、事業者によっては設定できる最小値が決まっています(2026年10月現在)。各事業者の案内を確認してください。DNS の設定を変える前には、現在のレコードを書き出して控えておくと、誤りに気づいたときに元へ戻せます。

まとめ

  • host で TTL を見るには -v を付けます。種別は -t で明示すると出力を整理しやすくなります。
  • キャッシュサーバーの TTL は残り時間です。設定値は -r と権威サーバーの指定で、aa の付いた答えから読みます。
  • 親ゾーンの NS は TLD の権威サーバーへの問い合わせで AUTHORITY SECTION に表示されます。
  • host -C で各権威サーバーの SOA のシリアルを比べ、同期の遅れを見つけられます。
  • 複数ドメインは一覧ファイルと短いスクリプトでまとめて点検できます。

お気軽にご相談ください

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