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

稲垣 智 † 尾久 史弥 † 鈴木 秀和 † 内藤 克浩 ‡ 渡邊 晃 †

N/A
N/A
Protected

Academic year: 2021

シェア "稲垣 智 † 尾久 史弥 † 鈴木 秀和 † 内藤 克浩 ‡ 渡邊 晃 † "

Copied!
38
0
0

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

全文

(1)

LAN

内通信システムをインターネット上で利用可能にする

TUN

アプリの提案と実装

稲垣 智†1 尾久 史弥†2 鈴木 秀和†1 内藤 克浩†3 渡邊 晃†1

†1名城大学理工学部 †2名城大学大学院理工学研究科 †3愛知工業大学情報科学部

1 はじめに

LAN内での通信を前提とすると柔軟なアプリケー ション開発を行うことができる. しかしインターネッ ト上での通信を考慮すると NAT越え問題や移動透過 性等の様々な問題を考慮する必要が生じる. これらの 問題を解決し,インターネットをあたかも大きなLAN として扱うことができると有用である. DSMIPv6[1]

NTMobileNetwork Traversal with Mobilty[2]はこ のような目的のために開発された技術である. しかし DSMIPv6はグローバルアドレスを大量に消費し,カーネ ルの改造が必要という課題がある.また, NTMobileは既 存アプリケーションをそのまま利用できないという課題 を抱えている.

そ こ で 本 稿 で は 様 々 な OS に 標 準 実 装 さ れ て い る TUN/TAPインタフェースを用いて, LAN内通信シス テムをインターネット上でそのまま利用可能にし,かつ カーネルやアプリケーションの改造を必要としないシス テムの実現方法を提案する.

2 DSMIPv6NTMobile

2.1 DSMIPv6

DSMIPv6は不変的なアドレスとして HoAHome Address)を端末に割り当て,移動先ネットワークで取 得するCoACare of Address)によってカプセル化し て通信を行う. 上位アプリケーションはHoAを用いて 通信するため, NAT越えや移動に係るCoAの変化をア プリケーションから隠蔽することができる. しかしHA

Home Agent)をグローバル空間に設置する必要がある ことから,モバイル端末ごとにグローバルアドレスが必 要になる. また, DSMIPv6はカーネル空間に実装するこ とが前提であることから,スマートフォンでの利用はで きない.

Proposal and Implementation of TUN Application that Makes LAN Communication System Available on the Internet

Satoru Inagaki1, Fumiya Ogyu2, Hidekazu Suzuki1, Katsuhiro Naito†3and Akira Watanabe†1

1Faculty of Science and Technology, Meijo University

2Graduate School of Science and Technology, Meijo University

†3Faculty of Information Science, Aichi Institute of Technology

User Space

Kernel Space

TUN Interface (Vertual IP)

Real Interface (Real IP) Data

Data Vertual IP

Real IP Vertual IP Data

Real IP Vertual IP Data

User App. TUN App.

NTMfw

Network

1 提案方式におけるパケットカプセル化の様子

2.2 NTMobile

NTMobileNAT越え, IPv4/IPv6間通信, 移動透過 性を同時に実現する技術であり,本提案のベースとなる 技術である. NTMobileは端末の不変的なアドレスとし て仮想アドレスを用いる. 仮想アドレスは端末の立ち上 げ時にDCDirection Coordinator)により割り当てられ . NTMobileは仮想アドレスにより生成された通信パ ケットをすべて実アドレスでカプセル化するという特徴 がある. またDCがエンド端末に最適な通信経路を指示 ,どのような通信環境においても双方向の通信接続性 を保証する.

