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

端末の変更が一切不要な NAT 越え通信システムの提案

N/A
N/A
Protected

Academic year: 2021

シェア "端末の変更が一切不要な NAT 越え通信システムの提案"

Copied!
33
0
0

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

全文

(1)

端末の変更が一切不要なNAT越え通信システムの提案

123430037 松尾 辰也

渡邊研究室

1. はじめに

IPv4アドレスの枯渇に対応するため,家庭内や企業のネッ トワークの端末はNATNetwork Address Translation によるプライベートアドレスで実現するのが一般的である.

しかし,NATが存在するとグローバル側の端末からプラ イベート側の端末へ通信を開始できないNAT越え問題が 存在する.これまでに様々な方式が提案されてきたが,多 くの方式では端末に特殊な機能を実装する必要があった.

この課題を解決するために,我々は端末の改造が不要な NAT越え技術NTSSNAT Traversal Support System [1]を提案し実現させた.NTSSは,グローバル側の端末 が名前解決のために使用するDNSキャッシュサーバ,及 NATを改造し,それぞれが動作を協調することにより,

NAT越えを実現する.しかし,NTSSではグローバル側 の端末においてキャッシュサーバの登録変更をしなければ ならず,誰でも利用できる訳ではなかった.

そこで本論文では,DNSキャッシュサーバには一切改 造を加えず,プライベート側の端末のアドレスを管理する DNS権威サーバを改造するように機能を見直したNTSSv2 を提案する.この方式により,両エンド端末の変更,およ び設定変更が一切不要なNAT越えシステムが実現できる.

2. NTSSとその課題

2. 1 NTSS

NTSSはエンド端末の改造を不要とした独自のNAT え通信システムである.

以後の説明では,ENExternal Node)をグローバル側 からアクセスする端末,INInternal Node)をプライベー トアドレス空間に存在し,ENからアクセスされる端末と する.また,DNSサーバが提供する機能の違いにより,ホ スト名を管理するDNSサーバを権威サーバ,ホスト名を問 い合わせるDNSサーバをキャッシュサーバと呼ぶ.NTSS では,ENのキャッシュサーバとNATを改造し,そこに NTSSを実現させるためのNTSプロトコルを実装してい る.改造したキャッシュサーバをNTSサーバ,改造した NATNTSルータと呼ぶ.

ENからINalice)へ通信を開始する場合を例として,

NTSSの事前設定と各処理の流れを説明する.

(1) 事前設定 ENはあらかじめ,NTSサーバをキャッ シュサーバとなるように登録変更しておく.また,IN 権威サーバとなるDDNSDynamic DNS)を設置し,

INFQDNNTSルータのグローバルIPアドレス の対応関係をDNSレコードに登録する.NTSルータ にはINFQDNとプライベートIPアドレスの対応 関係を独自のテーブルPHLPrivate Host List)に登 録する.

(2) 名前解決 図1NTSSの名前解決シーケンスを示 す.ENは通信を開始するに当たり,aliceの名前解決 NTSサーバへ依頼する.NTSサーバは通常のDNS の仕組みにより,rootDNSサーバから始まる反復問合 せを行い,aliceの権威サーバであるDDNSサーバよ NTSルータのグローバルIPアドレス(GA2)を取 得する.NTSサーバはこの名前解決結果をENへ返信

EN NTS server

DDNS server

(example.net) NTS router

DNS query IP:GA1

Alice.example.net? Alice.example.net?

GA2

(GA1,alice)

Create RC RC IP:GA2

DNS response

DNS response NTS request

NTS response

GA2

PHL

RC:Request Cache From To

GA1 PA1 alice=PA1 bob =PA2

1: NTSSの名前解決シーケンス

EN

NTS router

Date packet IP:GA1

Create NAT table RC

IP:GA2

Response packet RC:Request Cache fa:Foreign Address ga:Global Address pa:Private Address From To

GA1 PA1

GA1:s→GA2:d

IN(alice)

IP:PA1

GA1:s→PA1:d

GA1:s←PA1:d

fa ga pa

GA1:s Ga2:d PA1:d NAT table

GA1:s←GA2:d

2: NTSSの通信開始シーケンス

する前に,NTSルータとネゴシエーションを行う.こ の時,NTSルータは通知情報をRCRequest Cache と呼ぶキャッシュへ記憶し,NTSサーバへNTSレス ポンスを返信する.これを受信したNTSサーバは,先 ほど取得した名前解決結果(GA2)をENに返信する.

