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

NAT-f を利用した SIP の NAT 越え通信の検討 三浦 健吉

N/A
N/A
Protected

Academic year: 2021

シェア "NAT-f を利用した SIP の NAT 越え通信の検討 三浦 健吉"

Copied!
19
0
0

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

全文

(1)

NAT-f を利用した SIP の NAT 越え通信の検討 三浦 健吉,鈴木 秀和,渡邊 晃(名城大学)

Researches on the NAT traversal technology utilizing NAT-f Kenkichi Miura, Hidekazu Suzuki, Akira Watanabe (Meijo University)

1.はじめに

いつでもどこからでもネットワークにアクセスできるユ ビキタスネットワークの需要が広まっている.しかし,家 庭内のネットワークはプライベートアドレスで構築される 場合が多く,インターネット側の端末からプライベートア ドレスの端末に通信を開始できないという NAT 越え問題 がある.

我々は,グローバルアドレスの端末と NAT ルータが連携 することにより,NAT 越え問題を解決する NAT-f(NAT-free protocol)を提案している.しかし,NAT-f は SIP(Session Initiation Protocol)に対応できないという問題があった.

そこで NAT-f による SIP の NAT 越えについて検討した.

2.NAT-f とその課題

Fig1 に NAT-f の概要を示す.外部ノードを EN ,内部ノー ドを IN と略する. IN はプライベートアドレス空間に存在 する. EN 及び NAT-f ルータには NAT-f 機能が実装されてお り, IN 及び DDNS サーバは既存のものを使用する. ただし,

DDNS サーバには予め設定が必要である.

EN は IN へ通信を開始する際, IN の FQDN に対する名前 解決を DDNS サーバに依頼する.ここでは, IN の FQDN を bob.home.example.net とする. EN は DNS 応答パケットをカ ーネルでフッキングし,取得した NAT-f ルータの IP アドレ ス G2 を仮想アドレス V1 に書き換える.この処理により,

EN は通信相手の IP アドレスを V1 として認識する.

EN は宛先 IP アドレスが V1 である最初の TCP/UDP パケ ットを送信する際に,一時的にこのパケットをカーネル内 に退避させ, NAT-f ルータとの間で NAT-f ネゴシエーション を実行する. NAT-f ルータはこれにより EN-IN 間の通信に 必要な NAT テーブルを生成する.ここで, NAT-f ルータは,

自身のグローバルアドレス G1 と外側にマッピングされた ポート番号を EN に返信する. EN は以後,送信するパケッ トの宛先 IP アドレスを G1 へ,宛先ポート番号をマッピン

グされたポートに書き換える.逆方向も同様のアドレス変 換を行う.以上の動作により NAT 外部からの通信開始が可 能となる.

ここで,SIP においては TCP/UDP パケットの IP ペイロ ード部分に IP アドレスの情報が記載されている.そのため,

NAT-f のようにネットワーク層でのアドレス変換だけでは

対応できないという課題がある.そこで次章で NAT-f を改 造することにより SIPの NAT 越えを実現する方法について 検討した.

3.提案方式

提案方式のシーケンスを Fig2 に示す.EN, NAT-f ルータ 及び SIP プロキシ B には NAT-f 機能が実装されている.

IN から送信された REGISTER メッセージを受信した SIP プロキシ B は, IP アドレスを P1 から仮想アドレス V1 へ書 き換えて登録する. EN から INVITE を受け付けると SIP プ ロキシ B は NAT-f ルータとの間で NAT-f ネゴシエーション を実行し INVITE を IN まで送り届ける.

IN から返信された 200 OK メッセージは SIP プロキシ B においてトランスポートアドレスを P1 から G2 に書き換え る.200 OK を受け取った EN は同様にアドレスを G2 から V2 へ書き換える.

EN は SIP 完了後, IN との間でデータ転送を行う.この ときの NAT 越えの手段は従来の NAT-f による方法と全く同 様である.

4.むすび

