• 検索結果がありません。

DesignofNATTraversalforMobilePPCApplyingHolePunching HolePunching を用いた NAT 越え MobilePPC の設計

N/A
N/A
Protected

Academic year: 2021

シェア "DesignofNATTraversalforMobilePPCApplyingHolePunching HolePunching を用いた NAT 越え MobilePPC の設計"

Copied!
56
0
0

読み込み中.... (全文を見る)

全文

(1)

社団法人 電子情報通信学会 THE INSTITUTE OF ELECTRONICS,

INFORMATION AND COMMUNICATION ENGINEERS

信学技報

TECHNICAL REPORT OF IEICE.

Hole Punchingを用いたNAT越えMobile PPCの設計

鈴木 秀和 渡邊 ,††

名城大学大学院理工学研究科 〒468–8502愛知県名古屋市天白区塩釜口1–501 E-mail:[email protected],††[email protected]

あらまし IPv4ネットワークにおいて移動透過性を実現する技術として,End-to-Endでそれを可能とするMobile PPC

(Mobile Peer-to-Peer Communication)がある.IPv4ネットワークでは,移動ノードが通信中にグローバルネットワー クとプライベートネットワークを跨って移動することが想定される.しかし,従来のMobile PPCでは通信経路上に NATが存在すると,IPアドレスが途中で変換される影響により通信を継続できないという課題があった.本稿では NAT越え手法として知られているHole punchingの原理をMobile PPCに適用することにより,上記課題を解決する仕 組みを示す.

キーワード 移動透過性,Mobile PPC,IPv4,NAT越え,Hole punching

Design of NAT Traversal for Mobile PPC Applying Hole Punching

Hidekazu SUZUKIand Akira WATANABE,††

Graduate School of Science and Technology, Meijo University 1–501 Shiogamaguchi, Tempaku-ku, Nagoya-shi, 468–8502 Japan E-mail:[email protected],††[email protected]

Abstract Mobile Peer-to-Peer Communication (Mobile PPC) is an End-to-End technology that realizes mobility in IPv4 network. It is thought that a mobile node sometimes moves between a global network and a private network in IPv4 network during communication. In case of the existing Mobile PPC, the communication breaks because of the IP address is translated by NAT when NAT exists on the communication path. I this paper, we present a NAT traversal scheme for Mobile PPC to solve the above-mentioned problem by applying a principle of hole punching technique.

Key words Mobility, Mobile PPC, IPv4, NAT traversal, Hole punching

1. は じ め に

携帯端末や無線ネットワークの普及により,ユーザはいつで も,どこからでもネットワークに接続できるようになった.現 在は携帯電話網の利用が圧倒的に多いが,近年では,無線LAN を搭載した携帯端末も登場しており,今後ますます公衆無線 LANサービスを利用するユーザが増加すると考えられる.ユー ザはこのような無線LAN携帯端末を利用することにより,い つでもインターネットに接続できる.しかし,IPネットワーク では通信中にユーザが移動するとIPアドレスが変化するため,

通信が切断されてしまう.この問題を解決するために,移動透 過性を実現する様々な方式[1]が提案されている.

移動透過性を実現する技術は,IPv6の利用を前提としてい る場合が多い.しかし,現状ではIPv6ネットワークがまだ広 く浸透しておらず,今後もIPv4が重要な役割を果たすと考え られる.従って,IPv4ネットワークにおける移動透過性技術の

問題のため,全ての移動ノード(以下MN; Mobile Node)にグ ローバルアドレスを割り当てることは困難であり,プライベー トアドレスを積極的に利用する必要がある.そのため,グロー バルアドレス空間のネットワーク(以下グローバルネットワー ク)とプライベートアドレス空間のネットワーク(以下プライ ベートネットワーク)を跨った移動があり得る.このような移 動では移動前と移動後の通信経路のどちらかにNATNetwork Address Translator)が介在することになる.その結果,移動通 知情報に含まれるIPアドレスと実際の通信で用いられるIP ドレスが一致せず,移動前後のIPアドレスの関係を正しく管 理できないという課題がある.Mobile IP [2]においては,この 問題を解決するため,移動通知をUDPによりカプセル化処理 を行ったり,NATに独自の機能を追加するなどの対策を検討し ている[3][6].しかし,この方法ではカプセル化処理に起因 するヘッダオーバヘッドのため伝送効率が低下したり,特殊な NATが必要になるなどの課題が残る.

(2)

現するMobile PPCMobile Peer-to-Peer Communication[7] 提案している.Mobile PPCでは,DDNSDynamic DNS)によ り通信相手ノード(以下CN; Correspondent Node)のIPアドレ スを取得してから通信を開始する.MNが通信中に移動してIP アドレスが変化した際,CNに対して移動前後のIPアドレスの 関係を直接通知し,その対応関係をIP層に記憶する.その後,

