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

NTMobile 機能を持つアダプタの実現方式の検討

N/A
N/A
Protected

Academic year: 2021

シェア "NTMobile 機能を持つアダプタの実現方式の検討"

Copied!
33
0
0

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

全文

(1)

NTMobile機能を持つアダプタの実現方式の検討

130441034 尾久 史弥

渡邊研究室

1. はじめに

現状のネットワークは,NATを利用してプライベート ネットワークを構築することが一般的である.しかし,グ ローバル側の端末からプライベート側の端末に対して通信 を開始できない問題がある(NAT越え問題)

この問題を解決するための技術として,著者らはNT- Mobile(Network Traversal with Mobility)を提案してい [1]NTMobileは,NTMobile framework(NTMfw) 呼ばれるアプリケーションをエンド端末に組み込むことに より,NATの有無に関わらず双方向通信を実現する.し かし,組み込み型家電や安定性を重視するサーバなどは新 たな機能の組み込みが出来ない場合がある.そこで一般端 末に隣接設置し,一般端末の通信をNTMobile通信に変換 するアダプタ(以下NTMA)の実現方式について検討した.

本論文では,NTMAをイニシエータ側の一般端末に設置 した場合の動作について確認したので記述する.

2. NTMobileの概要

NTMobileは,NTMfwを実装した端末(NTM端末) NTM端末の実IPアドレスと仮想IPアドレスの管理,及 び通信経路を指示するDC(Direction Coordinator)によっ て構成される.

NTM端末は,起動時にDCに対して実IPアドレスを 登録するとともに,位置に依存しなし仮想IPアドレスの 割り当てを受ける.NTM端末のアプリケーションは,仮 IPアドレスに基づいて通信を行う.実際の通信は,実 IPアドレスで全パケットをカプセル化し,UDP通信を行 う.DCが適切に通信経路を両NTM端末に指示すること により,通信経路上にNATが存在しても常に双方向通信 が実現できる.

3. NTMfwの概要

NTMfwは,アプリケーション層で動作する通信ライブラ リであり,上位アプリケーションに対して,NTMobile通信 用のソケットAPIを提供する.NTMfwにおいてNTMobile 通信を実現する方法は,以下の通りである.

データを送信する場合は,NTMfwの機能によって,送 信元/宛先アドレスが仮想IPアドレスのIPパケットを生 成し,さらにNTMヘッダを追加する.このパケットをデー タとみなして,Linuxが提供するUDPソケットによりカ プセル化して送信する.データを受信する場合は,受信し たパケットをLinuxが提供するUDPソケットで受信した 後,NTMfwによってNTMヘッダを除去し,さらにlwIP によってユーザデータを上位アプリケーションに渡す.

4. NTMAの実現

4. 1 想定するネットワーク構成

NTMAは物理NICを2枚用意して,一方はNAT配下 の一般端末(GNGeneral Node)とブリッジ接続し,他方 はインターネット側とブリッジ接続する.GNの通信相手 となるNTM端末は,NAT経由でプライベートネットワー クからに接続されている.DCはインターネット上に設置 する.NTM端末とNTMAは,起動時にDCに対して実 IPアドレスの登録及び仮想IPアドレスの割り当てを受け

GN NTMA

DC NAT

NTM端末

DNS Query

DNS Response

NTMobile Signaling

UDP Tunnel Communication

UDP Tunnel Communication Packet

Transmission

Packet Transmission

1: 提案方式の通信シーケンス

る.GNIPアドレスには,NTMADCから割り当て られた仮想IPアドレスを割り当てる.

4. 2 提案方式のシーケンス

1に提案方式の通信シーケンスを示す.通信開始時に,

GNは相手NTM端末のFQDNを指定してDNSクエリを 送信する.DNSクエリを受信したNTMAは,NTMfw 機能を利用して,NTMobileシグナリング処理により,DC の指示に従ってNTMANTM端末との間でトンネル構 築を行う.トンネル構築終了後,NTMAは相手NTM端末 の仮想IPアドレスを取得するので,このアドレスをDNS レスポンスに乗せてGNへ送信する.次にGNは,相手 NTM端末の仮想IPアドレス宛にパケットを送信する.こ のパケットを受信したNTMAは,NTMfwの機能を利用 してNTMAと相手NTM端末の実IPアドレスでカプセ ル化して送信する.相手NTM端末からパケットが返信さ れてきた場合は,パケットを受信したNTMANTMfw によりデカプセル化を行い,一般通信のパケットに変換し てからGNへ送信する.

