概要
- NATの普及 により、個人がサーバーを運用することが困難に
- FTPサーバーやピアツーピア通信 が一般的でなくなった背景
- ポートフォワーディングやSTUN/TURN/ICE などの回避策の限界
- IPv6の導入遅延 と運用上の問題
- インターネットの中央集権化 とその影響
NATがもたらした「普通の人がFTPサーバーを持てない理由」
- xkcd #949 のコミックでは、一般人がFTPサーバーを持つ発想自体が珍しいと描写
- 一般ユーザーにとって「他人が自分のPCに接続できる」という考え自体が 危険・異質 と感じられる現状
- NAT(ネットワークアドレス変換) の導入が、個人サーバー運用の障壁となった歴史
- NATは IPアドレス枯渇問題 と ルーティングのスケーラビリティ への短期的解決策としてRFC 1631で提案
- 家庭用ルーターでは プライベートIPアドレス と NAT が組み合わさって運用されることが一般的
NATの仕組みと通信の制約
- 端末から外部サーバーへ通信時、NATにより 送信元IP/ポートが変換 される
- 外部からの新規接続要求に対し、NATは どの端末へ転送すべきか判断できず通信が成立しない
- 外部からの接続 が難しいため、FTPサーバーやゲームサーバーの運用が一般家庭で困難
回避策とその限界
- ポートフォワーディング :特定ポートへの通信を指定端末に転送する手法
- 1つの パブリックIP+ポート につき1台の端末しか割り当てられない制約
- CGNAT (キャリアグレードNAT)環境下ではユーザーが設定できず、さらに困難
- UPnP/NAT-PMP/PCP :ソフトウェアが自動でポート開放を要求する仕組み
- セキュリティ上の懸念や初期実装のバグで 無効化されていることが多い
- STUN :外部サーバー経由でNAT越しの自分のグローバルIP/ポートを確認
- コーン型NAT では有効だが、 シンメトリックNAT では使えない場合が多い
- TURN :中継サーバー経由で通信を実現( 遅延増加・サーバー運用コスト が発生)
- ICE :あらゆる手法を順次試行し、どれかが成功すれば接続成立(WebRTC等で採用)
IPv6と本来の長期的解決策
- IPv6 はグローバルユニークなアドレスを全端末に割り当て、NATを不要にするはずだった
- IPv6導入が 想定より進まず、導入済みでも「慣習的なNAT的運用」や 不要なファイアウォール が残存
- Unique Local Address (fc00::/7)をIPv4のプライベートアドレスのように使う運用も散見
インターネット中央集権化の進行
- NATの普及 が「サーバー運用は特別なこと」という意識を生み、 クラウド・クライアントサーバーモデル が常識化
- 個人が自宅PCでサービスを公開することが 困難・高コスト となり、 VPS等の外部サービス依存 が進行
- 「NATはセキュリティ機能」と誤認され、 本質的な解決策(IPv6や本物のファイアウォール) の普及を妨げる一因に
- 結果として、 分散・オープンなインターネット から 中央集権的なプラットフォーム へのシフトが加速
- ファイル転送や個人サーバー運用が難しくなった根本的要因として NATの歴史的役割 が大きい