NTMobileはこれらの機能をNTMobile framework イブラリ(NTMfw[3]と呼ばれるアプリケーション ライブラリとして提供している. アプリケーションに NTMfwを組み込むことによりNTMobileの機能を利用 できる. しかし,一般通信とソケットインタフェースが 異なるため,既存のアプリケーションをそのまま使用す ることができないという課題が存在している.

3 提案方式

提案方式では, NTMfwの機能をTUNアプリケーショ ンとして実現し,既存のアプリケーションをそのまま使 えるようにする. TUN/TAPインタフェースは,トンネ ル通信を実現するためのもので,一般のアプリケーショ ン(ユーザアプリ)により生成されたパケットをネット ワークに送信する直前にフックし,ユーザ空間のアプリ ケーションへ渡す仕組みである. TUNアプリではフッ クしたパケットに対し, NTMfwを用いてNTMobile パケットを生成することで,ユーザアプリに一切手を加 えることなくNTMobile機能を実現する. 1に提案方

(2)

DC 一般端末(TUNアプリ実装)

NTM端末 (通信相手端末) Real Interface

Real IP TUN Interface

Vertual IP

DNS Response

Capsuled Message

App. Data DNS Query解析

DNS Response生成 (通信相手のVertual IP)

Real IPでカプセル化

デカプセル化

NTMobile Signaling User App.

TUN App.

NTMfw

App. Data

(宛先:通信相手のVertual IP) DNS Query (NTMobile FQDN)

Capsuled Message

2 提案方式における通信確立時の動作シーケンス

式におけるカプセル化の様子を示す. カプセル化処理は ユーザ空間のTUNアプリとカーネルで分担して行うこ とができ,カーネルの改造も不要である.

ユーザアプリ起動からNTMobile通信実現までの流れ は以下の通りである. まず, TUNアプリがNTMobile 登録処理を実行し, DCから仮想IPアドレスを取得す .このときTUNアプリはTUNインタフェースを作成 ,ここに取得した仮想IPアドレスを割り当てる.また, DNSクエリがTUNインタフェースへ渡されるようルー ティングテーブルの設定を変更する. これによりDNS クエリ,および仮想アドレス宛のパケットは全てTUN インタフェースを通じてTUNアプリへ渡されることに なる.

2に通信確立時の動作シーケンスを示す. ユーザア プリが通信相手のFQDNを指定することにより, DNS エリが送信される. DNSクエリはTUNインタフェース を通じてTUNアプリへ渡される. DNSクエリを受信し TUNアプリは相手FQDNの解析を行う. NTMobile 固有のFQDNが指定されていた場合は, NTMfwにより

NTMobileシグナリング処理を実行してトンネル経路を

生成するとともに,通信相手の仮想IPアドレスを取得す . 取得した通信相手の仮想IPアドレスをDNS応答に

記載し, TUNインタフェースを通じてユーザアプリに返

信する. その後ユーザアプリは通信相手の仮想IPアド レス宛にデータを送信する. これらのパケットはすべて TUNインタフェースを通じてTUNアプリが受け取る. 受け取ったパケットにNTMfwがヘッダ付与や暗号化等 の処理を行い,実インタフェースを通じてカプセル化し た後,通信相手に送信する.通信相手から受信したパケッ トは上記と逆の手順により, TUNインタフェースを通じ てユーザアプリへ渡される.

DNSクエリの宛先名が一般の通信端末であった場合 , クエリをそのままローソケット経由で物理ネット ワークに中継する. 本方式によると,複数のNTMobile

1 既存技術と提案方式の比較 項目(1) 項目(2)

DSMIPv6 ×

NTMfw ×

提案方式

対応のアプリケーションと, 複数の一般通信用アプリ ケーションが同時に通信を行える.

4 実装・評価 4.1 実装・動作検証

TUNアプリをLINUX上で実装し動作検証を行った. 検証方法は2台の提案方式による端末をVMにて準備 , NATを経由した通信を実行した. この状態で双方の 端末上でLAN内通信システム対応のアプリケーション を動作させると, NATが混在する環境でも双方向の通信 接続性を確立できることを確認した. また一般アプリと TUNアプリを利用したアプリが複数同時通信できるこ とを確認した.

4.2 評価

1に既存技術と提案方式の比較を示す. 評価項目は 以下の通りとした.

(1)カーネルの改造を必要としないか (2)既存アプリを使用できるか

DSMIPv6ではカーネルの改造が必要であるが既存ア

プリケーションをそのまま利用できる. NTMfwはカー ネルの改造が不要であるが,既存のアプリケーションが そのまま使用できないという課題がある. 提案方式では カーネルの改造を必要とすることなく,さらに既存のア プリケーションもそのまま利用することができる.

5 まとめ

本稿では, TUN/TAP インタフェースを用いてLAN 内通信システムをインターネット上で利用可能にする TUNアプリの提案及び実装を行った. 提案方式により カーネルの改造やアプリケーションの改造を必要とす ることなくLAN内で実現した通信システムをインター ネット上でそのまま利用することが可能になった. 今後 は提案方式の性能評価を行う予定である.

参考文献

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

[2] 上醉尾一真ほか:IPv4/IPv6混在環境で移動透過性を 実現するNTMobileの実装と評価,情報学論,Vol.54, No.10pp.2288-2299 (2013).

[3] 納堂博史ほか:実用化に向けたNTMobileフレーム ワークの実装と評価,信学技報,Vol.116, No.509, pp.281-288 (2017).

(3)

稲垣 智 † 尾久 史弥 † 鈴木 秀和 † 内藤 克浩 ‡ 渡邊

†名城大学

‡ 愛知工業大学

(4)

 NAT 越え問題

 IPv4-IPv6 間での 通信不可問題

 移動透過性の課題

1

上記の問題を解決してネットワークをフラット化し ,

インターネットをあたかも大きな LAN として扱えると有用

(5)

 NAT 越え問題

 IPv4-IPv6 間での 通信不可問題

 移動透過性の課題

2

上記の問題を解決してネットワークをフラット化し ,

インターネットをあたかも大きな LAN として扱えると有用

(6)

 NAT 越え問題

 IPv4-IPv6 間での 通信不可問題

 移動透過性の課題

3

上記の問題を解決してネットワークをフラット化し ,

インターネットをあたかも大きな LAN として扱えると有用

(7)

 NAT 越え問題

 IPv4-IPv6 間での 通信不可問題

 移動透過性の課題

4

上記の問題を解決してネットワークをフラット化し ,

インターネットをあたかも大きな LAN として扱えると有用

(8)

 DSMIPv6 ( Dual Stack Mobile IP version 6 ) *1

 NTMobile ( Network Traversal with Mobility ) *2

*1 RFC5555, 2009 5

*2 納堂ほか:信学技報, Vol.116, No.10, pp.2288-2299, 2017

(9)

 様々な課題

∘ 移動端末毎に

IPv4 グローバルアドレスが必要

∘ IPv4 環境では必ず HA ( Home Agent )を 経由した冗長経路となる

6

カーネル空間への実装が必要

普及が進まない

(10)

 仮想 IP アドレスと呼ぶ変化しないアドレスを端末に割り当てる

 アプリケーションは仮想 IP アドレスに基づいた通信を行う

→ 移動通信の実現

7

仮想IP データ カプセル化 実IP 仮想IP データ データ

アプリケーションによる パケット

NTMobile によりカプセル化された

パケット

(11)

 DC ( Direction Coordinator )が最適な通信経路を指示

∘ DNSの問い合わせをトリガとして通信経路構築

 直接通信が不可能な場合は RS ( Relay Server )が通信を中継

→NAT 越え , 異なるバージョン間通信の実現

8 MN : 通信開始端末

CN : 通信相手端末

(12)

 DC ( Direction Coordinator )が最適な通信経路を指示

∘ DNSの問い合わせをトリガとして通信経路構築

 直接通信が不可能な場合は RS ( Relay Server )が通信を中継

→NAT 越え , 異なるバージョン間通信の実現

9 MN : 通信開始端末

CN : 通信相手端末

(13)

 DC ( Direction Coordinator )が最適な通信経路を指示

∘ DNSの問い合わせをトリガとして通信経路構築

 直接通信が不可能な場合は RS ( Relay Server )が通信を中継

→NAT 越え , 異なるバージョン間通信の実現

10 MN : 通信開始端末

CN : 通信相手端末

(14)

 NTMobile はこれらの機能を NTMfw ( NTMobile Framework ) と呼ぶアプリケーションライブラリとして提供

→ カーネル空間への実装を必要としない

11

C言語標準ソケットAPI NTM ソケット API

bind(~) sendto(~) recvfrom(~)

ntmfw_bind(~) ntmfw_sendto(~) ntmfw_recvfrom(~)

アプリケーションの実装を変更する必要があるため , 既存のアプリケーションをそのまま使用できない

しかし …

(15)

 DSMIPv6 ( Dual Stack Mobile IP version 6 )

∘ カーネル空間への実装が必要となり, 普及が進まない

∘ その他にも技術的な課題が多い

 NTMobile ( Network Traversal with Mobility )

∘ アプリケーションの実装を変更する必要があり , 既存のアプリケーションをそのまま使用できない

12

カーネル空間への実装を必要とせず , 既存の

アプリケーションをそのまま使用できるシステム

提案方式

(16)

 NTMfw の機能を TUN インタフェースを利用した TUN アプリケーションとして実現

 TUN インタフェース

∘ 送信パケットを ユーザ空間の

アプリへ渡す仕組み

13 User Space

Kernel Space

Real Interface

User App. TUN App.

TUN Interface

NTMfw

(17)

 TUN インタフェースに

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

 DNS クエリが

TUN インタフェースを 経由するよう

ルーティングの設定

14 User Space

Kernel Space

Real Interface Real IP

User App. TUN App.

TUN Interface Virtual IP

NTMfw

:DNSクエリ

:仮想IPアドレス宛てパケット

:実IPアドレス宛てパケット

Network

(18)

15

DC MN(TUNアプリ実装)

NTM端末:CN Real Interface

Real IP TUN Interface

Virtual IP

DNS Response

Capsuled Message

App. Data

DNS Query解析 DNS Response生成

(CNのVirtual IP)

Real IPでカプセル化

デカプセル化

NTMobile Signaling User App.

TUN App.

NTMfw

App. Data

(宛先:CNのVirtual IP) DNS Query

(FQDN

CN

)

Capsuled Message

(19)

16

DC MN(TUNアプリ実装)

NTM端末:CN Real Interface

Real IP TUN Interface

Virtual IP

DNS Response

Capsuled Message

App. Data

DNS Query解析

DNS Response生成 (CNのVirtual IP)

Real IPでカプセル化

デカプセル化

NTMobile Signaling User App.

TUN App.

NTMfw

App. Data

(宛先:CNのVirtual IP) DNS Query

(FQDN

CN

)

Capsuled Message 通信経路構築処理

(20)

17

DC MN(TUNアプリ実装)

NTM端末:CN Real Interface

Real IP TUN Interface

Virtual IP

DNS Response

Capsuled Message

App. Data

DNS Query解析

DNS Response生成 (CNのVirtual IP)

Real IPでカプセル化

デカプセル化

NTMobile Signaling User App.

TUN App.

NTMfw

App. Data

(宛先:CNのVirtual IP) DNS Query

(FQDN

CN

)

Capsuled Message

データ送受信

(21)

 提案方式の一部を Linux 上に実装

∘ DNS クエリのルーティングは静的に設定

 動作検証

∘ NAT越え, 移動通信ができることを確認

∘ 次スライドにて実演

18

(22)

19

Global IPv4 Network

NAT

Private IPv4 Network

MN CN DC

MN

CN

映像表示

(23)

 測定環境

∘ Linux 実機を 2 台用意( MN, CN )し , 提案方式を実装

∘ 仮想マシン上に DC を構築

20

VM

CN DC

Switching hub

MN

Network MN, CN の仕様

OS Ubuntu 14.04 32bit

CPU Intel Core i5-2520M 2.50GHz

Memory 1944360 kB

(24)

 スループットの測定

∘ MN から CN へ向けて 1400 バイトの UDP パケットを送信

∘ 10 秒間の測定を 10 回ずつ行い , 平均を算出

21

通常の通信 TUNアプリ 経由での通信

95.27Mbps 4.73Mbps

VM

CN DC

Switching hub

MN

Network

スループットの低下

(25)

 パケット送信側における処理時間の測定

22

TUN インタフェース

経由時間 0.15ms

TUNアプリ

処理時間 0.07ms

NTMfw

処理時間 8.35ms

• 1400 バイトの

UDP パケットにて測定

• 10 回の平均値

MN

CN Real Interface

Real IP TUN Interface

Virtual IP User App.

TUN App.

NTMfw

App. Data

Capsuled Message TUN App.

Processing NTMfw Processing

TUNインタフェース経由時間

NTMfw 処理時間

TUNアプリ 処理時間

(26)

 パケット受信側における処理時間の測定

23

NTMfw

処理時間 8.58ms

TUNアプリ

処理時間 0.07ms

TUN インタフェース

経由時間 0.10ms

• 1400 バイトの

UDP パケットにて測定

• 10 回の平均値 CN

MN

Real Interface Real IP

TUN Interface Virtual IP

User App.

TUN App.

NTMfw

App. Data Capsuled Message

TUN App.

Processing NTMfw Processing

TUNインタフェース経由時間

NTMfw 処理時間

TUNアプリ 処理時間

(27)

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

∘ 一般的な動画データや画像データ等のやり取りは快適に行える *

∘ 大きなデータのやり取りでなければ利用可能

 送信側 , 受信側とも NTMfw の処理にもっとも時間を要した

∘ NTMfwの暗号化・復号処理に時間を要している

∘ 暗号化技術は現在のネットワークに必要不可欠

∘ 今後は既存の暗号化プロトコルと性能比較を行う

*

https://mvno-smartphone.com/category6/entry101.html 24

http://mnp-sim.com/89

(28)

 ネットワークの問題を解決する TUN アプリケーションの提案

∘ カーネル空間への実装を必要とせず , 既存アプリケーションもそのまま使用可能

 提案方式を実装し , スループットを測定

∘ 用途によっては利用可能

∘ NTMobile における暗号化・復号処理に時間を要している

 今後の方針

∘ DNSクエリのルーティング設定方法の検討

∘ 既存の暗号化プロトコルとのスループットの比較

25

(29)

26

(30)

27

(31)

 DNS クエリをそのまま DNS サーバに送信

28

DNSサーバ MN(TUNアプリ実装)

一版端末:CN Real Interface

Real IP TUN Interface

Vertual IP

DNS Response

DNS Query解析 DNS Query User App.

TUN App.

NTMfw

DNS Query (FQDNCN)

DNS Response

App. Data

(32)

29

NTMfw アダプタ型 TUN 型

( 提案方式 ) VPNService 型 既存アプリの

使用 × ○ ○ ○

物理デバイスの

有無 ○ × ○ ○

複数アプリへの

適用 ○ ○ ○ ×

管理者権限の

必要性の有無 ○ ○ × ○

多岐 OS への

適用 ○ ○ ○ △

(33)

 DNS サーバ宛てのパケットを全てルーティング

30

(34)

 仮想 IPv4 アドレスは実ネットワークで使用されていないアドレス 帯域 [198.18.0.0/15] を使用

 利用可能な IPv4 アドレスは約 13 万個

31

(35)

 TUN インタフェース

∘ IP パケットをフック

 TAP インタフェース

∘ イーサネットフレームをフック

32

(36)

MN

CN Real Interface

Real IP TUN Interface

Vertual IP User App.

TUN App.

NTMfw

App. Data

Capsuled Message TUN App.

Processing NTMfw Processing

TUNインタフェース経由時間

NTMfw 処理時間

TUNアプリ 処理時間

 パケット送信側における処理時間の測定

33

TUN インタフェース

経由時間 152.8µs

TUNアプリ

処理時間 69.2µs

NTMfw

処理時間 320.3µs

• 47 バイトの

UDP パケットにて測定

• 10 回の平均値

(37)

CN MN

Real Interface Real IP

TUN Interface Vertual IP

User App.

TUN App.

NTMfw

App. Data Capsuled Message

TUN App.

Processing NTMfw Processing

TUNインタフェース経由時間

NTMfw 処理時間 TUNアプリ

処理時間

 パケット受信側における処理時間の測定

34

NTMfw

処理時間 439.7µs

TUNアプリ

処理時間 71.4µs

TUN インタフェース

経由時間 119.7µs

• 47 バイトの

UDP パケットにて測定

• 10 回の平均値

(38)

 様々な課題

∘ 移動端末毎に

IPv4 グローバルアドレスが必要

∘ IPv4 環境では必ず HA ( Home Agent )を 経由した冗長経路となる

35

カーネル空間への実装が必要

普及が進まない

図 1 提案方式におけるパケットカプセル化の様子

参照

関連したドキュメント

メトロ開発㈱  フェロー  藤木  育雄 東京地下鉄㈱  正会員  大塚    努 佐藤工業㈱ 正会員 ○守山   亨 早稲田大学理工学術院  正会員

会 員 工修 福井 高専助教授 環境都市工学 科 会員 工博 金沢大学教授 工学部土木建設工学科 会員Ph .D.金 沢大学教授 工学部土木建設 工学科 会員

東京大学 大学院情報理工学系研究科 数理情報学専攻. [email protected]

加納 幹雄 (Mikio Kano) 茨城大学 名誉教授...

加納 幹雄 (Mikio Kano) 茨城大学 名誉教授..

加納 幹雄 (Mikio Kano) 茨城大学 名誉教授...

大谷 和子 株式会社日本総合研究所 執行役員 垣内 秀介 東京大学大学院法学政治学研究科 教授 北澤 一樹 英知法律事務所

鈴木 則宏 慶應義塾大学医学部内科(神経) 教授 祖父江 元 名古屋大学大学院神経内科学 教授 高橋 良輔 京都大学大学院臨床神経学 教授 辻 省次 東京大学大学院神経内科学