NAT-f による SIP の NAT 越えについて検討を行った.今後 は,実装と動作検証を行う.

文 献

(1) 鈴木秀和他:情処学論,Vol.48,No.12,pp.3949-3961,Dec.2007 Fig.2. Sequence of the proposal method

Fig.1. NAT-f Mapping Negotiation

IP: G2 URI: UG1

IP: G1

INVITE: UG1, G1

INVITE

G2→V2

Media Session P1→G2

INVITE 200 OK: P1 200 OK

REGISTER: UP1, P1

200 OK

ACK ACK

ACK NAT-f Mapping Negotiation

URI: UP1, IP: P1

NAT-f Mapping Negotiation

SIP Proxy A SIP Proxy B NAT-f Router IN EN

P1→V1

NAT-f NAT-f NAT-f

NAT-f Router IN EN

DDNS Server

DNS Query DNS Responese

NAT-f Mapping Negotiation TCP/UDP Communication Domain: example.net

IP: G2 IP: G2, PHN: bob

*.home IN A G2 RR

NAT-f NAT-f

(2)

NAT-f

を利用した

SIP

NAT

越え通信の検討

名城大学 理工学部 三浦健吉,鈴木秀和,渡邊晃

(3)

NAT-fを利用したSIPのNAT越え通信の検討 2

はじめに

„ IPv4

アドレス枯渇問題

…

近年,インターネットの発展に伴い,

IPv4

グローバル

IP

アド レスが不足してきた

„ NAT

… 1

個のグローバル

IP

アドレスを複数のホストで共有する技術

⇒ グローバル

IP

アドレスの枯渇を遅らせる効果がある

„ NAT

越え問題

… NAT

外側の端末から内側の端末に対して通信を開始できな

NAT: Network Address Transration

*: 本稿ではNAPTまたはIPマスカレードを含めてNATと呼ぶ

(4)

NAT-fを利用したSIPのNAT越え通信の検討 3

NAT-f*(NAT-free protocol)

について

„ NAT-f

とは

… NAT

越え問題を解決する技術

„ NAT-f

の課題

… SIP

を使用するアプリケーションの

NAT

越えに対応できない

NAT-f

はネットワーク層のプロトコルだが,

SIP

はアプリケー ション層に

IP

アドレスの情報を含むことが原因

NAT-f

を利用した

SIP

NAT

越えについて検討した

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

(5)

NAT-fを利用したSIPのNAT越え通信の検討 4

NAT-f

動作概要

EN(External Node): 外部ノード IN(Internal Node): 内部ノード

DDNS Server NAT-f IN router

HostName: bob EN

TCP/UDP通信 TCP/UDP通信

bobに関する NATテーブル

を生成

マップされたポートに向けて 送信

取得したIPアドレスを 仮想アドレスへ書き換える

(=通信相手のIPアドレスを 仮想アドレスとして認識する)

宛先IPアドレスが仮想 アドレスである最初のパケッ

トをトリガにして実行

ドメイン

IPアドレス

DNS名前解決

bobと通信したい マップされたポート

NAT-fネゴシエーション

INのホスト名とNAT-f ルータのIPアドレス の関係が登録されて

いる

INのホスト名とプライ ベートIPアドレスの関 係が登録されている

(6)

NAT-fを利用したSIPのNAT越え通信の検討 5

SIP

の基本シーケンス

SIP Server A SIP Server B IN

IP: IPEN URI: URIEN

EN

IP: IPIN URI: URIIN

INVITE: URI EN , URI IN , IP EN :t

200 OK: URI IN , URI EN , IP IN :u REGISTER: URI IN , IP IN :s

URI IN , IP IN :s

登録

ACK: URI EN , URI IN

ロケーション

メディアセッション

dst: IP IN :u dst: IP EN :t

dst: IP IN : s

転送先の情報を取得

(7)

NAT-fを利用したSIPのNAT越え通信の検討 6

NAT-f

による

SIP

NAT

越え通信

„ NAT-f

