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

渡邊研究室 173426006 尾久史弥

N/A
N/A
Protected

Academic year: 2021

シェア "渡邊研究室 173426006 尾久史弥"

Copied!
40
0
0

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

全文

(1)

エンドノードを変更することなく IP ネットワークの制約を 除去する通信システムの提案と実装

173426006 尾久 史弥

渡邊研究室

1. はじめに

IPネットワークは通信インフラとして定着しているが,

様々な制約があり,自由に通信ができないという課題があ る.そこで,自由に通信を開始できる通信接続性とネット ワークを切り替えても通信を継続できる移動透過性が求 められている.通信接続性と移動透過性が実現できる技術 として,DSMIPv6(Dual Stack Mobile IPv6)HIP(Host Identity Protocol)NTMobile(Network Traversal with Mobility)[1]が提案されている.しかし,DSMIPv6HIP は,カーネル空間を改造することが前提であるため,普及 がすすまないという課題がある.NTMobileは,通信ライ ブラリであるNTMfw(NTMobile framework library)[2]

を用いて新規にアプリケーションを開発することで,カー ネル空間を改造しないで利用できるが,既存のアプリケー ションを利用する場合は,ソケットAPIを書き換える必要 がある.そこで本稿では,NTMobileの機能をアプリケー ションとして実現し,デバイスにインストールするだけで 既存のアプリケーションをそのまま利用できるTUN利用 NTMobileを提案する.

2. NTMobile

2. 1 NTMobileの概要

NTMobileは,NTMobileの機能を持つNTM端末,実 IPアドレスと仮想IPアドレスの管理,および通信経路を 指示するDC(Direction Coordinator),直接通信が行えな い場合にパケットの中継を行うRS(Relay Server)により 構成される.

NTMobileではDCNTM端末に対して,位置に依存 しない仮想IPアドレスを割り当て,アプリケーションは 仮想IPアドレスに基づいた通信を行う.アプリケーション によって生成された仮想IPアドレスに基づくパケットは,

NTMobileの機能により実IPアドレスでカプセル化され,

通信相手に送信される.通信中に端末がネットワークを切 り替えると実IPアドレスが変化するが,仮想IPアドレス は変化しないので通信を継続できる.DCDNSサーバ の機能を包含し,通信相手のNTM端末の名前解決を行う とともに,NTM端末に対して最適な通信経路の指示を行 う.NTM端末はDCに対して,定期的にKeep Alive 行っており,DCからの通信経路の指示をいつでも受信す ることができる.DCNTM端末に対して適切な経路を 指示することにより,グローバル空間からプライベート空 間に向けて通信を開始することができる.端末同士が直接 通信ができない場合は,RSを経由した経路をDCが指示 する.

2. 2 NTMfwライブラリ

NTMfwは,NTMobileの機能を実現する通信ライブラ リである.BSD(Barkeley Software Distribution)ソケット APIと互換性のあるNTMobile用のNTMソケットAPI を提供しており,ユーザは,NTMfwを一般通信ライブラ リのように利用してプログラムを記述することができる.

新規に開発するアプリケーションは,NTMfwを利用して,

Application TUN type NTMobile

Virtual NIC (TUN) Real NIC

Data Virtual IP Data NTM Virtual IP Data MAC

Network Real IP UDP NTM Virtual IP Data HMAC

User Space

Kernel Space

1: TUN利用型NTMobileのカプセル化の様子

Virtual NIC (TUN) Real NIC

Application

DNS Resolver

NTMobile Signaling Module Packet

Manipulaton Module

DNS Response Packet Generater Packet

Forworder

User Space Kernel Space

NTMfw TUN type NTMobile

Packet Checker Datagram socket

Virtual IP packet (SRC/DST = VIP) Capsulated packet (SRC/DST = RIP) Signaling for creating tunnel DNS name resolution Data flow

2: TUN利用型NTMobileのモジュール構成

アプリケーションを実装する.しかし,既存のアプリケー ションは,プログラムの通信処理部をBSDソケットAPI からNTMソケットAPIに書き換える必要がある.

2. 3 NTMfwを利用する時の課題

