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

NAT 越え技術 NAT のしくみと

N/A
N/A
Protected

Academic year: 2021

シェア "NAT 越え技術 NAT のしくみと"

Copied!
47
0
0

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

全文

(1)

NAT のしくみと NAT 越え技術

150441104 成瀬 哲

(2)

概要

 NAT

Network Address Translation(

ネットワークアドレス 変換

)

末端機器

(PC)

とインターネットの間で、パケット中の

IP

アド レス

(

とポート番号

)

を変換する技術

プライベート

IP

アドレスを持つ機器が、インターネットと 双方向通信することが可能になる

分類

静的・動的

• Symmetric

型・

Cone

2

(3)

プライベート IP アドレスについて

インターネットに対して非公開のコンピュータネットワーク 内で用いられる

IP

アドレス

ネットワーク内では一意だが、他ネットワークでは重複して いる可能性がある

利点

グローバル

IP

アドレスの浪費を防ぐ

セキュリティ確保

• IP

アドレス管理団体の許可が不要

3

(4)

概要

 NAT

Network Address Translation(

ネットワークアドレス 変換

)

末端機器

(PC)

とインターネットの間で、パケット中の

IP

アド レス

(

とポート番号

)

を変換する技術

プライベート

IP

アドレスを持つ機器が、インターネットと 双方向通信することが可能になる

分類

静的・動的

• Symmetric

型・

Cone

4

(5)

分類について

静的・動的

静的:管理者があらかじめ変換を設定しておく方法

動的:

NAT

で使用する

IP

アドレスのプールを設定する方法

 Symmetric

型・

Cone

• Symmetric

型:宛先ごとにアドレス変換を生成

• Cone

型:宛先に関わらず、唯一のアドレス変換を生成

5

(6)

Symmetric 型の動作 ( 送信の場合 )

IP

パケット

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

① PC からプライベート IP アドレスを用いて、

インターネット上のサーバにパケットを送信する

送信元 = P1:k 送信先 = G2:l

6

(7)

Symmetric 型の動作 ( 送信の場合 )

IP

パケット

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

② NAT 通過時、パケットの送信元アドレスとポート番号を 変換して転送する

送信元 = G1:m 送信先 = G2:l

7

(8)