IP層で全ての通信パケットにアドレス変換処理を行うことに より,上位層からIPアドレスの変化を隠蔽することができる.

Mobile PPCは経路の冗長が発生せず,パケット長が変化しない ため高スループットが実現できる特徴があり,今後のユビキタ スネットワークに適した方式である.筆者らは既に文献[8] おいて,Mobile PPCの拡張によりMNがグローバルネットワー クとプライベートネットワークを跨った移動透過通信を実現で きる方法を示している.しかし,MNの移動先ネットワークが 特殊なNATの配下でなければならないという課題があった.

そこで,本稿では既存のNATをそのまま利用でき,かつ MNがアドレス空間の違いに関わらず自由に移動できる方式 を検討した.提案方式ではNATのアドレス変換に対応するた めに,NAT越え技術の代表的な手法として知られているHole punching [9]の原理を導入する.本稿ではCNがグローバルネッ トワーク上に位置し,MNがグローバルネットワークとプライ ベートネットワークを相互に移動する状況を想定する.MN CNに対してHole punchingに当たるBinding処理を行うことに より,NATにマッピング情報を生成し,さらにNATの外側に 割り当てられたIPアドレスとポート番号を取得する.その後,

MNは取得した情報をCN当てに送信する移動通知情報に含め ることにより,CN側で適切なアドレス変換処理を実行させる ことができる.提案方式では既存のNATをそのまま利用する ことができる.また,Binding処理は直接エンドノード間で実 行するため,Mobile PPCの特徴をそのまま維持することがで きる.

以降,2. で従来のMobile PPCHole punchingの原理を述 べ,3. で提案方式の仕組みを示す.4. で考慮すべき事項やセ キュリティに関する考察を行い,5.でまとめる.

2. 既 存 技 術

2. 1 Mobile PPC

本稿で用いる記号を以下のように定義する.

Gi;グローバルIPアドレス

P i;プライベートIPアドレス

A:p; IPアドレスA,ポート番号p

SDDS;SからDへの通信

SD;SD間の通信

SD;SからD,またはDからSへのアドレス変換 1Mobile PPCにおける通信開始から,移動後の通信 継続までの一連の流れを示す.MNは通信開始に先立ち,CN Diffie-Hellman(以下DH)鍵交換を用いて認証鍵を共有す

1 Mobile PPCの通信手順 Fig. 1 Communication procedure of Mobile PPC.

2 CITに基づくアドレス変換 Fig. 2 Address translation based on CIT.

CIDConnection ID(注1)を用いて,式(1)に示すCITConnec- tion ID Table(注2)を生成し,通信を開始する.CNTCP/UDP パケット受信時にMNと同様のCITを生成する.

G1 :sG2 :d (1)

MNが通信中に別のネットワークに移動して,新しいIPアド レス“G3”を取得すると,CNとの間で移動通知処理を実行す る.CNに送信するCUCIT UpdateRequestには,移動前の CIDと移動後のIPアドレスが記載され,通信開始時に共有し ておいた認証鍵による署名が付加される.CU Requestを受信し CNは認証処理を終えた後,MNIPアドレスが“G3”とな るように自身のCITを式(2)に示すように更新し,MNCU Responseを応答する.

{G1 :sG3 :s} ↔G2 :d (2) MNCNと同様にCITを更新し,移動通知処理を完了する.

以後,IP層において更新したCITに基づいて全通信パケットに 対してアドレス変換が行われる.

2CITに基づくアドレス変換と,移動後の通信の仕組み を示す.MNは上位層から渡されたパケットの送信元IPアド レスを,移動前の“G1”から移動後の“G3”へ変換してCN

(注1):TCPコネクション,またはUDPストリームを識別するための情報であ り,送信元/宛先IPアドレス,ポート番号とプロトコルタイプの5つの値の組か

(3)

送信する.CNでは受信したパケットの送信元IPアドレスを,

MNの移動後の“G3”から移動前の“G1”へ変換して上位層へ 渡す.以上の処理により,上位層からIPアドレスの変化を隠蔽 し,かつ正しいルーティング処理が行われ,通信を継続するこ とができる.

ここで,本稿で想定するようにMNCNの通信経路上に NATが介在すると,今のままでは以下のような課題が生じる.

課題1 MNがグローバルネットワークからプライベートネッ トワークへ移動した場合,CNMNから受け取る移動後IP ドレスはプライベートIPアドレスのため,グローバルネット ワーク上を正しくルーティングできない.

課題2 仮にMNの移動後IPアドレスをNATの外部IPアド レスに変換できたとしてもNATまでは正しくルーティングさ れるが,NATマッピング情報が存在しないため,MNに到達で きない.

