「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