を動作させるには通信相手の

IP

アドレスを仮 想アドレスとして認識させる必要がある

SIP

メッセージに記載された

IP

アドレスを直接仮想 アドレスへ書きかえることを検討

(8)

NAT-fを利用したSIPのNAT越え通信の検討 7

提案方式

1/5 :

環境・事前設定

„ NAT-f

対応端末

: EN

SIP Server B

NAT-f router

„ ACT: IN

SIP URI

とプライベート

IP

アドレスを登録しておく

ACT(Access Controll Table):

アクセス制御テーブル

(9)

NAT-fを利用したSIPのNAT越え通信の検討 8

提案方式

2/5 : REGISTER

„ SIP Server B

のロケーション

DB

には仮想アドレスが登録さ れる

NRT(Name Relation Table):

名前関連テーブル

SIP Server A NAT-f IN

router

REGISTER: URI IN , IP IN :s

SIP Server B

URI: URIEN HN: bob

URI: URIIN

ロケーション

IP IN

V1

NRT V1 ,IP

NAT

, URI

IN

EN

登録

URI

IN

, V1:s

生成 NAT-f

NAT-f NAT-f

(10)

NAT-fを利用したSIPのNAT越え通信の検討 9

提案方式

3/5 : INVITE

„ SIP Server B – IN

間の

NAT

越え

SIP Server A NAT-f IN

router SIP Server B

URI: URIEN HN: bob

URI: URIIN

EN

INVITE: URI EN ,URI IN , IP EN :t

ロケーション

URI

IN

, V1:s

NRT

m

URI IN , s

NATテーブル

IP NAT :m

IP IN :s

ACT bob, URI

IN

, IP

IN

V1 ,

IP NAT

, URI

IN

VAT

V1:s ⇔ IP NAT

:m

dst: IP NAT :m dst: IP IN :s

転送先の情報を取得

dst: V1:s

URIによりINのプライベ ートIPアドレスを取得

VATに従いアドレス変換 V1によりマッピングに必要な情報を取得

NAT-fネゴシエーション NAT-f

NAT-f NAT-f

トリガパケット

生成

生成

(11)

NAT-fを利用したSIPのNAT越え通信の検討 10

提案方式

4/5 : 200 OK, ACK

„ EN

NAT-f

ネゴシエーションを行うには

NAT

ルータの

IP

アドレスが必要

SIP Server A NAT-f IN

router SIP Server B

URI: URIEN HN: bob

URI: URIIN

EN

200 OK: URI EN ,URI IN, IP IN :t IP IN

IP NAT

IP NAT

V2

NRT V2 ,IP

NAT

, URI

IN

生成

ACK: URI EN ,URI IN

dst: IP NAT :m dst: IP IN :s

VAT

V1:s ⇔ IP NAT

:m

VATに従って アドレス変換 NAT-f

NAT-f NAT-f

(12)

NAT-fを利用したSIPのNAT越え通信の検討 11

提案方式

5/5 :

メディアセッションの確立

„ EN – IN

間の

NAT

越え

SIP Server A NAT-f IN

router SIP Server B

URI: URIEN HN: bob

URI: URIIN

EN

n

URI IN , t

VAT

V2:t ⇔ IP NAT

:n NRT V2 ,

IP NAT

, URI

IN

IP NAT :m

IP IN :s IP NAT :n

IP IN :t dst: V1:t

dst: IP IN :t dst: IP EN :t

メディアセッション確立

ACT bob, URI

IN

, IP

IN

NATテーブル

参照 参照

NAT-fネゴシ エーション

VATに従って

アドレス変換

dst: IP NAT

:n

NAT-f

NAT-f NAT-f

トリガパケット

生成

(13)

NAT-fを利用したSIPのNAT越え通信の検討 12

むすび

„ NAT-f

を利用した

SIP

NAT

越え通信について検討 した.

„

今後は,実装と評価を行う。

(14)

NAT-fを利用したSIPのNAT越え通信の検討 13

