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

NAT の種類

ドキュメント内 JAIST Repository https://dspace.jaist.ac.jp/ (ページ 46-49)

第 4 章 Kademlia のルーティングテーブルとデータ構造 23

5.1 既存研究

5.1.1 NAT の種類

192.168.0.1:1000 172.16.0.1:2000

0 0 6 : 3 . 0 . 6 1 . 2 7 1 0

0 4 : 2 . 0 . 6 1 . 2 7

1 172.16.0.2:500

1 2

3

under NAT Cone NAT

5.1 Cone NAT

192.168.0.1:1000 172.16.0.1:2000

172.16.0.3:600 172.16.0.2:500

172.16.0.1:2001

under NAT Symmetric NAT

5.2 Symmetric NAT

ここで,NAT下にあるノードにデータを送信するパターンとして,

1. NAT 下 に あ る ノ ー ド が 過 去 に 送 信 し た 宛 先 か ら の 送 信 (172.16.0.2:400 172.16.0.1:2000)

2. NAT下にあるノードが過去に送信した先と同じ IPアドレスであるが違うポート

番号からの送信 (172.16.0.2:500 172.16.0.1:2000)

3. NAT下にあるノードが過去に送信していない宛先からの送信(172.16.0.3:600 172.16.0.1:2000)

があり,このパターンのうちどれをフィルタリングするかで,Cone NATはさらに細か い種類に分けられる.すなわち,1. 2. 3全てのデータをNAT 下のノードに配信するよ うなNATをFull Cone NAT,1. 2. のデータのみを配信するNATをRestricted Cone NAT,1. のデータのみを配信するNATをPort-Restricted Cone NATと分類する.

図5.2は,Symmetric NATによってソースアドレスが変換されている様子を示してい る.この図のようにSymmetric NAT では,送信先アドレスが違う場合,異なるソース

SW

NAT

The Internet

150.65.1.1

192.168.1.1 192.168.1.2

Port: 7000 192.168.1.2:5000 under NAT

2

3 1

5.3 ヘアピンルーティング

アドレスに変換される.そのため,NAT下にあるノードは,過去に通信を行っていない ノードからのデータを受信することが出来ない.

NATのヘアピンルーティング

次に,本節ではNATの大きな特徴の一つであるヘアピンルーティング [27]に関する問 題について説明する.ヘアピンルーティングとは,同じローカルネットワークに存在する ノードへ,NAT を中継して行う転送方式のことである.いくつかのNATでは,このヘ アピンルーティングはサポートされず,P2P ネットワークアプリケーションで問題とな る場合がある.

図 5.3は,ヘアピンルーティングを行なっている様子を示している.ここでは,NAT は150.65.1.1というグローバルなIPアドレスを持っており,このNATの下に2台のホ ストが存在する.なお,これらホストには,それぞれ 192.168.1.1と192.168.1.2という プライベートなIPアドレスが割り振られており,グローバルアドレスの150.65.1.1:7000 と,192.168.1.2:5000というアドレスがNATによって関連付けられている.

いま,192.168.1.1のホストから,192.168.1.2:5000へとデータを送信したいとする.

この時,宛先アドレスに150.65.1.1:7000を選択した場合のパケットの転送方法が,ヘア ピンルーティングとなり,これは図 5.31で示される経路で表されている.ヘアピン ルーティングは,このように,ローカルネットワークの内側にあるホストに対して,グ ローバルアドレスを宛先としてデータを送信した場合に発生する.もしも,NATが正し くルーティングを行っているのならば,図 5.3の1で示されるように,パケットは正しく 192.168.1.2:5000 へと転送されるはずである.

ところが,実際には,図 5.3の2で示されるように,正しいルーティングを行わずに,

パケットを破棄してしまうNATが存在する.このようなNATはヘアピンルーティング 不可のNATや,単純にヘアピン不可NATなどと呼ばれ,P2Pネットワークアプリケー ションでは問題となる場合がある.

しかしながら,多くの家庭で用いられるNATでは,図5.3の3で示されるように,ロー カルのアドレスである192.168.1.2を宛先として指定すれば問題無く通信が出来る.ロー カルネットワーク内にあるサービス発見としては,zeroconf [23]とMulticast DNS [24]

を用いたBonjour [4]・Avahi [2]や,UPnP [17]などがあり,P2Pネットワークアプリ ケーションにこれらを用いれば,ヘアピン不可のNATであっても正しく通信ができる.

一方,Large Scale NAT [58]などに代表される,ISPレベルでのNATは図 5.3の3で 示すような,ローカル同士の通信は行えない.しかしながら,これらの場合はヘアピン ルーティングが可能となっているので,P2P ネットワークアプリケーションとしては問 題にならない.

ドキュメント内 JAIST Repository https://dspace.jaist.ac.jp/ (ページ 46-49)