25
n チチチチチチチチチチチ チチチチ 200703006 チチ チチ チチチチチ

nチャンネル通信のための 経路制御

  • Upload
    max

  • View
    62

  • Download
    0

Embed Size (px)

DESCRIPTION

nチャンネル通信のための 経路制御. 200703006 小川 真人 木下研究室. Nチャンネル通信. N本の経路を用いて、ファイルを分散させて通信を行う方式である。 分散されたファイルが、すべて違う経路を通り相手に届くことが理想である。. N 本の経路を用意すれば良い   しかし、実装するにあたって   次のような問題点がある. 一般のネットワーク. インターネット等の通信.  指定したルートでデーターを送ることはできない。. 経路制御(ルーティング). 提案手法  n チャンネルまでの流れ. N 本の経路を用いた通信をしたい - PowerPoint PPT Presentation

Citation preview

Page 1: nチャンネル通信のための 経路制御

nチャンネル通信のための経路制御

200703006 小川 真人木下研究室

Page 2: nチャンネル通信のための 経路制御
Page 3: nチャンネル通信のための 経路制御
Page 4: nチャンネル通信のための 経路制御

Nチャンネル通信N本の経路を用いて、ファイルを分散させて通信を行う方式である。分散されたファイルが、すべて違う経路を通り相手に届くことが理想である。

Page 5: nチャンネル通信のための 経路制御

N本の経路を用意すれば良い

  しかし、実装するにあたって  次のような問題点がある

Page 6: nチャンネル通信のための 経路制御

一般のネットワーク

Page 7: nチャンネル通信のための 経路制御

インターネット等の通信

 指定したルートでデーターを送ることはできない。

Page 8: nチャンネル通信のための 経路制御

経路制御(ルーティング)

Page 9: nチャンネル通信のための 経路制御

提案手法  nチャンネルまでの流れ

N本の経路を用いた通信をしたいしかし、ルーターが最短経路を選択してしまうために不可能

               ↓

そこで、ソースルーティングに着目した

Page 10: nチャンネル通信のための 経路制御

ソースルーティング

ソース・ルート・オプションの形式

SSRR( strict soruce and record route)というオプションを使用する。IPアドレスのリストを送信前に埋め込まなければならない。ソース・ルート・オプションはデータグラムが経路を通過するごとに IPアドレスリストが更新される。

コード

データ長

ポインタ

IP アドレス#1

IP アドレス#2

IP アドレス#3

・・・・

IP アドレス#9

1 1 1 4バイト 4バイト 4バイト・・・・

・4バイト

  39 バイト

Page 11: nチャンネル通信のための 経路制御

実験の概要•パソコン 4台を使用し、 A、 Bのパソコンを任意に選択し通信できるか、実験した

net1

net4net2

net3192.168.1.1

192.168.2.1

192.168.2.3 192.168.4.3

192.168.4.4

192.168.3.4

192.168.3.2192.168.1.2

eth1

eth1

eth1

eth2

eth2

eth2

eth2eth1

Page 12: nチャンネル通信のための 経路制御

送信プログラムLSR SourceRoute;memset(&SourceRoute,0,sizeof(LSR));

SourceRoute.Nop = IPOPT_NOP;SourceRoute.Code = 0x89;SourceRoute.Len = 11;SourceRoute.Offset = 4;SourceRoute.Addrs[0] = inet_addr("192.168.1.2");SourceRoute.Addrs[1] = inet_addr("192.168.3.4");

setsockopt(sock,IPPROTO_IP,IP_OPTIONS,(char*)&SourceRoute,SourceRoute.Len+1);

n = sendto(sock, "HELLO-1", 7, 0, (struct sockaddr *)&addr, sizeof(addr));if (n < 1) {perror("sendto");return 1;}

Page 13: nチャンネル通信のための 経路制御

送信プログラムLSR SourceRoute;memset(&SourceRoute,0,sizeof(LSR));

SourceRoute.Nop = IPOPT_NOP;SourceRoute.Code = 0x89;SourceRoute.Len = 11;SourceRoute.Offset = 4;SourceRoute.Addrs[0] = inet_addr("192.168.1.2");SourceRoute.Addrs[1] = inet_addr("192.168.3.4");

setsockopt(sock,IPPROTO_IP,IP_OPTIONS,(char*)&SourceRoute,SourceRoute.Len+1);

n = sendto(sock, "HELLO-1", 7, 0, (struct sockaddr *)&addr, sizeof(addr));if (n < 1) {perror("sendto");return 1;}

192.168.1.2 を通り192.168.3.4 に着くように設定

SSRR を指定

Page 14: nチャンネル通信のための 経路制御

実験の結果

