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

㻳㼑㼚㼑㼞㼍㼘㻌㻺㼛㼐㼑㻺㻭㼀㻺㻭㼀

N/A
N/A
Protected

Academic year: 2021

シェア "㻳㼑㼚㼑㼞㼍㼘㻌㻺㼛㼐㼑㻺㻭㼀㻺㻭㼀"

Copied!
53
0
0

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

全文

(1)

NTMobile におけるリレーサーバの提案と評価

123430030

土井 敏樹

渡邊研究室

1.

はじめに

近年,公衆無線網や小型端末の普及によって,自由に通信 を開始できる通信接続性と,移動しながら通信を継続でき る移動透過性が求められている.我々は,通信接続性と移動 透過性を同時に実現する技術として

NTMobile

Network Traversal with Mobility

[1]

を提案している.

NTMobile

では,アプリケーションに対して重複しない仮想

IP

アド レスを提供し,実際の通信は実

IP

アドレスでトンネル通 信を行うことにより,上記機能を実現している.

NTMobile

では,あらゆるケースにおいて通信接続性を 確実に実現するため,通信パケットの中継を行う

RS(Relay Server)

が存在する.

RS

は,これまで装置の定義は行われ ていたが,細かい仕様検討や実装は行われていなかった.本 稿では,

RS

を機能別に

2

つの種類に分類し,それぞれ仕 様や動作の検討を行った.また,決定した仕様を基に実装 と評価を行った.

2. NTMobile

1

NTMobile

の概要を示す.

NTMobile

には、

NT- Mobile

の機能を実装したエンド端末

(NTM

端末)、

NTM

端末の情報管理やトンネル経路の指示を行う

DC(Direction Coordinator

)、エンドエンドの通信が行えない時にパケッ トを中継する

RS

が存在する.

NTM

端末は

DC

から重複しない仮想

IP

アドレスを与 えられ、アプリケーションは、割り当てられた仮想

IP

アド レスを自身のアドレスとして認識する.アプリケーション が作成した仮想

IP

に基づくパケットは実

IP

アドレスでカ プセル化され,実ネットワークへ送信される.

DC

は,通信 開始時に

NTM

端末が存在するネットワークトポロジより トンネル通信経路を決定し,

NTM

端末へ通達する.

NTM

端末は指示に従ってトンネルを構築し,通信を開始する.基 本的にエンド端末どうしは直接通信を行うが,直接通信が 行えない場合は

RS

経由の通信経路となる.

RS

は,異な

NAT

配下どうしの通信や,

NTMobile

を実装していな

!"#"

$%&'(%'&

)*+

)+,-)./'-*

01

)*+

!"#)

)+,-)./'-2

)+,-)./'-1 34'5.('-6.7'8

)+,-)./'-1 395&'(-6.7'8 handover

!"##$%&'()&"%*+,)-,,%*./0*."1,2*+,3&%1*1&44,5,%)*.6/2

!"##$%&'()&"%*+,)-,,%*./0*."1,*(%1*7,%,5(8*."1,

:'%'(9;-)./'

)*+

)*+

1: NTMobile

の概要

い一般端末との通信で利用される.

NTM

端末が別ネット ワークにハンドオーバしても,仮想

IP

アドレスは移動に よって変化しないため,通信を継続することができる.

3. NTMobile

におけるリレーサーバ

本章では,各

RS

の用途と動作を示す.なお,

RS

の設置場 所はグローバルネットワーク上のどこでもよく,複数設置が 可能である.

DC

はトンネル構築時に複数の

RS

から通信負 荷や通信経路を指標として最適な

RS

を選択できる.以後の 説明では,通信開始側の

NTM

端末を

MN(Mobile Node)

通信相手側の

NTM

端末を

CN(Correspondent Node)

NT- Mobile

を実装していない一般端末を

GN(General Node)

とし,

GN

を管理する

DNS

サーバを

DNS

GNとする.ま た,

NTM

端末

X

の実

IP

アドレスと仮想

IP

アドレスを それぞれ

RIP

X

V IP

Xとし,アドレス情報を管理してい

DC

DC

Xとする.

3. 1

トンネル切替型

RS(RS-S)

MN

CN

が異なる

NAT

配下に存在する時,

MN

CN

NAT

越え問題によりエンドエンドで通信を行うこ とが出来ない.

この場合,

MN

CN

RS-S

との間でトンネル構築を 行う.

RS-S

は,

MN

から受信したカプセル化パケットの外

IP

ヘッダのアドレスを変換し,

MN

RS-S

間のトンネ ルから

RS-S

CN

間のトンネルへとトンネルを切り替え る.このように

RS-S

がエンド端末間のパケットを中継す ることにより,異なる

NAT

配下の

NTM

端末が通信する ことができる.

NTM

端末がネットワークを切り替えた場 合,

RS-S

との間でトンネルを再構築する.この時,

RS-S

が必要であれば

RS-S

を再選択でき,直接通信が可能であ れば経路最適化を行い直接通信に切り替えることができる.

3. 2

アドレス変換型

RS(RS-N)

NTM

端末と

GN

が通信を行う時,

NTMobile

を用いた 通信を行えないため,

NTM

端末が移動すると通信を継続で きない.この場合,

RS-N

GN

に代わってパケットのカプ セル化や暗号化など

NTMobile

の処理を代行する.

NTM

端末が移動した場合は,

RS-N

との間でトンネルを再構築 する.また,一般端末は通信相手を

RS-N

と認識するため,

