2026年6月10日

2026年6月10日

AAAAレコードの変更手順|IPv6アドレスを切り替えるときのTTL計画・事前確認・切り戻し

AAAAレコードの値(IPv6アドレス)を変更するときは、「TTLを先に下げる → 新しいアドレスで待ち受けていることを確かめる → 値を差し替える → 権威サーバーと外部から確認する → 旧アドレスはしばらく残す」の順で進めると、閲覧できない時間をほとんど出さずに切り替えられます。サーバー移転やVPS事業者によるIPv6アドレスの付け替えでよく必要になる作業です。この記事では、各手順の理由と確認方法に加えて、AAAA特有のつまずき(IPv4への自動切り替えで問題が隠れる、DNS以外の場所に書かれたIPv6アドレスの更新漏れ)と、問題が出たときの切り戻し方を説明します。

なぜAAAAの変更は問題に気付きにくいのか

AAAAレコードとAレコードの両方がある名前では、多くのブラウザやOSが「Happy Eyeballs」と呼ばれる仕組み(RFC 8305)で、IPv6とIPv4の接続をほぼ同時に試し、つながった方を使います。そのため、新しいIPv6アドレスでサーバーが応答しなくても、閲覧者の多くはIPv4で表示できてしまい、障害に気付くのが遅れます。

一方で、IPv6だけでつながる環境の利用者や、IPv6を優先して接続する仕組みは影響を受けます。たとえば Let's Encrypt のHTTP-01認証は、AAAAレコードがあるとIPv6での接続を優先するため、IPv6側の応答がおかしいと証明書の更新に失敗することがあります。AAAAの変更では、IPv6だけを明示的に使って確かめる作業が欠かせません。

手順1:現状を把握する

変更前に、対象の名前とそのAAAAレコード、TTLを洗い出します。ルートドメインだけでなく、www やサブドメインにも同じIPv6アドレスが書かれていることが多いので、すべて確認します。

# 現在の AAAA と TTL(2列目)
dig example.com AAAA +noall +answer
dig www.example.com AAAA +noall +answer

# 権威サーバーに直接問い合わせて、設定上のTTLを確認
dig @ns1.example.net example.com AAAA +norecurse +noall +answer

あわせて、DNS以外にIPv6アドレスを書いている場所を一覧にしておきます。AAAAだけ変えて、ここを忘れるのが典型的な失敗です。

  • Webサーバーの設定: listen [2001:db8:10::10]:443 のように特定のアドレスで待ち受けている場合
  • ファイアウォールの許可ルール
  • SPFのTXTレコード: サーバーからメールを送っていて ip6: でアドレスを指定している場合
  • 逆引き(PTR)の設定: メール送信に使っている場合
  • 管理画面へのアクセス制限: .htaccess やWebサーバー設定、セキュリティ系プラグインで許可しているIPアドレス
  • CDNやロードバランサーのオリジン(転送先)設定

手順2:TTLを下げて待つ

変更前にTTLを300秒程度に下げ、元のTTLの時間が過ぎるまで待ちます。たとえば元のTTLが86400秒(1日)なら、TTLを下げてから1日待ってから値を変更します。待たずに値を変えると、リゾルバに長いTTLでキャッシュされた古いアドレスが、元のTTLの時間だけ使われ続けます。

DNSサービスによっては、設定できるTTLの最小値が決まっていたり、一部の種類のレコードでTTLを自由に選べなかったりします。管理画面の表示を確認してください。

手順3:新しいアドレスで待ち受けていることを確かめる

DNSを変える前に、新しいIPv6アドレスでサイトが正しく応答することを確認します。サーバー上で、アドレスが割り当てられ、Webサーバーが待ち受けているかを見ます。

# 新しい IPv6 アドレスが割り当てられているか
ip -6 addr show

# 443番ポートを IPv6 で待ち受けているか
ss -tln | grep ':443'

次に、IPv6で接続できる別の環境から、DNSを変える前の段階で新しいアドレスに直接接続してテストします。curl の --resolve を使うと、名前と証明書はそのままで、接続先だけを新しいアドレスに向けられます。

# DNS を変えずに、新しい IPv6 アドレスへ接続して応答を確認
curl -6 -sS -o /dev/null -w "%{http_code} %{remote_ip}\n" \
  --resolve example.com:443:[2001:db8:20::10] https://example.com/

200番台や想定したリダイレクトの番号と、新しいアドレスが表示されれば準備は整っています。接続できない場合は、ファイアウォールのIPv6ルール(ufw ならIPv6のルールが有効になっているか)や、Webサーバーの listen 設定を見直します。手元の回線がIPv6に対応していない場合は、IPv6で接続できる別のサーバーから実行します。

