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

アダプタの実現と評価

N/A
N/A
Protected

Academic year: 2021

シェア "アダプタの実現と評価"

Copied!
45
0
0

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

全文

(1)

NTMobile

アダプタの実現と評価

小島 光野

†∗

,尾久 史弥

,鈴木 秀和

,内藤 克浩

,渡邊 晃

(

名城大学,

愛知工業大学

)

Realzation of NTMobile Adapter and its evaluation

Koya Kojima, Fumiya Ogyu, Hidekazu Suzuki, Katsuhiro Naito, Akira Watanabe (Meijo University,Aichi Insutitute of Technology University)

1

はじめに

現状のネットワークは,

NAT

越え問題や,通話中にネット ワークが切り替えることができないなど様々な問題を抱えてい る.これらの問題を解決する技術として

NTMobile

がある

[1]

NTMobile

はエンド端末にアプリケーションを実装すること

によって,ネットワークの制約を意識することなくエンドツー エンドの通信を可能にする技術である.しかし,組込み型の家 電や安定性を重視するサーバなど,

NTMobile

を実装すること ができない装置が存在する.このような装置に

NTMobile

の機 能を与えるための方法として

NTMobile

アダプタ

(NTMA)

を 提案する.本稿では受信を待ち受ける側の装置

(

レスポンダ側

)

NTMA

を実現したので報告する.

2 NTMobile

の概要

NTMobile

Direction Coordinator(DC)

NTMobile

の機能 を持つ

NTM

端末から構成される.

DC

は各端末に対してトン ネル構築の指示を出すとともに,

NTM

端末の情報を管理して いる.

NTM

端末が起動すると,

DC

に実IPアドレスを登録し,ま た,

DC

から仮想

IP

アドレスの割り当てを受ける.アプリケー ションは仮想

IP

アドレスに基づいた通信を行い,実際の通信 は実

IP

アドレスでカプセル化される.そのため,ネットワー クの切り替えに伴う実アドレスの変化をアプリケーションに対 して隠蔽することができる.また,

DC

の指示に従ってトンネ ル経路を生成することにより

NAT

越えを実現する.

3

レスポンダ側

NTMA

の動作

Fig.1

に受信を待ち受ける側の装置

(

レスポンダ側

)

NTMA

を設置した場合の通信シーケンスを示す.

DC

はグローバル空 間に存在する.

NTM

端末は多くの場合プライベート空間に存 在するが,

Fig.1

では

NAT

は省略されている.また,一般端末 を

GN(General Node

)とする.

GN

にはアプリケーションサー バや組込み型家電機器などが想定される.

NTMA

NIC

2

枚持ち,ネットワークとGNの間に直列に設置する.

Fig.1

の前提として,

NTM

端末と

NTMA

は仮想アドレスを 取得済みである.また,

NTMA

には

GN

の名前と

IP

アドレス の関係を登録しておく必要がある.

GN

の名前は

NTMobile

端 末であることがわかるような名前とする.

GN

の実

IP

アドレス には

NTMA

DC

から取得した仮想アドレスを設定しておく.

Fig.1

を用いて通信シーケンスの流れを説明する.まず,

NTM

端末から

DC

Direction Request(

経路指示要求

)

が送ら れる.次に

DC

Route Direction(

経路指示

)

NTMA

に送 信する.

NTMA

からの応答を受け取ると,同じく経路指示を

NTM

端末へ送信する.経路指示を受け取った

NTM

端末は経

Fig. 1 Sequence of the proposed system

路指示に従い,

NTMA

Tunnel Request(

トンネル構築要求

)

を 送信する.

NTMA

から

Tunnel Response

が返され,

UDP

トン ネルが構築される.トンネル経路は

NTM

端末の設置場所によ り異なるが,

Fig.1

では最も簡単な例を示している.以降の通 信はすべてトンネル通信で行われる.

トンネル通信では,

NTM

端末のアプリケーションと

GN

に 割り当てられた仮想

IP

アドレスによる通信を実際の

IP

ヘッダ を付与してカプセル化する.

パケットの

IP

アドレスの変化は以下のとおりである.

NTM

端末で送受信されるパケットは,送信元,宛先

IP

アドレスを自 身の仮想

IP

アドレスと

GN

の仮想

IP

アドレスとしたパケット を,

NTM

端末と

NTMA

の実

IP

