ネットワークの可視化によるNAT越え NAT Traversal by i-Path Network Transparency

Slides:



Advertisements
Similar presentations
Iptables の設定と 動作確認方法 野口 哲. 1. はじめに 近年では、ウイルスなどでネットワーク 上の 近年では、ウイルスなどでネットワーク 上の 危険が非常に多くなっている。また、個人 情報 などを入手するために不正に他人のパソコ ンに 侵入する人なども増えている。本研究では、 このような被害を受けないようにするため.
Advertisements

N チャンネル通信のための 経路制御 小川 真人 木下研究室. Nチャンネル通信 N本の経路を用いて、ファイルを分散させて通信を行う方式である。 分散されたファイルが、すべて違う経路を通り相手に届くことが理想である。
ネットワークからみるPCC 寺内康之.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第1回.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
前回の課題 IPv6アドレス IP ARP ICMP NAT インターネット層 2003年12月4日 情報ネットワーク論 新村太郎.
IGD Working Committee Update
第4章 Internet Address.
IPv6 エニーキャスト ルーティングプロトコル PIA-SM の設計および実装
ネットワーク層.
一対多通信における ネットワーク障害物対応方法選択プロトコルの設計
TCP (Transmission Control Protocol)
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
早稲田大学大学院 理工学研究科情報科学専攻 後藤滋樹研究室 1年 渡辺裕太
i-Pathルータのフロー情報を用いたDoS攻撃検知法
輪講: 詳解TCP/IP ACE B3 suzuk.
心理学情報処理法Ⅰ コンピュータネットワーク概論.
PlanetLab における 効率的な近隣サーバ選択法
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
認証と負荷分散を考慮した ストリーミングシステムに関する研究
ま と め と 補 足 ネットワークシステムⅠ 第15回.
ファイアウォール 基礎教育 (2日目).
伝送特性に応じた 適応型映像・音声配信機構の構築
第5回 IPアドレス利用のデザイン 2002/11/11 担当:村井 純
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回
IPv6アドレスによる RFIDシステム利用方式
サーバ負荷分散におけるOpenFlowを用いた省電力法
平成21年度「新世代ネットワークサービス基盤構築技術に関する研究開発 〜ネットワーク『見える化』の実現にむけて〜」の開発成果について
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Linux リテラシ 2006 第4回 ネットワーク CIS RAT.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
大阪大学 大学院情報科学研究科 博士前期課程2年 宮原研究室 土居 聡
第11章 UDPユーザ・データグラム・プロトコル
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
USENIX 2004 A Transport Layer Approach for Improving End-to-End Performance and Robustness Using Redundant Paths 寺岡研究室 斉藤俊介.
インターネットの基礎知識 その3 ~TCP・UDP層編~
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
i-Pathルータのフロー情報を用いたDoS攻撃検知法
第9章 Error and Control Messages (ICMP)
2009年度卒業論文発表 CDNコンテンツサーバの動的負荷分散
プロフェッショナルズの 明日の出来事 後藤 滋樹 早稲田大学 基幹理工学部.
ネットワークの基礎知識 電子制御設計製図Ⅰ   2014年5月2日 Ⅲ限目.
インターネットにおける真に プライベートなネットワークの構築
セキュリティ 05A2013 大川内 斉.
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
後藤研の紹介 日本語.
マルチホーミングを利用した Proxy Mobile IPv6の ハンドオーバー
各種ルータに対応する P2P通信環境に関する研究
UDPマルチキャストチャット    空川幸司.
A18 スパムサーバの調査 ~ボットを見抜けるか?~
DNSクエリーパターンを用いたOSの推定
Diffservにおける 絶対的な品質保証法
TCP制御フラグの解析による ネットワーク負荷の推測
片方向通信路を含む ネットワークアーキテクチャに於ける 動的な仮想リンク制御機構の設計と実装
C11: 不正アクセスパケットの可視化 シャボン
仮想環境を用いた 侵入検知システムの安全な構成法
P2P型アプリケーション用ライブラリ SUNET
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
平成21年度「新世代ネットワークサービス基盤構築技術に関する研究開発 〜ネットワーク『見える化』の実現にむけて〜」の開発成果について
計算機群における 「動的なインターネット接続性」の共有に関する研究
4.3 IPとルーティングテーブル 国際産業情報学科 2年 大竹 雅子.
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
7月13日の演習問題・解答例 について ネットワーク長が 18、22、26、28 の場合の
情報ネットワーク 岡村耕二.
TCP/IPの通信手順 (tcpdump)
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
プロトコル番号 長野 英彦.
Presentation transcript:

ネットワークの可視化による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.

研究の背景 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.

ポート予測 (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.

既存手法の問題点 (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.

K. Tobe, A. Shimoda, S. Goto, Waseda University. 「見える化」ルータ i-Path ネットワークを可視化するフレームワーク http://i-path.goto.info.waseda.ac.jp/trac/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.

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)

多段NATの問題 ⇒ NATの多段接続 1. IPv4アドレスの在庫枯渇が迫る (IANA:2011, RIR:2012) [Huston] [Huston] G. Huston, “IPv4 Address Report”, http://www.potaroo.net/tools/ipv4/index.html 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 --- 2011/9/28 RIR : Regional Internet Registry (e.g. APNIC) -- 2012/9/16 地域インターネットレジストリ home NAT home NAT private address realm cf. Universal Plug and Play (UPnP) はローカル ネットワーク上のルータ にしかアクセスできない ため、NATが多段に接続 された環境で機能しない home network home network home network home network

既存手法の問題点 (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)

提案手法 ネットワークの可視化による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

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.

K. Tobe, A. Shimoda, S. Goto, Waseda University. 謝辞 本研究は情報通信研究機構の委託研究 「新世代ネットワークサービス基盤構築技術 に関する研究開発」の一環として行われた。 (このスライドはスキップ可) 本研究は情報通信研究機構 (NICT) の委託研究「新世代ネットワークサービス基盤構築技術に関する研究開発」の一環として行われました。 March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.

K. Tobe, A. Shimoda, S. Goto, Waseda University. ご清聴ありがとうございました March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.

Network Address Translator (NAT) NATの内側にあるホストの<IP Address, port>と、NATの外側の<IP Address, port> を変換する装置 たいていの家庭用BBルータに実装されている 複数のホストが同じグローバルIPアドレスを使用してインターネットにアクセス可 NAT内部ではプライベートIPアドレスを使うことが多い e.g. 192.168.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と呼ぶことが多い。

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.

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.

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.

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.

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.

エンドツーエンド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.

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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. 65535-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.

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.

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.

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.

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.

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.

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.

ポートフォワーディング/ポートマッピング (Aterm DR203Cの設定画面) (例)      UDP         5730    192.168.0.2  5730

パケットフィルタ (Aterm DR203Cの設定画面) March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.

K. Tobe, A. Shimoda, S. Goto, Waseda University. IPアドレス管理の構造 【出典】IPアドレス管理の基礎知識, http://www.nic.ad.jp/ja/ip/admin-basic.html March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.

K. Tobe, A. Shimoda, S. Goto, Waseda University. IPアドレスが欲しい時は 【出典】IPアドレスが欲しい時は, http://www.nic.ad.jp/ja/ip/whereto/ March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.

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, http://www.potaroo.net/tools/ipv4/index.html March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.

K. Tobe, A. Shimoda, S. Goto, Waseda University. IPv4 Address Status 【出典】Geoff Huston, IPv4 Address Report, http://www.potaroo.net/tools/ipv4/index.html March 9, 2010 K. Tobe, A. Shimoda, S. Goto, Waseda University.

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.

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

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.

DS-lite