課題3 MNがプライベートネットワークからグローバルネッ トワークへ移動した場合,CNが受け取る移動前IPアドレスは プライベートIPアドレスであるが,CNMNの移動前IP ドレスをNATの外部IPアドレスとして認識している.従って,

CNは正しくCITを更新することができない.

2. 2 Hole punching

Hole punchingNAT越え技術として知られており,STUN

Simple Traversal of UDP Through NATs[11]などの技術にも応 用されている.図3Hole punchingによるNAT越え通信の概 要を,STUNを例に挙げて示す.プライベートネットワークに存 在するSTUNクライアントは,グローバルネットワークに設置 されたSTUNサーバへBinding Requestを送信する.STUNサー バは受信パケットの送信元IPアドレスとポート番号の組,すな わちNATの外側に割り当てられたIPアドレスとポート番号を MAPPED-ADDRESSとして,Binding Responseのデータ部に記 載し応答する.これにより,STUNクライアントはMAPPED- ADDRESSを取得することができる.STUNクライアントは実 際の通信相手CNに対して,取得したMAPPED-ADDRESS クライアント自身のトランスポートアドレス(注3)として通知す る.このアドレス通知処理は一般にSIPSession Initiation Pro- tocol[12]が用いられることが多い.CNは通知されたトランス ポートアドレスに向けて通信を開始すると,NATではBinding 処理により生成されていたNATマッピング情報に基づいて,パ ケットをSTUNクライアントへ転送する.このように,CN 予め生成されたNATマッピング情報のMAPPED-ADDRESS わかれば,NAT越え通信を実現することができる.

Hole punchingは既存のNATを変更することなくNAT越え 問題を解決できるという利点がある.上記手法をMobile PPC に適用することにより,CNに対してMAPPED-ADDRESS 通知し,課題1と課題3を解決できる.また,Binding処理に よりNATマッピング情報が生成されるため,課題2も解決で きる.

3 Hole punchingによるNAT越え(例:STUN)

Fig. 3 NAT traversal by Hole punching (Ex. STUN).

ただし,Hole punchingSymmetric NAT(注4)と呼ばれるタ イプのNATには適用できないうえ,TCPに対応できないとい う課題がある.またグローバルネットワーク上にサーバを設置 する必要があり,さらにはSTUNクライアントのアプリケー ションにこの機能を実装しなければならない.これらの課題は Mobile PPCの利点,すなわち上位プロトコルに依存しない,特 有のサーバを必要としないという特徴を損ねてしまう.そこで,

Hole punchingの手法をそのまま適用するのではなく,上記利点 を保持できるような工夫を追加する.

3. NAT越え対応Mobile PPCの検討

上記のような考察から,NAT越えに対応するMobile PPC 設計方針として,以下の4点を満たすことを目的とした.

1) 特有のサーバを設置することなく,NAT越えを実現で きる.

2 TCP/UDPの両プロトコルに対応できる.

3 Symmetric NATを含むあらゆるNATに対応できる.

4) アプリケーションには機能を一切追加しなくてよい.

これらの目的を実現するために,Mobile PPCに関わるネゴシ エーションにおいてMNCNの通信経路上にNATの存在を 確認した場合,両ノード間で直接Hole punchingを実行する.こ のために,Mobile PPCに新たにBinding Request/Responseメッ セージを定義する.以降,MNがグローバルネットワークから プライベートネットワークへ移動する場合と,その逆方向の移 動について述べる.

3. 1 アドレスに関する用語の定義

本方式で用いるアドレスを以下のように定義する.

PREV-ADDRESS; CNから見たMNの移動前IPアドレ ス・ポート番号の組

MOVED-ADDRESS; CNから見たMNの移動後IPアド

(注4):宛先が変化するとNATの外側に割り当てられるポート番号も必ず変化す

(4)

4 グローバルネットワークからプライベートネットワークへ移動する場合の通信シーケンス Fig. 4 Communication sequence when MN moves from global to private network.

レス・ポート番号の組

MAPPED-ADDRESS; Hole punchingにより割り当てられ NAT外側のIPアドレス・ポート番号の組

REAL-PREV-ADDRESS; MNの移動前実IPアドレス

REAL-MOVED-ADDRESS; MNの移動後実IPアドレス 3. 2 プライベートネットワークへの移動

4MNがグローバルネットワークからプライベートネッ トワークへ移動する場合の通信シーケンスを示す.この場合,

通信開始時にはMNCNの通信経路上にNATが存在しない ため,通常のMobile PPCと同様に,MNCNは通信に先立っ DH鍵交換を用いて認証鍵を共有する.その後,MNCN は移動前の情報として式(3)のようなCITを作成してから通信 を開始する.

G1 :sG2 :d (3)