Page 15: nチャンネル通信のための 経路制御

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7

0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800 ..'..9..'."...H.0x0010: 002f 0000 4000 3f11 1f76 c0a8 010b c0a8 ./..@.?..v......0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c8e8 ................0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1

パケットの詳細

Page 16: nチャンネル通信のための 経路制御

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7

0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800 ..'..9..'."...H.0x0010: 002f 0000 4000 3f11 1f76 c0a8 010b c0a8 ./..@.?..v......0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c8e8 ................0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1

パケットの詳細時刻;  HH:MM:SS. マイク

ロ秒192.168.1.1 のポート 50002 から

192.168.3.4 のポート 12345 に

UDP で 7 文字( HELLO-1 )

Page 17: nチャンネル通信のための 経路制御

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7

0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800 ..'..9..'."...H.0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8 ./..@.?.........0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352 ................R0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1

パケットの詳細

08:00:27:a0:03:39受信側 MAC アドレ

08:00:27:a4:22:db送信側 MAC アドレ

スイーサネットタイプ

0800(IP)

Version:4 ,ヘッダ長 :8(8x4=32byte) ,サービスタイプ :00 ,IP から見た全データ長 :002 f(47)

イーサネットのプロトコル ヘッダとIP ヘッダ

ここからIP ヘッダ

Page 18: nチャンネル通信のための 経路制御

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7

0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800 ..'..9..'."...H.0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8 ./..@.?.........0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352 ................R0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1

パケットの詳細

識別 ID:0000フラグメント :4000( オクテッ ト )

生存時間( TTL ) :3f(63)プロトコル :11(17=UDP)チェックサム 1 f 76

IP ヘッダ

Page 19: nチャンネル通信のための 経路制御

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7

0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800 ..'..9..'."...H.0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8 ./..@.?.........0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352 ................R0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1

パケットの詳細

送信元 IP アドレス :192.168.1.1

送信先 IP アドレス :192.168.3.4(受信側)

オプション: 010 x 89 :SSRR

SourceRoute.Len :0b(11)SourceRoute.Offset :08

IP ヘッダ

Page 20: nチャンネル通信のための 経路制御

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7

0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800 ..'..9..'."...H.0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8 ./..@.?.........0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352 ................R0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1

パケットの詳細

経由アドレス :192.168.3.2

送信先 IP アドレス :192.168.3.4(受信側)

IP ヘッダ

Page 21: nチャンネル通信のための 経路制御

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7

0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800 ..'..9..'."...H.0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8 ./..@.?.........0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352 ................R0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1

パケットの詳細

ポート番号: c352(50002)ポート番号: 3039 (12345)

ここからが UDP のヘッダ

Page 22: nチャンネル通信のための 経路制御

listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes20:40:08.660333 IP 192.168.1.1.50002 > 192.168.3.4.12345: UDP, length 7

0x0000: 0800 27a0 0339 0800 27a4 22db 0800 4800 ..'..9..'."...H.0x0010: 002f 0000 4000 3f11 1f76 c0a8 0101 c0a8 ./..@.?.........0x0020: 0304 0189 0b08 c0a8 0302 c0a8 0304 c352 ................R0x0030: 3039 000f 6c8f 4845 4c4c 4f2d 31 09..l.HELLO-1

パケットの詳細

データ: 4845 4c4c 4f2d 31              ( HELLO-1 )

UDP から見たデータ長 :000f(15byte)チェックサム :6c8f

UDP のヘッダとデータ

Page 23: nチャンネル通信のための 経路制御

禁止設定の解除各ホストで、/etc/sysctl.confを以下のように修正する。# があれば外して、項目が無ければ追加する。

net.ipv4.conf.default.rp_filter=1net.ipv4.conf.all.rp_filter=1net.ipv4.ip_forward=1net.ipv4.conf.all.accept_source_route = 1

この設定をしないと、ソースルーティングができない。

Page 24: nチャンネル通信のための 経路制御

まとめ・nチャンネル通信の実装手法としてソースルーティングを用いることを提案した

・送信パケットのヘッダにオプションを加えるだけで済むため、ネットワークに負荷をかけずに実現が可能である

・パケットに経路情報を付け加えるだけで、複数の経路に異なるデータを同時に送信できることを実験によって確認できた

・ソースルーティングはその危険性のため、各ルーターごとに設定を解除する必要があることが分かった

Page 25: nチャンネル通信のための 経路制御

①ルート検索を自動で行い、ソースルーティングを自動的に行えるようにする

②ソースルーティングは危険性があるために、制限されているので、対策を考える

③IPv6ではルーティングヘッダを付けるだけでソースルーティングが可能になったので、 IPv6での実装も今後の課題である

課題