アプリケーションを新規開発するには,仕様の検討や実 装など,それなりの時間を要する.また,既存のアプリケー ションを修正する場合,一般のユーザがソケットAPIを書 き換えるのは困難である.そもそも,プログラムのソース コードが公開されていない場合は,アプリケーションを改 造できない.このように,NTMfwを利用する方法は,開 発者への負担が大きく,広く普及することが困難になる可 能性がある.

3. 提案方式

端末に提案方式をインストールすることで,既存のアプ リケーションをそのまま利用できるTUN利用型NTMobile を提案する.

3. 1 概要

TUNは多くのOSで提供されている機能で,IPパケッ トをカーネル空間からユーザ空間へフックすることができ,

IPパケットの操作とカプセル化を実現できるインタフェー スである.TUNインタフェースに仮想IPアドレスを割り 当てることで,アプリケーションが送信する仮想IPアドレ ス宛のパケットは,全てTUNインターフェースにルーティ ングされる.また,NTMobileでは名前解決要求をシグナ リング処理のトリガとするため,DNSパケットもTUN

(2)

ンターフェースにルーティングするように設定を行う.図1 TUN利用型NTMobileにおけるカプセル化の様子を示 す.アプリケーションが送信したデータはカーネル内部に 処理が渡され仮想IPパケットが生成される.TUN利用型 NTMobileは,生成された仮想IPパケットをTUNイン タフェースから読み込み,NTMobileの機能によりNTM ヘッダおよびMAC(Message Authentication Code)ヘッ ダを付与する.その後,実インタフェースに向けて送信す ることにより,カーネル内部でUDPによるカプセル化が 行われる.

3. 2 モジュール構成

TUN利用型NTMobileのモジュール構成を図2に示す.

アプリケーションからTUN利用型NTMobileに送信され るパケットは,通信用/DNSパケットの2通りであり,パ ケットチェッカーにより処理が分岐される.DNSパケット の場合は,NTMfwのシグナリングモジュールによりシグ ナリング処理が行われ,処理が成功すると通信相手の仮想 IPアドレスを取得できるので,その仮想IPアドレスを用 いてDNSレスポンスパケット生成機能にてDNS応答パ ケットを生成する.その後,パケットフォワーダーを経由 してアプリケーションに対して名前解決要求の応答を行う.

通信用パケットの場合は,NTMfwのパケット操作機能に 処理が渡され,NTMobileによるヘッダ付与および暗号化 等が行われ,実インタフェースに処理が渡される.

3. 3 TUN利用型NTMobileの動作

3にアプリケーションがTUN利用型NTMobileを利 用してNTMobile通信を利用する際の動作シーケンスを示 す.TUN利用型NTMobileを利用して通信を開始する場 合,アプリケーションはNTM端末のFQDNを指定して DNSクエリパケットを送信する.TUN利用型NTMobile は,DNSクエリパケットを受信してFQDNを解析する.

解析した結果,NTMobile 端末のFQDN である場合は,

NTMobileの機能により通信相手とNTMobileシグナリン グを実行して,トンネル経路を構築するとともに,通信相 手の仮想IPアドレスを取得する.NTMobileシグナリン グ終了後にTUN利用型NTMobileは,取得した仮想IP アドレスとアプリケーションが送信したDNSクエリパケッ トからDNSレスポンスパケットを生成し,アプリケーショ ンに渡す.アプリケーションは,通信相手を仮想IPアドレ スとみなすため,以降の通信は全て仮想IPアドレス宛にパ ケットが送信される.TUN利用型NTMobileは,TUN ンターフェスから仮想IPパケットを読み込み,NTMobile の機能によりNTMヘッダおよびMACヘッダを付与して 実インタフェースに処理を渡す.実インタフェースでは,

UDPでカプセル化して通信相手に送信する.通信相手か ら応答がある場合は,NTMobileの機能によりデカプセル 化して仮想IPパケットを取得する.また,取得した仮想 IPパケットをTUNインターフェースに書き込むことによ り,アプリケーションにデータを渡す.

3. 4 IPフラグメンテーションの課題解決