MNが通信中にプライベートネットワークに移動して,新し いプライベートIPアドレス“P1”を取得すると,CNに対して 移動通知を行う.CNに送信するCU Requestには,MOVED- ADDRESSとして“P1”が記載され,通信開始時に共有した認 証鍵を用いて署名を付加する.CU Requestを受信したCN 認証処理を終えた後,通知されたMOVED-ADDRESSCU Requestの送信元IPアドレスを比較する.CU Requestの送信元 IPアドレスはNATのグローバルIPアドレス“G3”であるため,

CNはアドレスの不一致から通信経路上にNATが存在すると判 断する.この場合,CNCITを更新せず,CU Responseに新

5 Binding Request/Responseパケットフォーマット Fig. 5 Packet format of Binding Request/Response.

MNNAT-ON-PATHフラグが設定されたCU Responseを受 信したら,CNに対してBinding Requestを送信する.図5 Binding Request/Responseのパケットフォーマットを示す.一般 的なHole punchingでは宛先ポート番号を特定の値に設定する が,提案方式ではSymmetric NATにも対応するため宛先ポー ト番号を以下のように決定する.すなわち,Binding Request CIDは通信パケットと同じ式(4)とする(注5)

P1 :sG2 :d [protocol] (4)

NATBinding Requestを転送する際,NATの原理により マッピング情報

N AT : {P1 :sG3 :m} ↔G2 :d [protocol] (5) を生成する.CNは監視しているポート“d”宛のパケットを受 信するので,IP層のMobile PPCモジュールにおいてTCP/UDP ペイロード部に定義されたMobile PPCヘッダを参照する.さ

(5)

6 プライベートネットワークからグローバルネットワークへ移動する場合の通信シーケンス Fig. 6 Communication sequence when MN moves from private to global network.

らに新たに定義されたCodeFlagsの値(図中の太字部分)を チェックすることにより,Binding Requestかどうか判別する.

Binding Requestであったら,送信元IPアドレス“G3”とポー ト番号“m”MAPPED-ADDRESSとして,Binding Response のデータ部に記載してMNに応答する.

MN は 上 記 Binding Response を 受 信 す る と ,取 得 し た MAPPED-ADDRESS “G3 : m”MOVED-ADDRESSに変更 し,MNのプライベートIPアドレス“P1”REAL-MOVED- ADDRESSとしてCU Requestの情報に追加する.その後,フラ グにNAT-ON-PATHを設定してCNへ再度CU Requestを送信 する.上記CU Requestを受信したCNは認証処理を終えた後,

従来のMobile PPCと同様に自身のCITを式(6)のよう更新し,

NAT-ON-PATHフラグをセットしたままMNCU Response 応答する.

CN: {G1 :sG3 :m} ↔G2 :d (6) MNは上記CU Responseを受信したら,MOVED-ADDRESS は参照せずREAL-MOVED-ADDRESS “P1”を用いてCIT (7)のように更新する.

M N: {G1 :sP1 :s} ↔G2 :d (7) 以後,IP層において更新したCITに基づいてアドレス変換が 行われる.MNは上位層から渡されたパケットの送信元IPアド レスを,移動前の“G1”から移動後の“P1”へ変換してCN 送信する.NATはマッピング情報に基づいて,送信元IPアドレ スとポート番号を“P1 :s”から“G3 :m”へ変換してCNへ転 送する.CNは受信したパケットの送信元を移動後の“G3 :m”

から移動前の“G1 :s”へ変換して上位層へ渡す.以上の動作に より,グローバルネットワークからプライベートネットワーク

3. 3 グローバルネットワークへの移動

次に,MNがグローバルネットワークからプライベートネッ トワークへ移動する場合の通信シーケンスを図6に示す.基本 的な仕組みは3. 2と同様である.通信開始時にMNCN DH鍵交換により認証鍵を共有する.上記シーケンスにはMN のプライベートIPアドレスが含まれているため,CNはパケッ トの送信元IPアドレスと比較することにより,NATを経由し ていることがわかる.そこでCNは鍵交換シーケンスの最後 の応答にNAT-ON-PATHフラグを設定する.MNは認証鍵を生 成した後,CNBinding処理を実行してMAPPED-ADDRESS

“G3 :m”を取得する.

MNが通信中にグローバルネットワークへ移動して新しい IPアドレス“G1”を取得すると,CNに対して移動通知を行う.

MNは通信開始時にNAT-ON-PATHフラグを取得しているた め,CU RequestにはMAPPED-ADDRESS “G3 :m”PREV- ADDRESSに,MNの移動前プライベートIPアドレス“P1” REAL-PREV-ADDRESSとして記載する.その後,NAT-OFF- PATHフラグを設定してCNへ送信する.CU Requestを受信し CNは認証処理を終えた後,通常のMobile PPCと同様に自身 CITを式(8)のよう更新し,MNCU Responseを応答する.

