概要
- 電源障害 後、ISPのIPv4接続が利用不可となる事象発生
- IPv6接続 は正常、しかし多くのWebサイトが非対応でアクセス不可
- Hetzner VPS を活用し、WireGuardトンネルでIPv4通信を復旧
- NAT/CG-NAT/IPv6 の基礎と実践的な設定例を解説
- Linux環境 での具体的な対策と構成例の紹介
電源障害とIPv4接続障害
- ある朝、 ブレーカーが落ちて停電、復旧後もIPv4経由の通信が不能となる事象
- GitHub等多くのWebサイト に接続できず、GoogleやMetaなど一部のみ利用可能
- ping -6やtraceroute を利用し、IPv6は正常でIPv4のみ障害と特定
- 問い合わせの結果、 CG-NAT(キャリアグレードNAT) の不具合が原因と判明
- ISPの対応待ち は数日必要、業務や学業に支障が出るため早急な解決が必須
NATとCG-NATの仕組み
- IPv4アドレス枯渇 問題への対策としてNATが利用される現状
- 家庭内の複数端末が 1つのグローバルIPv4アドレス を共有
- ルーターが 送信元IPアドレスとポート番号 を変換・管理
- conntrackツール でNATテーブルの確認が可能
- CG-NAT はISP側でさらにNATを重ねる技術
- 各家庭ルーターの更に上位で 複数家庭をまとめてNAT
- ポート開放やサーバ公開時の障壁
- NATトラバーサル や回避策についてはTailscaleの解説記事が非常に有用
IPv6の特徴とNAT不要性
- IPv6アドレス空間 の膨大さ(128bit、約3.4×10^38個)によりNAT不要
- 一般家庭でも /64サブネット が割り当てられ、端末ごとに固有のグローバルアドレス
- NATなし でインターネットから直接アクセス可能
- 逆に ファイアウォール構成 の重要性が増す
- 任意の外部からの接続を防ぐため、適切なルール設定が必須
- IPv6非対応サイト が多く、IPv4通信の復旧が必要となる場合が多い
Hetzner VPSとWireGuardによるIPv4トンネリング
-
Hetzner VPS (IPv4/IPv6両対応)を既に所有していたことが幸い
-
WireGuard をVPSと自宅Linuxに導入し、 IPv6経由でトンネル を構築
- VPS上で Arch Linux 環境を利用(HetznerはISOマウントにも対応)
-
WireGuardの設定例 を提示
- サーバ側:IPv4/IPv6両方のアドレス付与、NAT設定、転送有効化
- クライアント側:VPSのIPv6アドレス指定、全トラフィックをトンネル経由に設定
-
NATの細かい設定 (MASQUERADEとSNATの使い分け)や、 IPv6での直接アドレス指定 の利点も解説
- 直接アドレス指定 :VPSで/64ブロックを持っていればNAT不要、各端末がグローバルIPv6を持てる
- NAT利用時 :Unique Local Address(ULA)で内部アドレス割当、ip6tablesでSNAT/MASQUERADE設定
まとめと教訓
- ISP障害時でもIPv6が活用できれば復旧策は多い
- VPSとWireGuard の組み合わせで、 IPv6しか使えない環境でもIPv4通信が可能
- NATやCG-NAT、IPv6の仕組み を理解しておくことの重要性
- セキュリティ対策 としてファイアウォール設定の見直しも忘れずに