一対多通信における ネットワーク障害物対応方法選択 プロトコルの設計 広島市立大学 情報科学部情報メディア工学科 インターネット工学研究室 0421037 日山雅之 1 発表概要 1.研究背景 2.提案プロトコルについて 3.提案プロトコルを実装したプロトタイプ 4.おわりに 2 研究背景 遠隔プレゼンテーションシステム”GOZARU”を使用して、離 れた3大学(慶応SFC、京大)での合同講義を行っている 問題点 ネットワーク障害物(NAT, ファイアウォール等)が原因となりIPv4 での利用ができない場合があって、他組織に展開するにあたっ て普及の妨げとなっている そのため、IPv4のネットワーク障害物が介在する場合でも通 信可能な”GOZARU”の作成を開始 それにあたり、ネットワーク障害物に応じて対応方法を決定 するプロトコルを提案、作成する 3 GOZARUとその問題 NAT・NAPT内部のネットワー 受信した制御情報 [ GOZARUとは ] クであるとプライベートアドレス 通りの動作を実行 複数拠点でのPowerPointファイルのページ遷移と操作の 講演者が実行し が割り当てられ、講演者は一 た制御情報を受 意に特定できない 講演者 同期を実現することができる、遠隔プレゼンテーションシステム N 講者へ送信 と同期 A 講演者 T 制御情報 制御情報が送れない ・ 同期ができない N A P T 受講者 プライベートアドレス NAT Traversal技術を使って 同期を可能にする 4 NAT Traversal技術 UDP Hole Punching (利点)通信開始後は、双方のノードのみで直接通信を行う (欠点)一方がSymmetric NAT内部であると実行できない Relaying (利点)ほとんどのネットワーク環境で実行できる (欠点)Relayingによるオーバーヘッドで遅延が発生する Relayサーバーに負荷が集中する これらの特性を考慮して、ネットワーク環境に応じて NAT Traversal技術を選択するプロトコルを設計 5 提案プロトコルについて 「ネットワーク障害物対応方法選択プロトコル」 講演者(Sender)と受講者(Receiver)の双方のネットワーク環 境に応じて、対応方法を決定するプロトコル 対応のための戦略を次の4つを順に試す 直 接 間 接 1 直接接続 2 NAT内部ノードからNAT外部ノードへ接続開始 3 UDP Hole Punching (通信確立までの処理が複雑) 4 Relaying (第三のノードを使用してしまう) 6 対応方法決定の組み合わせ SenderおよびReceiverのネットワーク環境に応じて決めら セッション毎に新 れる、対応方法の組み合わせ 通信相手が変わっ ても同じポート番号 が使用される Receiver Sender たなポート番号が 使用される NATなし Cone NAT Symmetric NAT NATなし 直接接続 NAT内部ノードから NAT外部ノードへ 接続開始 NAT内部ノードから NAT外部ノードへ 接続開始 Cone NAT 直接接続 UDP Hole Punching Relaying Symmetric NAT 直接接続 Relaying Relaying 7 対応方法決定までの流れ STUNサーバーとは 問い合わせがあったクライアントのネット Brokerが対応方法決定の組み ワーク環境にNATがあるかないか、あった Sender, Receiverが自ネット STUNサーバーは要請が 合わせにしたがって対応方法を 場合はそのNATの種類と変換後のアドレスを インターネット ワークのネットワーク情報を あったクライアントのネット 決定 Sender, Receiverが自 クライアントへ通知する Brokerに通知 ネットワークの情報を STUNサーバーに要請 ワーク情報を通知 STUNサーバー BrokerがSender, Receiverに 対応方法を通知 Broker 通知された対応方法を実行 NAT対応ルーター Sender Receiver 8 提案プロトコルを実装したプロトタイプ 提案プロトコルを実装したプロトタイプ”GOZARU+” を現在実装中 Sender+/Receiver+ GOZARUからBroker通信部分、TCPで制御情報の送受 信を行う部分を追加 Windows上で、C#で開発 Broker 現在、Linux上にてPerlで開発したプロトタイプの動作を 確認済み 今後は、パフォーマンス向上のためにC言語へ移植予定 Relayingのみ動作確認済み 9 おわりに まとめ IPv4環境でGOZARUを展開するためにネットワーク 障害物を回避する方式を提案 そのプロトコルを実装したGOZARU+を現在開発中 Relayingの動作を確認 今後の課題 プロトタイプの完成、動作確認 選択方法の性能の評価 10 11 NAT (Network Address Translator) プライベートアドレスとグローバルアドレスを 変換する技術 IPアドレスにプライベートアドレスが割り当て られたノードが、インターネットへ接続をすると きだけグローバルアドレスに変換して通信を 行うことで、グローバルアドレスを節約するこ とが可能となる 12 NATの利点・欠点 利点 ひとつのグローバルアドレスで複数のノードがインター ネットに接続することができる グローバルアドレスに変換されなければインターネットに 接続していないも同然であるため、セキュリティ面が向上 する 欠点 プライベートアドレスが割り当ててあるため、外部から接 続を行ったり、データを送ることができない 変換によるオーバーヘッドで遅延を起こしてしまう 13 NAPT (Network Address Port Translator) アドレスのみでなく、ポート番号も含めて変換 を行う。これにより、単一のグローバルアドレ スを多数のプライベートアドレスに変換できる 変換例 192.168.1.100:7800 ⇔ 165.242.42.220:7801 192.168.1.101:8900 ⇔ 165.242.42.220:7802 NATの場合 192.168.1.102:9700 ⇔ 165.242.42.220 変換後のアドレスは同一であるが、ポート番号が異なるため、 14 変換前のアドレスを区別することができる NATの種類 Cone NAT Full Cone NAT Restricted Cone NAT Port Restricted Cone NAT Symmetric NAT 15 Full Cone NAT NAT Server A Client Server B 16 Restricted Cone NAT NAT Server A Client Server B 17 Port Restricted Cone NAT NAT Server A Client Server B 18 Symmetric NAT NAT Server A Client Server B 19 NAT内部ノードからNAT外部ノードへ接続 インターネット どこ? ノードB プライベート ネットワーク ノードA 20 UDP Hole Punching [NAT テーブル] ◆Private A : Port A’ ⇔ Global A : Port A : [宛先]Global C : Port C : [宛先]Global B : Port B NAT対応ルーターA STUN Serverと NAT対応ルーターB にパケットを送信 通信を行う のアドレス(ポート番 号)を通知 インターネット [NAT テーブル] テーブル] NAT対応ルーターAと [NAT NAT対応ルーターBの ◆Private ◆ PrivateBB: :Port PortB’B⇔⇔ アドレス(ポート番号)を取得 Global B : Port B STUN Server Global C NAT対応ルーターA 外部 : Global A 内部 : Private A’ ノードA Private A Global B : Port B : [宛先]Global C : Port C [宛先]Global C : Port C : [宛先]Global A : Port A STUN Serverと NAT対応ルーターA 通信を行う NAT対応ルーターB のアドレス(ポート番 にパケッ トを送信 号)を通知 NAT対応ルーターB 外部 : Global B 内部 : Private B’ NATテーブルの宛先 に登録されたアドレス からのパケットでない ため通さない ノードB Private B 21 なぜSymmetric NATが原因で UDP Hole Punchingができないのか? [NAT テーブル] ◆ Private A : Port A0 B1 Global B : Port ⇔ Global A : Port A2 [宛先] Global B : Global B1 ノードA Private A NAT対応ルーター Global A [NAT テーブル] A :B0 Port A1 ◆ PrivateGlobal B : Port STUN サーバー インターネット ⇔ Global B : Port B2 [宛先] Global A : Global A1 NAT対応ルーター Global B ノードB Private B 22 Relaying インターネット ノードC NAT対応ルーターA ノードA NAT対応ルーターA ノードB 23 対応方法と使用する通信プロトコル 対応不要 NAT内部ノードからNAT外部ノードへ接続開始 TCP/UDP UDP Hole Punching UDP Relaying TCP 24 参考文献 B.Carpenter, “Internet Transparency”, RFC2775, IETF,(2000). B. Ford, P. Srisuresh, and D. Kegel, “Peer-to-peer communications across network address translations”, In the 2005 USENIX Annual Technical Conference, USENIX, pp. 179-191 (2005). J. Rosenberg, R. Mahy, and C. Huitema,”Traversal using relay NAT (TURN)”, Internet-Draft, IETF (2005). J.Rosenberg, J. Weinberger, “STUN – Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)”, RFC3489, IETF, (2003) 25
© Copyright 2024 ExpyDoc