CN: {G3 :mG1 :s} ↔G2 :d (8) MNNAT-OFF-PATHフラグが設定されたCU Responseを受 信するので,送信元IPアドレスがMOVED-ADDRESS “G1” なるようにCITを式(9)のように更新する.

M N: {P1 :sG1 :s} ↔G2 :d (9) 以後,MNは上位層から渡されたパケットの送信元IPアドレ スを,移動前の“P1”から移動後の“G1”へ変換してからCN

(6)

“G1 :s”から,移動前の“G3 :m”へ変換して上位層へ渡す.

以上の動作により,プライベートネットワークからグローバル ネットワークへ移動しても通信を継続することができる.

4.

提案方式により,CNがグローバルネットワーク上に存在す る場合,MNがグローバルネットワークとプライベートネット ワークを相互に移動しても,通信を継続できることを示した.

これ以外の移動パターンとして,MNが異なるプライベート ネットワーク間を移動するケースが考えられる.この場合は,

3. 3の通信開始時のシーケンスと,3. 2の移動後のシーケンス を組み合わせることにより,実現可能である.

提案方式ではHole punchingに相当するBinding処理を実際 の通信相手と直接実行するため,STUNサーバのような装置は 不要である.さらに実際の通信パケットと同じCIDを用いて Bindingメッセージを生成しているため,TCP/UDPの両プロト コルとSymmetric NATに対応できる.Binding処理をカーネル レベルで実行しているため,アプリケーションを一切変更する 必要はない.また,Hole punchingの原理を適用しているため,

プライベートネットワークが階層的に構成されていても動作可 能である.

既存のNATを利用してNAT越え通信を実現するには,NAT のマッピング情報を維持するためにKeepaliveが必要となる.

特にUDP通信の場合,Binding処理により生成されたマッピン グ情報は一定期間の無通信状態が発生すると消去されてしま い,通信の継続に影響を及ぼす.そのため,MNCNに対して Keepaliveパケットを定期的に送信する必要がある.Keepalive の送信間隔をマッピング情報の有効時間以下にすればよいが,

各セッション単位でKeepaliveを実行する必要があるため,CN に対する負荷が増加する可能性がある.マッピング情報保持時 間は実装の種類や設定により異なるため,最適な値を検討する 必要がある.

次に,本方式で導入したBinding処理の安全性に関して考察 する.攻撃者はBinding Responseに記載されているMAPPED-

ADDRESSを改ざんすることにより,セッションハイジャック

を試みることが考えられる.Mobile PPCではMNCNは通信 開始時に認証鍵を共有しているため,Binding Request/Response に署名を付加することによりメッセージ完全性を保証できる.

従って,Binding処理の改ざんを検出することが可能である.

攻撃者が偽のBindingメッセージを送信することにより,セッ ションの妨害を試みることが考えられる.MNCNBinding Requestを送信後,ただちに攻撃者が偽のBinding Response MNへ送信する.この攻撃もMNCN間で共有している認証 鍵を用いることにより,メッセージ完全性の検証過程で検出す ることができる.NATによるアドレス変換を考慮すると,メッ セージの完全性保証範囲はTCP/UDPペイロード以降となる.

そこで,攻撃者が正規のBinding Requestを盗聴し,送信元を

Binding Responseを生成し,詐称されたアドレス宛(一般には 攻撃者)へ応答する.攻撃者は受信したBinding Responseの送 信元をCNに詐称して,NATを経由してMNへ送信する.MN Binding Responseを正規のメッセージと判断してしまうため,

以後の移動通知処理が完了すると攻撃者にセッションをハイ ジャックされてしまう.このような攻撃には,Binding Request のメッセージ部にシーケンス番号を設定して攻撃者による再送 を防ぐ方法や,Ingress Filtering [13]を設定することで対策を講 ずることが可能である.

5. ま と め

本稿ではCNがグローバルネットワーク上に存在する場合,

MNがグローバルネットワークとプライベートネットワークを相 互に移動できる方式を提案した.Mobile PPCHole punching の原理を適用することにより,既存のNATをそのまま利用す ることを可能とした.今後は提案方式の実装と性能測定を行い,

有効性を確認する.また,CNがプライベートネットワーク上 に存在する場合について検討を行う予定である.

謝辞 本研究の一部は,日本学術振興会科学研究費補助金

(特別研究員奨励費)の助成を受けたものである.

[1] 寺岡文男,“インターネットにおけるノード移動透過性プロトコ ル,信学論(D-I),vol.J87-D1,no.3,pp.308–328,March 2004.

[2] C. Perkins, “Ip mobility support for ipv4,” RFC 3220, IETF, Jan.

2002.

[3] H. Levkowetz, and S. Vaarala, “Mobile ip traversal of network ad- dress translation (nat) devices,” RFC 3519, IETF, Apr. 2003.

[4] G. Montenegro, “Reverse tunneling for mobile ip, revised,” RFC 3024, IETF, Jan. 2001.