ネットワークには,1回の転送ごとに送信できるデータ の最大長であるMTU(Maximum Transmission Unit) 決められており,パケット長がMTUを超えるとパケット のフラグメンテーションが発生し,通信効率が低下する.

NTMobileのようにパケットをカプセル化するプロトコル は,プロトコルが付与するヘッダー長によりMTUを超え るという課題がある.

TUN利用型NTMobileでは,TUNンタフェースに適 切なMTUを設定することにより,フラグメンテーション が発生しないようにする.

3. 5 一般通信とNTMobile通信の併用

アプリケーションが一般通信またはNTMobile通信を利 用するかを選択できる.これは,通信開始時の名前解決処 理を,TUN利用型NTMobileと既設のDNSサーバーで分 担することで実現できる.NTMobile通信を利用する場合 は,TUN利用型NTMobileが名前解決処理とNTMobile のシグナリング処理を行い,NTMobile通信を開始する.

一般通信を利用する場合は,既設のDNSサーバーが名前 解決処理を行い,一般通信を開始する.

1: スループットの計測結果

区分 時間(Mbits/s)

TUN利用型NTMobile経由 73.0

一般通信 93.8

Virtual NIC(TUN) Real NIC

TUN type NTMobile Application

DNS query packet (target :NTMobile FQDN)

NTMobile Signaling DNS Response packet

(answer: Virtual IP Address)

Virtual IP packet Application data

Virtual IP packet Application data

Real IP packet (UDP tunnel communication)

Real IP packet (UDP tunnel communication) TUN type NTMobile

DC CN

(NTM Node) MN (NTM Node)

NTMobile Datagram NTMobile Datagram

3: NTMobile通信開始時の動作シーケンス

4. 実装と評価

提案方式の全ての機能をLinux上にC言語で実装し,

IPv4ネットワークにおいて動作検証を行った.動作検証 の結果,デバイスに提案方式をインストールするだけで,

一般通信とNTMobile通信の併用が可能になることを確認 した.

スループットの測定により提案方式の性能評価を行った.

計測結果を表1に示す.提案手法を利用することにより,一 般通信と比べてスループットが22%低下することがわかっ た.提案方式の処理の中にはNTMobileによる暗号化/ 号処理が含まれており,スループットに影響を与えている と考えられる.暗号化/復号処理を行っていても,実用的な 範囲で動作することが分かった.

5. まとめ

本稿では,NTMobileの機能をユーザ空間のアプリケー ションとして実現する方式を提案し,実装と評価を行った.

動作検証により,アプリケーションに対して一切の変更を することなく,NTMobileの機能を利用できることを確認 した.また評価により,充分な性能で動作することを確認 した.今後は,IPv6に関連する動作検証を進め,全ての ネットワーク環境において動作を確認する予定である.

参考文献

[1] 上酔尾一真,鈴木秀和,内藤克浩,渡邊 晃: IPv4/IPv6 混在環境で移動透過性を実現するNTMobileの実装と 評価,情報処理学会論文誌, Vol. 54, No. 10, pp. 2288–

2299 (2013).

[2] 納堂博史,鈴木秀和,内藤克浩,渡邊 晃: エンドツー エンド通信をアプリケーションレベルで可能にする通信 ライブラリの実現と評価,情報処理学会論文誌, (TBD).

(3)

名城大学大学院 理工学研究科 情報工学専攻

渡邊研究室 173426006 尾久史弥

(4)

 IPv4 グローバアルアドレスの枯渇問題

• NAT の導入

• IPv6 アドレスの導入

IPv4/IPv6

Dual-Stack Network

IPv6 Network

Global IPv4 Network

Private

IPv4 Network Private IPv4 Network

• NAT 越え問題

• IPv4/IPv6 の非互換性

• 移動透過性の課題

複雑なネットワーク構成

Server NAT

General Node

(5)

 IPv4 グローバアルアドレスの枯渇問題

• NAT の導入

• IPv6 アドレスの導入

Dual-Stack Network

IPv6 Network

Global IPv4 Network

Private

IPv4 Network Private IPv4 Network

• NAT 越え問題

• IPv4/IPv6 の非互換性

