推薦論文
NTMobile における通信接続性の確立手法と実装
鈴木 秀和
1,a)
上醉尾 一真1
水谷 智大1, † 1
西尾 拓也2
内藤 克浩2
渡邊 晃1
受付日2012年4月5日,採録日2012年10月15日
概要:モバイルインターネット環境の普及に伴い,ユーザが通信中に様々なネットワークへ移動することが 考えられる.本論文では,
IPv4
ネットワークにおけるグローバルアドレスやプライベートアドレスの違い に関わりなく,ノードの通信接続性の確立と移動透過性を同時に実現するNTMobile
(Network Traversal
with Mobility
)を提案する.NTMobile
ではノード間にトンネルを構築した上で仮想IP
アドレスを用いたコネクションを確立する.本論文ではアドレス空間が異なる
IPv4
ネットワークにおいてNTM
ノード 間の通信接続性を確立する手法を示す.提案方式をLinux
に実装することにより,NAT
配下のノードに 対して低オーバヘッドでコネクションを確立できることを確認した.キーワード:モバイルネットワークアーキテクチャ,移動透過性,
NAT
越え,仮想IP
アドレス,トンネルDesign and Implementation of Establishment Method of Connectivity on NTMobile
Suzuki Hidekazu
1,a)Kamienoo Kazuma
1Mizutani Tomohiro
1,†1Nishio Takuya
2Naito Katsuhiro
2Watanabe Akira
1Received: April 5, 2012, Accepted: October 15, 2012
Abstract: With the spread of mobile Internet environment, it is thought that users are going to move to various networks during communication. In this paper, we propose a network architecture called “Network Traversal with Mobility” (NTMobile) that can achieve both connectivity and mobility of nodes in IPv4 networks regardless of global addresses and private addresses. An NTMobile node creates a tunnel with a correspondent node, and establishes a connection with their virtual IP addresses through the tunnel. This paper describes the establishment method of the connectivity between NTMobile nodes in IPv4 networks having different address spaces. We have implemented the proposed method on Linux, and confirmed that the node can establish a connection with the correspondent node located behind the NAT router with low latency.
Keywords: mobile network architecture, mobility, NAT traversal, virtual IP address, tunnel
1.
はじめに近年,スマートフォンやタブレットなど高性能な携帯端 末が急激に普及しつつある.これらの移動端末は無線
LAN
1 名城大学大学院理工学研究科
Graduate School of Science and Technology, Meijo Univer- sity, Nagoya, Aichi 468–8502, Japan
2 三重大学大学院工学研究科
Graduate School of Engineering, Mie University, Tsu, Mie 514–8507, Japan
†1 現在,株式会社システムコーディネイト
Presently with System Coordinate Co., Ltd.
a)
[email protected]
だけでなく,
3G
やWiMAX
,LTE
(Long Term Evolution
) などの無線ブロードバンドサービスといった複数の手段に よりインターネットに接続することが可能である.そのた め,利用者の位置や無線ネットワークの状況に応じて最適 な通信品質を選択するために,通信メディアを切り替えて 通信を行う場面が一般的になりつつある.このように異な る無線システムを切り替える動作を垂直ハンドオーバと 呼ぶが,無線システムを切り替えると同時に移動端末が接 続するネットワークも変化するため,移動端末のIP
アド レスが変化してしまう.インターネットで使用されているTCP/IP
はIP
アドレスを用いて通信端末間のコネクションを管理しているため,ネットワークの移動が発生すると コネクションが切断されてしまう.この問題を解決する技 術を移動透過性技術と呼び,多くの実現手法が提案されて いる
[1]
.一方,現在の
IP
ネットワークの状況に着目すると,IPv4
アドレスの枯渇がいよいよ目前に迫ってきており,IPv6
への移行が徐々に進みつつある.しかし,IPv6
はIPv4
と の下位互換性がない独立したプロトコルとして定義されて いるため,現在のIPv4
ネットワークを即座にIPv6
ネッ トワークへ移行することができない.そのため当分の間,IPv4
ネットワークとIPv6
ネットワークが混在した環境 が続くものと想定されている.また,IPv4
ネットワーク ではグローバルIP
アドレスの数が十分にないため,NAT
(
Network Address Translation
)によりプライベートネッ トワークを構築して運用が行われている.このような異な るアドレス空間/
アドレス体系が混在する環境において移 動透過性を実現するためには,通信開始時や移動時におけ る端末間の接続性を確実に確立する必要がある.本論文では,
IPv4
ネットワークを対象とした移動透過 性技術における端末間の通信接続性に焦点を当てて議論を 進める.IPv4
を対象とした移動透過性技術には,Mobile IPv4 [2]
,MATv4 [3]
,Mobile PPCv4 [4]
などがある.IPv4
ネットワークではグローバルネットワークとプライベー トネットワークをまたがって移動することが考えられ,こ のような移動では移動前と移動後の通信経路のどちらか にNAT
が介在することになる.移動透過性技術では移動 ノード(MN; Mobile Node
)のIP
アドレスの変化を管理 する装置を用意し,MN
はハンドオーバ時にIP
アドレス の変化を管理装置に通知する必要がある.ここで,MN
と 管理装置の間にNAT
が存在すると,通知するIP
アドレス と実際の通信で用いられるIP
アドレスが一致せず,移動 前後のIP
アドレスの関係を正しく管理できないという課 題が生じる.この問題を解決するために,Mobile IPv4
で は移動通知をUDP
によりカプセル化したり,NAT
に独自 の機能を追加する等の対策がある[5], [6], [7]
.しかし,管 理装置(HA; Home Agent
)を常に経由した冗長な通信と なってしまったり,MN
が特殊なNAT
ルータの配下でし か移動透過性を実現できないなどの課題がある.MATv4
はMN
と通信相手ノード(CN; Correspondent Node
)お よび管理装置の間の通信経路上にNAT
が存在しないこと を前提としている.これはNAT
配下のノードへの到達性 を確保する手段を持ち合わせていないためであり,結果と してNAT
をまたがった移動はできない.Mobile PPCv4
は著者らが提案している移動透過性技術 であり,アドレスの変化をMN
とCN
間で直接交換する ことにより,特別なアドレス管理装置を必要としない方 式である.Mobile PPCv4
ではHole Punching
を応用した 手法や,NAT
越えを実現するNAT-f
(NAT-free protocol
)[8]
を組み合わせた方式を提案してきた[9], [10]
.しかし,近年の
NAT
ルータに標準的に搭載され始めているSPI
(
Stateful Packet Inspection
)と呼ぶフィルタリング技術 により,移動後のTCP
パケットが破棄されてしまったり,NAT-f
を実装した特別なNAT
ルータが設置されていなけ れば接続性を確保できないなどの課題がある.これらの課題を解決するために,本論文では
NAT
に一 切の機能を追加することなく,かつ移動先ネットワーク を限定しない移動透過性技術としてNTMobile
(Network Traversal with Mobility
)を提案する.NTMobile
では,エ ンドノードに仮想IP
アドレスを割り当てることにより,移 動時のIP
アドレスの変化を隠蔽し,IP
層より上位層では アドレス空間に依存しない仮想的なコネクションを確立す る.このコネクションを実ネットワーク上で確立するため に,通信開始時にエンドノード間でUDP
トンネルを構築 する.通信開始ノードはDNS
による名前解決時に通信相 手ノードに接続するために必要なアドレス情報を収集し,NAT
の有無に応じて最適経路を実現できるトンネルを構 築する.これにより,エンドノード間の通信経路上にNAT
が存在しても,アドレス空間に影響されない相互接続を実 現する.なお,ノードが移動した際には通信開始時と同じ トンネル構築手順を行うことにより,トンネル経路の再構 築と移動透過性を同時に実現することができる.そのため 本論文では通信開始時と移動時に行うトンネル構築方法と 実装について詳述する.以下,
2
章で提案方式の概要,3
章で通信接続性の確立 手法,4
章で実装方法とプロトタイプシステムの動作結果,およびその性能評価を示す.
5
章で関連技術を取り上げ,6
章でまとめる.2. NTMobile
の概要NTMobile
は次の要求を満たすことができるネットワー クアーキテクチャである.通信接続性の実現: 通信相手
NTM
ノード*1がグローバ ルネットワークだけでなく,プライベートネットワー クに存在していても,通信を開始することができる.移動透過性の実現:
NTM
ノードは通信中に別のグロー バルネットワークおよびプライベートネットワークに ハンドオーバできる.図
1
にNTMobile
の概要を示す.NTM
ノードの他にシ ステムを構成する装置として,NTM
ノードのアドレス情報 を管理するDirection Coordinator
(DC
),異なるNAT
配 下のプライベートネットワークに存在するNTM
ノード間 の通信を中継するRelay Server
(RS
)を設置する.NTM
ノードはパケットロスのないシームレスハンドオーバを 実現するために,無線LAN
や3G
,WiMAX
など複数の*1
NTMobile
実装したノードをNTM
ノードと呼ぶ.図
1 NTMobile
の概要Fig. 1 Overview of NTMobile system.
無線通信技術を実装しているものと想定する.プライベー トネットワークを構成する
NAT
は,SPI
などのフィルタ リング機能を実装している一般的なNAT
ルータであり,NTMobile
に関わる特別な機能は一切持たない.すべての
NTM
ノードはネットワーク接続時にDC
に 対してアドレス登録処理を行う.アドレス登録処理では,NTM
ノードの実IP
アドレス,ノードID
,FQDN
に加え て,NTM
ノードがプライベートネットワークに存在する 場合はNAT
のグローバルIP
アドレスが登録される.この 時,NTM
ノードはDC
から仮想IP
アドレスが割り当てら れ,NTM
ノード間の通信に利用する.NTM
ノードは通 信開始時に相手NTM
ノードとの間にUDP
トンネルを構 築し,仮想IP
アドレスを用いてコネクションを確立する.UDP
トンネルを用いることにより,NTM
ノード間の通信 経路上にSPI
に対応したNAT
が存在しても確実にコネク ションの確立を実現することができる.また,仮想IP
ア ドレスを用いることにより,移動に伴うNTM
ノードの実IP
アドレスの変化を隠蔽して移動透過性を実現する.さ らにNTM
ノード間の通信はエンドエンドで暗号化され,盗聴の防止や改ざんの検出が可能である.
NTMobile
では,できる限りエンドツーエンド通信が行 えるように,通信ペアとなるNTM
ノードが存在するネッ トワークに応じて,DC
からNTM
ノードに最適なトンネル 構築を指示する.この指示は通信開始時だけでなく,NTM
ノードが様々なネットワークへ移動した時にも行われる.どちらか一方の
NTM
ノードがグローバルネットワークに 存在すれば,他方はNAT
配下のプライベートネットワー クにいても,RS
を中継しない最適経路による通信を実現 できる.なお,RS
による中継通信が行われるのは,2
台のNTM
ノードが異なるプライベートネットワークに存在す る場合と,通信相手がNTMobile
に対応しない一般ノード の場合だけである.後者の場合は,RS
がNTM
ノードの 代理で通信を行うため,一般ノードは通信相手をRS
と認 識する.そのため,一般の通信相手ノードに対してNTM
ノードのアドレスは隠蔽されるため,
NTM
ノードは移動 しても通信を継続することができる.NTM
ノードは移動を前提としているが,例えばデスク トップPC
のように移動することがないノードの場合は移 動のサポートに係わる機能を除いたモードとしても動作で きる.このようなNTM
ノードはNAT
配下のプライベー トネットワークに存在していても,外部のNTM
ノードか らの接続性を確立することができる.また,移動しないNTM
ノードが一般ノードと通信する場合は,仮想IP
アド レスを用いず,RS
を中継しない通常のエンドツーエンド 通信を行う.DC
はDynamic DNS
機能を有しており,NTM
ノード のアドレス管理や暗号鍵の生成,配布も行う.この他に,NTM
ノードに割り当てる仮想IP
アドレスプールの保持 や,NTM
ノードに対してトンネル構築指示を行う役割を 担っている.各DC
が管理する仮想IP
アドレスプールが 重複しないよう,root DC
と呼ぶ親DC
を導入し,root DC
の管理者が各DC
へ仮想サブネットスコープの管理を委譲 することを想定している.これにより,NTM
ノードに割 り当てられる仮想IP
アドレスは重複がないことが保証さ れる[11]
.DC
とRS
は全てのノードがアクセス可能なグ ローバルネットワーク上に設置する.また,ネットワーク の規模に応じて複数台設置することにより,DC
やRS
に 発生する処理負荷を分散することができる.3.
通信接続性の確立手法本章では,
NTMobile
におけるNTM
ノード間のコネク ション確立手順について詳述する.NTMobile
では通信を 行うペアが本方式に対応していれば,双方とも移動が可能 であるが,以後の説明では通信開始側NTM
ノードをMN
, 通信相手側ノードをCN
として説明する.なお,用語の定 義として,MN
とCN
を区別しない場合はNTM
ノードと 表記し,本論文で用いる記号は付録A.1
に示す.3.1
前提条件NTM
ノードはネットワーク接続時にRegistration Re- quest/Response
によるアドレス登録処理[11]
を完了してお り,DC
NにはNTM
ノードN
のアドレス情報がNTMobile
専用レコード(NTM
レコード)として登録されているも のとする.ここで,アドレス情報とはノードID NID
N, 実IP
アドレスRIP
N,仮想IP
アドレスVIP
N,NAT
の グローバルIP
アドレスRIP
NATN*2,およびDC
N のIP
アドレスRIP
DCN である.ノードID
とはNTM
ノード を一意に識別する値であり,UUID
(Universally Unique
*2
NTM
ノードがプライベートネットワークに存在している場合,DC
N は受信したRegistration Request
の送信元IP
アドレス から取得する.なお,NTM
ノードがグローバルネットワークに 存在する場合は,自身のグローバルIP
アドレスRIP
N となる.表
1 NTMobile
で想定する通信パターンとトンネル経路Table 1 Communication patterns and its tunnel route in NTMobile.
Pattern Location of Location of Tunnel Route
Initiator’s NTM Node Correspondent Node
1 Global Global (NTM node) End-to-End
2 Private Global (NTM node) End-to-End
3 Global Private (NTM node) End-to-End
4 Private1 Private2 (NTM node) via RS
5 Private2 Private2 (NTM node) End-to-End/via RS
6 Anywhere (Mobile Node) Global (General node) via RS
7 Anywhere (Fixed Node) Global (General node) End-to-End (No Tunnel)
Identifier
)[12]
を採用している.NTM
ノードのホスト名 を新規に登録する際に,DC
がNTM
ノードのFQDN
を もとにSHA-1
を用いて生成する.UUID
は一元管理をす ることなく,128bit
の一意な値を生成することができる.NTM
ノードが使用する仮想IP
アドレスVIP
NはDC
Nに より割り当てられ,重複がないものとする.なお,
DC
NとNTM
ノードN
間,各DC
間および各DC
とRS
間には信頼関係があるものと仮定する.また,NTM
ノードN
がプライベートネットワークに存在する場合は,DC
Nに対してKeep Alive
を実行してNTMobile
における 制御チャネルを維持する.3.2
通信シーケンスNTM
ノードが通信を開始するまでの手順は図2
に示す 名前解決,トンネル構築,暗号化通信の3
つのフェーズ で構成される.IPv4
環境におけるNTMobile
アーキテク チャでは表1
に示す通信パターンを想定しており,NTM
ノードが存在しているネットワークのアドレス空間の違 いに応じて,最適な通信経路が確立できるようにトンネル 確立フェーズのシーケンスが変化する.基本的な考え方と して,通信ペアとなるNTM
ノードのうち,どちらか一方 がグローバルネットワークに接続している場合は,エンド エンドでトンネルを構築する.両NTM
ノードともプライ ベートネットワークに存在したり,通信相手が一般ノード の場合はRS
を中継したトンネルを構築する.本論文では,
NTMobile
対応のMN
・CN
の一方または 両方がNAT
配下のプライベートネットワークに存在して いる3
つのパターン(Pattern 2
〜4
)の場合を中心に取り 上げて,通信シーケンスを示す.3.2.1
名前解決フェーズMN
のアプリケーションはCN
のIP
アドレスRIP
CN を 取得するために,DNS
によるCN
の名前解決を行う.DC
CNは
RIP
CN が登録されているA
レコードをMN
へ応答す る.MN
はRIP
CN が記載されたDNS
クエリ応答をDNS
リゾルバへ渡す前に,一時待避してからDC
CNへNTM
レ コードの問合せを行う.CN
がNTM
ノードであれば,MN
図
2 NTMobile
シーケンスFig. 2 NTMobile sequence.
は
DC
CNからNTM
レコードを入手でき,CN
に関する アドレス情報(NID
CN,RIP
CN,VIP
CN,RIP
NATCN*3,RIP
DCCN)を取得する.次に,MN
は3.2.2
項に示すトン ネル構築フェーズを実行し,完了後に待避していたDNS
クエリ応答メッセージに記載されているRIP
CN を仮想IP
アドレスVIP
CN に書き換えてから,DNS
リゾルバへ渡 す.これにより,MN
の上位アプリケーションはCN
のア ドレスをVIP
CN と認識することになる.NTM
レコードの応答が得られない場合,MN
はRS
と トンネルを構築するためにトンネル構築フェーズを実行す る.このとき,DC
がCN
が一般ノードであると認識する と,DC
がプールしている仮想IP
アドレスを一時的にCN
に対応付けてMN
へ通知する.MN
はトンネル構築完了 後,DNS
クエリ応答に記載されているRIP
CN を,DC
か ら通知されたCN
の仮想IP
アドレスVIP
CN に書き換え てからDNS
リゾルバへ渡す(Pattern 6
).なお,MN
が移 動をサポートしないNTM
ノードの場合は,トンネル構築 処理やDNS
クエリ応答の書き換えを行わず,RIP
CN をそ のままDNS
リゾルバへ渡す(Pattern 7
).3.2.2
トンネル構築フェーズMN
はDC
MNへDirection Request
メッセージを送信 する.このメッセージにはMN
自身のアドレス情報*4と*3
CN
がプライベートネットワークに存在している場合.グローバ ルネットワークの場合は,RIP
CN となる.*4 アドレス登録処理時にキャッシュした
MN
に関するNTM
レ コードの情報.NTM
レコードにより入手したCN
のアドレス情報,お よびCN
との間に構築するトンネルの識別子(Path ID
)PID
MN−CN が記載されている.ここで,Path ID
はNTM
ノードが疑似乱数で生成したUUID
であり,一意性が保証 されている.DC
MNは受信したMN
とCN
のアドレス情 報から,表1
のどの通信パターンに当てはまるかを判断 し,各パターンに応じたトンネル構築手順を決定する.そ の後,Route Direction
メッセージにより各NTM
ノード にトンネル構築動作の指示と,DC
MNが生成した共通鍵CK
MN−CN の配布を行う.図
3
に3
つの通信パターンを例にトンネル構築手順を示 す.これらのパターンではNAT
の配下に存在するNTM
ノードに対してRoute Direction
を送信する必要がある.プライベートネットワークに存在する
NTM
ノードN
は 定期的にDC
N に対してKeep Alive
を実行しているため,NAT
N にはNTM
ノードN
宛の制御メッセージを受け入 れるためのポートが常に維持されている.そのため,DC
Nは
NAT
Nに開けられているポート番号に向けてRoute Di- rection
を送信することにより,NTM
ノードN
に対して 動作指示を行うことができる.NTM
ノードに対する指示 は下記の通りである.Private-to-Global (Pattern 2)
:NTM
ノード間で直 接トンネルを構築するが,MN
はプライベートネット ワークに存在するため,以後のシーケンスはMN
側 から開始する必要がある.そのため,DC
MNはRoute Direction
により,CN
に対してMN
からのTunnel Re- quest
メッセージを受信するようDC
CN経由で指示す る.一方,MN
に対してはCN
へTunnel Request
を 送信するよう指示する.Global-to-Private (Pattern 3)
:Pattern 2
と同様にMN
とCN
間のエンドエンドでトンネルを構築する.このとき,
CN
はプライベートネットワークに存在す るため,以後のシーケンスはCN
側から開始する必要 がある.そのため,DC
MNはRoute Direction
により,MN
にはCN
からのTunnel Request
を受信するよう 指示する.一方,CN
にはDC
CNを経由して,MN
へTunnel Request
を送信するよう指示する.Private-to-Private (Pattern 4)
:MN
とCN
が別々 のプライベートネットワークに存在するため,Relay Server
との間にトンネルを構築する.このとき,以後 のシーケンスはMN
,CN
両側から開始する必要があ る.そのため,DC
MNはRelay Direction
メッセージに より,RS
に対してMN
とCN
からのTunnel Request
を受信するよう指示する.RS
からRelay Response
を 受信後,さらにRoute Direction
により,MN
とCN
双方に対してRS
へTunnel Request
を送信するよう 指示すると共に,共通鍵CK
MN−CN を配布する.以 上の処理により,MN
とCN
はRS
との間で共通鍵を+! !"#+! 31+! 311! 1!
89!
!8
89! 89! 89!
98)_
98)W :7@)*,$AB$:*4C7()D(&DEF&G7F
+! 31+! 311! !"#1! 1!
89!
!8
89! 89! 89!
98)_
98)W
:7@)*,$HB$EF&G7FD(&D:*4C7() 98)W
98)W
+! !"#+! 31+!
89!
89!
98)_
:7@)*,$=B$:*4C7()D(&D:*4C7()
98)W
%I 311! !"#1! 1!
89! 89!
98)_
98)W 89!
8g!
98)W 98)W
!8
8g8)W
!8 *h**!.()Me1?*8)_R)W3*
89! *h**81R3)*!.()Me1?*
8g! *h**8)0'K*!.()Me1?*
*S(.T'3)*#)3&1(4*
*U!S*9R??)0
8g8)W *h**8)0'K*8)W>1?W)*
98)_ *h**9R??)0*8)_R)W3*
98)W *h**9R??)0*8)W>1?W)*
図
3
トンネル構築手順Fig. 3 Tunnel establishment procedure.
共有することができる.
以後,
DC
からの指示に応じて該当ノード間でTunnel Request/Response
メッセージの交換を行い,NTM
ノード はトンネルテーブルを,RS
はリレーテーブルを作成する.Tunnel Response
を受信したMN
はトンネル構築フェーズ を終了し,待避していたDNS
クエリ応答に対して3.2.1
項 で述べた書き換え処理などを行う.なお,
Pattern 1
の場合はPattern 2
と全く同じ手順でト ンネル構築処理が行われる.MN
とCN
が両方ともプライ ベートネットワークに存在する場合,両ノードのアドレス 情報の中にプライベートネットワークを構成するNAT
の 外側IP
アドレスRIP
NAT が含まれている.DC
はこのIP
アドレスを比較することにより,Pattern 4
およびPattern 5
を区別することができる.Pattern 5
は同一NAT
配下にMN
とCN
が存在するため,Pattern 1
と同じ手順でトンネ ル構築処理が行われる.Pattern 6
はCN
が一般ノードで ある点が上記とは異なり,Pattern 4
のうちMN
,DC
MN,RS
間のシーケンスのみが実行され,MN
とRS
の間にト ンネルが構築される[13]
.3.2.3
暗号化通信フェーズMN
は宛先が仮想IP
アドレスのパケットを送信する際,!" "./!" $"
%'0)12*-3*%145'6)76879:8;':
!" "./$" $"
%'0)12*,3*9:8;':7687%145'6)
!" "./!"
%'0)12*<3*%145'6)7687%145'6)
=> "./$" $"
)ML/%)MLB%(
OML/%OMLB%
)ML%&'
/%)MLB%(
OML/%OMLB%
?@6)1*A%*B)'C)1*
?14D42':*
A%*B)'C)1
)ML/%)ML
%&'B%(
OML/%OMLB%
)ML/%)ML
B%(
OML/%OMLB%
)ML/%)ML)>(
OML/%OMLB%
)ML%&'/%)ML)>(
OML/%OMLB%
)ML)>)ML%&'B%(
OML/%OMLB%
)ML)>)MLB%(
OML/%OMLB%
(L."41,-(%-,:*.;
図
4 IP
パケットのアドレス遷移Fig. 4 Address trantisions of IP packet.
IP
層に生成されたトンネルテーブルに従って,元のIP
パ ケットをUDP
でカプセル化し,暗号化処理の後にトンネ ル構築対象ノードへ送信する.このとき,図4
に示すよう に,元のIP
ヘッダは送信元をVIP
MN,宛先をVIP
CN と したままで,新たに付け加えられるIP
ヘッダはトンネル の両端の実IP
アドレスとなる.従って,NTM
ノード間の 通信経路上にNAT
が存在する場合は,外側のIP
ヘッダ およびUDP
ヘッダがNAT
によりアドレス変換され,カ プセル化されたオリジナルのIP
パケットは仮想IP
アドレ スのまま維持される.RS
を中継する場合はリレーテーブ ルに従って,外側のIP
ヘッダとUDP
ヘッダのIP
アドレ ス・ポート番号を変換して転送する.トンネルの出口に当 たるCN
は,受信したパケットを復号,デカプセル化して から上位アプリケーションへ渡す.以上の処理により,
NTM
ノードが存在するネットワー クに応じた最適なトンネル経路が構築され,仮想IP
アド レスによる通信接続性を確立することができる.なお,同 一NTM
ノード間であれば,構築された1
つのトンネルで 複数のコネクションをまとめて転送することができる.3.3
移動時の対応NTM
ノードが移動して実IP
アドレスが変化した場合,通信開始時とまったく同じトンネル構築フェーズを実行し
てトンネルの再構築を行う
[14]
.これは移動先ネットワー クのアドレス空間に応じて,エンドエンドまたはRS
経由 のトンネルに切り替える必要があるためである.トンネル の再構築処理が完了しても,NTM
ノードの上位アプリケー ションは常に仮想IP
アドレスに基づいたコネクションを 確立しているため,実IP
アドレスの変化に影響されること はなく,通信継続性を満たすことができる.また,トンネ ルの再構築と並行して,DC
に登録されているNTM
ノー ドのアドレス情報を更新することにより,移動後のNTM
ノードに対する到達性を満たす.すなわち,NTMobile
は 通信接続性を確立するしくみをそのまま移動透過性の実現 手法として応用しており,その結果,NTM
ノードは通信 中に様々なアドレス空間のネットワークへ移動しても通信 を継続することができる.3.4
メッセージフォーマット図
5
にNTMobile
におけるトンネル構築に関わる制御 メッセージフォーマットを示す.制御メッセージはUDP
プロトコルを利用し,NTM
ヘッダと各制御メッセージペ イロードで構成される.NTM
ヘッダには以下のフィール ドが定義されている.Version
: 制御メッセージのバージョン.Message Type
: 制御メッセージの種類.Flags
: 制御メッセージの状態.Count
: 制御メッセージに記載されている通信相手側アドレス情報の数.
Transaction ID
: トンネル構築トランザクションを示 す識別子.トリガとなったDNS
クエリのトランザク ションID
が格納される.Sequence No.
: シーケンス番号.初期値は乱数で,以 降はインクリメントされる.Message Length
: ヘッダ以降のメッセージ長.Reserved
: 予約フィールド.Sender’s Node ID/Path ID
: 制御メッセージの場合 は送信者のノードID
,トンネル通信時はPath ID
が 記載される.DC
やNTM
ノード間は信頼関係があることを前提とし ているため,Direction Request
,Route Direction
,Relay Direction/Response
はすべて事前に共有済みの暗号鍵を用 いて暗号化およびMAC
(Message Authentication Code
) の付与が行われる.Tunnel Request/Response
およびトン ネル通信の暗号化と認証には,トンネル構築フェーズで配 布された共通鍵を利用する.各ノードは
NTM
ヘッダに記載されている送信元ノードID
をキーにして,復号やMAC
の検証に用いる暗号鍵を 決定する.カプセル化パケットではノードID
の代わりに,構築されたトンネル経路を示す
Path ID
がNTM
ヘッダに 記載されており,トンネルテーブルおよびリレーテーブル図
5
メッセージフォーマットFig. 5 Message formats.
の検索時のキーとして利用する.
4.
実装と評価NTMobile
はAndroid OS
を搭載した携帯端末での利用 を想定しているため,本論文ではLinux
での実装方法につ いて述べる*5.4.1 NTM
ノード図
6
にNTM
ノードのモジュール構成を示す.NTM
ノード側にはユーザスペースで動作する(A)NTM
デーモ ンと,カーネルで動作する(B)
パケット操作モジュール,(C)
トンネルテーブルおよび(D)
仮想インタフェースを実 装する.NTM
デーモンはNetfilter
*6を利用してDNS
クエリの応 答をフックする(i)
.クエリ応答を解析してA
レコードの 結果を取得していたら,そのレコードを保持しているDC
へNTM
レコードの問合せを行う(ii)
.その後,トンネル 構築フェーズの終了時に,Netlink
ソケットを通じてカー ネルに実装されているトンネルテーブルにエントリを登録 する(iii)
.通常のアプリケーションが送信する
IP
パケットの宛先 は仮想IP
アドレスとなっているため,仮想インタフェー スに向けてカーネルへ渡される(iv)
.仮想インタフェース に渡されるIP
パケットはNetfilter
によりパケット操作モ*5
Android
とは,米OS
である.カーネルとしてLinux
を採用しているため,今回実装したモジュールをAndroid
へ移植することが可能である.*6
http://www.netfilter.org/
ジュールに渡され
(v)
,カプセル化,暗号化などの処理が行 われ後,実インタフェースから送信される(vi)
.受信時は 逆の手順により復号,デカプセル化された後,アプリケー ションへデータが渡される.一般にカプセル化を行うための仮想インタフェースとし て,
TUN/TAP
デバイス*7がある.この仮想インタフェー スはOpenVPN
をはじめとする多くのVPN
ソフトウェア で採用されており,TUN/TAP
デバイスに渡されたパケッ トデータを一度ユーザ空間へ戻してから暗号化を行い,再 度ソケットを通じて送信することによりカプセル化を実現 している[15]
.そのため,カーネル空間とユーザ空間の間 でメモリコピーが2
回発生するため,スループットが低下 するという課題がある.これに対して,NTMobile
ではパ ケットのカプセル化処理をすべてカーネル内で完結するよ うに設計しており,冗長のないパケットフローと高スルー プットを実現できる.4.2 Direction Coordinator
とRelay Server
図7
にDC
とRS
のモジュール構成を示す.DC
とRS
には,上述したNTM
ノードのモジュールの一部を実装 する.DC
はNTM
ノードのアドレス情報を動的に登録す るために,(E)Dynamic DNS
サーバを稼働させる.このDNS
サーバにはNTM
レコードを扱えるよう,bind
*8に 機能を追加して実現している.NTM
ノードおよびRS
と の制御メッセージ交換は(A)NTM
デーモンが行う.RS
はDC
およびNTM
ノードとの制御メッセージ交換*7
http://vtun.sourceforge.net/tun/
*8
http://www.isc.org/software/bind
'+??-@('1<@-
%-S"@,-.
K%>(
%'/(T+-.F
)-C-"4-0(
K%>(T+-.F(
)-NG*?N- K%>(%'/(
T+-.F(/NIU K)V)'KV(
')-PV')-N(/NIU(
/*0"W-0(
K%>(&(T+-.F(
)-NG*?N- B.-1,-(E?,.F
L--.XN(OML
>-1.CH(E?,.F
JN-.(>G1C-(/*0+@- Y-.?-@(/*0+@-
L1C;-,($@*:
ZG-.1D*?($@*:
%-,@"?;(>*C;-,
O".,+1@(MV$
&GG@"C1D*?
'BLVJKL(L1C;-,(
5>.CVKN,([(OML7
'BLVJKL(L1C;-,(
5>.CVKN,([()ML7
Y-.?-@(>G1C- JN-.(>G1C-
&GG@"C1D*?((
L1C;-,($@*:
5&7(%'/(01-3*?
'+??-@(
EN,1<@"NH3-?,
'BLVJKL(L1C;-,-,-,-,-,-,-,-,(((( 5
5 5 5 5 5 5 5 5>.>.>.CCCVVVVVVVVKNKNKN,,,([([()()()MLMLML777777777
L(L1C;-,-,-,-,-,-,-,-, L1C;-,(
/1?"G+@1D*?(
)-1@(MV$
%-S"@,-.
%-
%-
%-
%-
%-
%-
%-
%-
%-
%-
%-S"@,-.
5"7
5\7 5B7
5K7
5""7 5"""7
5"47
547
54"7 K%>()-N*@4-.
図
6
モジュール構成(NTM
ノード側)Fig. 6 Module configuration (NTM node).
図
7
モジュール構成(左:DC
側,右:RS
側)Fig. 7 Module configuration (Left: Direction Coordinator, Right: Relay Server).
を行う
(A)NTM
デーモンに加えて,カーネルモジュール として(F)
リレーテーブルと(B)
パケット操作モジュール を実装する.なお,RS
は受信したカプセル化パケットの 転送処理が主な役割であるため,仮想インタフェースは実 装しなくてもよい.4.3
動作検証と性能評価提案方式による通信接続性の確立を検証するために,プ ロトタイプシステムを実装した.図
8
に試験ネットワー ク構成と各装置の仕様を示す.1
台の実機サーバにインス トールしたVMware ESXi 4.1
を利用して,NTM
ノード およびDC
を仮想マシンとして構築した.今回は表1
のPattern 3
の動作検証と通信開始時に発生するトンネル構 築時間を測定するために,MN
と2
台のDC
にグローバ ルIP
アドレスを,CN
にプライベートIP
アドレスを割 り当て,CN
をNAT
ルータのLAN
側に,その他をNAT
ルータのWAN
側に接続した.各装置の仕様および平均RTT
は図中の通りである.また,MN
のプライマリDNS
サーバはDC
CNとした.このような構成においてMN
からCN
のFQDN
宛へping
を実行し,このときのパケットフ ローをWireshark
を用いてMN
側で観測した.なお,制御EST
KBB%
O/:1.-(E>]"
9@*<1@(
%-,:*.;(
"./*=8@6)1*
^&/&A&()']_`aa
• &/K(ZG,-.*?(b_ca(5`Ud(9Ae7(6`(
• _d9\(*=(/-3*.F(
• \.*10C*3(\B/fg_d(9"I1<",(E,H-.?-,(5K+1@(L*.,7
L."41,-(
%-,:*.;(
"/!*28C)(*H!"I$"J*
J<+?,+(_aUab(5O".,+1@(/1CH"?-7(
• f_`/\(*=(/-3*.F(
#41)EF82*$881C42'681(*
J<+?,+(>-.4-.(_aUab(5O".,+1@(/1CH"?-7(
• `fd/\(*=(/-3*.F(
/%
KB/% B%
#KLL*%8M)1KCD)*=<+N
_aaa\&>E#' _aaa\&>E#'
O".,+1@(/1CH"?-N
/%(h(KB/% /%(h(KBB% KB/%(h(KBB% B%(h(KBB% B%(h(/%
)''(i3Nj aU`b aU`b aU`c aUgk aUgg
図
8
試験ネットワーク構成Fig. 8 Test network configuration.
図
9 Pattern 3
における通信開始時のトンネル構築時間の結果Fig. 9 The Result of initial time caused by the tunnel estab- lishment in Pattern 3.
メッセージの暗号化および認証アルゴリズムは
AES-CFB
,HMAC-MD5
とし,各装置には制御メッセージを暗号化す るための共通鍵(鍵長128bit
)を事前に設定した.図
9
に通信開始時におけるトンネル構築時間を示す.測 定回数10
回の平均値であり,図中のエラーバーは95%
の 信頼区間を表す.DNS
クエリ応答を受信してから最初のICMP
パケットを送信するまでに要した時間は,一般ノー ドの場合は0.16 ms
,NTM
ノードの場合は4.11 ms
であっ た.トンネル構築時間の内訳に着目すると,名前解決フェー ズのNTM
レコードの問合せが0.32 ms
であり,これはNTM
ノードに実装したプログラムの処理負荷に当たる.NTM
レコードの応答受信からトンネル構築フェーズのDirection Request
送信までに0.30 ms
を要しており,これ はDNS
応答メッセージの解析,制御メッセージの生成,暗 号化およびMAC
生成処理が含まれる.Pattern 3
ではMN
がDirection Request
を送信すると,CN
側から送信されるTunnel Request
を受信する.この時間が2.55 ms
であった が,この間にRoute Direction
がDC
MNからDC
CN,CN
の順に転送されており,各装置でメッセージの復号・検証および暗号化・
MAC
生成などの処理が行われている.MN
がTunnel Response
を返答してからICMP
パケットを送 信するまでに0.37 ms
かかっており,トンネルテーブルの 作成,DNS
応答メッセージ内のIP
アドレスを仮想IP
ア ドレスに書き換える処理などを行っている.今回は仮想マシンを用いた環境での測定結果であるため,
実環境では各装置間の伝送遅延が上記結果に加わることに なる.ここで,
MN
とDC
MNの位置を日本,CN
とDC
CNの位置を米国と仮定すると,
DC
間およびMN
とCN
間の 伝送遅延が大きくなる.Pattern 3
の場合,トンネル構築 フェーズで日米間を1.5
往復するため,約150 ms
のエン ドツーエンド遅延が発生すると推測される.例えば,
NAT
越えを実現するための技術としてICE
(In- teractive Connectivity Establishment
)[16]
がある.ICE
はSIP
(Session Initiation Protocol
)でNAT
越えをする ための技術で,通信開始時にSTUN
(Session Traversal Utilities for NAT
)[17]
やTURN
(Traversal Using Relays around NAT
)[18]
を反復的に実行し,エンドノードが互 いに接続可能なIP
アドレスとポート番号を発見・交換す る.文献[19]
によると,ICE
によるコネクション確立に約2
〜10
秒必要であることが示されている.スマートフォン での利用を想定すると,Web
ブラウジングやビデオチャッ トなどのアプリケーションが考えられる.文献[20]
による と,ユーザがWeb
ブラウジングにおいて許容できる待ち時 間は2
秒程度と報告されている.また,ビデオチャットな どでは通信開始時に数秒間バッファリングを行うことが一 般的である.従って,提案方式のトンネル構築時間は,通 常の通信開始時に発生する待機時間と比較して十分短く,ユーザがその遅延を意識することはないと考えられる.
4.4
定性評価と残された課題4.4.1
仮想IP
アドレスの数量制限仮想
IP
アドレスはNTMobile
の枠組みの中で一意であ り,かつ実ネットワークで用いられるIP
アドレスと衝突 しないこと,さらに移動しても変化しないことが前提とな る.ただし,仮想IP
アドレス宛のパケットは実際のネッ トワーク上で直接ルーティングされることはないため,ク ラスE
を利用することを想定している.DC
が管理する 仮想ネットワークアドレスを16bit
とした場合,設置可能 なDC
は4,096
台,各DC
が管理する仮想IP
アドレスは65,534
個となる*9.従って,NTMobile
のシステム全体で は,約2
億7,000
万個の仮想IP
アドレスを利用すること ができる.*9 クラス
E
は240.0.0.0/4
の範囲で実験用として定義されているた め,実際のネットワークでは使われることはない.定義可能な仮 想サブネットワークは16bit
から上位4bit
を除いた12bit
分,す なわち2
12= 4, 096
個となる.ホストアドレス部は残り16bit
で あるため,ブロードキャストアドレスを除いた2
16− 2 = 65, 534
台分の仮想IP
アドレスを1
つの仮想サブネットワークに設定でただし,
NTMobile
はスマートフォンへの適用を想定し ているため,この場合はIPv4
アドレスだけでは不足すると 考えられる.本論文では詳述しないが,NTMobile
はIPv6
ネットワークへの対応も検討している[21]
.IPv6
に対応 した場合,仮想IP
アドレスはIPv4
だけでなく,IPv6
ア ドレスも配布することを想定している.全てのNTM
ノー ドはIPv6
アドレスを持つことにより,アプリケーション がIPv6
対応であれば仮想IPv6
アドレスによる通信を行う ため,この場合は仮想IPv4
アドレスが不要となる.今後,仮想
IP
アドレスをIPv6
に統合するなど,仮想IPv4
アド レスの不足を補う検討が必要である.4.4.2 DC
間およびDC
とRS
間の信頼関係DC
やRS
の台数が小規模で,これらサーバ群の管理者 が同一であれば,事前共有鍵方式により信頼関係を構築す ることができるが,ネットワークの規模が拡大すると,任 意のDC
間およびDC
と任意のRS
間で共通鍵を共有する ことが困難となる.そこで,DC
とRS
に公開鍵証明書を 発行し,これを用いた相互認証方式を検討している.root DC
が証明書を発行する役割を担っており,これにより任 意のDC
間およびDC
とRS
間の信頼関係を構築すること ができる.4.4.3 DC
とRS
に発生する負荷DC
の主な処理は,通信開始時および移動時のトンネル構 築指示およびプライベートネットワークに存在するNTM
ノードからのKeep Alive
処理である.トンネル構築指示 は,NTM
ノードがある通信相手に初めて通信を開始する 際に発生することを考慮すると,DC1
台あたりで管理するNTM
ノードが増加しても大きな負荷は発生しないと考え られる.Keep Alive
はNAT
マッピング情報のタイムアウ ト時間より短い間隔で行う必要があるが,ベンダや設定の 違いにより異なっている.Mobile IP
におけるNAT
越え 手法では,UDP
トンネルを維持するためにKeep Alive
の デフォルト間隔は110
秒と定義されている[5]
.NTMobile
におけるKeep Alive
の送信間隔もこれに準ずることとして いる.Keep Alive
メッセージは,IP
ヘッダ,UDP
ヘッダ,NTM
ヘッダから構成され,メッセージサイズは56byte
で ある.4.4.1
項で示したように,1
台のDC
が管理するNTM
ノード数を最大65,534
台とすると,Keep Alive
メッセー ジのトラヒックは約260Kbps
となる *10.従って,相当 数のNTM
ノードを収容したとしても,DC
がKeep Alive
メッセージのトラヒックで障害を起こすことはないと考え られる.RS
はNTM
ノードのトラヒックを中継する装置である ため,RS
が利用可能なネットワーク帯域をどれくらいのきる.
*10