5. 実装

提案方式を実装するにあたって,GNから送信されたパ ケットをRAWソケットでIPヘッダから受信して,受信し たパケットをNTMfwの改造したAPIを介して相手NTM 端末に送信する実装を行った.RAWソケットを使用して,

GNからのARP要求に対して,自身のMACアドレスで ARPリプライを送信する実装を行った.

6. まとめ

本論文では,NTMobileを実装できない一般端末のため に,一般端末に隣接設置してNTMobile通信を代行する NTMAを提案した.また,試作によりNTMAが動作でき ることを確認した.今後,NTMAのレスポンダ側の機能 について検討していく.

参考文献

[1] 上醉尾一真ほか:情報処理学会論文誌,Vol.54, No.10, pp2288–2299, (2013)

(2)

渡邊研究室 130441034

尾久 史弥

(3)

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

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

NATを利用したプライベートネットワークの構築が一般的

NAT越え問題

インターネット側端末から通信を開始できない

1

NAT

インターネット側端末 プライベート側端末A

プライベート側端末B NAT越え問題

NAT越え問題

を解決する技術

NTMobile(Network Traversal with Mobility)

が提案されている

Private Network Grobal Network

(4)

通信の経路指示

仮想IPアドレスの配布

通信の中継 基本的にエンドエンド通信

NTM端末:MN NAT NTM端末:CN

DC

RS Internet

• NAT越え問題を解決する技術

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

NTMobile framework MNMobile Node

端末の位置に依存しないIPアドレス

IPアドレスの変化を隠蔽 仮想IPアドレス

(5)

NTMobileLinuxで動作が確認されている Linux以外のOSは未対応

NTMfwが未実装の端末

NTMfwNTMobile framework)を組み込めない

組み込み型の家電

工場の出荷後はプログラムを書き換えれない サーバー

安定性を重視することから,新しい機能の追加が許可されない

3

...

ntmfw_bind() ntmfw_sendto() ntmfw_recvfrom()

...C標準ソケットAPI NTMソケットAPI bind()

sendto() recvfrom()

(6)

NTMobileLinuxで動作が確認されている Linux以外のOSは未対応

NTMfwが未実装の端末

NTMfwNTMobile framework)を組み込めない

組み込み型の家電

工場の出荷後はプログラムを書き換えれない サーバー

安定性を重視することから,新しい機能の追加が許可されない

4

...

ntmfw_bind() ntmfw_sendto() ntmfw_recvfrom()

...C標準ソケットAPI NTMソケットAPI bind()

sendto() recvfrom()

NTMobile アダプタ (NTMA)

の提案

(7)

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

GNの通信をNTMobile通信に変換

GNのプログラムに手を加えない

NTMobile通信 一般通信

NTMA NAT GN

NTM端末

Internet Private Network

NTM端末

Internet

NTMA

Private Network NAT イニシエータ側

レスポンダ側

GN

5

(8)

一般端末にNTMAを隣接設置

一般端末(GN:General Node)の通信をNTMobile通信に変換

GNのプログラムに手を加えない

NTMobileの課題

NTMfwが未実装

Windowsは未対応

NTMfwが未実装の端末

NTMobile通信 一般通信

NTMA NAT

GN NTM端末

Internet Private Network

イニシエータ側

GNの想定環境

Windows PC

NTMfw未実装端末

(9)

一般端末にNTMAを隣接設置

一般端末(GN:General Node)の通信をNTMobile通信に変換

GNのプログラムに手を加えない

NTMobile通信 一般通信

NTM端末

Internet

NTMA

Private Network NAT レスポンダ側

GN

NTMfwを組み込めない

新しい機能の追加が許可されない

工場の出荷後はプログラムを書き換えれない NTMobileの課題

GNの想定環境

サーバー

組み込み型家電

7

(10)

NTMobileの課題

NTMfwが未実装

Windowsは未対応

NTMfwが未実装の端末

NTMobile通信 一般通信

NTMA NAT

GN NTM端末

Internet Private Network

イニシエータ側

GNの想定環境

Windows PC

NTMfw未実装端末

イニシエータ側 NTMA の動作について確認

(11)

NIC2枚用意

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

NIC1GNにブリッジ接続

GNに仮想IPアドレスを設定

NTMADCに割り当てられる仮想IPアドレス

9

イーサネット0 イーサネット1 Internet NTMA

Private Network NAT