NTM

端末が移動しても通信を継続できる.

2

に,

RS-N

を経由した通信における通信シーケンスを 示す.

MN

CN

の名前解決を行う

DNS

クエリをトリガー として,

DC

MN

NTM Direction Request

を送信し,

GN

の名前解決とトンネル構築を依頼する.

DC

MN

DNS

GN

NS

レコード取得後,

DNS

GNに対して

TXT

レコード の問合せを行う.

DC

には

DC

であることが示す分かるよ うな

TXT

レコードが記録されているため,

TXT

レコード 問合せの応答より

DC

MNは通信相手は

GN

であると判断 する.その後,

DC

MN

NTM Relay Direction

によって

RS-N

にパケットの中継を指示し,

NTM Route Direction

によって

MN

に通信経路を指示する.

MN

RS-N

との間

NTM Tunnel Request/Response

の交換をすることに より,

MN

RS-N

間でトンネルが構築される.

NTM

末がネットワークを切り替えた場合,

RS-N

との間でトン ネルを再構築する.

(2)

!" #$!" %&'"

"(!)%*+,-)#./-0,.*1

#"&

#"&)%-2+-3,4%-35*13- 6*/)"&)%-0*/7

#"&)%-2+-3,4%-35*13-)6*/)(8()%-0*/7

#"&)%-2+-3,)6*/)9)%-0*/7

#"&)%-35*13-)6*/)9)%-0*/7

"(!)%-:;<)#./-0,.*14%-35*13-

"9(!" ="

"(!)(+11-:)%-2+-3,4%-35*13-

"(!)#./-0,.*1)%-2+-3,

#"&#"

#"&)%-2+-3,)6*/)9999)%-0*/7

#"&)%-35*13-)6*/)9999)%-0*/7

2:

トンネル構築ネゴシエーション

4.

実装

4.1

実装方針

RS

は,ユーザ空間とカーネル空間に実装を行う.

RS-S

RS-N

は実運用上のコストを考慮し,デーモン

/

カーネル ともに,

1

つの装置として統合するように設計を行う.

DC

は,ネゴシエーション時に

RS

の種類を判断し

RS

に通知 することで,

1

台の装置で

RS-S

RS-N

の双方の機能を 実現することを可能とする.また,

RS-N

では

Netfilter

仕組みを用いたアドレス変換を行う.

4.2 NTMobile

デーモン

RS

のデーモンは,

DC

および

NTM

端末との間でトンネ ル構築を行う.

NTM Relay Direction/NTM Tunnel Re- quest

受信時には,中継に必要な情報をカーネル空間に実 装されている

Relay Table

に登録する.また,

NTM Relay Direction

により通知される

RS

の種類を

NTMobile

カー ネルモジュールへと通知する.カーネルモジュールは,通 知された

RS

の種類を基に

RS

の挙動を確定する.

4.3 NTMobile

カーネルモジュール

RS

のカーネルモジュールは,

Relay Table

の内容に従っ て通信パケットの中継及びカプセル化

/

デカプセル化等パ ケットに対する操作を行う.通信パケット受信時には,パ ケットのカプセル化

/

デカプセル化,暗号化

/

復号を行い,

加えて以下に示す

Netfilter

を用いた

NAPT

処理を行う.

4.4 Netfilter

を用いたアドレス変換

3

RS-N

のカーネルモジュールにおけるアドレス変換

Netfilter

の処理フローを示す.

MN

から受信したパケッ トは,

PRE ROUTING

にてフックし,カーネルモジュール へと渡す.パケットのデカプセル化後,宛先を

Relay Table

から取得した

RIP

GNにアドレス変換し,

LOCAL OUT

と戻す.その後,

POST ROUTING

にてフックし,送信元

IP

アドレス

/

ポート番号を変換し,

GN

へ送信する.

MN

GN

へ向けての最初のパケットが通過した時,

RIP

RS−N

V IP

M N を関連付ける

NAT

テーブルが生成される.

GN

から受信したパケットは,

PRE ROUTING

にて

NAT

テーブルを参照して宛先を

V IP

M N に変換し,

LO- CAL OUT

へ渡す.

LOCAL OUT

ではアドレス変換処理 とカプセル化を行い,

LOCAL OUT

にてパケットを

Net- filter

のチェインに戻す.その後,

MN

へ送信する.

5.

評価

Linux PC

RS

の機能を実装し,動作検証を行った.ま た,

RS

のスループットの測定を行った.

!"#$%&#"' ("')"&*+,-.&"

!"#$%&'($)*+, -,#$%&'($)*+, /"0"%1"*$',2*3")"'4&*!,-"/"0"%1"*$',2*!5+*!,-"

./01.2/34

!"#$%&'(

!"#$%&'(

5"$(6789 :5-25/347;<

:/=4 25/347;<

3: Netfilter

NTMobile

カーネルモジュール

!"

!"#$%&'()&*+",-.

#"$%"

/"#-0(123 456667289:;<

/"#-'-..(123 4=999>6?@55,<

5A6)BC. 5A6)BC.

"&' "&'