[5] 井戸上彰,久保健,横田英俊,“プライベートアドレスを使用す るモバイルネットワーク間のローミング手順とその実装,情処 学論,vol.44,no.12,pp.2958–2967,Dec. 2003.

[6] 野地川栄光,加藤聰彦,伊藤秀一,“プライベートネットワーク に配置されたホームエージェントを用いたmobile ipv4手順の設 計,情処学MBL研報,vol.2007,no.98,pp.17–24,Sept. 2007.

[7] 竹内元規,鈴木秀和,渡邊晃,“エンドエンドで移動透過性を 実現するmobile ppcの提案と実装,情処学論,vol.47,no.12,

pp.3244–3257,Dec. 2006.

[8] 榎本万人,鈴木秀和,坂本順一,渡邊晃,“プライベートアド レス空間とグローバルアドレス空間を跨る移動透過性の検討, DICOMO2006,vol.2006,no.6,pp.813–816,July 2006.

[9] B. Ford, P. Srisuresh, and D. Kegel, “Peer-to-peer communication across network address translators,” Proc. USENIX Annual Techni- cal Conference, pp.179–192, Anaheim, CA, Apr. 2005.

[10] 瀬下正樹,渡邊晃,“Mobile ppcにおける認証方式の実装,” DI- COMO2006,vol.2006,no.6,pp.809–812,July 2006.

[11] J. Rosenberg, J. Weinberger, C. Huitema, and R. Mahy, “Stun - sim- ple traversal of user datagram protocol (udp) through network ad- dress translators (nats),” RFC 3489, IETF, March 2003.

[12] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peter- son, R. Sparks, M. Handley, and E. Schooler, “Sip: Session initiation protocol,” RFC 3261, IETF, June 2002.

[13] P. Ferguson, and D. Senie, “Network ingress filtering: Defeating de- nial of service attacks which employ ip source address spoofing,”

RFC 2827, IETF, May 2000.

(7)

名城大学大学院理工学研究科

鈴木 秀和 渡邊 晃

(8)

移動透過性の技術は IPv6 が主流

現状:

IPv6

ネットワークは広く浸透していない

近未来:

IPv4/IPv6

ネットワークが混在

IPv4

ネットワークにおけるモビリティの実現

IPv4

ネットワークにおいても移動透過性を実現することは

移動体通信の利便性向上の観点から大きな意義がある

(9)

Global NW と Private NW をまたがった移動

NAT

の影響を考慮する必要がある

Private Global

公衆

WLAN

Global

HSDPA

Mobile WiMAX

家庭

WLAN

Private

(10)

Mobile PPC

(Mobile Peer-to-Peer Communication)

End-to-End

で移動透過性を実現

Mobile PPC NAT Traversal

グローバルネットワークとプライベートネットワークを 相互に移動可能な方式を提案

Mobile IP Tunneling

(11)

通信開始時

CN

と認証鍵を共有

IP

層に

CITConnection ID Table)を生成

Global Network

R3 R1

R2 CN

MN

IP: G1

1)

認証鍵共有

2)

通信開始

IP: G2 G1G2

CIT

G1G2 CIT

(12)

MN 移動時

CN

に移動通知(認証鍵による署名付)

CIT

更新

アドレス変換により通信を継続

Global Network

R3 R1

R2 CN

MN

移動

3)

移動通知

4)

アドレス変換による通信継続

IP: G2 G1G2

CIT

G1G2 CIT

{G1G3}G2

{G1G3}G2

移動前

IP

G1

移動後

IP

G3

(13)

アドレス変換により通信を継続

上位層:移動前の

IP

アドレスで認識

下位層:移動後の

IP

アドレスで正しくルーティング

上位層 IP

MN CN

下位層

IP: G1G3 IP: G2

{G1G3}G2 CIT

{G1G3}G2 CIT

Packet G1G2

G3G2 G1G2

(14)

End-to-End 方式

Mobile IP

HA

FA

のような特有のサーバが不要

冗長な経路がなく低遅延

カプセル化不要

ヘッダオーバヘッドやフラグメントが発生しないため 高スループット

IP 層における技術

上位プロトコルに依存しない

(15)

Global NW から Private NW へ

Private NW から Global NW へ

Private NW から Private NW へ

今回発表する内容

IP: G1P1

IP: G2

IP: G3

移動

IP: G1

MN NAT

CN

Global Network

(16)

課題

1

CN

MN

から受ける移動後

IP

アドレス=プライベート

IP

正しく送信できない

MN NAT CN

IP: G1P1 IP: G3 IP: G2

移動

IP: G1

CU Req./Res.

移動前

IP

G1

移動後

IP

P1

G1G2 P1G2

(17)

課題

2

移動後

IP

アドレス=

NAT

のグローバル