GN NIC1 NIC0 仮想IPアドレスを設定

仮想IPアドレスの割り当て DC

NTM端末 NICNetwork Interface Card

LANに接続するための装置

(12)

Application NTMobile NTMobile Application RIPRIP_MN

VIPVIP_MN VIP:VIP_CN RIPRIP_CN

MN CN

カプセル化 デカプセル化

VIP_MN →VIP_CN VIP_MN →VIP_CN

RIP_MN → RIP_CN VIP_MN →VIP_CN

RIP:端末の実IPアドレス IPパケット

(13)

RIPVIP_NTMA

11

実IPパケット

仮想IPパケット RIP:端末の実IPアドレス VIP:端末の仮想IPアドレス

Application NTMobile

CN VIP:VIP_CN RIPRIP_CN Application NTMobile

RIP:RIP_NTMA Application

GN

NTMA

VIP_NTMA →VIP_CN VIP_NTMA →VIP_CN

RIP_NTMA → RIP_CN VIP_NTMA →VIP_CN

VIP_NTMA →VIP_CN GNのパケットをそのままNTMobile

(14)

RIPVIP_NTMA

実IPヘッダ RIP:端末の実IPアドレス

Application NTMobile

VIP:VIP_CN RIPRIP_CN Application NTMobile

RIP:RIP_NTMA Application

GN

NTMA

VIP_NTMA →VIP_CN VIP_NTMA →VIP_CN

RIP_NTMA → RIP_CN VIP_NTMA →VIP_CN

VIP_NTMA →VIP_CN

NTMfw の改造 アプリケーションの作成

パケットの振り分け 処理

DHCPパケット

DNSクエリ

ARPリクエスト

TCP/UDPパケット

NTMobile処理 (ini..etc)

実装

以降のスライドで説明

CN

(15)

NTMソケットAPI

Virtual IP Stack

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

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

CソケットAPI

NIC0 -NTMfw NTMAアプリケーション TCP/IPパケット

-NTMfw

NTMfwを改造したアプリケーション

※Virutual IP StackTCP/IPの処理をアプリケーション上で行う 13

NIC1

TCP/IPパケット

Linux RAWソケット

TCP/IPパケット

NTMAアプリケーションは TCP/IPをデータとして扱う

Virutual IP Stackの処理は

重複

(16)

提案方式をLinux上に実装

一般通信をNTMobile通信に変換する動作を確認

測定環境

仮想マシン上にNTMAを実装

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

Windows実機のGN

NTMA(Virtual Machine) OS Ubuntu 14.04

CPU Intel Corei7-930(2.80GHz) Memory 2GB

GN NTMA DC NTM端末 NTMA NAT

GN NTM端末

Internet Private Network

(17)

15

GN NTMA DC NTM端末 Virtual Machine

424.2ns パケット中継に

要する時間 424.2ns パケット処理時間 15.5ns R-NTMfw処理時間 408.7ns

ARP処理時間 485.7ns

ARPリクエスト ARPリプライ

パケット送信

UDPトンネル通信

ARP処理時間

パケット処理時間 R-NTMfw処理時間

一般通信をNTMobile通信に 変換する時間は僅か

10回の平均値

(18)

NTMobile アダプタの実現方式の検討

一般端末にNTMAを隣接設置

一般通信をNTMobile通信に変換

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

今後の方針

イニシエータ側NTMAの実装の完了

レスポンダ側NTMAの機能について検討・実装

NTMAの機能拡張に向けて検討

(19)

17

(20)

NTMソケットAPI

上位アプリケーションに NTMソケットAPIを提供

Virtual IP Stack

仮想IPパケットの生成

パケット操作モジュール

暗号化・MAC付与

CソケットAPI

Linuxが提供するCソケット

アプリケーション層で動作する通信ライブラリ

上位アプリケーションにNTMobile機能を提供

18

NTMソケットAPI

Virtual IP Stack

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

ネゴシエーション モジュール CソケットAPI

NIC

NTMobile framework

アプリケーション Data ntmfw_sedto()..etc

NTM 仮想TCP/IP HMAC 仮想IP 仮想TCP Data

NTM 仮想TCP/IP HMAC IP UDP

Linux

(21)

19

通信の経路指示

仮想IPアドレスの配布

通信の中継 基本的にエンドエンド通信

NTM端末:MN

NTM端末:CN NAT

DC

RS Internet

NAT越え問題を解決する技術

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

NTMobile framework を実装した端末