(3) 通信開始 図2に名前解決後の通信開始シーケンス を示す.ENは名前解決の結果,aliceIPアドレスを GA2 と認識しているため,NTSルータに向けて通 信を開始する.NTSルータはインターネット側からパ ケットを受け取ると,送信元IPアドレスをキーとして RCを参照する.RCに該当するデータがあれば,NTS ルータは受信したパケットとRCの内容から送信元IP アドレス(GA1),宛先IPアドレスを PA1 に変換 するNATテーブルを生成する.受信したパケットは NATテーブルに従ってアドレス変換し,aliceに送信 する.これに対するaliceからの応答パケットは上記と 逆の変換を行い,ENへ送信される.RCNATテー ブルを生成した時点で削除する.

2. 2 課題

NTSSを実際のインターネット環境に適用する場合,EN を使用するユーザは,各自で使用するキャッシュサーバの 設定をNTSサーバに変更する必要がある.しかし,EN は一般端末であることから登録変更が必要であることは望 ましくない.ENの登録変更を不要とするためには,一般 ユーザが利用する全てのキャッシュサーバを置き換えれば よいが,現実的な案ではない.

(2)

EN Cache server

NTSv2 server

(example.net) NTSv2 router

DNS query IP:GA1

alice? alice?

(Unknown,alice) Create RC RC IP:GA2

DNS response

DNS response NTS request NTS response

GA2

PHL

RC:Request Cache From To

any PA1

GA2

alice=PA1 bob =PA2

3: NTSSv2の名前解決シーケンス

EN NTSv2

router

Date packet IP:GA1

Create NAT table RC

IP:GA2

Response packet RC:Request Cache fa:Foreign Address ga:Global Address pa:Private Address From To

any PA1

GA1:s→GA2:d

IN(alice)

IP:PA1

GA1:s→PA1:d

GA1:s←PA1:d

fa ga pa

GA1:s Ga2:d PA1:d NAT table

GA1:s←GA2:d

4: NTSSv2の通信開始シーケンス

3. 提案方式

上記の課題を解決するために,NTSSを実現する構成機 器とシーケンスの見直しを行ったNTSSNTSSv2と呼 ぶ.NTSSv2では,ENのキャッシュサーバは改造せず,代 わりにIN側の権威サーバとなるDDNSNTSv2サーバ として改造する.権威サーバはプライベートアドレス側の 装置であるため,改造は1ヶ所で良いという利点がある.こ れに伴い,各装置の動作を見直した.

以降NTSSと同様に,ENからINalice)へ通信開始す る場合を例として,名前解決と通信開始時に分けて説明す る.事前設定は,キャッシュサーバの設定変更以外はNTSS と同様なので省略する.

(1) 名前解決 図3NTSSv2の名前解決シーケンス を示す.ENはキャッシュサーバにINの名前解決を依 頼する.キャッシュサーバは通常のDNSの仕組みによ り,INの権威サーバとなるNTSv2サーバを発見する.

NTSv2サーバはDNS問合せを受け取ると,alice の接続要求を通知するためにNTSリクエストをNTS ルータに送信する.この時,NTSv2サーバが受信する DNS問合せには,問合せを依頼したノードの情報が含 まれていないため,ENIPアドレスを特定すること ができない.そこで,NTSルータは送信元IPアドレ スを any ,宛先をaliceとしたRCを生成しておく.

名前解決結果としてENにはNTSルータのグローバ IPアドレス(GA2)が返信される.

(2) 通信開始 図4NTSSv2の通信開始シーケンス を示す.ENは名前解決後,NTSルータに向けて通信 を開始する.NTSルータはデータパケットを受け取る と,既に生成されているRCの内容を参照する.RC 送信元IPアドレスの部分が any なので,送られて きたパケットの送信元IPアドレス(GA1)を抽出し,

GA1 をソースアドレスとするNATテーブルを生成 する.以後の処理はNTSSと同様にして,ENIN 通信が開始される.

4. 実装

提案方式の実装概要を図5,図6に示す.NTSSと同様 に,FreeBSDのアプリケーションとして,NTSv2サーバ

NTS server module BIND (DNS Application)

10053

Application layer 20053

lower layer 10054

NTS DNS