• 移動透過性の課題

複雑なネットワーク構成

Server NAT

General Node

(6)

 IPv4 グローバアルアドレスの枯渇問題

• NAT の導入

• IPv6 アドレスの導入

Dual-Stack Network

IPv6 Network

Global IPv4 Network

Private

IPv4 Network Private IPv4 Network

• NAT 越え問題

• IPv4/IPv6 の非互換性

• 移動透過性の課題

複雑なネットワーク構成

Server NAT

General Node

(7)

 IPv4 グローバアルアドレスの枯渇問題

• NAT の導入

• IPv6 アドレスの導入

Dual-Stack Network

IPv6 Network

Global IPv4 Network

Private

IPv4 Network Private IPv4 Network

• NAT 越え問題

• IPv4/IPv6 の非互換性

• 移動透過性の課題

複雑なネットワーク構成

Server NAT General Node

移動

(8)

 カーネル空間を改造する方式

DSMIPv6 (Dual Stack Mobile IPv6)[1]

HIP (Host Identity Protocol)[2]

 カーネル空間を改造しない方式

NTMobile (Network Traversal with Mobility) [3, 4, 5]

[1] Soliman, H.: Mobile IPv6 Support for Dual Stack Hosts and Routers, RFC 5555 (2009).

[2] Moskowitz, R., Heer, T., Jokela, P. and Henderson, T. R.: Host Identity Protocol Version 2 (HIPv2), RFC 7401 (2015).

[3] 内藤克浩,上酔尾一真,西尾拓也,水谷智大,鈴木秀和,渡邊 晃,森香津夫,小林英雄

:NTMobile における移動透過性の実現と実装,情報処理学会論文誌,Vol. 54, No. 10, pp. 367–3 (2013).

[4] 鈴木秀和,上酔尾一真,水谷智大,西尾拓也,内藤克浩,渡邊 晃

:NTMobile における通信接続性の確立手法と実装,情報処理学会論文誌,Vol. 54, No. 1, pp. 367–379 (2013).

[5]上酔尾一真,鈴木秀和,内藤克浩,渡邊 晃:IPv4/IPv6 混在環境で移動透過性を実現するNTMobileの実装と評価,

(9)

 カーネル空間を改造する方式

DSMIPv6 (Dual Stack Mobile IPv6)[1]

HIP (Host Identity Protocol)[2]

 カーネル空間を改造しない方式

NTMobile (Network Traversal with Mobility) [3, 4, 5]

[1] Soliman, H.: Mobile IPv6 Support for Dual Stack Hosts and Routers, RFC 5555 (2009).

[2] Moskowitz, R., Heer, T., Jokela, P. and Henderson, T. R.: Host Identity Protocol Version 2 (HIPv2), RFC 7401 (2015).

[3] 内藤克浩,上酔尾一真,西尾拓也,水谷智大,鈴木秀和,渡邊 晃,森香津夫,小林英雄

:NTMobile における移動透過性の実現と実装,情報処理学会論文誌,Vol. 54, No. 10, pp. 367–3 (2013).

[4] 鈴木秀和,上酔尾一真,水谷智大,西尾拓也,内藤克浩,渡邊 晃

:NTMobile における通信接続性の確立手法と実装,情報処理学会論文誌,Vol. 54, No. 1, pp. 367–379 (2013).

[5]上酔尾一真,鈴木秀和,内藤克浩,渡邊 晃:IPv4/IPv6 混在環境で移動透過性を実現するNTMobileの実装と評価,

情報処理学会論文誌,Vol. 54, No. 10, pp. 2288–2299 (2013).

(10)

アプリケーションレベルで実現することができない カーネルに実装することが前提の仕様

DSMIPv6はネットワーク層を改造して実装

カーネルを改造すると,メーカのサポートを受けられない スマートフォンに実装されていない

カーネルの改造は,一般ユーザには困難

HIP はネットワーク層とトランスポート層の中間に実装

カーネルの頻繁なバージョン更新に追従ためのコストが高い

(11)

 カーネル空間を改造する方式

DSMIPv6 (Dual Stack Mobile IPv6)[1]

