【実録】VPNを繋いでいるのになぜ?IPv6の罠にハマった話

システムエンジニアの出来事

「VPNを繋いでいるから、IP制限のあるサイトも大丈夫」
そう思っていた時期が私にもありました。長年システムエンジニアをしていますが、先日、基本中の基本で見事にハマってしまったので、恥を忍んで共有します。

発生したトラブル

仕事で管理している、AWS WAFでIP制限をかけているサイトでの出来事です。
社内で用意されたVPNを使い、そのVPNサーバーの出口IPをホワイトリストに登録することで、関係者のみがアクセスできる運用にしていました。

  • 会社でのアクセス: 問題なし(VPN経由)
  • 自宅でのアクセス: ブロックされる(会社と同じPC、同じVPNを使用)

PCもVPN設定も全く同じ。違うのは「会社のネットワーク」か「自宅のネットワーク」かという点だけです。「VPNを通しているのだから、自宅回線が何であろうと出口のIPは同じはずでは?」と、泥沼の調査が始まりました。

調査:IP確認くんでは同じなのに…

まず疑ったのは、VPNが正常に動作しているかどうかです。
定番の「IP確認くん」などのツールでアウトバウンドのIPを確認してみましたが、表示されるのはVPNサーバーのIPv4アドレス。会社にいる時と同じです。

「ルーターの設定?」「MTUサイズの問題?」と、ネットワークの深いところを疑い始めましたが、答えは意外なところにありました。

原因は「IPv6」の優先接続

対象サイトのWAFログを詳細に確認したところ、驚きの事実が判明しました。
BLOCKされているログに、見たことのないIPv6アドレスが記録されていたのです。

原因を整理するとこうでした:

  1. 自宅のインターネット回線がIPv6ネイティブ接続に対応していた。
  2. PCのネットワークアダプタでIPv6が有効になっていた。
  3. 接続先サーバー(AWS)がIPv6を許容していたため、VPN(IPv4)を通らずにIPv6で直接通信しようとしていた。

多くのVPNサービスは、デフォルトでIPv4通信のみをトンネル内に通します。そのため、IPv6が有効な環境では、IPv6での通信が「VPNの外」を通ってしまう(スプリットトンネルのような状態)ことがあるのです。

原因がわかった瞬間、そっとネットワーク設定からIPv6をオフにしました。すると、何事もなかったかのように接続成功。……エンジニアとして、少しだけ遠い目をしてしまいました。

まとめ

「IP確認くん」も、IPv6で見ているのかIPv4で見ているのかを意識しないと危険ですね。皆さんも、VPN利用時の「謎の接続不可」に遭遇したら、まずはIPv6を疑ってみてください。


補足:IPv4とIPv6の違いとは?

今回のトラブルの背景にある、2つの規格の違いについて解説します。

1. IPv4 (Internet Protocol version 4)

  • 構造: 32ビットのデータで構成され、「192.168.0.1」のように4つの数字の塊で表記されます。
  • 特徴: 約43億個のアドレスしか作れないため、世界的にアドレス不足が深刻化しています。
  • 今回のケース: 多くの古いVPNプロトコルは、このIPv4通信を保護するように設計されています。

2. IPv6 (Internet Protocol version 6)

  • 構造: 128ビットのデータで構成され、「2001:0db8:85a3:0000:0000:8a2e:0370:7334」のように非常に長い英数字で表記されます。
  • 特徴: アドレス数はほぼ無限( 個)です。IPv4よりも通信効率やセキュリティ面で優れている部分が多く、現在の主流になりつつあります。
  • 今回のケース: IPv6が有効な環境では、PCとサーバーの両方がIPv6に対応している場合、IPv4(VPN)よりもIPv6が優先的に使われることがあります。これが今回の「VPNの迂回」を引き起こした原因です。
比較項目IPv4IPv6
アドレス長32ビット128ビット
表記方法10進数(例: 192.168.1.1)16進数(例: 2001:db8::1)
アドレス数約43億個ほぼ無限()
VPNとの関係多くのVPNが標準対応設定によりVPNを通らない場合がある

コメント

タイトルとURLをコピーしました