アドレスでカプセル化したも のである.

NTMA

ではカプセル化とデカプセル化処理を行い,

仮想アドレスのパケットをそのまま中継する.

Fig.1

の動作を検証し,正しく動作することを確認した.ま

た,

NTMA

の中継時間はわずかであることを確認した.

4

まとめ

NTMobile

を実装できない装置に

NTMobile

機能を与える

NTMobile

アダプタをレスポンダ側に設置した場合について提

案した.

文 献

[1] 上醉尾.他:IPv4/IPv6混在環境での移動透過性を実現するNTMobileの 実装と評価情報処理学会論文誌Vol.54,No.10,pp.2288-2299,Oct 2013.

[2] 尾久.他:NTMobileアダプタの実現方式の検討.情報処理学会第79回 全国大会講演論文集Mar 2017

(2)

小島 光野 †, 尾久 史弥 †, 鈴木 秀和 †, 内藤 克浩 ‡, 渡邊 晃 †

† 名城大学 理工学部 情報工学科

‡ 愛知工業大学 情報科学部

(3)

現在のネットワーク → IPv4 ネットワークが主流

IP アドレスの枯渇 → NAT を介したネットワークの構築

IPv6 アドレスの導入

(4)

NAT 越え問題

移動透過性が必要

IPv4/IPv6 の非互換性

(5)

グローバル空間からプライベート空間への通信ができない

Global Network Private Network

NAT 越え問題 ×

NAT

(6)

Network A

Network B

(7)

Network A Network B

(8)

アドレス空間が全く別のもの

直接通信不可能

IPv4 IPv6

(9)

NAT 越え問題

移動透過性が必要

IPv4/IPv6 の非互換性

(10)

NAT 越え問題

移動透過性がない

IPv4/IPv6 の非互換性

3 つの問題点を同時に解決!

(11)

NAT 越え問題

移動透過性がない

IPv4/IPv6 の非互換性

NTMobile

(Network Traversal with Mobility)

(12)

移動透過性の実現と NAT 越え問題の解決を同時に実現する技術

NTM 端末, DC(Direction Coordinator),RS(Relay Server) で構成

「 NTM 端末: MN 」

NTMobileframework(NTMfw)

を実装した端末

「 DC 」

・通信の経路指示

・仮想

IP

アドレスの配布

「 RS 」

・通信の中継

「 NTM 端末 :CN 」

通信相手

Private Network A

Private Network B Global Network

(13)

移動透過性の実現と NAT 越え問題の解決を同時に実現する技術

NTM 端末, DC(Direction Coordinator),RS(Relay Server) で構成

「 NTM 端末: MN 」

NTMobileframework(NTMfw)

を実装した端末

「 DC 」

・通信の経路指示

・仮想

IP

アドレスの配布

「 RS 」

・通信の中継

「 NTM 端末 :CN 」

通信相手

Private Network A

Private Network B Global Network

(14)

移動透過性の実現と NAT 越え問題の解決を同時に実現する技術

NTM 端末, DC(Direction Coordinator),RS(Relay Server) で構成

IPv4 Private Network A

IPv4 Private Network B

IPv4 Global Network

IPv6 Network

Dual Stack Network NTM

端末

NTM

端末

RS DC

(15)

NTMobile をアプリケーションライブラリとしてユーザに提供

(16)

NTMobile 非対応端末では利用できない

Windows

などの

OS

で利用不可

NTMfw を組み込めない場合に通信不可

組込み型の家電

プログラムを書き換えられない

アプリケーションサーバー

安定性を重視することから,新しい機能が追加できない

アプリケーションが NTMobile 通信を意識する必要あり

getaddrinfo( );

socket( );

sendto( );

ntmfw_getaddrinfo( );

ntmfw_socket( );

ntmfw_sendto( );

)

既存アプリケーション 例

) NTMobile

アプリケーション

(17)

NTMobile 非対応端末では利用できない

Windows

などの

OS

で利用不可

NTMfw を組み込めない場合に通信不可

組込み型の家電

プログラムを書き換えられない

アプリケーションサーバー

安定性を重視することから,新しい機能が追加できない

アプリケーションが NTMobile 通信を意識する必要あり

getaddrinfo( );

socket( );

sendto( );

ntmfw_getaddrinfo( );

ntmfw_socket( );

ntmfw_sendto( );

)

既存アプリケーション 例

) NTMobile