HIP (Host Identity Protocol)[2]

 カーネル空間を改造しない方式

NTMobile (Network Traversal with Mobility) [3, 4, 5]

[1] Soliman, H.: Mobile IPv6 Support for Dual Stack Hosts and Routers, RFC 5555 (2009).

[2] Moskowitz, R., Heer, T., Jokela, P. and Henderson, T. R.: Host Identity Protocol Version 2 (HIPv2), RFC 7401 (2015).

[3] 内藤克浩,上酔尾一真,西尾拓也,水谷智大,鈴木秀和,渡邊 晃,森香津夫,小林英雄

:NTMobile における移動透過性の実現と実装,情報処理学会論文誌,Vol. 54, No. 10, pp. 367–3 (2013).

[4] 鈴木秀和,上酔尾一真,水谷智大,西尾拓也,内藤克浩,渡邊 晃

:NTMobile における通信接続性の確立手法と実装,情報処理学会論文誌,Vol. 54, No. 1, pp. 367–379 (2013).

[5]上酔尾一真,鈴木秀和,内藤克浩,渡邊 晃:IPv4/IPv6 混在環境で移動透過性を実現するNTMobileの実装と評価,

情報処理学会論文誌,Vol. 54, No. 10, pp. 2288–2299 (2013).

(12)

アプリケーションは位置に依存しない仮想 IP アドレスに基づいて行う

 端末が移動しても仮想 IP アドレスは変化しない

実 IP UDP

仮想 IP データ 仮想IP データ

アプリケーションが生成する 仮想 IP パケット

NTMobile によって カプセル化されたパケット カプセル化

UDP トンネル

UDP

仮想 IP データ 仮想 IP データ

アプリケーションが認識する通信

実際の通信

MN CN

仮想IPパケット

(13)

OS

NTMfw(NTMobile framework library) を利用してアプリケーションを実装

 一般のソケット API と互換性のある NTM ソケット API を提供

 NTMobile を利用したいアプリケーションに対して実装

NTMfw Program Application

NTMfw Program Application

Program Application

NTMobile を利用したい アプリケーション 一般通信のみの

アプリケーション

User space

Kernel space

ntmfw_getaddrinfo() ntmfw_sendto()

getaddrinfo() sendto()

NTM ソケット API

BSD ソケット API

(14)

OS NTMfw Program Application

NTMfw Program Application

Program Application

NTMobile を利用したい アプリケーション 一般通信のみの

アプリケーション

User space

Kernel space

ntmfw_getaddrinfo() ntmfw_sendto()

getaddrinfo() sendto()

NTM ソケット API

BSD ソケット API

ソケット API の書き換えで 利用することも可能

NTMfw(NTMobile framework library) を利用してアプリケーションを実装

 一般のソケット API と互換性のある NTM ソケット API を提供

 NTMobile を利用したいアプリケーションに対して実装

(15)

開発者への負担が大きい

ソースコードが公開されていない場合は利用できない アプリケーションを新規に開発する場合

仕様の検討や実装などに時間が必要

アプリケーションを修正して開発する場合

一般通信 /NTMobile 通信が混在する場合,

ソケットAPIの一括書き換えでは,仕様を満たすことができない

一般的なユーザがプログラムを書き換えることが困難

(16)

NTMfw を利用したアプリケーションを実現し,

アプリケーションを変更することなく NTMobile の機能を

 ユーザ空間への実装

 アプリケーションを改造しない

 NTMobile (NTMfw)

前提条件

Program Application アプリケーション

OS

NTMobile アプリケーション

通常の通信 BSD ソケット

NTMfw Program Application

研究目的

(17)

実 NIC 仮想 NIC

Application

データ TCP/IP

プロトコルスタック IP パケット

IP パケット OS

アプリケーションが送信した

IP NTMobile 通信

IP UDP IP パケット TCP/IP

プロトコルスタック Application

Program IP パケット

NTMobile

IP パケットをユーザ空間に取り込む

IP パケットをデータとしてカプセル化を行う

検討事項

BSD ソケット

(18)

実 NIC Virtual NIC

Application

データ TCP/IP

プロトコルスタック IP パケット