補足資料など

(15)

NAT-fを利用したSIPのNAT越え通信の検討 14

提案方式の環境

SIP Server A SIP Server B IN

EN NAT-f

router

URI: URI

EN

HN: bob URI: URI

IN

NAT-f NAT-f NAT-f

(16)

NAT-fを利用したSIPのNAT越え通信の検討 15

NAT-f

動作概要

„ 3

フェーズから構成

IN DDNS Server

NAT-f router

HN: bob IP: IP

IN

EN

DNS名前解決

NAT-fネゴシエーション

TCP/UDP通信 TCP/UDP通信

bobと

通信したい bobに関する

NATテーブル を生成

マップされたポート に向けて送信

IP: IP

NAT

IP: IP

EN

(17)

NAT-fを利用したSIPのNAT越え通信の検討 16

NAT-f

の動作

(

詳細

) 1/2

„ DNS

応答パケットに含まれる

IP

アドレスを

IP NAT

から

V1

へ書き 換える

→アプリケーションは通信相手の

IP

アドレスを

V1

として認識

IN DDNS Server

IP NAT

V1

NAT-f router

仮想アドレスへ書き換え DNS名前解決

NRT

HN: bob bob.home.example.net

Application Kernel

EN

保存

V1, IP NAT , bob

NRT: Name Relation Table;

名前関連テーブル

(18)

NAT-fを利用したSIPのNAT越え通信の検討 17

NAT-f

の動作

(

詳細

) 2/2

„ EN

は最初のパケットをトリガにして

NAT-f

ネゴシエーションを実

VAT: Vartual Address Translation Table; 仮想アドレス変換テーブル

IN DDNS Server NAT-f

router

NRT V1, IP NAT , bob

HN: bob

Application Kernel

EN

IP EN :s ← V1:d

NAT-f ネゴシエーション

IP NAT :m ⇔ IP IN :d 生成

IP EN :s → IP NAT :m IP EN :s → IP IN :d IP EN :s ← IP IN :d IP EN :s ← IP NAT :m

VAT V1:d ⇔ IP NAT :m IP EN :s → V1:d

アドレス変換

m bob, d

V1で検索

ACT bob, IP IN , allow

bobで検索

生成

NATテーブル

(19)

NAT-fを利用したSIPのNAT越え通信の検討 18

仮想アドレス

„

クラス

E

IP

アドレスを使用する

„

クラス

E

IP

アドレスは実際の通信には使用されていない

„ IP

アドレスのクラス

…

クラス

A: 0.0.0.0-127.255.255.255

…

クラス

B: 128.0.0.0-191.255.255.255

…

クラス

C: 192.0.0.0-223.255.255.255

…

クラス

D: 224.0.0.0-239.255.255.255

…

クラス

E: 240.0.0.0-255.255.255.255

参照

関連したドキュメント

⑤BIG-IP Local Traffic Manager は、Call-Id から INVITE リクエストをプロキシした WebOTX SIP Application Server を特定します。その後、先頭の Route

ま と め IPv4 における移動透過性通信では,NAT の存在を考慮する必要がある.しかし近年の NAT

ま と め IPv4 における移動透過性通信では,NAT の存在を考慮する必要がある.しかし近年の NAT

IP マルチキャスト ダイナミック ネットワーク

よび OK レスポンスは、端末の IP アドレスを Contact フ ィールドに含むことが可能で、これにより、その後のセ ッションデータや

図 5 に NAT-f ルータの実装概要を示す. NAT-f ルー タには今回実装した NAT-f モジュールに加えて, NAT デーモン natd ☆☆ を動作させる. NAT-f

Waypoint は EN からのパケットを受信すると,経路変換テーブルに基づいて宛先アドレ スを alice のプライベート IP アドレス( P A1

Agent のローカルアドレス、 STUN より NAT のグローバル IP アド レスとポート番号、 TURN サーバの中継用グローバル IP アドレス とポート番号を入手する ( 順に