アプリケーション

NTM アダプタ( NTMA) の提案

(18)

一般端末 (GN:General Node) に NTMA を隣接設置

GN

の通信を

NTMobile

通信に変換

GN

のプログラムに手を加えず通信することができる

送信側 = イニシエータ側

受信側 = レスポンダ側

Internet

Internet

Private Network Private Network

NTMA

NTMA

GN

GN NTM

端末

NTM

端末

NAT

NAT

一般通信:

NTM

通信:

(19)

一般端末 (GN:General Node) に NTMA を隣接設置

GN

の通信を

NTMobile

通信に変換

GN

のプログラムに手を加えず通信することができる 一般通信:

NTM

通信:

受信側 = レスポンダ側

Internet

Private Network

NTMA

NTM

端末

NAT GN

(20)

NIC(Network Interface Card) を 2 枚用意

NIC0

をインターネット側にブリッジ接続

NIC1

GN

にブリッジ接続

NIC0

NIC1 DC

NTM端末

レスポンダ側

NTMA NAT

GN Global Network

Private Network

(21)

MN(NTM

端末

) CN(NTM

端末

)

VIP:VIP_CN RIP:RIP_CN VIP:VIP_MN

RIP:RIP_MN

RIP:

端末の実

IP

アドレス :

Data flow VIP:

端末の仮想

IP

アドレス :

Packet flow

Application NTMfw NTMfw Application

(22)

MN(NTM

端末

) CN(NTM

端末

)

VIP:VIP_CN RIP:RIP_CN VIP:VIP_MN

RIP:RIP_MN

VIP_MN→VIP_CN

カプセル化

RIP:

端末の実

IP

アドレス :

Data flow VIP:

端末の仮想

IP

アドレス :

Packet flow

Application NTMfw NTMfw Application

(23)

MN(NTM

端末

) CN(NTM

端末

)

VIP:VIP_CN RIP:RIP_CN VIP:VIP_MN

RIP:RIP_MN

VIP_MN→VIP_CN

VIP_MN→VIP_CN RIP_MN→RIP_CN

カプセル化

RIP:

端末の実

IP

アドレス :

Data flow VIP:

端末の仮想

IP

アドレス :

Packet flow

Application NTMfw NTMfw Application

(24)

MN(NTM

端末

) CN(NTM

端末

)

VIP:VIP_CN RIP:RIP_CN VIP:VIP_MN

RIP:RIP_MN

VIP_MN→VIP_CN

VIP_MN→VIP_CN

RIP_MN→RIP_CN VIP_MN→VIP_CN

カプセル化 デカプセル化

RIP:

端末の実

IP

アドレス :

Data flow VIP:

端末の仮想

IP

アドレス :

Packet flow

Application NTMfw NTMfw Application

(25)

NTMobileアプリケーション

NTM

ソケット

API

トンネル テーブル

仮想

IP

スタック

パケット操作 モジュール ネゴシエーション

モジュール

BSD

ソケット

API

NIC NTMfw

データ

仮想

IP

仮想

TCP

データ

IP UDP NTM

仮想

TCP/IP MAC NTM

仮想

TCP/IP MAC

NTM

ソケット

API

で記述されたアプリケーション

NTMobile

アプリケーション

(26)

NTMobile

アプリケーション

NTM

ソケット

API

トンネル テーブル

仮想

IP

スタック

パケット操作 モジュール ネゴシエーション

モジュール

BSD

ソケット

API

NIC NTMfw

データ

仮想

IP

仮想

TCP

データ

IP UDP NTM

仮想

TCP/IP MAC NTM

仮想

TCP/IP MAC

BSD

ソケット

API

互換のソケット

API

・アプリケーションデータを仮想

IP

スタックへ渡す

NTM

ソケット

API

(27)

NTMobile

アプリケーション

NTM

ソケット

API

トンネル テーブル

仮想

IP

スタック

パケット操作 モジュール ネゴシエーション

モジュール

BSD

ソケット

API

NIC NTMfw

データ

仮想

IP

仮想

TCP

データ

IP UDP NTM

仮想

TCP/IP MAC NTM

仮想

TCP/IP MAC

・アプリケーションデータから仮想

TCP/IP

パケットを生成

仮想

IP

スタック

(28)

NTMobile

アプリケーション

NTM

ソケット

API

トンネル テーブル

