ISP の NAT には 何が求められるか? NTT コミュニケーションズ株式会社 西谷智広 2008/7/10 JANOG22 1
目次 1. 自己紹介 2. ISPのNATが満たすべき要件は? 1. 透過性 2. 接続確立性 3. 公平性 3. サービス影響 4. まとめ 2008/7/10 JANOG22 2
1. 自己紹介 NTTコミュニケーションズ株式会社先端 IPアーキテクチャセンタにて VoIPに関わるNAT 越え研究 ( シームレスコネクション ) P2PのNW 効率化に対する支援 ( 総務省案件 ) クリックダイヤル (VoIP-WEB 連携ソフトウェア ) 開発等を担当 主な執筆書 インプレスR&D P2P 教科書 (2007 年 12 月 ) UNIX Magazine P2P 特集号 (2006 年 10 月 ) 2008/7/10 JANOG22 3
2. ISP の NAT が満たすべき要件 ISP の NAT は 家庭用 BB ルータの NAT や 企業用 FW の NAT とは異なったある一定の要件を満たすべきと考える ISP の NW ISP のNAT ISP のプライベート IP の NW1 ブロードバンドルータ1 プライベートIP LAN1 ISP のNAT ISP のプライベート IP の NW2 ブロードバンドルータ 2 プライベート IP LAN2 2008/7/10 JANOG22 4
2. ISP の NAT が満たすべき要件 満たすべき要件 できる限り 通信を阻害しない 高い透過性 高い接続確立性 公平性の確保 高スループット高可用性 これらを満たすものがキャリアグレード NAT であると考える 2008/7/10 JANOG22 5
2-1. 透過性 NAT の分類方法 RFC4787 Network Address Translation (NAT) Behavioral Requirements for Unicast UDP ポートマッピング ポートフィルタリング ヘアピニング 2008/7/10 JANOG22 6
2-1. 透過性 ポートマッピング 端末 P IP アドレス :A ポート番号 :C IP アドレス :A ポート番号 :B プライベート IP NW ルータ グローバル IP NW 通信先 Q 通信先 R グローバル側 IF のポート番号 ( ポート番号 C) の規則 相手によらずによらず同一 IP アドレス依存 IP アドレス & ポート番号依存 2008/7/10 JANOG22 7
2-1. 透過性 フィルタリング 端末 P IP アドレス :A ポート番号 :B 通信先 Q プライベート IP NW ルータ グローバル IP NW 通信先 R NAT 外部からのからの通信透過通信透過の規則 相手によらずによらず通過 IP アドレス依存 IP アドレス & ポート番号依存 2008/7/10 JANOG22 8
2-1. 透過性 相手に依らず通過 フィルタリング IP アドレス依存 IP アドレス & ポート番号依存 相手に依らずフルコーンNAT 同一 1 IPアドレス依存マッピングマッピングマッピングマッピングIPアドレス & ポート番号依存 2008/7/10 JANOG22 9 制限付きコーンNAT 2 シンメトリック NAT 4 ポート制限付きコーンNAT 3 * コナミ DE 佐藤氏資料から引用
2-2. 接続確立性 ヘアピニング 端末 P IP アドレス :A ポート番号 :B 端末 Q プライベート IP NW ルータ グローバル IP NW IP アドレス :A ポート番号 :C ヘアピニング有り 同一 NAT 配下の端末の グローバル側 IF の IP アドレスとポート番号 を指定して通信すると NAT ルータが通信を折り返ししてくれる機能 2008/7/10 JANOG22 10
2-2. 接続確立性 ヘアピニング機能がルータにないと! 端末 P IP アドレス :A ポート番号 :B 事業者サーバ 端末 Q プライベート IP NW IP アドレス :A ポート番号 :C ルータ グローバル IP NW 中継サーバ 事業者サーバが端末として意識できるNW 情報はルータのグローバル IF 側のIP アドレスとポート番号番号のみ! NATにヘアピン機能がないと 端末間で通信できるようにする中継サーバサーバを設置する必要がある 2008/7/10 JANOG22 11
2-2. 接続確立性 UPnP ( Universal Plug and Play) サーバレスで NAT 越えが可能 コンシューマ向けは対応しているルータが多い マルチキャストで UPnP ルータを探索 2 重 NAT 越えは (UPnP だけでは ) 困難 認証機能もなく ISP の NAT への導入は簡単ではない UPnP の役割 外部と通信するときに利用するポート番号を端末がルータに要求 インターネット NAT ルータ 端末 2008/7/10 JANOG22 12
2-2. 接続確立性 STUN(Session Traversal Utilities for (NAT)) NAT ルータのグローバル側 IF の IP アドレス ポートを取得する Keepalive(NAT ルータのグローバル側 IF のポート番号の維持 ) STUN の役割 STUN サーバインターネット Keepalive の役割 STUN サーバインターネット 事業者サーバ NATルータグローバルIPアドレスポート番号を端末が把握端末 数 10 秒に 1 回パケット送出 NAT ルータ 端末 2008/7/10 JANOG22 13
2-2. 接続確立性 UDP Hole Punching NAT ルータ間で直接 UDP を送受信するテクニック 実施可能性はルータ依存 TCP Hole Punching NAT ルータ間で直接 TCP を送受信するテクニック 実施可能性はルータ OS 依存 インターネット 1 2 NATルータ1 NATルータ2 P2Pで通信 NAT ルータ インターネット TCP 同時オープン P2P で通信 NAT ルータ 端末 1 端末 2 端末 端末 2008/7/10 JANOG22 14
2-3. 公平性 公平性の確保 グローバル IP アドレスの複数ユーザでのシェア ポート番号 ICMP ID は各ユーザで排他的に利用 ユーザ毎に ポート番号 ICMP ID を制限する 2008/7/10 JANOG22 15
2.ISP の NAT が満たすべき要件 ( 再掲 ) 満たすべき要件 できる限り 通信を阻害しない 高い透過性 (Full Coneであること ) 高い接続確立性 ( ヘアピニング UDP/TCP Hole Punchingが利用可能であること ) 公平性の確保 ( ポート番号 ICMP ID はユーザ毎に制限可能であること ) 高スループット 高可用性 これらを満たすものがキャリアグレード NAT であると考える 2008/7/10 JANOG22 16
3. サービス影響 (1)NAT そもそもの仕様仕様によりにより影響影響するサービス 1-1 アプリケーション層に NW 情報を格納する SIP 1-2 パケットの改ざんを検証する IPSec 1-3 ポート番号を ( 容易に ) 制御できない SIP,IPSec 1-4 インターネット側から端末への通信が発生する FTP, インスタントメッセンジャー,P2P サービス UPnP は使えない!( キャリアグレード NAT の穴あけはできない ) 2008/7/10 JANOG22 17
3. サービス影響 (2)IPアドレスによって認証 利用許諾をチェックするサービス 複数ユーザが同一 IPアドレスを共有 他人が成りすまし出来る可能性 ポート番号まで意識する必要がある パスワード認証等が必要 2008/7/10 JANOG22 18
3. サービス影響 (3) ポート使用数の制限により影響のあるサービス 3-1 同時コネクション数が多いサービス Ajax,P2Pソフトの一部 Google Earth,Google Maps Webサイト 特にマッシュアップサイト 高速ダウンロード アップロードを行うソフトウェア 3-2 通信相手が非常に多いサービス RSS リーダー等 2008/7/10 JANOG22 19
4. まとめ ISPのNATが満たすべき要件 出来る限り通信を阻害しない 高い透過性 高い接続確立性 公平性 キャリアグレード NAT キャリアグレード NAT でも 影響を受けるサービスはある NATそもそもの仕様 IPアドレスによる認証 利用許諾 ポート使用数の制限 IPv6 へ速やかに移行する必要がある 2008/7/10 JANOG22 20
( 参考 ) キャリアグレードNATの要求条件 draft-nishitani-cgn-00 Carrier Grade NAT Behavioral Requirements for Unicast UDP, TCP and ICMP UDP RFC4784 NAT Behavioral Requirements for Unicast UDP TCP draft-ietf-behave-tcp-07 NAT Behavioral Requirements for TCP ICMP draft-ietf-behave-nat-icmp-08 NAT Behavioral Requirements for ICMP protocol プライベートIPアドレスの割り当て draft-shirasaki-isp-shared-addr-00 2008/7/10 JANOG22 21
( 参考 ) サービス影響の低減案 ポート セッション数制限に対する考慮インフラ的な重要重要プロトコルプロトコル 例えば メール (POP3,SMTP) NTP 等については 方式 1: 特別にポートにポート番号番号を確保方式 2: パススルー方式によってユーザはいつでも使えるえる というという案もあるかも 2008/7/10 JANOG22 22
NAT 越え技術 ( 参考 ) TURN(Traversal Using Relays around NAT) サーバリレーにて UDP/TCP 通信の NAT 越えを行う TURN の役割 TURN サーバインターネット Relayed Trasnport Address を割り当て NAT ルータ 端末 NAT ルータ 端末 TURN サーバで データがリレー 2008/7/10 JANOG22 23
NAT 越え技術 ( 参考 ) ICE(Interactive Connectivity Establishment ) Candidate と NW の関係 TURN サーバ インターネット Relayed Candidate ( 優先度低 ) Server Reflexive Candidate (Peer Reflexive Candidate) ( 優先度中 ) 疎通確認と Priority TURN サーバ インターネット 優先度中 優先度低 NAT ルータ NAT ルータ NAT ルータ Host Candidate 優先度高 端末 ( 優先度高 ) 端末 端末 2008/7/10 JANOG22 24