(#!" (")#" *)

D#"E&$-(3-$/F#G(2 D#"E&$-(3-$/F#G(7

4:

測定ネットワーク構成

1:

スループット測定結果

[Mbps]

End to End(General) End to End(NTMobile) via RS-S via RS-N 暗号化なし 45.46 43.25 43.24 43.65

暗号化あり - 38.48 38.57 41.28

暗号化による低下率 - 11.03% 10.80% 5.43%

5. 1

測定環境

4

に測定ネットワーク構成を示す.

1

台の実機

PC

DC

DNS

サーバを仮想マシンとして構築し,同一プ ライベートネットワークへと有線接続した.

RS

は,プライ ベートネットワークへと有線接続した.また,ルータを

2

台プライベートネットワークへと接続し

NAT

として動作 させ,ポートフォワードの設定を行った.

NTM

端末の機能

Android OS

を搭載した端末に実装し,異なる

NAT

下に無線接続した.また,測定パターンは

NTMobile

を用 いないエンドエンド通信,

NTMobile

を用いたエンドエン ド通信,

RS-S/RS-N

を経由した通信の

4

パターンである.

5. 2

スループット測定結果

スループット測定結果を表

1

に示す.

NTMobile

を用い たエンドエンド通信と

RS

経由の通信を比べるとスループッ トの低下は殆ど無く,

RS

が行うカプセル化

/

デカプセル化 処理や暗号化

/

復号処理が端末間のスループットに大きな影 響を与えないことが分かった.これは,無線部分がスルー プットのネックとなっているためと考えられる.

6.

まとめ

本稿では,

NTMobile

における

RS

RS-S

RS-N

2

つのタイプに分類し,動作や仕様の検討を行い,実装・評 価を行った.

RS-S

RS-N

の機能を統合し,

1

台の装置で

2

つの機能を切り替えることが可能となった.また,

RS

由の通信におけるスループットの評価を行い,

RS

の処理 がスループットに大きな影響を与えないことが分かった.

今後は,

RS

の選択手法の検討を進めていく予定である.

参考文献

[1]

鈴木秀和,上醉尾一真,水谷智大,西尾拓也,内藤克 浩,渡邊 晃:

NTMobile

における通信接続性の確立 手法と実装,情報処理学会論文誌,

Vol. 54, No. 1, pp.

367–379 (2013).

(3)

NTMobile における

リレーサーバの提案と評価

名城大学大学院 理工学研究科 情報工学専攻 渡邊研究室 123430030

土井敏樹

(4)

研究背景

• 移動しながら通信をしたいという要求

– 公衆無線網や小型端末 ( スマートフォンなど ) の普及

• 移動透過性技術の必要性

– IP ネットワークでは接続場所が変わると IP アドレスが変化 – 端末が移動すると通信が途切れてしまう

– 携帯通信網トラヒック量増大による Wi-Fi へのトラヒック迂回

• NAT 越え技術の必要性

– IP ネットワークでは NAT の利用が一般的

– NAT の外側から内側にアクセスを開始できない

NAT : Network Address Translation

(5)

関連研究

• Mobile IPv4

– IPv4 環境において移動透過性を実現

– HA を経由することで CN に対して MN の移動を隠蔽 – 課題

• HA の設置場所がホームネットワークに限定されるため経路が冗長

• HA の分散配置は検討されているが詳細は未検討,一点障害問題

MN :移動端末

CN:通信相手端末 HA : Home Agent HA

通信を中継

CN

MN

(6)

NAT

NTMobile の概要

Internet DC

NTMobile の機能を 実装したエンド端末

NAT

NTM Node

NTM Node NTM Node

RS

パケットの中継

端末のアドレス情報管理 仮想 IP アドレスの割り当て

GN

アプリケーション:

仮想IPアドレスを用いた通信 GN : General Node

RS:Relay Server

DC : Direction Coordinator

• NTMobile(Network Traversal with Mobility)

– 移動透過性と NAT 越えを同時に実現する技術

RS

(7)

NAT

NTMobile の概要

Internet DC

NAT

NTM Node

NTM Node NTM Node

RS GN

GN : General Node RS:Relay Server

DC : Direction Coordinator

• NTMobile(Network Traversal with Mobility)

– 移動透過性と NAT 越えを同時に実現する技術

本発表の対象

本発表の対象

RS

(8)

NAT

NTMobile の概要

Internet DC

NAT

NTM Node

NTM Node NTM Node

RS GN

RS

GN : General Node RS:Relay Server

DC : Direction Coordinator

• NTMobile(Network Traversal with Mobility)

– 移動透過性と NAT 越えを同時に実現する技術

RS~NTM端末間は トンネル通信

( 実 IP でカプセル化 )

トンネル通信

(9)

NAT

NTMobile の概要

Internet DC

NAT

NTM Node

NTM Node NTM Node

RS GN

GN : General Node RS:Relay Server

DC : Direction Coordinator

• NTMobile(Network Traversal with Mobility)

– 移動透過性と NAT 越えを同時に実現する技術

トンネル通信

RS

NTMobile を実装して

いないサーバ

(10)

RS の概要

• RS(Relay Server)

– 特定の条件下においてパケットを中継するサーバ

• 異なる NAT 配下の NTM 端末が通信したい場合

• 通信相手端末が GN で, MN が移動しながら通信をしたい場合に利用

• グローバルネットワーク上に設置し,分散配置が可能

– 通信経路等を考慮した RS の選択が可能

• これまで RS の装置の定義は行われていたが詳細は未検討

– 実装も特定の条件下で動作するのみ

RS の動作や仕様の検討を行って実装し,動作検証・評価を行う

本研究の目的

(11)

RS の概要 (1/2) - RS-S の概要

• トンネル切替型 RS(RS-S : Relay Server type Switch)

– 異なる NAT 配下に存在する NTM 端末が通信したい場合に利用

• MN ~ RS-S 間, RS-S ~ CN 間でトンネルを構築

– 直接通信できる場合はエンドエンド通信に経路最適化可能

MN NAT MN RS-S NAT CN CN

RIP NAT →RIP RS VIP MN →VIP CN

RIP RS →RIP NAT VIP MN →VIP CN RIP MN →RIP RS

VIP MN →VIP CN

RIP RS →RIP CN VIP MN →VIP CN

Original IP Header

Outer IP Header CN:通信相手端末

RIP X :端末Xの実IPアドレス

VIP X :端末Xの仮想IPアドレス

(12)

RS の概要 (2/2) - RS-N の概要

• アドレス変換型 RS(RS-N : Relay Server type NAT)

– 通信相手端末が GN で, MN が移動しながら通信をしたい場合に利用

• MN ~ RS-N 間でトンネルを構築

– GN は通信相手を RS-N と認識する

RIP MN →RIP RS VIP MN →VIP GN

RIP NAT →RIP RS VIP MN →VIP GN

RIP RS →RIP GN

Original IP Header Outer IP Header

MN NAT MN RS-N GN

RIP X :端末Xの実IPアドレス VIP X :端末Xの仮想IPアドレス

VIP GN :GNに対応する仮想IPアドレス

(13)

トンネル構築シーケンス (RS-N 経由 )

MN NAT MN DC MN RS-N GN

経路指示

トンネル構築 VIP GN を用意

経路指示・名前解決要求

名前解決

通信中継指示

DNS GN

相手端末のタイプを判断 (NTM 端末 / 一般端末 ) 相手端末の名前解決

• 相手端末の名前解決をトリガーとしてトンネル構築を行う

• DC MN は名前解決後,一般端末に対応する VIP(VIP GN ) を用意

(14)

RS の実装方針

• RS-N における Netfilter を利用したアドレス変換

– Netfilter : Linux に組み込まれているパケットフィルタリングの仕組み – RS-N のパケット送信時に送信元ポートを自動選択できる

– ペイロードに IP アドレスを含むプロトコルに対応できる

• Netfilter のモジュールが ALG の働きをしてペイロード内の IP アドレスを変換

– パケットのフックにも用いる

• RS-S と RS-N の統合

– 統合すれば 1 端末で RS-S/RS-N を実現できる

– 別の実装とするよりもネットワークに設置する RS の台数が少なくて済む RS-S と RS-N は 1 台の装置に統合する形態で設計を行う

ALG:Application Level Gateway

(15)

Packet Manipulation

RS-N Mode

RS-S と RS-N の使い分け

• RS は NTM 端末からのパケットを受信すると Relay Table を検索

– 相手端末が NTM 端末か一般端末かを調べる

RS-S Mode Dst Node

type?

Search Relay Table

Decapsulation Address Translation (Original IP Header)

Switch Tunnel

(MN ~ RS 間 →RS ~ CN 間 )

GN へ送信 CN へ送信

MN からのパケット

通信相手はNTM端末

通信相手は一般端末

(16)

RS の実装

• NTMobile デーモン

– 制御メッセージの受信 / 送信処理

– 転送に必要な情報や RS のタイプをカーネルモジュールに通知

• NTMobile カーネルモジュール (NTM 端末 /RS-S/RS-N 共通 )

– Netfilter でパケットをフックしアドレス変換やカプセル化 / デカプセル化 – 転送に用いる情報を記録する Relay Table を持つ

Real IF

Netfilter User Space

Kernel Space

NTMobile Daemon

NTM Kernel Module(RS-S/RS-N) Create Table Entry Notification RS type

Relay Table Packet

Manipulation

Search entry

(17)

RS-N のアドレス変換の様子

• Netfilter の送信 / 受信側処理とカーネルモジュールが連携

• MN からのパケット受信時

– デカプセル化モジュールで宛先 NAT ,送信側処理で送信元 NAT

• GN からのパケット受信時

– 受信側処理で宛先 NAT ,カプセル化モジュールで送信元 NAT

Netfilter NTM Kernel Module

Receive from NTM Node Receive from General Node Real IF

Encapsulation

Decapsulation 送信側処理

受信側処理

カプセル化後

Netfilter の処理に戻す

(18)

動作検証・性能評価

1000BASE-TX

• 目的: RS の動作検証とスループット低下率の評価

– DC , RS は Linux PC に実装

– DC MN と DNS GN は仮想マシンで構成

• 測定経路は 4 パターン

General Communication NTMobile Communication

MN

DC MN RS ・Intel CPU Core i3-3220 (3.3GHz)

・Ubuntu 10.04

・ 4GB of Memory

DNS GN

Virtual Machines

・Qualcomm Snapdragon S4 Pro APQ8064(1.5GHz)

・ Android 4.1.2

・ 2GB of Memory Private Network

CN/GN

Private Network

Aterm WR8700N IEEE802.11n

リンク速度: 150[Mbps]

NAT NAT

NAT

End to End Communication

・Intel Core i7-2600 (3.4GHz)

・Windows 7

・ 8GB of Memory

・1core

・Ubuntu 10.04

・1GB of Memory

(19)

動作検証・性能評価

1000BASE-TX

• 目的: RS の動作検証とスループット低下率の評価

– DC , RS は Linux PC に実装

– DC MN と DNS GN は仮想マシンで構成

• 測定経路は 4 パターン

General Communication NTMobile Communication

MN

DC MN RS ・Intel CPU Core i3-3220 (3.3GHz)

・Ubuntu 10.04

・ 4GB of Memory

DNS GN

Virtual Machines

・Qualcomm Snapdragon S4 Pro APQ8064(1.5GHz)

・ Android 4.1.2

・ 2GB of Memory Private Network

CN/GN

Private Network

Aterm WR8700N IEEE802.11n

リンク速度: 150[Mbps]

NAT NAT

NAT

End to End Communication

・Intel Core i7-2600 (3.4GHz)

・Windows 7

・ 8GB of Memory

・1core

・Ubuntu 10.04

・1GB of Memory

ポートフォワーディング

ポートフォワーディング

(20)

動作検証・性能評価

1000BASE-TX

MN

Private Network

CN/GN

Private Network

Aterm WR8700N IEEE802.11n

リンク速度: 150[Mbps]

NAT NAT

NAT

General Communication NTMobile Communication

• 目的: RS の動作検証とスループット低下率の評価

– DC , RS は Linux PC に実装

– DC MN と DNS GN は仮想マシンで構成

• 測定経路は 4 パターン

・Qualcomm Snapdragon S4 Pro APQ8064(1.5GHz)

・ Android 4.1.2

・ 2GB of Memory

DC MN RS ・Intel CPU Core i3-3220 (3.3GHz)

・Ubuntu 10.04

・ 4GB of Memory

DNS GN

Virtual Machines

・Intel Core i7-2600 (3.4GHz)

・Windows 7

・ 8GB of Memory

・1core

・Ubuntu 10.04

・1GB of Memory

End to End Communication

(21)

動作検証・性能評価

1000BASE-TX

MN

Private Network

CN/GN

Private Network

Aterm WR8700N IEEE802.11n

リンク速度: 150[Mbps]

NAT NAT

NAT

General Communication NTMobile Communication

• 目的: RS の動作検証とスループット低下率の評価

– DC , RS は Linux PC に実装

– DC MN と DNS GN は仮想マシンで構成

• 測定経路は 4 パターン

DC MN RS-S ・Intel CPU Core i3-3220

(3.3GHz)

・Ubuntu 10.04

・ 4GB of Memory

DNS GN

Virtual Machines

・Intel Core i7-2600 (3.4GHz)

・Windows 7

・ 8GB of Memory

・1core

・Ubuntu 10.04

・1GB of Memory

via RS-S Communication

・Qualcomm Snapdragon S4 Pro APQ8064(1.5GHz)

・ Android 4.1.2

・ 2GB of Memory

(22)

動作検証・性能評価

1000BASE-TX

MN

Private Network

CN/GN

Private Network

Aterm WR8700N IEEE802.11n

リンク速度: 150[Mbps]

NAT NAT

NAT

General Communication NTMobile Communication

• 目的: RS の動作検証とスループット低下率の評価

– DC , RS は Linux PC に実装

– DC MN と DNS GN は仮想マシンで構成

• 測定経路は 4 パターン

・Qualcomm Snapdragon S4 Pro APQ8064(1.5GHz)

・ Android 4.1.2

・ 2GB of Memory

DC MN ・Intel CPU Core i3-3220

(3.3GHz)

・Ubuntu 10.04

・ 4GB of Memory

DNS GN

Virtual Machines

・Intel Core i7-2600 (3.4GHz)

・Windows 7

・ 8GB of Memory

・1core

・Ubuntu 10.04

・1GB of Memory

via RS-N Communication

ポートフォワーディング

RS-N

(23)

スループット測定結果

• エンドエンド通信と RS 経由通信のスループット低下率を測定

– iperf を用いた TCP 通信を行い, MN ~ CN/GN 間のスループットを測定

• RS 経由の通信のスループット低下率は 5% 程度

– NTMobile のヘッダオーバヘッドと同程度

– NTM 端末が RS 経由の通信を行ってもスループットには大きく影響しない

45.56 43.25 43.24 43.65

0 10 20 30 40 50

End to End (General)

End to End (NTMobile)

via RS-S via RS-N

Th roug hp ut[ Mbp s]

(24)

まとめ

• NTMobile の概要と動作

– 仮想 IP アドレスと UDP トンネルを使った通信 – 移動透過性と NAT 越えを同時に実現する技術

• RS の概要と動作

– RS-S : NTM 端末が異なる NAT 配下に存在する場合に利用 – RS-N :一般端末に対して移動通信を行いたい場合に利用

• RS の実装と評価

– RS の実装設計を行い, Linux PC に実装

• RS-S と RS-N を1台の装置で実現

– エンドエンド通信と RS 経由の通信におけるスループット評価

• 今後の予定

– RS の分散配置,選択手法の検討

– RS の転送性能の評価

(25)

スループット ( エンド端末: Linux PC)

• 同一リンク上にプライベートネットワークを 2 つ構築

• 接続は全て 1000BASE-T による有線接続

• iperf を用いた TCP 通信を 10 秒行い, 15 回の平均を算出

測定を行った 4 パターン

・ NTMobile 未実装のエンドエンド通信 ・ NAT にポートマッピングの設定

・NTMobileを利用した通信

・エンドエンド通信 ( 経路最適化後 )

・ RS-S 経由 ( 異なる NAT 配下の MN/CN) ・ RS-N 経由 (MN と一般端末との通信 )

スループット測定結果 [Mbps]

MN

DNS GN

DC RS

Virtual Machine

NAT

CN

NAT 1000BASE-T

NTMobile 未実装 エンドエンド RS-S 経由 RS-N 経由

暗号化なし 895 675 472 440

暗号化あり - 367 373 379

暗号化による低下率 - 45.67% 21.02% 14.04%

(26)

スループット ( エンド端末: Android 端末 )

• 同一リンク上にプライベートネットワークを 2 つ構築

• Android 端末は IEEE802.11n における無線接続

• iperf を用いた TCP 通信を 10 秒行い, 15 回の平均を算出

MN

DNS GN

DC RS

Virtual Machine

NAT

GN

NAT

測定を行った 4 パターン

・ NTMobile 未実装のエンドエンド通信 ・ NAT にポートマッピングの設定

・NTMobileを利用した通信

・エンドエンド通信 ( 経路最適化後 )

・ RS-S 経由 ( 異なる NAT 配下の MN/CN) ・ RS-N 経由 (MN と一般端末との通信 )

スループット測定結果 [Mbps]

1000BASE-T IEEE802.11n

NTMobile 未実装 エンドエンド RS-S 経由 RS-N 経由

暗号化なし 45.46 43.25 43.24 43.65

暗号化あり - 38.48 38.57 41.28

暗号化による低下率 - 11.03% 10.80% 5.43%

(27)

登録処理と Keep Alive

• 登録処理

– NTM 端末の起動時に DC に対して行う – 自身の位置情報を登録

• Keep Alive

– 登録終了後 MN ~ DC MN 間で定期的にメッセージのやり取りを行う – 制御メッセージ用の通信経路を確保

MN NAT MN

NTM Registration Request

NTM Registration Response 端末情報

登録

NAT エントリ 維持

DC MN

Keep Alive

DB に MN の

情報を登録

MN の VIP を

通知

(28)

トンネル通信の様子 (MN から CN)

• アプリケーションは仮想 IP アドレスを用いて通信

• カーネルではカプセル化 / デカプセル化を行う

Original IP Header

Outer IP Header CN:通信相手端末

RIP X :端末 X の実 IP アドレス VIP X :端末 X の仮想 IP アドレス

Application Kernel

MN

Kernel Application

CN

VIP MN →VIP CN

VIP MN →VIP CN

RIP MN →RIP CN VIP MN →VIP CN

UDP Tunnel デカプセル化

アプリケーションは仮想 IP を用いたパケットを作成

仮想 IP 宛パケットを

実 IP でカプセル化

(29)

トンネル構築シーケンス ( 直接通信 )

• DNS 問合せをトリガーとして動作開始

– MN が DC MN に経路指示と名前解決を要求

• NS レコードを利用して DC CN を探索

NTM Direction Request DNS 問合せ

DNS Request for NS Record 経路指示 / 名前解決要求

DNS Response for NS Record FQDN CN

NS レコード探索

MN :通信開始側 NTM 端末 CN :通信相手側 NTM 端末

MN DC MN DC CN

(30)

トンネル構築シーケンス ( 直接通信 )

DNS Request for TXT Record

• 相手端末を管理する DNS が NTMobile に対応しているか判断

– DC か一般の DNS サーバを判断

• DC どうしで直接通信し端末情報を取得

DNS Response for TXT Record

NTM Information Request

NTM Information Response CN の端末情報

の問い合わせ TXTレコード の問い合わせ

取得した TEXT から CN を管理する DNS は DC と判断

DC MN DC CN

(31)

トンネル構築シーケンス ( 直接通信 )

MN NAT MN DC MN DC CN CN

NTM Route Direction

NTM Tunnel Request

NTM Tunnel Response 通信経路の指示

トンネル構築要求

UDP トンネル構築

(32)

トンネル構築シーケンス (RS-N 経由 )

• DNS 問合せをトリガーとして動作開始

– MN が DC MN に経路指示と名前解決を要求

• NS レコードを利用して DNS GN を探索

MN DC MN

NTM Direction Request DNS 問合せ

DNS GN

経路指示 / 名前解決要求 FQDN GN

NS レコード探索

DNS Request for NS Record

DNS Response for NS Record

GN :通信相手の一般端末

DNS GN : GN を管理する DNS

サーバ

(33)

トンネル構築シーケンス (RS-N 経由 )

DC MN

DNS Request/Response for TXT Record

• 相手端末を管理する DNS が NTMobile に対応しているか判断

– DC か一般の DNS サーバを判断

• 直接 A/AAAA レコードの問合せ

DNS Request/Response for A Record

DNS Request/Response for AAAA Record GN の端末情報

の問い合わせ TXT レコード の問い合わせ

取得した TEXT から DNS GN は一般の DNS と判断

DNS GN

(34)

トンネル構築シーケンス (RS-N 経由 )

MN NAT MN DC MN RS-N GN

NTM Relay Direction NTM Relay Response NTM Route Direction

NTM Tunnel Request

NTM Tunnel Response VIP GN を用意

通信中継を指示

• 一般端末に対応する仮想 IP アドレス (VIP GN )

– DC に割り振られているアドレス空間の範囲から選択, MN と RS-N に通知 – MN は VIP GN を通信相手の仮想 IP アドレスとして認識

通信経路を指示

(35)

トンネル通信の様子 (MN から GN)

MN NAT MN RS-N GN

• MN ~ RS-N 間, RS-N ~ GN 間のパケットの様子

• RS-N はパケットをカプセル化 / デカプセル化 + アドレス変換

– GN は通信相手を RS-N と認識

RIP MN →RIP RS VIP MN →VIP GN

RIP NAT →RIP RS VIP MN →VIP GN

RIP RS →RIP GN RS-N に向けて送信 送信元をNAT MN として

RS-N へ送信

デカプセル化 アドレス変換

Original IP Header

Outer IP Header RIP X :端末Xの実IPアドレス

VIP X :端末Xの仮想IPアドレス

(36)

トンネル構築シーケンス (RS-S 経由 )

MN NAT MN DC MN RS-S DC CN NAT CN CN

NTM Direction Request Keep Alive

Name Resolution NTM Relay Direction

NTM Route Direction

NTM Tunnel Request/Response

• DC CN ~ CN 間は Keep Alive で NAT エントリを保持

• MN ~ RS-S , RS-S ~ CN 間でトンネルを構築

(37)

トンネル構築シーケンス (IPv4/IPv6 間 )

MN DC MN RS-S DC CN NAT CN CN

NTM Direction Request Keep Alive

Name Resolution NTM Relay Direction

NTM Route Direction

NTM Tunnel Request/Response

Virtual IPv4 Real IPv6

IPv6 Network Dual Stack Network IPv4 Network

Virtual IPv4

Real IPv4

(38)

トンネル通信の様子 (RS-S 経由 )

MN NAT MN RS-S CN

• MN ~ RS-S 間, RS-S ~ CN 間のパケットの様子

• RS-S は IPv4 同士の通信の場合アドレス変換のみ

Original IP Header Outer IP Header

RIP MN →RIP RS VIP MN →VIP CN

RIP X :端末Xの実IPアドレス VIP X :端末 X の仮想 IP アドレス

NAT CN

RIP NAT →RIP RS VIP MN →VIP CN

RIP RS →RIP NAT VIP MN →VIP CN

RIP RS →RIP CN VIP MN →VIP CN RS-S に向けて送信 外側 IP ヘッダの送信

元をアドレス変換

外側IPヘッダの送信元 / 宛先をアドレス変換

アドレス変換後

CN に向けて送信

(39)

ハンドオーバ時の動作 (RS-S 経由 )

• エンドエンド通信中に MN が NAT 配下にハンドオーバ

– DC MN に対してアドレス情報更新とトンネル再構築を依頼

• MN ~ RS-S , RS-S ~ CN 間でトンネル構築

DC MN RS-S

RS-S 経由のトンネル を構築

MN CN

(after move) Handover

トンネル再構築とアドレス 情報更新を依頼

通信の中継を指示

MN

(before move)

(40)

ハンドオーバ時の動作 (RS-N 経由 )

• MN が異なる NAT 配下にハンドオーバ

– DC MN に対してアドレス情報更新とトンネル再構築を依頼

• MN ~ RS-N 間でトンネル再構築

MN

(before move)

GN

DC MN DNS GN RS-N

NAT NAT

MNとGNはRS-N経由で通信

(41)

ハンドオーバ時の動作 (RS-N 経由 )

MN

(before move)

MN

(after move)

GN

DC MN DNS GN RS-N

NAT NAT

Handover

トンネルの再構築とアドレス 情報の更新を依頼

• MN が異なる NAT 配下にハンドオーバ

– DC MN に対してアドレス情報更新とトンネル再構築を依頼

• MN ~ RS-N 間でトンネル再構築

通信の中継を指示

(42)

ハンドオーバ時の動作 (RS-N 経由 )

MN

(before move)

MN

(after move)

GN

DC MN DNS GN RS-N

NAT NAT

移動後の MN ~ GN 間で RS-N を経由した通信

Handover

• MN が異なる NAT 配下にハンドオーバ

– DC MN に対してアドレス情報更新とトンネル再構築を依頼

• MN ~ RS-N 間でトンネル再構築

(43)

Netfilter の概要

• 複数のチェインで構成

– チェイン:パケットを操作するルールのリスト

– 各チェインでルールにマッチするか調べ,次のチェインへ渡す

– PREROUTING と LOCAL_OUT でフックし, NTMobile の処理を行う

PREROUTING

LOCAL_OUT

POSTROUTING

Real IF LOCAL_IN

FORWARD

ルーティング ルーティング

Local Process

宛先 NAT 送信元 NAT フック

フック

(44)

アドレス変換の様子 (MN からのパケット )

• 宛先アドレス変換時に TCP チェックサムを再計算

– Netfilter のチェックサム再計算時に宛先 NAT が考慮されていないため

• POST_ROUTING にアドレス変換のルールを設定

– 送信元が仮想 IP アドレスのパケットを送信元 NAT

Netfilter NTM Kernel Module

PRE_ROUTING

POST_ROUTING

Encapsulation

Real IF 送信元アドレス変換

NAT テーブル生成

LOCAL_OUT

デカプセル化後宛先 アドレス変換

TCP チェックサム再計算

Capsulated Packet

Original Packet

Decapsulation

(45)

NTM Kernel Module Encapsulation

アドレス変換の様子 (GN からのパケット )

• 送信時に作られた NAT テーブルに従って DNAT

• LOCAL_OUT で宛先が仮想 IP アドレスであるとフック

– 送信元 NAT してカプセル化した後 LOCAL_OUT に戻す

Netfilter

Real IF

LOCAL_OUT

送信元アドレス 変換後カプセル化 NAT テーブルに従って

宛先アドレス変換

Capsulated Packet Original Packet

PRE_ROUTING Decapsulation

POST_ROUTING

(46)

関連研究

• LIN6(Location Independent Networking for IPv6)

– IPv6 アドレスをノード識別子と位置指示子の 2 種類に分離 – ノード識別子と IP アドレスの対応を位置管理装置で管理 – 課題点

• アドレス空間が半分になるためアドレス利用効率が低下

• アドレス空間不足であるため IPv4 に適用が困難

• MAT(Mobile Support Architecture for Technologies)

– ノード識別子と位置指示子の 2 つのアドレスを定義

– 両者の対応関係を管理装置で管理し,両者の間でアドレス変換 – 課題点

• NAT を跨る移動を想定していないため適用範囲が狭い

(47)

関連研究との比較

MIPv4 MIPv6 DSMIP LIN6 MAT UPMT NTM

特殊な装置の存在 ○ ○ ○ ○ ○ ○ ○

中継装置の分散配置 ○ ○ × △ *1 - △ *2 ○ 一般端末との通信 ○ ○ ○ ○ △ *3 ○ ○

NAT 越え ○ - ○ - × ○ ○

IPv4/IPv6 混在対応 × × ○ × × × ○

経路最適化 × ○ △ *4 - - ○ ○

*1 : MA をプロキシとして拡張した場合の分散配置は不明

*2 :予定なのか実現できているかどうかは不明

*3 :モバイルルータを導入する必要がある

*4 : IPv4 環境では不可

(48)

Relay Table

属性名 登録タイミング 内容 備考

Path ID Relay Direction PID MN-CN 端末間の経路を示すPath ID

Temp Key Relay Direciton Key MN-RS トンネル構築用一時鍵 (MN-RS 間 ) Virtual IP(MN) Relay Direction VIP MN MN の仮想 IP アドレス

Real IP(GN) Relay Direction RIP GN 一般端末の実 IP アドレス

Virtual IP(GN) Relay Direction VIP GN 一般端末に対応する仮想 IP アドレス Common Key Tunnel Request KEY MN-RS トンネル通信用共通鍵 (MN-RS 間 ) Tunnel IP Tunnel Request RIP NAT_MN 配下ノードに到達する IP アドレス Tunnel Port Tunnel Request Port NAT_MN 配下ノードに到達するポート番号

• RS が転送に必要な情報を保持するテーブル

• RS-N を利用する場合の Relay Table のエントリ一覧

– NTM 端末が一般端末と通信を行う場合

(49)

RS の選択 (RS-S を利用する場合 )

• MN ~ RS 間のホップ数を調査,ホップ数が最小となる RS を選択

• 端末情報登録処理と平行してホップ数調査を行う

MN NAT MN DC RS-S CN

NTM Relay Direction

NAT CN

Optimal RS-S Selection NTM Direction Request

NTM Relay Response NTM Route Direction

最適な RS-S へ通信中継指示

RS-Sが必要と判断

最適な RS-S を選択

(50)

仮想 IP アドレスの運用方法

• MN/CN は VIP を自律的に生成,自身と相手の VIP として認識

• CN は端末間の経路を示す PathID をキーに VIP を検索

Original IP Header Outer IP Header

Application Kernel

MN

Kernel Application

CN

VIP A →VIP B

VIP A →VIP B

RIP MN →RIP CN VIP X →VIP Y

UDP Tunnel

デカプセル化 アドレス変換 VIP 宛パケットを

RIP でカプセル化

VIP A : MN が管理する自身の RIP

VIP B : MN が管理する相手の VIP

VIP X :CNが管理する自身のRIP

VIP Y :CNが管理する相手のVIP

(51)

経路最適化

• 冗長な経路から最短経路に経路を最適化する

• MN と CN がパケットを投げ合う

MN NAT MN RS-S NAT CN CN

NTM Tunnel Request NTM Tunnel Request

NTM Tunnel Response 経路更新

経路切り替え RS-S 経由の

経路

(52)

SPI(Stateful Packet Inspection)

MN

MN

CN Private Network

ハンドオーバ

SPIフィルタリングによって破棄

• パケットフィルタリング技術

• 多くの NAT ルータに実装されている

• TCP 通信の場合,シーケンス番号などの整合性によってパ

ケットが破棄される可能性がある

(53)

RS-N の概要

• アドレス変換型 RS(RS-N : Relay Server type NAT)

– 通信相手端末が GN で, MN が移動しながら通信をしたい場合に利用

• MN ~ RS-N 間でトンネルを構築

– MN ~ GN 間の通信は RS-N を経由

– MN が移動した場合は MN ~ RS-N 間のトンネルを再構築 – GN は通信相手を RS-N と認識することで通信を継続できる

RS-N MN

GN

MN Handover

通信相手を RS-N と認識 MN 移動前の通信 MN 移動後の通信

通信を中継

トンネル再構築

参照

関連したドキュメント

攻撃者は安定して攻撃を成功させるためにメモリ空間 の固定領域に配置された ROPgadget コードを用いようとす る.2.4 節で示した ASLR が機能している場合は困難とな

このような情念の側面を取り扱わないことには それなりの理由がある。しかし、リードもまた

であり、最終的にどのような被害に繋がるか(どのようなウイルスに追加で感染させられる

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

は,医師による生命に対する犯罪が問題である。医師の職責から派生する このような関係は,それ自体としては

それに対して現行民法では︑要素の錯誤が発生した場合には錯誤による無効を承認している︒ここでいう要素の錯

○安井会長 ありがとうございました。.

 筆記試験は与えられた課題に対して、時間 内に回答 しなければなりません。時間内に答 え を出すことは働 くことと 同様です。 だから分からな い問題は後回しでもいいので