「PCが名前でWebサーバーに接続できない?IPv6が原因だった話」

に公開

1. はじめに

こんにちは、田中です。
今回は、PCからWebサーバーにアクセスしようとした際に、思わぬ落とし穴にはまった体験を共有したいと思います。

WebサーバーとDNSサーバーのIPアドレスを割り振り、名前解決もできているはずなのに、なぜか通信ができない…。
結論から言うと、IPv6が優先されていたことが原因でした。

同じような環境で困っている方の参考になれば幸いです。

2. ネットワーク構成の確認

今回の構成は以下の通りです:

PC:クライアント端末(Windows)
Webサーバー:HTTPサービスを提供
DNSサーバー:名前解決用に構築
割り当てたIPアドレス:すべてIPv4
DNSサーバーには www.△△△.test という名前を登録し、PCから ping や nslookup を使って名前解決ができることを確認しました。

3. 原因の特定

名前解決はできているのに、Webブラウザからアクセスすると「接続できません」と表示される…。
最初はWebサーバーの設定を疑いましたが、ログにもアクセスの痕跡がありません。

そこで、nslookup の結果をよく見ると、**IPv6アドレス(AAAAレコード)**が返されていることに気づきました。
しかし、WebサーバーはIPv4でしか待ち受けていないため、IPv6での接続は失敗していたのです。

つまり、WindowsがIPv6を優先して通信しようとしていたことが原因でした。

4. 解決方法

この問題を解決するために、Windowsのネットワーク設定からIPv6を無効にしました。手順は以下の通りです:

「設定」アプリを開く
「ネットワークとインターネット」を選択
「ネットワーク詳細設定」→「その他のアダプターオプションの編集」をクリック
使用中のネットワークアダプターを右クリックして「プロパティ」を開く
「インターネット プロトコル バージョン 6 (TCP/IPv6)」のチェックを外す
「OK」をクリックして設定を保存
この設定変更後、PCはIPv4アドレスを使ってWebサーバーに接続するようになり、無事に通信できるようになりました。

5. 学びと今後の対策

今回のトラブルから学んだことは以下の通りです:

IPv6が有効な環境では、優先順位に注意が必要
DNSの応答内容(Aレコード vs AAAAレコード)を確認することが重要
Webサーバー側も将来的にはIPv6対応を検討すべき
特に企業ネットワークや検証環境では、IPv6が有効になっていることに気づかずにトラブルになるケースも多いと思います。

6. まとめ

今回は、名前解決はできているのにWebサーバーに接続できないという問題に直面し、IPv6が原因だったという体験を紹介しました。

同じような問題に悩んでいる方は、ぜひ一度「IPv6が有効になっていないか?」を確認してみてください。
ちょっとした設定変更で、スムーズに通信できるようになるかもしれません。

Discussion