手順4:AAAAレコードの値を差し替える

DNSサービスの管理画面で、AAAAレコードの値を新しいアドレスに変更します。ここで気を付けたいのは、新しいレコードを追加するのではなく、既存のレコードの値を書き換えることです。古いAAAAを残したまま新しいAAAAを足すと、同じ名前に2つのアドレスが並び、クライアントはどちらかを選んで接続します。旧サーバーを止めた時点で、一部の接続が失敗するようになります。

手順1で洗い出した名前すべてで同じ作業をし、続けてSPFのTXTレコードなど、DNS上の関連する設定も更新します。

手順5:権威サーバーと外部から確認する

変更が反映されたかは、権威サーバーへの直接の問い合わせと、公開リゾルバへの問い合わせの両方で確かめます。

# 権威サーバーに新しい値が載っているか(すべての NS で確認)
for ns in $(dig +short example.com NS); do
  echo "== $ns"; dig @"$ns" example.com AAAA +short +norecurse
done

# 公開リゾルバでの見え方
dig @1.1.1.1 example.com AAAA +short
dig @8.8.8.8 example.com AAAA +short

# IPv6 だけで実際に接続できるか
curl -6 -sS -o /dev/null -w "%{http_code} %{remote_ip}\n" https://example.com/

権威サーバーで新しい値が返っていれば、設定は正しく反映されています。公開リゾルバで古い値が返る場合は、キャッシュが残っているだけなので、TTLが過ぎるのを待ちます。複数の地域から見え方を確かめたい場合は、DNSの伝播を確認できる外部サービスも使えます。

手順6:旧アドレスをしばらく残し、TTLを戻す

値を変えてすぐに旧アドレスを止めると、キャッシュに古い値を持っている利用者が接続できなくなります。少なくとも下げたTTLの時間、余裕を見るなら半日から1日程度は、旧アドレスでもサイトが応答する状態を保ちます。旧サーバーのアクセスログにIPv6の接続が来なくなったことを確かめてから停止すると安心です。

切り替えが落ち着いたら、TTLを元の値(3600秒など)に戻します。短いTTLのままでも動作はしますが、問い合わせが増え、DNSサービスによっては応答の遅れや課金に影響することがあります。

問題が出たときの切り戻し

新しいアドレスで不具合が見つかった場合の戻し方は2つあります。

  • 旧アドレスに戻す: 旧サーバーが動いているなら、AAAAの値を元に戻します。TTLを短くしてあるので、数分程度で多くの利用者が旧アドレスに戻ります。
  • AAAAを一時的に削除する: IPv6側だけに問題があり、IPv4で正常に動いているなら、AAAAを外してIPv4だけで運用し、原因を調べてから付け直します。

切り戻しを素早く行うためにも、手順2でTTLを下げておくことと、手順6で旧アドレスを残しておくことが役に立ちます。

WordPressサイトで確認しておきたいこと

WordPressの設定(サイトアドレスなど)はドメイン名で書かれているため、AAAAを変えても通常は書き換え不要です。ただし、次の点は変更後に確認します。

  • 管理画面へのアクセスをIPアドレスで制限している場合、自分のIPv6アドレスでログインできるか
  • セキュリティ系プラグインやWAFが、IPv6の接続を想定どおりに扱っているか
  • 証明書の自動更新が、新しいアドレスで成功するか(certbot renew --dry-run など)

Cloudflare のようなプロキシ型のCDNを使っている場合、閲覧者が接続するのはCDNのアドレスで、DNS画面のAAAAは「CDNがオリジンへ接続する先」の意味になります。この場合の影響範囲や挙動はサービスごとに異なるため、各サービスのドキュメントを確認してください(2026年10月現在)。

まとめ

  • AAAAの変更は、TTLを下げて待つ → 新しいアドレスで事前にテスト → 値を差し替え → 権威サーバーと外部から確認 → 旧アドレスを残す → TTLを戻す、の順で進める
  • Happy Eyeballs によるIPv4への自動切り替えで問題が隠れるため、curl -6 などでIPv6だけの接続を確かめる
  • 追加ではなく値の書き換えにする。古いAAAAが残ると一部の接続が旧アドレスに向かう
  • Webサーバー・ファイアウォール・SPF・逆引き・アクセス制限など、DNS以外に書かれたIPv6アドレスも更新する
  • 問題が出たら、旧アドレスに戻すか、AAAAを一時的に外してIPv4だけで運用する

お気軽にご相談ください

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