一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

25
1 対対対対対対対対 対対対対対対対対対対対対対対対対対対対対対対対 対対対対対対 対対対対対対対対対対対対対対 対対対対対対対対対対対対 0421037 対対対対

Upload: malory

Post on 17-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

一対多通信における ネットワーク障害物対応方法選択プロトコルの設計. 広島市立大学 情報科学部情報メディア工学科 インターネット工学研究室 0421037 日山雅之. 発表概要. 1.研究背景 2.提案プロトコルについて 3.提案プロトコルを実装したプロトタイプ 4.おわりに. 研究背景. 遠隔プレゼンテーションシステム ” GOZARU” を使用して、離れた3大学 ( 慶応 SFC 、京大 ) での合同講義を行っている. 問題点. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

1

一対多通信におけるネットワーク障害物対応方法選択プロトコルの設計

広島市立大学情報科学部情報メディア工学科

インターネット工学研究室0421037

日山雅之

Page 2: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

2

発表概要1.研究背景2.提案プロトコルについて3.提案プロトコルを実装したプロト

タイプ4.おわりに

Page 3: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

3

研究背景 遠隔プレゼンテーションシステム” GOZARU” を使用して、

離れた3大学 ( 慶応 SFC 、京大 ) での合同講義を行っている

問題点

そのため、 IPv4 のネットワーク障害物が介在する場合でも通信可能な” GOZARU” の作成を開始それにあたり、ネットワーク障害物に応じて対応方法を決定するプロトコルを提案、作成する

ネットワーク障害物 (NAT, ファイアウォール等 ) が原因となり IPv4 での利用ができない場合があって、他組織に展開するにあたって普及の妨げとなっている

Page 4: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

4

GOZARU とその問題

講演者 受講者

講演者が実行した制御情報を受講者へ送

受信した制御情報通りの動作を

実行講演者と同期

制御情報

NAT・NAPT

NAT ・ NAPT 内部のネットワークであるとプライベートアドレスが割り当てられ、講演者は一意に特定で

きない

プライベートアドレス

制御情報が送れない同期ができない

[ GOZARU とは ]複数拠点での PowerPoint ファイルのページ遷移と操作の

同期を実現することができる、遠隔プレゼンテーションシステム

NAT Traversal 技術を使って同期を可能にする

Page 5: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

5

NAT Traversal 技術 UDP Hole Punching

( 利点 ) 通信開始後は、双方のノードのみで直接通信を行う( 欠点 ) 一方が Symmetric NAT 内部であると実行できない

Relaying( 利点 ) ほとんどのネットワーク環境で実行できる( 欠点 )Relaying によるオーバーヘッドで遅延が発生する   Relay サーバーに負荷が集中するこれらの特性を考慮して、ネットワーク環境に応

じて

NAT Traversal 技術を選択するプロトコルを設計

Page 6: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

6

提案プロトコルについて 「ネットワーク障害物対応方法選択プロトコル」

講演者 (Sender) と受講者 (Receiver) の双方のネットワーク環境に応じて、対応方法を決定するプロトコル

対応のための戦略を次の4つを順に試す 1 直接接続 2 NAT 内部ノードから NAT 外部ノードへ接続開始 3 UDP Hole Punching 4 Relaying

( 通信確立までの処理が複雑 )

( 第三のノードを使用してしまう )

直接

間接

Page 7: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

7

対応方法決定の組み合わせ

NAT なし Cone NAT Symmetric NAT

NAT なし 直接接続NAT 内部ノードから

NAT 外部ノードへ接続開始

NAT 内部ノードからNAT 外部ノードへ

接続開始

Cone

NAT直接接続 UDP Hole Punching Relaying

Symmetric

NAT直接接続 Relaying Relaying

Sender および Receiver のネットワーク環境に応じて決められる、対応方法の組み合わせ

Sender

Receiver

通信相手が変わっても同じポート番号が使用される

セッション毎に新たなポート番号が使用される

Page 8: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

8

対応方法決定までの流れ

Sender Receiver

NAT対応ルーター

BrokerSTUNサーバー

インターネットSender, Receiver が自ネットワークの情報をSTUN サーバーに要請

STUN サーバーは要請があったクライアントのネットワーク情報を通知

Sender, Receiver が自ネットワークのネットワーク情報を Broker に通知

Broker が対応方法決定の組み合わせにしたがって対応方法を決定

Broker が Sender, Receiver に対応方法を通知

通知された対応方法を実行

STUN サーバーとは問い合わせがあったクライアントのネット

ワーク環境に NAT があるかないか、あった場合はその NAT の種類と変換後のアドレス

をクライアントへ通知する

Page 9: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

9

提案プロトコルを実装したプロトタイプ 提案プロトコルを実装したプロトタイ