IP パケット OS

アプリケーションが送信した

IP UDP IP パケット TCP/IP

プロトコルスタック Application

Program IP パケット

NTMobile

IP パケットをユーザ空間に取り込む

IP パケットをデータとしてカプセル化を行う

検討事項

(19)

ユーザ空間に IP パケットを取り込めるサービス

 TUN インタフェースを定義することで利用可能

実際のインタフェース同様に IP アドレスなどを設定して用いる

Virtual NIC (TUN) Application

データ TCP/IP

プロトコルスタック IPパケット

IP パケット OS

IPパケット Application

BSDソケット TUN ソケット

(20)

ユーザ空間に IP パケットを取り込めるサービス

 TUN インタフェースを定義することで利用可能

実際のインタフェース同様に IP アドレスなどを設定して用いる

Virtual NIC (TUN) Application

データ TCP/IP

プロトコルスタック IPパケット

IP パケット OS

IPパケット

Application

(21)

仮想 NIC (TUN)

Application

実NIC 仮想 IP アドレス

TUN に仮想 IP アドレスを割り当てる

仮想 IP パケット 実IPパケット

仮想 IP パケット 実 IP パケット TUN

実 NIC

実 IP アドレス TCP/IP

プロトコルスタック データ

( 仮想 IP 宛 ) データ (実IP宛)

通信相手の宛先によって

NTMobile/一般通信を利用するか選択可能

一般通信を行いたい場合

 実 IP アドレスで通信

 従来通り一般通信を行える

NTMobile 通信を行いたい場合

 仮想IPアドレスで通信

 TUNを経由のNTMobile通信

(22)

仮想 NIC (TUN) Application

実 NIC 仮想 IP アドレス

TUN に仮想 IP アドレスを割り当てる

仮想 IP パケット 実IPパケット

仮想 IP パケット TUN

実 NIC

実 IP アドレス

通信相手の宛先によって

NTMobile/一般通信を利用するか選択可能

OS

program

NTMobile

一般通信を行いたい場合

 実 IP アドレスで通信

 従来通り一般通信を行える

提案方式

実IPパケット (UDP トンネル通信 )

NTMobile 通信を行いたい場合

 仮想IPアドレスで通信

 TUNを経由のNTMobile通信

(23)

20

仮想 NIC (TUN) Application

実 NIC 仮想 IP アドレス

TUN に仮想 IP アドレスを割り当てる

仮想 IP パケット 実IPパケット

実IPパケット TUN

実 NIC

実 IP アドレス 実 IP パケット

通信相手の宛先によって

NTMobile/一般通信を利用するか選択可能

OS

program

NTMobile

一般通信を行いたい場合

 実 IP アドレスで通信

 従来通りの一般通信

NTMobile 通信を行いたい場合

 仮想IPアドレスで通信

 TUNを経由のNTMobile通信

提案方式

(24)

TUN に仮想 IP アドレスを割り当てる

仮想 IP パケット 実IPパケット

TUN 実 NIC

通信相手の宛先によって

NTMobile/一般通信を利用するか選択可能

仮想 NIC (TUN) Application

実 NIC 仮想 IP アドレス

実IPパケット

実 IP アドレス 実 IP パケット OS

program

NTMobile 提案方式

一般通信を行いたい場合

 実 IP アドレスで通信

 従来通りの一般通信

NTMobile 通信を行いたい場合

 仮想IPアドレスで通信

 TUNを経由のNTMobile通信

(25)

Application

Real NIC

NTMfw

ntmfw_getaddrinfo() Program

NTMfw 実装型

トンネル構築処理

getaddrinfo() Program Application

名前解決要求 パケット

名前解決要求 パケット

Real NIC

名前解決要求パケットをトンネル構築のトリガに変更

 DNSパケットをTUNにルーティングするように設定

名前解決要求

CN CN

OS

OS

Virtual NIC (TUN)

ntmfw_getaddrinfo() Program

トンネル構築処理

NTMfw

Application

提案方式

(26)

実 NIC Virtual NIC

Application

データ TCP/IP

プロトコルスタック IP パケット

IP パケット OS