仮想

IP

スタック

パケット操作 モジュール ネゴシエーション

モジュール

BSD

ソケット

API

NIC NTMfw

データ

仮想

IP

仮想

TCP

データ

IP UDP NTM

仮想

TCP/IP MAC NTM

仮想

TCP/IP MAC

NTM

ヘッダの付与

MAC

付与

/

検証等

パケット操作モジュール

(29)

NTMobile

アプリケーション

NTM

ソケット

API

トンネル テーブル

仮想

IP

スタック

パケット操作 モジュール ネゴシエーション

モジュール

BSD

ソケット

API

NIC NTMfw

データ

仮想

IP

仮想

TCP

データ

IP UDP NTM

仮想

TCP/IP MAC NTM

仮想

TCP/IP MAC

C

言語のソケット

API

・データパケットの送受信(カプセル化

/

デカプセル化)

NTM

ソケット

API

(30)

一般端末 (GN:General Node) に NTMA を隣接設置

GN

の通信を

NTMobile

通信に変換

GN

のプログラムに手を加えず通信することができる 一般通信:

NTM

通信:

受信側 = レスポンダ側

Internet

Private Network

NTMA

NTM

端末

NAT GN

(31)

MN(NTM端末) GN

RIP:VIP_NTMA RIP:RIP_MN

VIP:VIP_MN RIP:RIP_NTMA NTMA

Application

RIP:

端末の実

IP

アドレス :

Data flow VIP:

端末の仮想

IP

アドレス :

Packet flow

NTMfw R-NTMfw NTMA

Application Application

VIP_MN→VIP_NTMA

(32)

MN(NTM端末) GN

RIP:VIP_NTMA RIP:RIP_MN

VIP:VIP_MN RIP:RIP_NTMA NTMA

Application

RIP:

端末の実

IP

アドレス :

Data flow VIP:

端末の仮想

IP

アドレス :

Packet flow

NTMfw R-NTMfw NTMA

Application Application

VIP_MN→VIP_NTMA

VIP_MN→VIP_NTMA RIP_MN→RIP_NTMA

(33)

MN(NTM端末) GN

RIP:VIP_NTMA RIP:RIP_MN

VIP:VIP_MN RIP:RIP_NTMA NTMA

Application

RIP:

端末の実

IP

アドレス :

Data flow VIP:

端末の仮想

IP

アドレス :

Packet flow

NTMfw R-NTMfw NTMA

Application Application

VIP_MN→VIP_NTMA VIP_MN→VIP_NTMA

VIP_MN→VIP_NTMA RIP_MN→RIP_NTMA

(34)

MN(NTM端末) GN

RIP:VIP_NTMA RIP:RIP_MN

VIP:VIP_MN

VIP_MN→VIP_NTMA RIP:RIP_NTMA

NTMA

Application

RIP:

端末の実

IP

アドレス :

Data flow VIP:

端末の仮想

IP

アドレス :

Packet flow

NTMfw R-NTMfw NTMA

Application Application

VIP_MN→VIP_NTMA VIP_MN→VIP_NTMA

VIP_MN→VIP_NTMA RIP_MN→RIP_NTMA

(35)

34

R-NTMfw

R-NTM

ソケット

API

トンネルテーブル パケット操作 モジュール

ネゴシエーション モジュール

BSD

ソケット

API NIC

R-NTMfw NTMA

アプリケーション

仮想

IP

スタック

• NTMfw

から仮想

IP

スタックの処理をスキップ

この処理をしない

(36)

35

RAW

ソケット

生のパケットをダイレクトに送受信

R-NTM

ソケット

API

トンネルテーブル パケット操作 モジュール

ネゴシエーション モジュール

BSD

ソケット

API NIC

R-NTMfw NTMA

アプリケーション

RAW

ソケット

TCP/IP

TCP/IP

GN

自インターフェース宛/以外のパケットも送受信できるように設定

(37)

36

BSD

ソケット

API

• NTMfw

と同様の処理

トンネルテーブル パケット操作 モジュール

ネゴシエーション モジュール

BSD

ソケット

API NIC

NTMA

アプリケーション

IP UDP NTM

仮想

TCP/IP MAC

仮想

IP

仮想

TCP

データ

NTM

仮想

TCP/IP MAC

R-NTM

ソケット

API R-NTMfw

仮想

TCP/IP

(38)

37