MNMobile Node

CN(Correspondent Node)

端末の位置に依存しないIPアドレス

IPアドレスの変化を隠蔽 仮想IPアドレス

(22)

GN1 NTM端末

NTMA NAT DC

DNSクエリ

DNSレスポンス

NTMobileシグナリング

UDPトンネル通信 パケット送信

UDPトンネル通信 パケット送信

NTM端末のFQDNを指定

(23)

21

GN1 NTM端末

NTMA NAT DC

DNSクエリ

DNSレスポンス

NTMobileシグナリング

UDPトンネル通信 パケット送信

UDPトンネル通信 パケット送信

NTM端末のFQDNの場合 トンネル構築処理を行う

(24)

GN1 NTM端末

NTMA NAT DC

DNSクエリ

DNSレスポンス

NTMobileシグナリング

UDPトンネル通信 パケット送信

UDPトンネル通信 パケット送信

NTM端末の仮想IPアドレスで返信

(25)

23

GN1 NTM端末

NTMA NAT DC

DNSクエリ

DNSレスポンス

NTMobileシグナリング

UDPトンネル通信 パケット送信

UDPトンネル通信 パケット送信

(26)

GN1 NTM端末

NTMA NAT DC

DNSクエリ

DNSレスポンス

NTMobileシグナリング

UDPトンネル通信 パケット送信

UDPトンネル通信 パケット送信

(27)

25

GN1 NTM端末

NTMA NAT DC

DNSクエリ

DNSレスポンス

NTMobileシグナリング

UDPトンネル通信 パケット送信

UDPトンネル通信 パケット送信

(28)

Initモジュール イニシエータ モジュール

R-NTMfw

Linux

NIC0 NIC1

GN NTM端末

RAWソケット

Cソケット

NTMソケット

(29)

27

Initモジュール イニシエータ モジュール

R-NTMfw

Linux

NIC0 NIC1

Data flow 一般通信 NTMobile通信

GN NTM端末

RAWソケット

Cソケット

NTMソケット

DCから仮想IPアドレ スの割り当てを受ける

DHCPサーバの機能 を包含し,GNからのIP アドレス要求に対して,

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

(30)

Initモジュール イニシエータ モジュール

R-NTMfw

Linux

NIC0 NIC1

GN NTM端末

RAWソケット

Cソケット

NTMソケット GNから送信されるパケットを

RAWソケットで受信

DNSクエリ

トンネル構築処理

DNSリプライの送信

UDP/TCPパケット

トンネル通信で パケットを送信

APR

自身のMACアドレス ARPリプライ

DHCP

Initモジュールに 処理を渡す

(31)

29

Initモジュール イニシエータ モジュール

R-NTMfw

Linux

NIC0 NIC1

Data flow 一般通信 NTMobile通信

GN NTM端末

RAWソケット

Cソケット

NTMソケット

(32)

NTM fw を改造したアプリケーション

lwIPの処理をスキップ

データ

データ 仮想IP 仮想UDP

データ 仮想IP 仮想UDP

NTM HMAC

データ 仮想IP 仮想UDP

NTM HMAC

UDP IP

lwIP

NTMfw NTMソケット

Cソケット

(33)

NTM fw を改造したアプリケーション

lwIPの処理をスキップ

31

R-NTMfw

NTMソケット

Cソケット RAWソケット

データ 仮想IP 仮想UDP

データ 仮想IP 仮想UDP

データ 仮想IP 仮想UDP

NTM HMAC

データ 仮想IP 仮想UDP

NTM HMAC

UDP IP

参照

関連したドキュメント

横断歩行者の信号無視者数を減少することを目的 とした信号制御方式の検討を行った。信号制御方式

従って、こ こでは「嬉 しい」と「 楽しい」の 間にも差が あると考え られる。こ のような差 は語を区別 するために 決しておざ

ロボットは「心」を持つことができるのか 、 という問いに対する柴 しば 田 た 先生の考え方を

現実感のもてる問題場面からスタートし,問題 場面を自らの考えや表現を用いて表し,教師の

しかし何かを不思議だと思うことは勉強をする最も良い動機だと思うので,興味を 持たれた方は以下の文献リストなどを参考に各自理解を深められたい.少しだけ案

このため、都は2021年度に「都政とICTをつなぎ、課題解決を 図る人材」として新たに ICT職

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

点から見たときに、 債務者に、 複数債権者の有する債権額を考慮することなく弁済することを可能にしているものとしては、