DNS変更が反映されない理由とは?TTL・キャッシュ・伝播時間の仕組みを理解する

DNS変更が反映されない理由

DNS変更が反映されない理由

Webサーバ移転やメールサーバ切り替え、クラウド移行などの作業でDNSレコードを変更したにもかかわらず、「反映されない」という問題は非常によく発生します。

実際にはDNSサーバ側の設定は正しいにもかかわらず、利用者からは「サイトが見えない」「古いサーバへ接続される」と報告されることがあります。

この現象の多くはDNSのキャッシュやTTLが原因です。

本記事ではDNS変更が反映されない理由や確認方法、実務での対処方法について解説します。

DNS変更とは何か

例えばWebサーバを移行するケースを考えます。

変更前です。


www.example.com
↓
192.168.60.20

変更後です。


www.example.com
↓
192.168.60.50

DNS管理画面では変更が完了しています。

しかし利用者全員が即座に新サーバへ接続されるわけではありません。

DNSは即時反映ではない

初心者が最も誤解しやすいポイントです。

DNSはデータベースのように即時反映される仕組みではありません。

世界中のDNSキャッシュが段階的に更新されます。

DNSキャッシュの存在

DNSは負荷軽減のためキャッシュを利用します。


利用者
↓
ブラウザ
↓
OS
↓
キャッシュDNS
↓
権威DNS

それぞれがDNS情報を保存しています。

TTLとは

DNS変更が反映されない最大の理由です。

TTLは次のように表示されます。


www.example.com. 3600 IN A 192.168.60.20

3600がTTLです。

TTLの意味

TTLはキャッシュ保持時間です。


3600秒
↓
60分
↓
1時間

この期間は古い情報を利用し続ける可能性があります。

利用者によって結果が違う理由

DNS変更後によく見られる現象です。

  • Aさんは新サーバへ接続
  • Bさんは旧サーバへ接続

これは保持しているキャッシュが異なるためです。

ブラウザキャッシュ

最近のブラウザはDNS情報を保持しています。

  • Chrome
  • Edge
  • Firefox

ブラウザ再起動で解決することもあります。

OSキャッシュ

WindowsにもDNSキャッシュがあります。

確認します。


ipconfig /displaydns

保存中の情報を確認できます。

Windowsのキャッシュ削除


ipconfig /flushdns

実務で頻繁に利用します。

Linuxのキャッシュ削除

systemd-resolved利用時です。

$ resolvectl flush-caches

キャッシュを削除できます。

ISP DNSのキャッシュ

利用者が削除できないキャッシュもあります。


PC
↓
ISP DNS
↓
権威DNS

ISPのDNSサーバが古い情報を保持している場合があります。

Google Public DNSとの比較

反映状況を確認します。

$ dig @8.8.8.8 www.example.com

Google Public DNSの結果を確認できます。

Cloudflare DNSとの比較

$ dig @1.1.1.1 www.example.com

異なる結果になる場合があります。

権威DNSへ直接確認する

最も重要な確認方法です。

$ dig @ns1.example.com www.example.com

権威DNSが正しい情報を持っているか確認します。

権威DNSが正しい場合

例えば次のような結果です。


www.example.com. 300 IN A 192.168.60.50

権威DNSが正しいならキャッシュの問題です。

権威DNSも古い場合

DNS変更自体が反映されていません。

次を確認します。

  • 管理画面設定
  • ゾーンファイル
  • シリアル番号
  • ゾーン転送

セカンダリーDNS未同期

よくある原因です。

SOAレコードを確認します。

$ dig @ns1.example.com SOA example.com

$ dig @ns2.example.com SOA example.com

シリアル番号を比較します。

シリアル番号不一致


ns1
2026060902

ns2
2026060901

ゾーン転送が失敗している可能性があります。

TTLを変更しても即時反映されない

これも誤解されやすいポイントです。

例えば次の状態です。


TTL 86400

DNS変更前日に次へ変更します。


TTL 300

しかし既存キャッシュは86400秒有効です。

TTL短縮は事前に行う

実務では次の流れです。


1週間前
↓
TTL短縮
↓
数日待機
↓
DNS変更

これが一般的です。

MXレコード変更時も同じ

メールサーバ移行時です。


example.com MX

TTLの影響を受けます。

新旧サーバへメールが配送されることがあります。

CDN利用時の注意

CDNを利用している場合です。

  • Cloudflare
  • Akamai
  • Fastly

DNS以外のキャッシュも確認する必要があります。

ブラウザだけ古い場合

次を試します。

  • ブラウザ再起動
  • シークレットモード
  • キャッシュ削除

DNS以外のキャッシュが原因の場合があります。

実務でよくある原因ランキング

  1. TTLによるキャッシュ残存
  2. ブラウザキャッシュ
  3. ISP DNSキャッシュ
  4. シリアル番号更新忘れ
  5. セカンダリーDNS未同期
  6. ゾーンファイル更新ミス
  7. DNS管理画面設定ミス

反映確認の手順


権威DNS確認
↓
Google DNS確認
↓
Cloudflare DNS確認
↓
クライアント確認
↓
ブラウザ確認

この順番で確認すると効率的です。

実務で覚えておきたいポイント

  • DNSは即時反映ではない
  • TTLが反映時間を左右する
  • 権威DNSを最初に確認する
  • シリアル番号確認が重要
  • ブラウザやOSもキャッシュを持つ
  • TTL短縮は事前に実施する

まとめ

DNS変更が反映されない原因の多くはTTLとキャッシュです。

また、ブラウザ、OS、ISP DNS、キャッシュDNSサーバなど複数の場所にキャッシュが存在するため、利用者ごとに結果が異なることがあります。

DNS変更時は権威DNSを基準に確認し、TTLやセカンダリーDNSの同期状況を確認することが重要です。

事前にTTLを短縮する運用を行うことで、多くのDNS移行トラブルを防ぐことができます。