アプリケーションが送信した

IP UDP IP パケット TCP/IP

プロトコルスタック Application

Program IP パケット

NTMobile

IP パケットをユーザ空間に取り込む

IP パケットをデータとしてカプセル化を行う

検討事項

アプリケーションを改造せずに

NTMobile の機能を呼ぶ

(27)

24

Application

Real NIC

NTMfw

UDP トンネル通信

Real NIC Virtual NIC

(TUN) Application

データ 仮想 IP

パケット 仮想 IP

パケット 実 IP UDP NTMfw 実装型

UDP トンネル通信 Program

データ

仮想 IP パケット

OS

OS

改造NTMfw 仮想 IP パケット

Application Program 提案方式

BSDソケット TUN NTMソケット

仮想 TCP/IP プロトコルスタック

TCP/IP プロトコルスタック

仮想 IP パケット

実 IP TCP/IP UDP

プロトコルスタック

(28)

Application

Real NIC

NTMfw

仮想 IP パケット

UDP 実 IP

UDP トンネル通信

Real NIC Virtual NIC

(TUN) Application

データ 仮想 IP

パケット 仮想 IP

パケット 実 IP UDP NTMfw 実装型

UDP トンネル通信 Program

データ

仮想 IP パケット

OS

OS

改造NTMfw 仮想 IP パケット

Application Program 提案方式

仮想 TCP/IP

プロトコルスタック TCP/IP

プロトコルスタック TCP/IP プロトコルスタックを除去

TCP/IP

プロトコルスタック

(29)

実 NIC Virtual NIC

Application

データ TCP/IP

プロトコルスタック IP パケット

IP パケット OS

アプリケーションが送信した

IP NTMobile 通信

IP UDP IP パケット TCP/IP

プロトコルスタック Application

Program IP パケット

NTMobile

IP パケットをユーザ空間に取り込む

IP パケットをデータとしてカプセル化を行う

検討事項

アプリケーションを改造せずに NTMobile の機能を呼ぶ

改造 NTMfw を利用して

NTMobile通信を行う

(30)

改造 NTMfw Program

Application

改造した NTMfw と TUN により実現

 NTMfw から TCP/IP プロトコルスタックを除去

 アプリケーションとの通信は, TUN を利用

Program Application

Program Application

一般通信 NTMobile 通信

一般通信のみの アプリケーション

NTMobile/ 一般通信 アプリケーション

TUN 利用型 NTMobile

(31)

DC CN MN

Application

Virtual NIC

TUN Real NIC

名前解決要求 (FQDN CN)

トンネル構築処理

通信用パケット

通信用パケット

カプセル化 IP パケット (UDP トンネル )

IP パケット (UDP トンネル ) カプセル化

TUN利用型 NTMobile

名前解決応答 ( 仮想 IP CN )

FQDN を解析

CN の仮想 IP アドレスを取得

(32)

DC CN MN

Application TUN利用型

NTMobile Virtual NIC

TUN Real NIC

名前解決応答 ( 仮想 IP CN ) 名前解決要求 (FQDN CN)

FQDN を解析

CN の仮想 IP アドレスを取得

NTMobile固有のFQDN「*.dc.ntm.*」

トンネル構築処理

通信用パケット

カプセル化 IP パケット (UDP トンネル )

IP パケット

(UDP トンネル )

(33)

DC CN MN

Application

Virtual NIC

TUN Real NIC

TUN利用型 NTMobile

CN の仮想 IP アドレスを取得 名前解決要求 (FQDN CN)

トンネル構築処理

通信用パケット

通信用パケット

カプセル化 IP パケット (UDP トンネル )

IP パケット (UDP トンネル ) デカプセル化

通信相手を仮想 IP アドレスと認識

名前解決応答 ( 仮想 IP CN )

(34)

提案方式の機能を Linux 上に実装

 端末にインストールすることで利用可能

 アプリケーションを改造することなくNTMobileの機能を利用可能

検証環境 (IPv4 ネットワーク )

 Raspberry PI3(MN , CN) に提案方式を実装

 仮想マシン上にAS, DC,RSを構築

MN, CNの諸元