プ” GOZARU+” を現在実装中 Sender+/Receiver+

GOZARU から Broker 通信部分、 TCP で制御情報の送受信を行う部分を追加

Windows 上で、 C# で開発 Broker

現在、 Linux 上にて Perl で開発したプロトタイプの動作を確認済み

今後は、パフォーマンス向上のために C 言語へ移植予定

Relaying のみ動作確認済み

Page 10: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

10

おわりに まとめ

IPv4 環境で GOZARU を展開するためにネットワーク障害物を回避する方式を提案

そのプロトコルを実装した GOZARU+ を現在開発中

Relaying の動作を確認 今後の課題

プロトタイプの完成、動作確認選択方法の性能の評価

Page 11: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

11

Page 12: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

12

NAT (Network Address Translator)

プライベートアドレスとグローバルアドレスを変換する技術

IP アドレスにプライベートアドレスが割り当てられたノードが、インターネットへ接続をするときだけグローバルアドレスに変換して通信を行うことで、グローバルアドレスを節約することが可能となる

Page 13: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

13

NAT の利点・欠点 利点

ひとつのグローバルアドレスで複数のノードがインターネットに接続することができる

グローバルアドレスに変換されなければインターネットに接続していないも同然であるため、セキュリティ面が向上する

欠点 プライベートアドレスが割り当ててあるため、外部

から接続を行ったり、データを送ることができない 変換によるオーバーヘッドで遅延を起こしてしまう

Page 14: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

14

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

変換後のアドレスは同一であるが、ポート番号が異なるため、変換前のアドレスを区別することができる

Page 15: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

15

NAT の種類 Cone NAT

Full Cone NATRestricted Cone NATPort Restricted Cone NAT

Symmetric NAT

Page 16: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

16

Full Cone NAT

Client

Server A

Server B

NAT

Page 17: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

17

Restricted Cone NAT

Client

Server A

Server B

NAT

Page 18: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

18

Port Restricted Cone NAT

Client

Server A

Server B

NAT

Page 19: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

19

Symmetric NAT

Client

Server A

Server B

NAT

Page 20: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

20

NAT 内部ノードから NAT 外部ノードへ接続

ノードB

ノードA

インターネット

プライベートネットワーク

どこ?

Page 21: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

21

Global C

インターネット

ノードAPrivate A

ノードBPrivate B

STUN Server

NAT対応ルーターA外部 : Global A内部 : Private A’

NAT対応ルーターB外部 : Global B内部 : Private B’

UDP Hole Punching

STUN Serverと通信を行う

[NAT テーブル ]◆Private A : Port A’ ⇔Global A : Port A: [ 宛先 ]Global C : Port C

STUN Serverと通信を行う

[NAT テーブル ]◆Private B : Port B ⇔Global B : Port B[ 宛先 ]Global C : Port C

NAT 対応ルーター A とNAT 対応ルーター B のアドレス ( ポート番号 ) を取得

NAT 対応ルーター A のアドレス( ポート番号 ) を

通知

NAT 対応ルーター B のアドレス( ポート番号 ) を

通知

NAT 対応ルーターA にパケットを送

[NAT テーブル ]◆Private A : Port A’ ⇔Global A : Port A: [ 宛先 ]Global C : Port C: [ 宛先 ]Global B : Port B

NATテーブルの宛先に登録されたアドレスからのパケットでないため

通さない

NAT 対応ルーターB にパケッ トを送

[NAT テーブル ]◆Private B : Port B’ ⇔Global B : Port B: [ 宛先 ]Global C : Port C: [ 宛先 ]Global A : Port A

Page 22: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

22

NAT対応ルーターGlobal A

NAT対応ルーターGlobal BノードA

Private AノードB

Private B

STUN サーバー

なぜ Symmetric NAT が原因でUDP Hole Punching ができないのか?

[NAT テーブル ]◆ Private A : Port A0⇔ Global A : Port A2[ 宛先 ] Global B : Global

B1

[NAT テーブル ]◆ Private B : Port B0⇔ Global B : Port B2[ 宛先 ] Global A : Global

A1

Global B : Port B1 Global A : Port A1

インターネット

Page 23: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

23

Relaying

ノードA ノードB

ノードC

インターネット

NAT対応ルーターA NAT対応ルーターA

Page 24: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

24

対応方法と使用する通信プロトコル対応不要

TCP/UDPNAT 内部ノードから NAT 外部ノードへ接続開始UDP Hole Punching UDP

Relaying TCP

Page 25: 一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

25

参考文献 B.Carpenter, “Internet Transparency”, RFC2775, IETF,

(2000). B. Ford, P. Srisuresh, and D. Kegel, “Peer-to-peer comm

unications 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)