パケット操作モジュール

• NTM

ヘッダの処理,

MAC

検証

仮想IPスタックの処理を飛ばしてR-NTMfwへ処理を渡す

トンネルテーブル パケット操作 モジュール

ネゴシエーション モジュール

BSD

ソケット

API NIC

NTMA

アプリケーション

IP UDP NTM

仮想

TCP/IP MAC

仮想

IP

仮想

TCP

データ

NTM

仮想

TCP/IP MAC

R-NTM

ソケット

API R-NTMfw

仮想

TCP/IP

(39)

38

R-NTMfw

ソケット

API

トンネルテーブル パケット操作 モジュール

ネゴシエーション モジュール

BSD

ソケット

API NIC

NTMA

アプリケーション

IP UDP NTM

仮想

TCP/IP MAC

仮想

IP

仮想

TCP

データ

NTM

仮想

TCP/IP MAC

R-NTM

ソケット

API R-NTMfw

仮想

TCP/IP

• TCP/IP

が付与されたままのパケットを

NTMA

アプリケーション

へ流す

(40)

39

NTMA

アプリケーション

トンネルテーブル パケット操作 モジュール

ネゴシエーション モジュール

BSD

ソケット

API NIC

NTMA

アプリケーション

IP UDP NTM

仮想

TCP/IP MAC

仮想

IP

仮想

TCP

データ

NTM

仮想

TCP/IP MAC

R-NTM

ソケット

API R-NTMfw

仮想

TCP/IP

• GN

との通信は,

RAW

ソケットで送受信

(41)

40

RAW

ソケット

生のパケットをダイレクトに送受信

R-NTM

ソケット

API

トンネルテーブル パケット操作 モジュール

ネゴシエーション モジュール

BSD

ソケット

API NIC

R-NTMfw NTMA

アプリケーション

RAW

ソケット

TCP/IP

TCP/IP

GN

自インターフェース宛/以外のパケットも送受信できるように設定

(42)

提案方式を Linux 上に実装

レスポンダ側に

NTMA

を配置した通信を確認した

環境

仮想マシン上に

NTMA

を実装

仮想マシン上に

NTM

端末,

DC

を構築

Windows

実機の

GN

受信側 = レスポンダ側

Internet

Private Network

NTMA

NTM

端末

NAT GN

(43)

NTMA を評価

測定環境

◦ 1000BASE-T

の有線環境

◦ 仮想マシン上に NTMA を実装

◦ 仮想マシン上に NTM 端末 ,DC を構築

◦ Windows 実機の GN

NTMA(Virtual Machine) OS Ubuntu 14.04

CPU Intel Corei7-930(2.80GHz) Core 1コア

Memory 2GB

GN NTMA DC NTM端末

Virtual Machine(Vmware Workstation 12 Player)

Ethernet0 Ethernet1 NTM端末

NAT NTMA GN

Internet

Private Network 1000BASE-T

(44)

43

NTMA DC

GN

NTM端末

Virtual Machine

2.34ms

パケット処理時間

2.34ms

応答パケット 処理時間

1.45ms

パケット送信

UDPトンネル通信

パケット処理時間

NTMA

がパケット処理に 要する時間は 僅か

10 回の平均値

UDPトンネル通信

パケット送信 応答パケット処理時間

1.45ms

※Wireshark

により測定

(45)

NTMA の実現方式の検討

一般通信を

NTMobile

通信に変換

一般端末のプログラムに手を加えない

今後の方針

GN

に割り当てる

IP

アドレスの検討

Fig. 1 Sequence of the proposed system

参照

関連したドキュメント

「文字詞」の定義というわけにはゆかないとこ ろがあるわけである。いま,仮りに上記の如く

チョウダイは後者の例としてあげることが出来

この数字は 2021 年末と比較すると約 40%の減少となっています。しかしひと月当たりの攻撃 件数を見てみると、 2022 年 1 月は 149 件であったのが 2022 年 3

事前調査を行う者の要件の新設 ■

(7)

以上の基準を仮に想定し得るが︑おそらくこの基準によっても︑小売市場事件は合憲と考えることができよう︒

※「TAIS 企業コード」欄は入力不要です。但し、過去に TAIS 登録していたものの、現在は登録を削除している場

入力用フォーム(調査票)を開くためには、登録した Gmail アドレスに届いたメールを受信 し、本文中の URL