OS Linux raspberrypi 3.18 (32bit) CPU ARMv8 Cortex-A53 (2.5GHz) Memory 1GB

1000BASE-Tの有線LANネットワーク

AS, DC, RS (Virtual Machine)の諸元 OS Ubuntu14.04 (32bit)

CPU 2core2thread

Memory 2GB

(35)

 実用上問題ないかを評価

 一般通信(提案手法なし)とNTMobile通信(提案手法あり)における比較

 *Iperf を用いた TCP 通信による測定

 それぞれの通信を 10 回行い平均値を結果とする

TUN 利用型 NTMobile を利用すると一般通信と比べて 22% 低下

0 20 40 60 80 100

Throughput[Mbps]

*Iperf : スループットを測定するツール

(36)

MN

Application TUN利用型

NTMobile Virtual NIC

TUN Real NIC

CN

 スループットの低下原因を調査

 NTMobile 通信時の各処理に要する時間を計測

 アプリケーションは *1400 バイトのパケットを送信

 clock_gettime 関数により処理時間を取得

1400 バイト IP パケット

UDP トンネル通信 各処理ごとの

処理時間の計測

( 例 ) ヘッダー処理

(37)

34

MN

Application TUN利用型

NTMobile

Virtual NIC Real NIC TUN

CN

UDPトンネル通信

 スループットの低下原因を調査

 NTMobile 通信時の各処理に要する時間を計測

 アプリケーションは *1400 バイトのパケットを送信

 clock_gettime 関数を利用

*1400バイト : 提案方式において,アプリケーションが送信できるパケットの最大長 1400 バイト

IP パケット

各処理ごとの

処理時間の計測

( 例 ) ヘッダー処理

(38)

区分 処理時間 合計 TUN 利用型 NTMobile

処理時間

暗号化 116.9

210.0 MAC 生成 30.5

その他 62.5 CN側の処理時間測定結果(μ秒)

暗号化, MAC 生成 70%占める

区分 処理時間 合計 TUN利用型NTMobile

処理時間

復号 125.4

190.7 MAC 検証 40.0

MN 側の処理時間測定結果 (μ 秒 )

復号処理,MAC検証 87% 占める

NTMobile は,セキュリティ機能を有している.

 暗号化 / 復号処理による,パケット盗聴の防止

 MAC(Message Authentication Code) による,パケット改竄検知

(39)

 提案方式を使用した場合のスループットは, 72.96Mbps

 一般通信に比べて 22% のスループット低下

36

 スループット低下の原因は,セキュリティ処理

 パケットの機密性,完全性などを保障するため必須処理

セキュリティ処理を行いながら,一般的な用途において実用可能

用途 推奨スループット

通話 100 kbps

ビデオ通話( HD ) 1.5 Mbps グループビデオ通話 (7 人 ) 8 Mbps

*Skype に必要なスループット

*Skypeに必要なスループット : “Skypeで必要となる帯域幅を教えてください”,

(40)

アプリケーションとして NTMobile の機能を提供

 TUN インターフェスを利用することで実現

 端末のプログラムを一切変更する必要がない

 通信相手によって,一般通信 /NTMobile 通信の選択

 提案方式の実装と評価

 一般通信に比べて 22% スループットが低下

 スループット低下の原因は,暗号 / 復号処理, MAC 生成 / 検証

 提案方式は,充分実用的な性能

図 1: TUN 利用型 NTMobile のカプセル化の様子

参照

関連したドキュメント

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に

ⅴ)行使することにより又は当社に取得されることにより、普通株式1株当たりの新株予約権の払

ⅴ)行使することにより又は当社に取得されることにより、普通株式1株当たりの新株予約権の払

ⅴ)行使することにより又は当社に取得されることにより、普通株式1株当たりの新株予約権の払

その対策として、図 4.5.3‑1 に示すように、整流器出力と減流回路との間に Zener Diode として、Zener Voltage 100V

ⅴ)行使することにより又は当社に取得されることにより、普通株式1株当たりの新株予約権の払

ⅴ)行使することにより又は当社に取得されることにより、普通株式1株当たりの新株予約権の払