IPv4の各範囲にはIPv6の対応物がある
ドメインのIPv6対応を確認する方法
ドメインがIPv6を公開しているかを確認するには、AAAAレコードを問い合わせます。AAAAの応答にはIPv6アドレスが、Aの応答にはIPv4アドレスが含まれます。AAAAレコードが見つかれば、問い合わせたDNSの見え方の中で、その名前がIPv6のエンドポイントを公開している証拠にはなります。しかし、そのエンドポイントにすべてのネットワークから到達できることや、ウェブサイトがIPv6で正しく動作することまでは証明できません。DNSでの公開、ルーティング、ファイアウォールのルール、TLS、アプリケーションの設定が、すべて揃っている必要があります。逆に、AAAAの応答がなければ、問い合わせた名前がその時点でIPv6のデータを返さなかったというだけで、ドメイン全体や組織全体にIPv6の導入がないという意味ではありません。
正しい名前とレコードタイプで問い合わせる
ユーザーが実際にアクセスするホスト名を確認してください。www で始まるのか、アプリケーション用のサブドメインを使うのかも含めます。ルートドメインはIPv6を公開していても www は公開していない、あるいはその逆、ということもあります。AAAAを指定して問い合わせ、Aと比較すると、その名前がIPv4のみ、IPv6のみ、デュアルスタックのどれなのかが分かります。CNAMEが返された場合は、その参照先の連鎖をたどります。エイリアス自体にはアドレスが表示されないことがあるためです。レコードを追加したばかりなら、適切なリゾルバーから検索をやり直し、時刻とTTLも控えておきましょう。そうすれば、古いキャッシュの結果と、権威ゾーンに反映されなかった設定とを区別できます。
| DNSで観察されたこと | 分かること |
|---|---|
| AAAAの応答がある | リゾルバーがIPv6アドレスのデータを返した |
| Aの応答のみ | IPv4のデータは存在する。この見え方ではAAAAは返されなかった |
| CNAMEの応答 | エイリアスの参照先を名前解決して、そのアドレスレコードを確認する |
| AAAAはあるが接続に失敗する | ルーティング、ファイアウォール、TLS、サービスの設定を確認する |
IPv6アドレスは、コロンで区切った16進数のグループで表記し、ゼロが連続するグループはダブルコロンで省略できます。ドット区切りのIPv4と並べると、見慣れない表記に感じられるかもしれません。IPv6アドレスをIPv4と同じ感覚で比較したり、見た目が違うからといってプライベートアドレスだと推測したりしないでください。エンドポイントを管理している場合は、アドレスが意図したインターフェースに割り当てられ、インターネットからルーティングされ、ホストとクラウドのファイアウォールで許可されていることを確認します。エンドポイントに到達できる状態になる前にAAAAを公開すると、クライアントの接続先選択の動作によっては、一部のクライアントで障害が発生する可能性があります。
サービスへの到達性は別にテストする
AAAAレコードを確認したら、実際にIPv6で接続できるネットワークから、アプリケーションをIPv6経由でテストします。ウェブサーバーがIPv6のインターフェースで待ち受けていること、ホスト名に対して正しい証明書を提示していることを確認してください。ロードバランサー、CDNの設定、セキュリティグループ、ローカルのファイアウォールも確認します。IPv4とIPv6では、ルールが別々になっていることが多く、一方を許可しても、もう一方が自動的に許可されるわけではありません。ページが複数のドメインからリソースを読み込む場合は、APIや画像ホストなどの依存サービスもテストしましょう。DNS検索で分かるのは宛先のアドレスまでで、これらのトランスポート層やアプリケーションの状態をテストすることはできません。
- 頂点のドメインだけでなく、重要なホスト名すべてでAAAAを確認する。
- CNAMEの参照先を、公開されているアドレスが見つかるまでたどる。
- IPv6のファイアウォールとルーティングのポリシーを、IPv4とは独立して確認する。
- AAAAレコードを広く公開する前に、IPv6でのHTTPSをテストする。
- インフラやCDNの変更後は、両方のアドレスファミリーを監視する。
安全なデュアルスタックの導入手順
段階的な導入は、関連するすべての層(DNS、ロードバランシング、ファイアウォール、オリジンへの接続)でプロバイダーがIPv6に対応していることを確認するところから始まります。最初にステージング用のホスト名でテストし、次にIPv6に対応した複数のネットワークから検証します。アプリケーションのログで、アドレスファミリーに固有のエラーを監視し、1回のテストに頼らず成功率を比較してください。AAAAレコードが準備のできていないエンドポイントを指していた場合に、そのレコードを削除または修正できるよう、ロールバックの手順も用意しておきます。環境でCDNを使っている場合は、そのプロバイダーの案内に従い、公開DNSにオリジンではなくエッジのアドレスが表示されるのかを理解しておきましょう。
アドレスファミリー同士の関係については、AレコードとAAAAレコードの比較 と、より広範な IPv4とIPv6のガイド をご覧ください。公開されている答えを確認するには、ドメイン検索ツール を使い、IPv4とIPv6の結果を別々に読んでください。重要な違いは単純です。公開されたAAAAレコードはDNS上の事実であり、エンドツーエンドでのIPv6対応は、接続経路全体でテストすべきサービスの特性です。
IPv6の部分的な導入に注意する
IPv6への対応状況は、1つのサービスの中でも不揃いなことがよくあります。公開ウェブサイトにはAAAAレコードがあるのに、API、認証コールバック、画像ホスト、決済エンドポイントのいずれかがIPv4のみ、ということがあります。そうなると、ページの読み込みは始まるものの、IPv6に対応したユーザーでは、ある依存先の部分で失敗するページになりかねません。アプリケーションが使用するすべてのホスト名を洗い出し、それぞれで想定するアドレスファミリーを確認してください。CDNが複数のオリジンの前段にある場合は、IPv6がエッジで終わるのか、バックエンドまで続くのかを明確にします。接続の失敗はアドレスファミリーごとに記録すると、IPv6の経路の問題と、全般的な障害とを区別できます。AAAAを一斉に公開して、最初の不具合のリクエストが顧客から報告されるのを待つよりも、段階的な導入と、テスト済みのロールバック記録を用意するほうが望ましい進め方です。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
関連記事
解決したアドレスの背後にある実体
共有IP
1アドレスに多数のサイト、Hostヘッダーで判別
専用IP
自分専用。逆引きDNSを管理できる
CDNエッジ
オリジンではない。エッジが接続を終端
ドメインのホスティングIPアドレスを調べる方法
ドメインが解決される公開アドレスを調べ、ホスティングとCDNのエンドポイントを見分けます。DNS検索ではオリジンホストが分からない理由も解説します。
メールがメールサーバーを見つける仕組み
送信者
you@gmail.com
MX検索
誰が受け取る?
メールサーバー
優先度10が最初
受信トレイ
配信完了
優先度の数値が小さいものが優先され、大きいものはバックアップ
メールのDNSレコード:MX、SPF、DKIM、DMARC
メールが依存するDNSレコードの実践ガイドです。配送経路と認証がどう連携するのか、メール移行後に何を確認すべきかを、順を追って解説します。
メールがメールサーバーを見つける仕組み
送信者
you@gmail.com
MX検索
誰が受け取る?
メールサーバー
優先度10が最初
受信トレイ
配信完了
優先度の数値が小さいものが優先され、大きいものはバックアップ
MXレコードの確認方法とメール配送のテスト
ドメインのMXレコードを確認し、優先度の値を理解し、メール交換サーバーのホストを名前解決して、よくあるメール配送の問題を調べます。