IP

アドレス

NAT

マッピング情報がない

∴MN

まで転送できない

MN NAT CN

IP: G1P1 IP: G3 IP: G2

移動

IP: G1

CU Req./Res.

G1G2 G3G2

移動前

IP

G1

移動後

IP

G3

(18)

NAT 越え技術である Hole Punching 使えば課題を解決できる !!

1.

通知する移動後 IP がプライベート IP

NAT

のグローバルアドレスを通知すればよい

2.

NAT マッピング情報がないため転送できない

事前にマッピング情報を生成しておけばよい

(19)

事前に

NAT

に「穴を開けて」から

End-to-End

通信

=マッピング生成

1. Server

UDP

通信を行い,

NAT

マッピングを生成

2. Server

からマッピングされたアドレスを取得

3. CN

はマッピングされたアドレスに向けて通信

Server

MN NAT UDP CN

UDP

(20)

利点

既存の

Cone

NAT

で動作可能

カプセル化不要

& End-to-End

通信を実現

Mobile PPC

のコンセプトに一致

欠点

Symmetric NAT

TCP

に対応できない

グローバルネットワークにサーバが必要

アプリケーションに対して機能追加が必要

Mobile PPC

の利点を損ねてしまう

(上位プロトコルに依存しない,特有のサーバが不要)

(21)

Hole Punching の原理を適用

1.

特有のサーバを設置することなく実現

2. TCP/UDP

の両プロトコルに対応

3. Symmetric NAT

を含む既存の

NAT

に対応

4.

アプリケーションの機能追加は不要

本方式のキーポイント

通信経路上に

NAT

の存在を確認

IP

レベルで

Hole Punching

End-to-End

で実行

新たに

Binding Request/Response

メッセージを定義

(22)

PREV-ADDRESS

CN

から見た

MN

の移動前

IP

アドレス・ポート番号

MOVED-ADDRESS

CN

から見た

MN

の移動後

IP

アドレス・ポート番号

MAPPED-ADDRESS

NAT

にマッピングされた

IP

アドレス・ポート番号

REAL-PREV-ADDRESS

MN

の移動前実

IP

アドレス

REAL-MOVED-ADDRESS

MN

の移動後実

IP

アドレス

(23)

従来方式

移動前

NAT

なし)

認証鍵の共有

通信開始

移動後

NAT

なし)

移動通知

通信継続

提案方式

移動前

NAT

なし)

認証鍵の共有

通信開始

移動後

NAT

あり)

移動通知(中断)

Binding

処理

移動通知(

2

回目)

通信継続

(24)

認証鍵を共有

従来方式と同様