NTS router EN’s cache server

Randam

5: NTSv2サーバの実装概要

ipfw divert

IP layer Application layer

with socket s with function s Processing of packet s

lower layer

EN IN

NTSrm natd

PAT table RC Nego

Cache NAT table

IP layer

6: NTSルータの実装概要

NTSルータにそれぞれNTSモジュールを追加させる.

4. 1 NTSv2サーバ

NTSv2サーバには,DNSアプリケーションであるBIND をインストールし,これを10053番ポートでリッスンする ように設定する.代わりに,NTSサーバモジュールを53 番ポートでリッスンするように設定する.NTSサーバモ ジュールは,通常の名前解決処理はBINDに受け渡し,そ の処理結果を基にNTSルータとネゴシエーションを行う.

ネゴシエーションが完了すると,ENのキャッシュサーバに 名前解決結果を返す.このような手順により,NTSv2サー バは通常の権威サーバの様に振る舞う.

4. 2 NTSルータ

NTSルータは,natdNATデーモン)と呼ぶNAT 能を持つFreeBSDのデーモンにNTSルータモジュールを 内蔵させる.NTSルータモジュールは,divertソケットか らパケットを受信すると,送信元と宛先を入れ替えたダミー パケットを生成する.更に,PATテーブルという独自の変 換テーブルにより,ポート番号の整合性を解消させ,natd EN用のNATテーブルを強制的に生成させる.提案方 式では異なるENからの同時問合せ時対応するため,処理 をシリアライズに行わせる必要がある.そのため,NTS クエストを保存させるネゴキャッシュを新たに用意する.

5. まとめ

本論文では,既存方式の課題であった端末の改造や登録 変更を無くし,一般端末でも利用できるNAT越え方式を 提案した.今後は実装を完了させ,評価を行う予定である 参考文献

[1] 宮崎悠,鈴木秀和,渡邊晃.端末の改造が不要なNAT 越え通信システムNTSSの提案と評価,情報処理学会 論文誌, Vol. 51, pp.1873-1880, Sep.2010.

(3)

端末の変更が一切不要な

NAT

越え通信システムの提案

名城大学大学院 理工学研究科 情報工学専攻 渡邊研究室 123430037 松尾 辰也

(4)

研究背景

IPv4

アドレスの枯渇

アドレスの確保が困難となっている

プライベートアドレスの利用が一般的

NAT

Network Address Translation

プライベートアドレスによりIPv4アドレスを 大幅に節約できる

NATの外側から内側に通信を開始できない

1

NAT越え問題

(5)

NAT

越え問題

2

Internet

NAT IN

EN

IP:GA1 IP:GA2 IP:PA

T通信開始 GA2しか見えない

PAに対応する テーブルがない

破棄

NATによりINは隠蔽される

ENINに通信を開始 することができない

EN : External Node IN:Internal Node GA : Global Adress PA : Private Adress

(6)

既存研究

アプリケーションレベル改造方式

エンド端末のアプリケーションを改造,専用サーバを設置 特徴:既存のNATが利用できる

ネットワークレイヤ改造方式

ENのカーネルとNATを改造

特徴:既存のアプリケーションが利用できる

端末非依存方式

DNS(Domain Name Server)とNATを改造 特徴:エンド端末の改造が不要

3

(7)

研究の目的

モバイル端末,情報家電の多様化

一般ユーザでも容易に利用したい

4

端末に手を加えずに

NAT

越えを実現

→端末非依存方式に着目

(8)

端末非依存方式の既存研究

AVES(Address Virtualization Enabling Service)

専用サーバとNATが協調動作 第三の装置の設置,経路冗長

NTSS(NAT Traversal Support System)

本研究室が提案した独自の方式 DNSサーバとNATが協調動作

5

AVESの課題

NTSSの課題

を解決

改良

(9)

NTSS(NAT Traversal Support System)

キャッシュサーバとNATを改造

キャッシュサーバ:NTSサーバ NATNTSルータ

6

キャッシュサーバ : ホスト名を問い合わせるDNS 権威サーバ : ホスト名を管理するDNS

Internet EN

NTS server

IN

IP:GA1 IP:GA2

IP:PA1

権威サーバ

NTS router

(10)

NTSS(

事前設定

)

NTSサーバをENのキャッシュサーバに指定

登録処理

DNSレコード:INのFQDNとNTSルータのグローバルアドレスの対応関係

