« ビデオカメラ | Main | RT.X10 Suite »

Wednesday, July 07, 2004

UDP hole punching

http://goroneko.boo.jp/tec/archives/000042.html

それはFWに記録されているルーティングはどれくらいの期間保持されるのでしょうか?
また外部からのパケットがずっと送られているという状況ならばルーティングはずっと保持されっぱなしになるのでしょうか?

ルーティングというか,通常セッションと呼ばれているものになるかと思います.
TCPの場合プロトコル上のセッションとFW上のセッションは一致するわけですが,UDPやICMPにはセッションの概念がないので,src ip:port / dist ip:port のペアが一致するもので無理矢理セッションとして管理しているために,こういう技が可能になるようです.

% 昔の家庭用ルータでは,ポートを見ずにIPだけで穴を開けるものもあったようです.最近ではさすがになさそうですが…

セッションの保持期間はFWによって異なるかと思いますが,普通は設定できるはず.
パケットが送り続けられていれば,セッションも保持されっぱなしになるのが普通ですね.
途中でセッションを切ると,当然そのパケット通信は許可されなくなるので,色々支障が出てしまいます.

うちで使っている FortiGate-60 の場合は,セッションタイムアウトはデフォルトで300秒です.
NetScreen (ScreenOS4系) はデフォルト60秒のようです.
他は使ったことがないのでわかりません.(^^;

FortiGateの場合は,管理画面か,CLIから diag session list コマンドで

session info: proto=17 proto_state=01 expire=154 timeout=300 use=3
bandwidth=0/sec guaranteed_bandwidth=0/sec traffic=0/sec prio=0 logtype=session ha_id=0 hakey=43473
state=log may_dirty
statistic(bytes/packets): org=133/2 reply=147/2 tuples=2
orgin->sink: org pre->post, reply pre->post oif=9/5 gwy=219.160.1.3/192.168.7.177
hook=post dir=org act=snat 192.168.7.177:32771->192.41.162.32:53(220.110.14.91:32771)
hook=pre dir=reply act=dnat 192.41.162.32:53->220.110.14.91:32771(192.168.7.177:32771)
misc=0 vd=0 serial=004f34ea

NetScreenでも,CLIから get session コマンドで

id 69/s**,vsys 0,flag 00004000/00/00,policy 0,time 4
0(01):192.168.0.6/53365->139.91.1.10/53,17,0090cc0b7ddf,vlan 0,tun 0,vsd 0
1(00):61.205.236.48/1880<-139.91.1.10/53,17,00097b03901c,vlan 0,tun 0,vsd 0

のように確認できます.

必要があれば,プロトコル別にタイムアウト時間を変更できます.


FW超えができるファイル転送ソフトはわたしも欲しくて(共有ではなく転送だけで良いのです),コードを少し書いているのですが,かなりめんどくさいように思います.
UDP hole punching は原理的に可能とわかっているので後回しにして,まずはファイル転送部分を書き始めているのですが,UDPで高速に,そして無駄なパケットを送らずに通信するのはかなり大変そうです.
TCPのWindow管理をそのままマネして実装すると速度が出ないように思いますが,自力で調整していくのも大変そうで…
というわけで,時間の都合でかなり放置気味です.(^^;
UDPでTCPのようなセッションを実装するコードが出回っていればよいのですが,なさそうですし...

FW超えて,フォルダの同期ができるものがあると便利なのですけどねぇ.
(会社と自宅でファイル送りあったりしたい)

|

« ビデオカメラ | Main | RT.X10 Suite »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference UDP hole punching:

» セッション保持期間 [ごろ猫ブログ]
http://blog.mikage.to/mika/2004/07/udp_hole_punchi.html ルーティングというのは、その通りセッション保持期... [Read More]

Tracked on Wednesday, July 07, 2004 09:46 AM

« ビデオカメラ | Main | RT.X10 Suite »