通信を開始(例:

UDP

IP: G1 IP: G2

G1:sG2:d CIT

G1:sG2:d CIT

MN CN

認証鍵共有シーケンス

UDP

(25)

プライベート IP アドレスに変化

従来方式と同様,

CU Request

を送信

CN

MOVED-ADDRESS

と送信元

IP

アドレスをチェック

IP: G1P1 IP: G2

G1:sG2:d CIT

G1:sG2:d CIT

MN NAT CN

IP: G3

PREV-ADDRESS

G1:s MOVED-ADDRESS

P1:s

CU Request

G3G2

(26)

アドレス不一致 NAT が存在

CN

CIT

は更新せず,

CU Response

を返信

NAT-ON-PATH

NAT

が存在することを示す

IP: G1P1 IP: G2

G1:sG2:d CIT

G1:sG2:d CIT

MN CN

CU Response

NAT

IP: G3

FLAGS

NAT-ON-PATH

(27)

実際の通信パケットと同じ L3/L4 ヘッダ

L4

ヘッダの次に

Mobile PPC

ヘッダを配置

IP

ヘッダ

P1G2 UDP

ヘッダ

sd

ペイロード

IP

ヘッダ

P1G2 UDP

ヘッダ

sd

Binding Data Mobile PPC

ヘッダ 移動後に

MN

が送信する

通信パケット

Binding Request

(28)

Binding Request を CN へ送信  マッピング生成

CN は Binding Response を返答

MAPPED-ADDRESS

を通知

IP: G1P1 IP: G2

G1:sG2:d CIT

G1:sG2:d CIT

MN NAT CN

IP: G3

{P1:sG3:m}G2:d NAT Mapping

Binding Request (UDP)

G3:mG2:d P1:sG2:d

Binding Response

(29)

CU Request を CN へ送信( NAT-ON-PATH 付)

取得した

MAPPED-ADDRESS  MOVED-ADDRESS

MN

IP

アドレス

REAL-MOVED-ADDRESS

IP: G1P1 IP: G2

G1:sG2:d CIT

G1:sG2:d CIT

MN NAT CN

IP: G3

{P1:sG3:m}G2:d NAT Mapping

CU Request PREV-ADDRESS

G1:s MOVED-ADDRESS

G3:m REAL-MOVED-ADDRESSP1

(30)

CN は従来と同様に CIT を更新

PREV-ADDRESS

MOVED-ADDRESS

を選択

CU Response を応答

IP: G1P1 IP: G2

G1:sG2:d CIT

MN NAT CN

IP: G3

{P1:sG3:m}G2:d NAT Mapping

CU Request PREV-ADDRESS

G1:s MOVED-ADDRESS

G3:m

G1:sG2:d

{G1:sG3:m}G2:d CIT

(31)

MN は以下の情報で CIT を更新

PREV-ADDRESS

REAL-MOVED-ADDRESS

を選択

IP: G1P1 IP: G2

CIT

{G1:sG3:m}G2:d CIT

MN NAT CN

IP: G3

{P1:sG3:m}G2:d NAT Mapping

CU Response PREV-ADDRESS

G1:s MOVED-ADDRESS

G3:m REAL-MOVED-ADDRESS

P1 G1:sG2:d

{G1:sP1:s}G2:d

(32)

CIT によるアドレス変換は従来方式と同じ

G1:sG2:d {G1:sP1:s}G2:d CIT

{G1:sG3:m}G2:d CIT

{P1:sG3:m}G2:d NAT Mapping

P1:sG2:d

G1:sG2:d

G3:mG2:d Mobile PPC

アドレス変換

Mobile PPC

の アドレス変換

NAT

のアドレス変換

グローバルネットワークから

プライベートネットワークに移動可能

!!

(33)

Private NW から Global NW へ

Private NW から Private NW へ

階層化された Private NW

MN

NAT NAT

NAT

移動 移動

階層化

Private NW Private NW

(34)

Core な部分の実装は完了

Binding

処理

未完成部分

セキュリティ対策

Binding Request/Response

メッセージの署名

(原稿には記載しているが発表できなかった部分)

市販ブロードバンドルータを用いて動作検証を

行った結果,通信を継続できることを確認

(35)

Mobile PPC に Hole Punching の原理を適用

IP

レベルで

Binding

処理を

End-to-End

で実行

移動後にマッピングされたアドレスを通知

今後の課題

セキュリティ部分の実装

CN

がプライベートネットワーク内に存在する場合の対応 既存の

NAT

をそのまま利用してグローバルネットワーク

とプライベートネットワークを相互に移動可能

(36)

付録

(37)

NAT によるアドレス変換

外部宛パケットの転送時に

NAT

マッピング情報を生成

パケットの

IP

アドレス・ポート番号を変換

G3:mG2:d P1:sG2:d

{P1:sG3:m}G2:d NAT Mapping

IP: P1 IP: G3 IP: G2

マッピングされたアドレス

MN NAT CN

(38)

IP: P1G1

IP: G2 IP: G3

移動

IP: P1

考え方は

Private NW

へ移動する場合と同じ

MN

NAT CN

Global Network

(39)

課題

3

CN

が認識してる移動前

IP

アドレス=

NAT

のグローバル

IP

正しく

CIT

を更新できない

MN

NAT

CN

IP: P1G1 IP: G2

IP: G3

移動

IP: P1

移動前

IP

P1

移動後

IP

G1

G3G2 CIT

CU Req.

図 2 CIT に基づくアドレス変換 Fig. 2 Address translation based on CIT.
図 3 Hole punching による NAT 越え(例:STUN)
図 4 グローバルネットワークからプライベートネットワークへ移動する場合の通信シーケンス Fig. 4 Communication sequence when MN moves from global to private network.
図 6 プライベートネットワークからグローバルネットワークへ移動する場合の通信シーケンス Fig. 6 Communication sequence when MN moves from private to global network.

参照

関連したドキュメント

(使用回数が増える)。現代であれば、中央銀行 券以外に貸付を通じた預金通貨の発行がある

2021] .さらに対応するプログラミング言語も作

200 インチのハイビジョンシステムを備えたハ イビジョン映像シアターやイベントホール,会 議室など用途に合わせて様々に活用できる施設

システムであって、当該管理監督のための資源配分がなされ、適切に運用されるものをいう。ただ し、第 82 条において読み替えて準用する第 2 章から第

生活のしづらさを抱えている方に対し、 それ らを解決するために活用する各種の 制度・施 設・機関・設備・資金・物質・

をき計測磁については 約機やぞの後の梅線道燦ω @J III 祭賞設けて、滋問の使用!窓織象件後紛えているをのもあ~.正し〈誕lÉをされていない官能筏

   遠くに住んでいる、家に入られることに抵抗感があるなどの 療養中の子どもへの直接支援の難しさを、 IT という手段を使えば

子どもたちが自由に遊ぶことのでき るエリア。UNOICHIを通して、大人 だけでなく子どもにも宇野港の魅力