PHL(Private Host List):INのFQDNとプライベートアドレスの対応関係

PHL(Private Host List) : 新たに定義した独自のテーブル 7

NTS server

権威サーバ

NTS router IN

IN = PA1

PHL IP:PA1

IN = GA2

DNS record

IP:GA1 IP:GA2

EN

ENのキャッシュサーバ

Internet

(11)

NTSS (

名前解決

)

8

EN IN

IP:GA1

IP:PA1 IP:GA2

NTS server 権威サーバ

Create Request Cache

NTS router

RC

GA1 → PA1

PHL(Private Host List):INのFQDNとプライベートアドレスの対応関係を記したテーブル RC(Request Cache):ENとINのアドレスの対応関係を記したキャッシュ

EN → INの通信

PHL

IN = PA1

DNS query

DNS query DNS response

NTS request NTS response DNS response

ENINのアドレス

(12)

NTSS (

通信開始

)

9

EN IN

IP:GA1 IP:GA2 IP:PA1

GA1 → GA2

GA1 → PA1

GA1 ← PA1

fa ga pa

GA1 GA2 PA1 NAT table

GA1 ← GA2

fa(foreign address):ENのグローバルアドレス

ga(global address):NTSルータのグローバルアドレス pa(private address):INのプライベートアドレス

NTS router

Create NAT table

EN → INの通信

RC

GA1 → PA1

Data packet

Data packet

Response packet Response packet

(13)

NTSS

の課題

EN

の登録変更

ENが利用するキャッシュ サーバをNTSサーバに変更 一般端末は利用できない

10

EN EN

Internet NTS server

NTS server

端末の登録変更を不要にする方式

ENのキャッシュサーバを置き換える

解決方法

→規模が大きいと現実的ではない

(14)

11

提案方式

(15)

NTSSv2

IN

の権威サーバと

NAT

を改造

権威サーバ:NTSv2サーバ NATNTSv2ルータ

12

Internet

Cache server NTSv2 server

NTSv2 router IN

INの権威サーバ

IP:GA1 IP:GA2

IP:PA1

キャッシュサーバ : ホスト名を問い合わせるDNS 権威サーバ : ホスト名を管理するDNS

EN

(16)

NTSSv2 (

名前解決

)

13

EN IN

IP:GA1

IP:GA2 PA1

Cache server NTSv2 server

Create RC NTSv2 router

RC

any → PA1

EN → INの通信

DNS query

DNS query

NTS request

NTS response

DNS response

DNS response

PHL(Private Host List):INのFQDNとプライベートアドレスの対応関係を記したテーブル RC(Request Cache):ENとINのアドレスの対応関係を記したキャッシュ

INのアドレスのみ

(17)

NTSSv2 (

通信開始

)

14

EN IN

IP:GA1 IP:GA2 IP:PA1

fa ga pa

GA1 GA2 PA1 NAT table

NTSv2 router

Create NAT table

EN → INの通信

RC

Data packet

Data packet

GA1 → GA2

Data packet

GA1 → PA1

Response packet

GA1 ← PA1 GA1 ← GA2

Response packet

fa(foreign address):ENのグローバルアドレス

ga(global address):NTSルータのグローバルアドレス pa(private address):INのプライベートアドレス

any → PA1

(18)

解決すべき課題

同時問い合わせ

第三者による通信の妨害

15

(19)

2台以上の端末(EN1,EN2)が同時に通信を開始す ると,誤ったNATテーブルを生成する可能性がある

16

同時問合せ

EN1

EN2

NTSv2 server NTSv2 router

DNS query

NTS request

Create RC(EN2)

NTS request DNS query

Create RC(EN1)

Data packet Data packet

順番が入れ替わる と誤ったNATテー ブルが生成される 可能性がある Create NAT table

(20)

対策:NTSv2ルータが各々のリクエストに対し,

処理をシリアライズすることで解決

17

EN1のみ処理

EN2のみ処理

同時問合せ

EN1

EN2

DNS query

NTS request

wait

NTS request DNS query

Create RC(EN1)

Data packet Create NAT

table(EN1) NTS response

NTS response DNS response

DNS response

Create RC(EN2) NTSv2 router

NTSv2 server

ポイント

(21)

EN1の通信確立中にEN2が割込むと,通信妨害 をされる可能性がある

18

通信妨害の課題

