Download presentation
Presentation is loading. Please wait.
Published byちえこ ゆきしげ Modified 約 6 年前
1
ネットワークの可視化によるNAT越え NAT Traversal by i-Path Network Transparency
情報処理学会 創立50周年記念(第72回)全国大会 2010/3/8--12 学生セッション 情報爆発時代における分散処理と運用技術 2ZP-6 i-Path Project ネットワークの可視化によるNAT越え NAT Traversal by i-Path Network Transparency 戸部 和洋†, 下田 晃弘‡, 後藤 滋樹†‡ 早稲田大学 †理工学部 コンピュータ・ネットワーク工学科 ‡基幹理工学研究科 情報理工学専攻 「ネットワークの可視化によるNAT越え」と題して、早稲田大学の戸部が発表いたします。 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
2
研究の背景 Network Address Translator (NAT) の問題
NATの内側のホストではPeer-to-Peer (P2P) モデルのアプリケーションがうまく動作しない e.g. VoIP, オンラインゲーム UDP Hole Punching host-A NAT-A rendezvous server NAT-B host-B NAT Traversal (1)host-Aの外部IP, 外部portがわかる private address network global address network (2)host-Bの外部IP, 外部portがわかる (4) host-Bは(A, P)にいます host-Bにもお知らせしますね (3)host-Bと通信したい the Internet Network Address Translator (NAT) は、その内側のホストが1つのグローバルIPアドレスを共有してインターネットへアクセスすることを可能にしますが、 NATの外側から内側のホストに対して接続することができないという問題を引き起こします。そのため、NATの内側のホストではVoIPやオンラインゲームのようなP2Pモデルのアプリケーションがうまく動作しません。この問題を解決するために、NAT越え (あるいは、NAT Traversal) と呼ばれる技術が研究・開発されています。 NAT越えの代表的な手法として、UDP Hole Punchingがあげられます。UDP Hole Punchingでは、NATの内側のホストが互いにパケットを送信しあうことによってNAT越えを実現します。まず、host-Aはサーバにパケットを送信します。すると、サーバはhost-AがNAT-Aに割り当てられたIPアドレスとポート番号を知ることができます。同様に、host-BがNAT-Bに割り当てられたIPアドレスとポート番号も記録しておきます。Host-Aがhost-Bとの通信を開始する場合、サーバにhost-Bに割り当てられたIPアドレスとポート番号を尋ねます。Host-Aがパケットを送信しても、このパケットはNAT-Bで破棄されてしまいます。しかし、NAT-Aを通過したときに、戻りパケットを期待してポートが開いているので、host-Bがそこに向かってパケットを送信すると、NAT-Aを超えてhost-Aに到達します。このとき、NAT-Bに戻りパケットを期待したポートが開いたので、もう一度host-Aからhost-Bへ向けてパケットを送信すると、今度はNAT-Bを越えてhost-Bへ到達します。このようにして、UDP Hole PunchingでNATを越えることができます。 しかし、Symmetric NATと呼ばれるふるまいをするNATは通信相手ごとに新しいマッピングを生成するため、サーバに登録されたマッピング情報と、host-Bとの通信で使用されるマッピングが異なってしまい、UDP Hole Punchingで越えることができません。 (5)戻りパケットを 期待して穴が空く (6)要求していないパケットは破棄 (7)戻りパケットを 期待して穴が空く NATは外側から 接続できない (8)戻りパケットとして転送される (9)戻りパケットとして転送される UDP Hole Punchingによって、NATを越えて直接通信(NAT越え / NAT Traversal)できる。 ※ただし、Cone NAT [RFC3489] に限る。 i.e. Symmetric NAT [RFC3489] は越えられない。 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
3
ポート予測 (Port Prediction) Symmetric NAT越えの要素技術 (1)
成功すれば、Hole PunchingでSymmetric NATを越えられる 規則性あり 規則性なし _ 予測可能 e.g. 1ずつ増加、2ずつ増加 予測不可能(ランダム割り当て) UDP Multi Hole Punching や NAT Blaster は「最後の手段」 でSymmetric NAT越えを図る [NATBlaster] A. Biggadike, et al., NATBLASTER: Establishing TCP Connections Between Hosts Be- hinds NATs, ACM SIGCOMM Asia Workshop, Beijing, China, 2005. 手当たり次第に大量のパケットを送信 95%の確率で成功するには、 439パケット送信すればよい 最後の手段 実際には、ポート番号の割り当てアルゴリズムに規則性があり、次に割り当てられるポート番号を予測できるSymmetric NATが存在します。例えば、割り当てるポート番号が1ずつ増えるものです。また、ポート番号を予測できない場合であっても、利用可能なポート番号にはかぎりがあるため、ポート番号を変えながら大量のパケットを送信すればいつかはヒットします。95%の確率で成功するためには、439パケット送信すればよいことが、既存の研究で示されています。 UDP Multi Hole PunchingやそのTCP版とも言えるNAT Blasterでは、その技法を用いてSymmetric NAT越えを試みます。これらの手法では、SIPなどでNAT越えに用いられているInteractive Connectivity Establishment (ICE) のようなプロトコルとは異なり、Symmetric NATを越える際にリレーサーバを必要としないため、低負荷、低遅延なシステムを実現することができます。これは、VoIPのようにリアルタイム性を要求するアプリケーションでは特に重要です。 UDP Multi Hole Punching や NAT Blaster は、リレーサーバなしでSymmetric NATを 越えることができる ⇒ 低負荷、低遅延 cf. Interactive Connectivity Establishment (ICE) March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
4
既存手法の問題点 (1) ポート予測 (Port Prediction) における問題
問題点1. 職人芸的な「推測」:非効率で信頼性が低い 非効率 複数のパケットを送信してNATのふるまいを調べる ポート予測ができない場合は大量のパケットを送信 成功率を95%にするためには、439パケット送信する必要 運が悪いと、もっと多くのパケットを送信しなくてはならない 低スペックのNATルータだと処理しきれない可能性も(?) ステートフル (stateful) なNATの処理による負荷が大きい 誤判定 ポート予測中に、NATの内側のほかのホストが新しい通信 相手にパケットを送信すると、規則的なのに不規則に見える とはいえ、ポート予測には問題があります。ポート予測では複数のパケットを送信してNATのふるまいを見ることによる「推測」しかできません。そのため、ポート予測の結果が正しいとは限りません。NATの内側に複数のホストが存在する場合、ポート予測中にほかのホストが新しい通信相手に対してパケットを送信すると、そこで新しいポートが割り当てられてしまい、本来規則的であるポートの割り当てが、不規則に観測されることがあります。その場合、最後の手段として大量のパケットを送信することになります。 このように、ポート予測による既存のSymmetric NAT越え手法は非効率であり、信頼性が低いと言えます。 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
5
K. Tobe, A. Shimoda, S. Goto, Waseda University.
「見える化」ルータ i-Path ネットワークを可視化するフレームワーク 通信パスに関する情報をエンドノードに提供 エンドノードが取得可能な情報 既存のtraceroute/tracertの機能に加えて... 通信パス上に存在するルータの位置情報やスループット 提案手法 : NATに関する情報を通知 NEW! e.g. Cone NAT vs. Symmetric NAT, ポート割り当てアルゴリズム, etc 開示ポリシを尊重 ISPと送受信者が合意した情報だけを開示する機構 そこで、本研究では、通信パスに関する情報をエンドノードに提供することでネットワークの可視化を実現するフレームワーク (i-Path) を用いた、まったく新しいNAT越え手法を提案します。i-Pathでは、既存のtraceroute/tracertの機能に加えて、通信パス上に存在するルータの位置情報やスループットなどをエンドノードが取得することができます。本研究では、これに加えて、NATの「存在」や「特性」を取得できるようにi-Pathフレームワークを拡張することで、NAT越えの問題を解決する手法を提案します。 一般に、 Cone NATやSymmetric NATといったNATの特性は公開可能な情報であり、あるベンダ2社のカスタマサポートに問い合わせたところ、そのベンダの製品ごとに「○○という製品はFull Cone NATで、○○という製品はSymmetric NAT、あるいは、弊社の製品はすべてPort Restricted Cone NAT」といった回答を得ることができました。しかし、もしNATの情報を公開したくないのであれば、i-Pathは情報の開示を制御する機構をもつので、開示ポリシに応じて柔軟に対応することができます。 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
6
Low TTL Value Determination Symmetric NAT越えの要素技術 (2)
UDP Multi Hole Punching や NAT Blasterは、パケットのTTLを低く設定1) して送信することで、自分側のNATを越えて、相手側のNATに到達する前にパケットを破棄 Low TTL Value Determination:1) の値を決めるアルゴリズム UDP Multi Hole Punching : 「決めうち」 NAT Blaster :「traceroute の方法」(提案のみ、未実装) e.g. TTL = 2の場合 ※初期TTL値の条件 : 1 < TTL < 5 Time Exceeded ところで、Symmetric NAT越えの要素技術として、ポート予測のほかにもうひとつ、Low TTL Value Determinationと呼ばれるものがあります。UDP Multi Hole PunchingやNAT Blasterは、大量のポートをオープンするときに、パケットのTTLを低く設定して送信します。このとき、自分側のNATを越えて、相手側のNATに到達する前にパケットが破棄されるように初期TTLの値を調整します。この値を決定するアルゴリズムをLow TTL Value Determinationといいます。 例えば、図のネットワークでは第1ホップと第5ホップのルータがNATを有効にしています。左側のホストが初期TTLを2に設定したパケットを送信すると、第1ホップのルータでTTLが1になり、第2ホップのルータでTTLが0になります。すなわち、第2ホップのルータでこのパケットは時間切れとなり、破棄されます。このとき、第1ホップのNATルータをパケットは通過しているので、戻りパケットに備えて穴が開いています。この穴さえ開いていればパケットが破棄されてしまっても構わないことを、UDP Multi Hole PunchingやNAT Blasterでは利用しています。 しかし、実際にはLow TTL Value Determinationの効率的な手法は確立されていません。UDP Multi Hole Punchingの研究では実験ネットワークに合わせて「決めうち」しています。NAT Blasterの論文では「tracerouteの方法」が提案されていますが、実装には至っていません。それだけ、Low TTL Value Determinationは難しいのです。さらに、今後はもっとLow TTL Value Determinationが難しくなることが予測されます。 TTL => 0 TTL => 1 router (2nd hop) router (4th hop) NAT router (5th hop) router (3rd hop) NAT router (1st hop)
7
多段NATの問題 ⇒ NATの多段接続 1. IPv4アドレスの在庫枯渇が迫る (IANA:2011, RIR:2012) [Huston]
[Huston] G. Huston, “IPv4 Address Report”, 1. IPv4アドレスの在庫枯渇が迫る (IANA:2011, RIR:2012) [Huston] ISPは大規模NAT (Large Scale NAT/ Carrier Grade NAT) の配置を計画 2. 集合住宅のNAT ⇒ NATの多段接続 Low TTL Value Deter- minationが困難になる the Internet global address realm Large Scale NAT ISP network ISP network ISP shared address realm (このスライドはスキップ可) IPv4アドレスの在庫枯渇が迫り、Internet Service Providerは大規模NATの配置を計画しています。大規模NATは複数のユーザがグローバルIPアドレスの共有を実現することで、グローバルIPアドレスの節約することができますが、ユーザ宅のNATとISPのNATでNATが多段になる問題があります。また、現在もマンションやアパートなどの集合住宅にはNATが配置されていることがあり、多段NATの問題はすでに発生しています。 IANA : Internet Assigned Numbers Authority /9/28 RIR : Regional Internet Registry (e.g. APNIC) /9/16 地域インターネットレジストリ home NAT home NAT private address realm cf. Universal Plug and Play (UPnP) はローカル ネットワーク上のルータ にしかアクセスできない ため、NATが多段に接続 された環境で機能しない home network home network home network home network
8
既存手法の問題点 (2) Low TTL Value Determination における問題
NATが多段の場合、自分側の一番外側のNATを越えて相手側の一番外側のNATに到達する前にTTLが0になればよいが・・・ 初期TTL値の条件 : 2 < TTL < 5 問題点2. NATがいくつ連なっているか判断できない Traceroute/Tracertで得たルーターのIPアドレスから、NATかどうか判断できることがあるが、ICMPを返さないルータがある このように、通信経路上のNATが多段になった場合、自分側の一番外側のNATを越えて相手側の一番外側のNATに到達する前にTTLが0になればよいですが、エンドノードからは経路上の情報が見えないので、NATがいくつ連なっているかわかりません。NATの内側ではプライベートIPアドレスのような特殊なIPアドレスを使うことが多いので、tracertで得たルータのIPアドレスからNATが有効であるか判断できることがありますが、ICMPを返さないように設定されているルータがあるため、必ずしもこの方法で調べることはできません。 NAT router (2nd hop) NAT router (4th hop) NAT router (5th hop) router (3rd hop) NAT router (1st hop)
9
提案手法 ネットワークの可視化によるNAT越え
i-PathルータがNATの情報を提供する NATの「存在」:Low TTL Value Determinationが容易に NATの「特性」:ポート予測 (Port Prediction) の精度向上 経路上の全ルータの情報を取得することができる NATが多段に接続されたネットワークにも対応可能 cf. UPnP (Universal Plug and Play) NAT : on Type : Symmetric NAT Port : Incremental (1) Timer : 60 [s] NAT : on Type : Cone NAT Timer : 60 [s] NAT : off NAT : on Type : Cone NAT Timer : 30 [s] しかし、本研究で提案する、ネットワークの可視化によるNAT越えでは、i-PathルータがNATの情報を提供することで、エンドノードが経路上の全ルータについて、NATの存在や特性を取得できるようになります。本手法は、NATが多段に接続されたネットワークにも対応可能です。例えば、図のようにNATのon/off、Cone NATやSymmetric NATといった種類、ポートの割り当て規則、マッピング有効時間のタイマなどの情報を提供します。 このタイマというのは、SYNやFINによってコネクションの開始と終了が明確なTCPと異なり、UDPセッションはいつ終わったのかNATにはわからないため、マッピングが有効な時間を制御するタイマがNATの内部にあります。エンドノードは、マッピング有効タイマが切れてマッピング情報が失われないようにキープアライブ (keep-alive) のパケットを送信する必要がありますが、タイマの時間がわからないと何秒おきにキープアライブを行えばよいのかわかりません。これを調べるのはたいへんなので、本提案のようにNATがタイマ情報を公開してくれるとエンドノードはとても助かります。 i-Path router (NAT : on) i-Path router (NAT : off) i-Path router (NAT : on) i-Path router (NAT : off) i-Path router (NAT : on) NAT : off
10
K. Tobe, A. Shimoda, S. Goto, Waseda University.
まとめ 既存手法 職人芸的な技法を駆使して「推測」するNAT越え ポート予測 (Port Prediction) : 非効率、信頼性が低い Low TTL Value Determination : 多段NATにより困難 提案手法 ネットワークの可視化 (i-Path) によるNAT越え エンドノードが経路上のNATの情報をi-Pathで得る 通信経路上でNATが多段になっていても対応可能 まとめです。従来のHole Punchingの手法では、ポート予測やLow TTL Value Determinationといった職人芸的を駆使して「推測」することによりSymmetric NAT越えを実現していました。しかし、これは非効率で信頼性が低く、NATが多段に接続されるケースにも対応が難しいという問題がありました。大規模NATの配置によって、今後ますます多段NATの問題は拡大することが予測されます。 本研究では、ネットワークを可視化するフレームワーク (i-Path) によってNATの「存在」や「特性」などの情報をエンドノードが取得できるようにすることで、効率がよく、信頼性も高く、多段NATにも適応可能なNAT越えが実現できることを示しました。 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
11
K. Tobe, A. Shimoda, S. Goto, Waseda University.
謝辞 本研究は情報通信研究機構の委託研究 「新世代ネットワークサービス基盤構築技術 に関する研究開発」の一環として行われた。 (このスライドはスキップ可) 本研究は情報通信研究機構 (NICT) の委託研究「新世代ネットワークサービス基盤構築技術に関する研究開発」の一環として行われました。 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
12
K. Tobe, A. Shimoda, S. Goto, Waseda University.
ご清聴ありがとうございました March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
13
Network Address Translator (NAT)
NATの内側にあるホストの<IP Address, port>と、NATの外側の<IP Address, port> を変換する装置 たいていの家庭用BBルータに実装されている 複数のホストが同じグローバルIPアドレスを使用してインターネットにアクセス可 NAT内部ではプライベートIPアドレスを使うことが多い e.g xxx.yyy NATの問題点 NATの内側のホストのアドレス は外側からわからない NATは、知らない相手からの パケット (unsolicited packet) を破棄する private address realm global address realm Internet NAT NATは外側から 接続できない ※IPアドレスだけでなくポート番号も変換する装置は、厳密にはNetwork Address and Port Translator (NAPT) であるが、現在はほとんどがNAPTであるため、これらを区別せずにNATと呼ぶことが多い。
14
K. Tobe, A. Shimoda, S. Goto, Waseda University.
Hole Punchingのセキュリティ Hole Punchingで「穴を開ける」と言われると、 セキュリティを気にされる方が多いですが・・・ NAT≠ファイアウォール Filtering Behavior (RFC4787) のおかげで、 ファイアウォール的にふるまうように見えるだけ 家庭用ルータには多くの機能が実装されている どの機能のおかげなのかわかりづらい NATとパケットフィルタ型ファイアウォールが混在 セキュリティ対策はアプリケーションで行う 受信パケットの送信元チェックなどをアプリで行う March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
15
K. Tobe, A. Shimoda, S. Goto, Waseda University.
Javaの場合 java.net.DatagramSocket.connect(InetAddress host, int port) 指定されたリモートホストの指定されたポートだけにパケットを送信(あるいはそのポートからだけパケットを受信する)ようにDatagramSocketに指示する。 指定された以外のホストまたはポートにパケットを送信しようとすると、IlligalArgumentExceptionが発生する。 指定された以外のホストまたはポートから受信したパケットは、黙って破棄され、例外やその他の通知はない。 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
16
K. Tobe, A. Shimoda, S. Goto, Waseda University.
NAT越え手法の比較(多段NAT環境) ×:UPnP 利点 Windows APIにある 欠点 ローカルネットワークにある NATルータしか操作できない ISPのNATに届かない 認証機構が存在しない ISPのNATがUPnPを 許可してしまうと・・・ 「全部、俺のポート!」 極一部のユーザが、大量のポートフォワーディング生成 ○:Relaying 利点 どんなNAT環境でも機能 欠点 転送による遅延が発生 リレーサーバの負荷大 ◎:UDP Hole Punching 利点 NATが多段でも機能 UDPのみ(TCPは難しい) Symmetric NATは難しい March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
17
UPnP IGD (Universal Plug and Play Internet Gateway Device)
NATを越えた通信を実現 ローカルネットワーク上のUPnP対応ルーターを検出 IPアドレスとポート番号の関連づけを取得 ポートフォワーディングを自動的に設定 問題点 UPnPに非対応のルータのNATは越えられない 多段のNATを越えられない 認証機構を持たない March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
18
K. Tobe, A. Shimoda, S. Goto, Waseda University.
エンドツーエンドNATとの比較 エンドツーエンドNAT (ルータが) 積極的にNATの存在と様態を知らせる エンドノードがNATの動作を補完 本研究の提案手法 ルータがNATの情報を公開する エンドノードによるNAT越えを補完 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
19
エンドツーエンドNATとの比較 (Cont.)
提案手法 NAT越えをサポートするだけであり、アプリケーションにNAT越え手法を実装する必要がある エンドツーエンドNAT やはり、アプリケーションの修正は必要 「UNIXのpingやtracerouteコマンドではポート番号やICMPの各フィールドをかなり気侭(きまま)に扱っているが、その部分を以上の議論を踏まえて修正すれば、ゲートウェイ背後の端末相互でも動作するようになる。」 [e2e-nat] 太田 昌孝, 森岡 仁志, 藤川 賢治, エンドツーエンドNAT, 信学技報, vol. 109, no. 137, pp. 1--6, July, 2009. March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
20
K. Tobe, A. Shimoda, S. Goto, Waseda University.
TCP Hole Punching ※同時オープン (simultaneous open) の詳細は、 「詳解TCP/IP Vol.1 プロトコル」を参照して下さい。 UDP Hole Punchingのようにはいかない・・・ 同時オープンする方法 TTLを低くして送る手法 host-A NAT-A rendezvous server NAT-B host-B SYN SYN SYN/ACK SYN/ACK host-A NAT-A rendezvous server NAT-B host-B SYN (1)戻りパケットを 期待して穴が空く (2)知らない相手のパケットは破棄 (3)TCP RSTを 返してしまう host-A NAT-A rendezvous server NAT-B host-B RST 開いた穴が 閉じない SYN (low TTL) ICMP Time Exceeded SYN (4)開いた穴が 閉じてしまう SYN (5)戻りパケットを 期待して穴が空く SYN/ACK RST (6)穴が閉じているので通らない (7)開いた穴が 閉じてしまう ACK March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
21
Interactive Connectivity Establishment (ICE)
offer/answerモデルのプロトコル (e.g. SIP/SDP) が、NATを越えてUDPベースのマルチメディアセッションを確立することをサポート STUNやTURNで通信可能なエンドポイント <IP, port> (candidate) を調べ、最適なエンドポイントを選択して通信する Symmetric NATはTURNによるリレーで越えられる TURN server Relayed Candidate the Internet Server-reflexive Candidate NAT router Host Candidate March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
22
Symmetric NAT越えの既存手法 UDP Multi Hole Punching / NAT Blaster
2台のサーバとの通信 によるポート予測 低いTTLに設定した UDPパケットを大量送信 ⇒ Symmetric NATをリレー サーバなしで越えられる サーバに低負荷・低遅延 cf. TURN, ICE, Teredo NAT Blaster UDP Multi Hole PunchingのTCP版 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
23
UDP Multi Hole Punching Phase I
server-A server-B NAT-A (Cone NAT) NAT-B (Symmetric NAT) host-A host-B (1) (1) Host-A sends a UDP packet to server-A. Then, server-A gets host-A’s external end-point <AA1, PA1> mapped by NAT-A. (2) (2) Server-A informs host-A of the endpoint <AA1, PA1>. (3) (3) Host-A sends a UDP packet, which contains <AA1, PA1> in the payload, to server-B. Then, server-B gets <AA1, PA1> and the external endpoint <AA2, PA2> (usually AA1= AA2, PA1= PA2 if NAT-A is Cone NAT). Server-B analyzes these endpoints. 第1回論文ゼミ tobe March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
24
UDP Multi Hole Punching Phase II
server-A server-B NAT-A (Cone NAT) NAT-B (Symmetric NAT) host-A host-B (4) (4) Host-B sends a UDP packet to server-B. Then, server-B gets host-B’s external end-point <AB1, PB1> mapped by NAT-B. (5) (5) Server-B informs host-B of the endpoint <AB1, PB1>. (6) (6) Host-B sends a UDP packet, which contains <AB1, PB1> in the payload, to server-B. Then, server-B gets <AB1, PB1> and the external endpoint <AB2, PB2> (usually AB1= AB2, PB1≠PB2 if NAT-B is Symmetric NAT). Server-B analyzes these endpoints. 第1回論文ゼミ tobe March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
25
UDP Multi Hole Punching Phase III
server-A server-B NAT-A (Cone NAT) NAT-B (Symmetric NAT) host-A host-B (7) (7) Server-B predicts the next external endpoint <AA3, PA3> or the range NAT-A will map. and then informs host-B of the info. Time Exceeded (8) (8) Host-B sends a lot of packets whose TTL is set so low that they’ll be dropped between NAT-B and NAT-A. (9) (9) Server-B informs host-A of the info for UDP Multi Hole Punching. F8:大量に穴をあけておく F10:大量にパケットを送信し、運良くF8であけた穴を通ることを祈る (10) Host-A sends a lot of packets to holes, opened at (9), of NAT-B. (10) March 9, 2010 第1回論文ゼミ tobe K. Tobe, A. Shimoda, S. Goto, Waseda University. (11) UDP session is established. (11) 25
26
K. Tobe, A. Shimoda, S. Goto, Waseda University.
NATの分類 (RFC 3489) Cone NAT Full Cone NAT Restricted Cone NAT Port Restricted Cone NAT Symmetric NAT あて先ごとに異なるマッピングを生成する cf. Address-Dependent Filtering/Address and Port-Dependent Filtering (RFC 4787) UDP Hole Punchingでは越えられない March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
27
K. Tobe, A. Shimoda, S. Goto, Waseda University.
NATの特性 (RFC 4787) (1/2) Address and Mapping Behavior Endpoint-Independent Mapping (Cone) Address-Dependent Mapping (Symmetric) Address and Port-Dependent Mapping (Symmetric) Port Assignment Behavior Port Preservation Port Overloading No Port Preservation Port Parity Port Contiguity March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
28
K. Tobe, A. Shimoda, S. Goto, Waseda University.
NATの特性 (RFC 4787) (2/2) Mapping Refresh Filtering Behavior Endpoint-Independent Filtering (Full Cone) Address-Dependent Filtering (Restricted Cone) Address and Port-Dependent Filtering (Port Restricted Cone) Hairpinning Behavior ICMP Destination Unreachable Behavior March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
29
RFC 3489 と RFC 4787の対応表 Filtering Behavior Endpoint-Independent
Address-Dependent Address and Port-Dependent Address and Mapping Behavior Full Cone NAT Restricted Cone NAT Port Restricted Cone NAT Symmetric NAT March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
30
K. Tobe, A. Shimoda, S. Goto, Waseda University.
「最後の手段」に必要なパケット数 [NATBlaster] A. Biggadike, et al., NATBLASTER: Establishing TCP Connections Between Hosts Be- hinds NATs, ACM SIGCOMM Asia Workshop, Beijing, China, 2005. 手当たり次第に大量のパケットを送信 95%の確率で成功するには、 439パケット送信すればよい 最後の手段 T : 送信するパケット数(=オープンするポート数) n : 取り得るポート番号の数 (e.g -1024) 成功率 p 0.5 0.6 0.7 0.8 0.9 0.95 0.99 パケット数 T 212 243 270 322 385 439 543 パケット数 T 10 50 100 150 200 250 300 成功率 p 0.016 0.038 0.144 0.295 0.463 0.622 0.754 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
31
K. Tobe, A. Shimoda, S. Goto, Waseda University.
Mapping Behavior (1) Endpoint-Independent Mapping (Cone NAT) internal network external network Local <AL, PL> Global <AN, PN> Remote <any, any> Host-R Addr: AR PR PR’ Host-L Addr: AL PL PN NAT Addr: AN Host-X Addr: AX (≠AR) PX NAT maps the same endpoint whenever a local host (Host-L) sends a packet to any external endpoints (Addr : any, Port : any), if the NAT behaves as “Endpoint-Independent Mapping”. This NAT was once called “Cone NAT”. March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
32
Mapping Behavior (2) Address-Dependent Mapping (Symmetric NAT)
internal network external network Local <AL, PL> Global <AN, PN> <AN, PN’> Remote <AR, any> <AX, any> Host-R Addr: AR PR PR’ PN Host-L Addr: AL PL NAT Addr: AN PN’ mapped a new port (PN’) Host-X Addr: AX (≠AR) PX Hole Punching must predict this new port (PN’). NAT maps a new endpoint when a local host (Host-L) sends a packet to any external hosts (≠R) which Host-L hasn’t sent a packet, if the NAT behaves as “Endpoint-Independent Mapping”. This NAT was once called “Symmetric NAT”. March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
33
Mapping Behavior (3) Address and Port-Dependent Mapping (Symmetric NAT) internal network external network Local <AL, PL> Global <AN, PN> <AN, PN’> <AN, PN’’> Remote <AR, PR> <AX, PR’> <AX, PR’’> Host-R Addr: AR PR PR’ PN Host-L Addr: AL PL PN’ NAT Addr: Na PN’’ mapped a new port (PN’) Host-X Addr: AX (≠AR) mapped a new port (PN’’) PX Hole Punching must predict this new port (PN’’). NAT maps a new endpoint when a local host (Host-L) sends a packet to any external endpoints which Host-L hasn’t sent a packet, if the NAT behaves as “Endpoint-Independent Mapping”. This NAT was once called “Symmetric NAT”. March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
34
K. Tobe, A. Shimoda, S. Goto, Waseda University.
Filtering Behavior (1) Endpoint-Independent Filtering internal network external network Local <AL, PL> Global <AN, PN> Remote <any, any> Host-R Addr: AR PR PR’ Host-L Addr: AL PL PN NAT Addr: AN Host-X Addr: AX (≠AR) PX NAT forwards all packets from any external endpoints (Addr : any, Port : any) to a local host (Host-L) which has already sent a packet to the external network, if the NAT behaves as “Endpoint-Independent Filtering”. March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
35
K. Tobe, A. Shimoda, S. Goto, Waseda University.
Filtering Behavior (2) Address-Dependent Filtering internal network external network Local <AL, PL> Global <AN, PN> Remote <AR, any> Host-R Addr: AR PR PR’ Host-L Addr: AL PL PN NAT Addr: AN Host-X Addr: AX (≠AR) 英文直す PX NAT forwards packets from the only remote Host-R (Addr : AR, Port : any) that a local (Host-L) has already sent a packet to, but drops packets from any other remote hosts, if the NAT behaves as “Endpoint-Independent Filtering”. March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
36
K. Tobe, A. Shimoda, S. Goto, Waseda University.
Filtering Behavior (3) Address and Port-Dependent Filtering internal network external network Local <AL, PL> Global <AN, PN> Remote < AR, PR> Host-R Addr: AR PR PR’ Host-L Addr: AL PL PN NAT Addr: AN Host-X Addr: AX (≠AR) PX NAT forwards packets from the only endpoint (Addr : AR, Port : PR) that a local (Host-L) has already sent a packet to, but drops packets from any other remote hosts, if the NAT behaves as “Endpoint-Independent Filtering”. March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
37
ポートフォワーディング/ポートマッピング (Aterm DR203Cの設定画面)
(例) UDP 5730 5730
38
パケットフィルタ (Aterm DR203Cの設定画面)
March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
39
K. Tobe, A. Shimoda, S. Goto, Waseda University.
IPアドレス管理の構造 【出典】IPアドレス管理の基礎知識, March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
40
K. Tobe, A. Shimoda, S. Goto, Waseda University.
IPアドレスが欲しい時は 【出典】IPアドレスが欲しい時は, March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
41
Projected RIR and IANA Consumption (/8s)
Projected IANA Unallocated Address Pool Exhaustion: 28-Sep-2011 Projected RIR Unallocated Address Pool Exhaustion: 16-Oct-2012 【出典】Geoff Huston, IPv4 Address Report, March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
42
K. Tobe, A. Shimoda, S. Goto, Waseda University.
IPv4 Address Status 【出典】Geoff Huston, IPv4 Address Report, March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
43
K. Tobe, A. Shimoda, S. Goto, Waseda University.
ISP規模のIPv4アドレス共有方式 大規模NAT (Large Scale NAT : LSN) NAT444 DS-lite [Dual-stack lite broadband deployments post IPv4 exhaustion] A+P [The A+P Approach to the IPv4 Address Shortage] March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
44
NAT444 NAT 444 model uses two Network Address and Port Translators (NAPTs) with three types of IPv4 address blocks. Private Address inside CPE an IPv4 Address block between CPEs and LSN IPv4 Global Addresses that is outside LSN The ISPs using NAT444 provide IPv6 connectivity by dual stack model. The IPv4 Internet The IPv6 Internet LSN IPv4 Global Address IPv4 IPv6 Dual Stack IPv4 NAT / IPv6 Dual Stack CPE IPv4 Private Address / IPv6 Dual Stack March 9, 2010 IPv4/IPv6 Dual Stack host
45
K. Tobe, A. Shimoda, S. Goto, Waseda University.
NAT444 (Cont.) What type of IPv4 Address block should we use between CPEs and LSN? Global Address RFC1918 Private Address (10/8) could conflict with its customer's network address Class-E Address (240/4) ISP Shared Address is intended to be assigned between CPE and LSN in a NAT444 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.
46
DS-lite
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.