Symmetric 型の動作 ( 送信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

③ NAT テーブルに

変換情報とフィルタリングを記述する

フィルタリング 変換情報

G2:l P1:k ⇔ G1:m

NAT テーブル

IP

パケット

送信元 = G1:m 送信先 = G2:l

8

(9)

Symmetric 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

NAT テーブルのフィルタリングに記述さ れている相手からの通信は成立する

フィルタリング 変換情報

G2:l P1:k ⇔ G1:m

NAT テーブル

IP

パケット

送信元 = G2:l 送信先 = G1:m

9

(10)

Symmetric 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

NAT テーブルのフィルタリングに記述さ れている相手からの通信は成立する

フィルタリング 変換情報

G2:l P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:l 送信先 = P1:k

10

(11)

Symmetric 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

NAT テーブルのフィルタリングに記述さ れている相手からの通信は成立する

フィルタリング 変換情報

G2:l P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:l 送信先 = P1:k

11

(12)

Symmetric 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

NAT テーブルのフィルタリングに記述さ れていない相手からの通信は破棄する

フィルタリング 変換情報

G2:l P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:a 送信先 = G1:m

12

(13)

Symmetric 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

NAT テーブルのフィルタリングに記述さ れていない相手からの通信は破棄する

フィルタリング 変換情報

G2:l P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:a 送信先 = G1:m

13

(14)

Cone 型の動作 ( 送信の場合 )

IP

パケット

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

① PC からプライベート IP アドレスを用いて、

インターネット上のサーバにパケットを送信する

送信元 = P1:k 送信先 = G2:l

14

(15)

Cone 型の動作 ( 送信の場合 )

IP

パケット

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

② NAT 通過時、パケットの送信元アドレスとポート番号を 変換して転送する

送信元 = G1:m 送信先 = G2:l

15

(16)

Cone 型の動作 ( 送信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

③ NAT テーブルに変換情報を記述する ( フィルタリングには何も記述しない )

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G1:m 送信先 = G2:l

16

(17)

Cone 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

他の通信で生成した NAT テーブルを用い て、グローバルアドレス側から通信可能

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:l 送信先 = G1:m

17

(18)

Cone 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

他の通信で生成した NAT テーブルを用い て、グローバルアドレス側から通信可能

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:l 送信先 = P1:k

18

(19)

Cone 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

他の通信で生成した NAT テーブルを用い て、グローバルアドレス側から通信可能

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:l 送信先 = P1:k

19

(20)

Cone 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

他の通信で生成した NAT テーブルを用い て、グローバルアドレス側から通信可能

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:a 送信先 = G1:m

20

(21)

Cone 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

他の通信で生成した NAT テーブルを用い て、グローバルアドレス側から通信可能

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:a 送信先 = P1:k

21

(22)

Cone 型の動作 ( 受信の場合 )

NAT

プライベートネットワーク

PC

サーバ

Internet

P1 P2 G1 G2

他の通信で生成した NAT テーブルを用い て、グローバルアドレス側から通信可能

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

IP

パケット

送信元 = G2:a 送信先 = P1:k

22

(23)

Cone 型 NAT の分類

 Full Cone NAT

一度も送信したことのない

WAN

側からのパケットも、変 換情報が存在する

IP

アドレス・ポート番号宛てにパケット が届いた場合は転送される

 Address-Restricted Cone NAT

一度送信したことのある

IP

アドレスからのパケットであれ ば、変換情報が存在する

IP

アドレス・ポート番号宛てにパ ケットが届いた場合は転送される

 Port Restricted Cone NAT

一度送信したことのある

IP

アドレス・ポート番号からのパ ケットであれば、変換情報が存在する

IP

アドレス・ポート 番号宛てにパケットが届いた場合は転送される

23

(24)

Full Cone NAT

NAT

プライベートネットワーク

サーバ

B

PC1

P1 P2 G1

G2

一度も送信したことのない WAN 側からのパケットも、変換情 報が存在する IP アドレス・ポート番号宛てにパケットが届いた 場合は転送される

Internet

G3

サーバ

A

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

I P

パ ケ ッ ト

送信元

= G2:l

送信先

= P1:k

G2:lに送信済

I P

パ ケ ッ ト

送信元

= G2:X

送信先

= P1:k

I P

パ ケ ッ ト

送信元

= G3 :l

送信先

= P1:k

24

(25)

Address-Restricted Cone NAT

NAT

プライベートネットワーク

サーバ

B

PC1

P1 P2 G1

G2

一度送信したことのある IP アドレスからのパケットであれば、

変換情報が存在する IP アドレス・ポート番号宛てにパケットが 届いた場合は転送される

Internet

G3

サーバ

A

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

I P

パ ケ ッ ト

送信元

= G2:l

送信先

= P1:k

I P

パ ケ ッ ト

送信元

= G2:X

送信先

= P1:k

I P

パ ケ ッ ト

送信元

= G3 :l

送信先

= P1:k

25

(26)

Port Restricted Cone NAT

NAT

プライベートネットワーク

サーバ

B

PC1

P1 P2 G1

G2

一度送信したことのある IP アドレス・ポート番号からのパケッ トであれば、変換情報が存在する IP アドレス・ポート番号宛て にパケットが届いた場合は転送される

Internet

G3

サーバ

A

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

I P

パ ケ ッ ト

送信元

= G2:l

送信先

= P1:k

I P

パ ケ ッ ト

送信元

= G2:X

送信先

= P1:k

I P

パ ケ ッ ト

送信元

= G3 :l

送信先

= P1:k

26

(27)

NAT が抱える問題

グローバルアドレス側からの通信開始が不可能

• NAT

テーブルがなく、

NAT

配下の誰に送信すればよいかわ からない

P3

P4 P2

Internet

G2

P1 G1

IP

パケット

送信元 = G1:l 送信先 = G2:k

27

(28)

NAT 越え技術

 STUN(Simple Traversal of UDP through NATs)

 TURN(Traversal Using Relay NAT)

 ICE(Interactive Connectivity Establishment)

28

(29)

Cone 型 NAT の場合の STUN の動作 ( 準備 )

IP

パケット

NAT

プライベートネットワーク

PC1

サーバ

P1 P2 G1

G2

① PC1 からプライベート IP アドレスを用いて、

STUN サーバにパケットを送信する (STUN Binding Request )

送信元 = P1:k 送信先 = G3:s 送信者 = PC1

Internet

G3 STUN

サーバ

29

(30)

Cone 型 NAT の場合の STUN の動作 ( 準備 )

NAT

プライベートネットワーク

PC1

サーバ

P1 P2 G1

G2

② NAT テーブルが作成され、

STUN サーバに PC1 と G1:m の関係が登録される

Internet

G3 STUN

サーバ

PC1 is [G1:m]

IP

パケット

送信元 = G1:m 送信先 = G3:s

送信者 = PC1

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

30

(31)

Cone 型 NAT の場合の STUN の動作

NAT

プライベートネットワーク

PC1

サーバ

P1 P2 G1

G2

①サーバは STUN サーバに PC1 の情報を問い合わせる

Internet

G3 STUN

サーバ

PC1 is [G1:m]

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

Query PC1?

31

(32)

Cone 型 NAT の場合の STUN の動作

NAT

プライベートネットワーク

PC1

サーバ

P1 P2 G1

G2

② STUN サーバは自信のもつ PC1 の情報をサーバに答える

Internet

G3 STUN

サーバ

PC1 is [G1:m]

PC1 is [G1:m]

32

(33)

Cone 型 NAT の場合の STUN の動作

NAT

プライベートネットワーク

PC1

サーバ

P1 P2 G1

G2

③受信した PC1 のアドレスとポート番号を用いて、パケットを 送信する

Internet

G3 STUN

サーバ

PC1 is [G1:m]

IP

パケット

送信元 = G2:l 送信先 = G1:m

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

33

(34)

Cone 型 NAT の場合の STUN の動作

NAT

プライベートネットワーク

PC1

サーバ

P1 P2 G1

G2

④ Cone 型 NAT のため破棄されることなく通信が行われる

Internet

G3 STUN

サーバ

PC1 is [G1:m]

IP

パケット

送信元 = G2:l 送信先 = P1:k

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

34

(35)

Cone 型 NAT の場合の STUN の動作

NAT

プライベートネットワーク

PC1

サーバ

P1 P2 G1

G2

④ Cone 型 NAT のため破棄されることなく通信が行われる

Internet

G3 STUN

サーバ

PC1 is [G1:m]

IP

パケット

送信元 = G2:l 送信先 = P1:k

フィルタリング 変換情報

※:※ P1:k ⇔ G1:m

NATテーブル

35

(36)

TURN の動作 ( 割り当て )

NAT

プライベートネットワーク

PC1 TURN

サーバ

Internet

P1

P2

G1 G2:l

サーバ使用権限を持っていることを示す資格情報を送信する 認証成功後、 TURN サーバが用いる転送アドレスが返される。

(G2:n)

資格情報

ユーザ名 パスワード

G2:n

G2:n

36

(37)

TURN の動作 ( 送信メカニズム )

NAT

プライベートネットワーク

PC1 TURN

サーバ

Internet

P1

P2

G1 G2:l

① TURN サーバに接続作成要求を送信する ( 接続先を PC2 とする ) アクセスが許可された場合、レスポンスが返ってくる。

Create Permission request (PC2)

G2:n

Create Permission response

37

(38)

TURN の動作 ( 送信メカニズム )

TURN

サーバ

PC1

② TURN サーバを介してデータの送受信を行う

PC2

データ表示 データ

データ

送信命令

+

データ

38

(39)

ICE について

 STUN

TURN

を組み合わせたようなもの

互いの通信できそうな候補の組み合わせの中から接続可能な ものを探し、その中で最も良いものを使用する

以下のように進む

1.

準備:候補の準備

2.

交換:自信と相手の候補リストを交換

3.

整頓:候補をペアにする

4.

確認:接続可能性を確認

5.

完結:どのペアを用いるか決定する

39

(40)

候補の収集

NAT

プライベートネットワーク

TURN

サーバ

Agent

A:a P2 B:b

G2

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

Reflexive Candidate, Relayed Candidate という )

Internet

G3 STUN

サーバ

C:c

40

(41)

候補の優先順位付けと冗長削除

優先度は以下の式で求める

• Priority = 2

24

× 𝑡𝑦𝑝𝑒 𝑝𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑒 + 2

8

×

𝑙𝑜𝑐𝑎𝑙 𝑝𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑒 + 2

0

× (256 − 𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝐼𝐷)

• Type preference:

候補のタイプごとの優先度

• HOST…126(

最高値

),SERVER REFLEXIVE…100, RELAYED…0

(最低値)

• Local preference:IP

アドレスの優先順位

• NAT

のグローバル

IP

アドレスとポート番号が複数存在する場合 に用いる

• Component ID:1~256

までの値

• RTP

の場合

1

RTCP

の場合

2

41

(42)

候補の優先順位付けと冗長削除

冗長削除について

NAT

あり

NAT

なし

A:a

A:a

STUN

サーバ

B:b

42

(43)

候補情報の交換・整頓

 SDP(Session Description Protocol)

を用いて交換する

自身と相手の候補を以下のようなペアにする

IP

Address Port Protocol Type IP

Address Port Protocol Type

𝐴

𝐿

𝑎

𝐿 UDP HOST

𝐴

𝑅

𝑎

𝑅 UDP HOST

𝐴

𝐿

𝑎

𝐿 UDP HOST

𝐵

𝑅

𝑏

𝑅 UDP SERVER

⋮ ⋮

⋮ ⋮

𝐶

𝐿

𝑐

𝐿 UDP RELAYED

𝐶

𝑅

𝑐

𝑅 UDP RELAYED

※Agent LをControlling Agent,Agent RをControlled Agentとする

43

(44)

接続可能性の確認

各候補間の接続性を、

STUN Binding request/response

に より確認する

 STUN Binding response

が以下の条件を満たす場合,

接続可能と判定する

成功応答

(success response)

である

送信元

IP

アドレスとポート番号が

Binding request

した宛 先

IP

アドレスとポート番号に一致する

宛先

IP

アドレスとポート番号が

Binding request

した送信 元

IP

アドレスとポート番号に一致する

44

(45)

使用するペアの決定

以下二種類のいずれかを用いて、使用するペアを決定する

• Regular Nomination

:接続可能なペアのうちいずれかに 決定し、

Flag

付き

STUN Binding request

により通知

• Aggressive Nomination

:確認段階で

Flag

付き

STUN

Binding request

を送信し、接続可能なペアが発見された 場合、それを使用する。

45

(46)

まとめ

 NAT

とは:末端機器

(PC)

とインターネットの間で、パケット 中の

IP

アドレス

(

とポート番号

)

を変換する技術

分類

静的・動的

• Symmetric

型・

Cone

 NAT

越え技術

• STUN

• TURN

• ICE

46

(47)

参考文献

 RFC 5245 “Interactive Connectivity Establishment (ICE) : A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols”

https://tools.ietf.org/html/rfc5245 (2018/04/12)

 Symmetric NAT における NAT 越え実現方式

http://www.wata-lab.meijo-u.ac.jp/file/mthesis/2009/2009-MT-Hui_Li.pdf (2018/04/11)

輪講資料 ICEInteractive Connectivity Establishment

http://www.wata-lab.meijo-u.ac.jp/file/seminar/2017/2017-Semi1- Yuma_Kamoshita.pdf (2018/04/13)

 WebRTCICEについて知る

https://www.slideshare.net/iwashi86/webrtcice (2018/04/11)

 NAT 基礎講座

www.shudo.net/publications/20080627-NAT/shudo-NAT-20080627.pdf (2018/04/11)

47

参照

関連したドキュメント

断面が変化する個所には伸縮継目を設けるとともに、斜面部においては、継目部受け台とすべり止め

• ネット:0個以上のセルのポートをワイヤーを使って結んだも

本番前日、師匠と今回で卒業するリーダーにみん なで手紙を書き、 自分の思いを伝えた。

古物営業法第5条第1項第6号に規定する文字・番号・記号 その他の符号(ホームページのURL)

Q-Flash Plus では、システムの電源が切れているとき(S5シャットダウン状態)に BIOS を更新する ことができます。最新の BIOS を USB

電    話    番    号 ファクシミリ番号 電子メールアドレス 公 表 の.

被保険者証等の記号及び番号を記載すること。 なお、記号と番号の間にスペース「・」又は「-」を挿入すること。

○特定健診・保健指導機関の郵便番号、所在地、名称、電話番号 ○医師の氏名 ○被保険者証の記号 及び番号