EN2

EN1 Cache

server NTSv2

server NTSv2

router IN

Create NAT table Delete RC

DNS query

DNS query

NTS request

any → PA1 RC Create RC

*一部処理は省略

DNS response response response

Data packet

Data packet

(22)

対策:RCを一定期間保持させる

→正規端末の通信の確立を保証

19

通信妨害

EN2

EN1 NTSv2

router IN

Create NAT table DNS query

DNS query

NTS request

any → PA1 RC

Create RC Cache

server NTSv2 server

response response

DNS response

Data packet Data packet

Data packet Data packet

青枠の期間はRCを保持

EN2からの通信は不正通信として削除 ポイント

(23)

NTSSv2

の適用例

20

Internet

NTSネットワーク

NTSv2 server

NTS router

改造は赤枠の2台のみ

プライベートアドレスによる広域無線LAN

(24)

むすび

NTSv2

サーバと

NTSv2

ルータの連携によ り,エンド端末の改造と登録変更が不要 な

NAT

越えを実現

同時通信と通信妨害の課題を解決

今後

実装の完了

ストレステストなどによる評価

21

(25)

22

(26)

補足

23

(27)

STUN

(Simple Traversal of UDP through NATs)

アプリケーションとSTUNサーバが協調動作

24

EN

STUN server

NAT

IN

STUN対応アプリ

Rosenberg, J.,Weinberger, J., Huitema, C. and Mahy, R.:

STUN - Simple Traversal of UDP Through NATs,RFC 3489, IETF (2003).

STUN対応アプリ 通信開始

登録処理 ネゴシエーション

(28)

NAT-f(NAT-free protocol)

ENのカーネルやNATを改造し,協調動作

既存方式 : NAT-fなど

25

EN

DDNS server

NAT-f

router IN

鈴木,他「外部動的マッピングによりNAT越え通信を実現するNAT-fの提案と実装」

情報処理学会論文誌,Vol.48, No.12, pp.3949-3961 (2007).

通信開始 名前解決

ネゴシエーション

アドレス変換 改造したカーネル

(29)

AVES

(Address Virtualization Enabling Service)

DNSNATなどを改造し,協調動作

既存方式 : AVESNTSSなど

26

EN

ADNS server

IN

通信開始 名前解決

ANAT router ネゴシエーション

アドレス変換 Waypoint

カプセル化

(30)

RC

保持時間

単一リクエストの処理時間から見積もる

EN-NTS router

間の

RTT

を目安に設定

端末や環境により異なる 保持期間を短くする

対応端末:少 スループット:高

保持期間を長くする

対応端末:多 スループット:低

27

(31)

実装

1

NTSv2

サーバ(

FreeBSD

BINDNTSサーバモジュールで構成する

28

NTSサーバモジュール :

DNSパケットの中継・解析,

NTSネゴシエーション BIND :

DNSアプリケーション

(32)

実装

2

NTSv2

ルータ(

FreeBSD

natd(NAT機能を持つデーモン)NTSルータモ ジュールを組み込む

29

NTSrm(NTSルータモジュール) :

NTSネゴシエーションの処理,RC の生成,ダミーパケットの生成

divert :

natdのパケット取り出しをサ ポートするソケット

ipfw :

ファイアウォールのモジュール

(33)

10秒当りのリクエスト数に対する平均待ち時間

リクエスト数(λ):010010刻みずつ計算)

平均サービス率(μ):100(リクエスト1個当たり約100msで処 理)

30

ルータの負荷予測

参照

関連したドキュメント

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

は、これには該当せず、事前調査を行う必要があること。 ウ

本時は、「どのクラスが一番、テスト前の学習を頑張ったか」という課題を解決する際、その判断の根

議論を深めるための参 考値を踏まえて、参考 値を実現するための各 電源の課題が克服さ れた場合のシナリオ

すべての Web ページで HTTPS でのアクセスを提供することが必要である。サーバー証 明書を使った HTTPS

将来の需要や電源構成 等を踏まえ、設備計画を 見直すとともに仕様の 見直し等を通じて投資の 削減を実施.

 工学の目的は社会における課題の解決で す。現代社会の課題は複雑化し、柔軟、再構

LUNA 上に図、表、数式などを含んだ問題と回答を LUNA の画面上に同一で表示する機能の必要性 などについての意見があった。そのため、 LUNA