Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WebRTCの裏側にあるNATの話 - A talk on NAT behind WebRTC

7,381 views

Published on

WebRTC Meetup Tokyo #5で講演した
「WebRTCの裏側にあるNATの話」の資料です。

●誤記修正 (2015/1/25追記)
P.66
 誤 元 1.1.1.200:80
 正 元 1.1.1.100:80
P.69
 誤 元 1.1.1.200:80
 正 元 1.1.1.100:80

Published in: Technology

WebRTCの裏側にあるNATの話 - A talk on NAT behind WebRTC

  1. 1. WebRTCの裏側にあるNATの話 - A talk on NAT behind WebRTC - @iwashi86 2014/11/26 WebRTC Meetup Tokyo #5
  2. 2. ●Attribute Name Yoshimasa Iwase @iwashi86 web iwashi.co ●Work ・Web Engineer@NTT Com ・HTML5 Experts.jp Editor ●Recently ・HTML5 Experts.jpにてWebRTC特集掲載!
  3. 3. 本題 今日はNATの話 (WebRTCなので特にUDPのNAT)
  4. 4. なぜ、いまさらNAT? https://flic.kr/p/4HKJE1
  5. 5. WebRTCのクライアントは NAT配下に居ることが多い Internet NAT NAT
  6. 6. クライアント達は何の工夫も無しには 直接通信できない・・・ Internet Dropped… NAT NAT
  7. 7. そこで、WebRTCでは主にSTUN※を使っ て なんとか穴あけしている Internet STUN STUN NAT NAT Reached!  ※UDP Hole Punchも
  8. 8. でも、ダメなケースもある… (その場合はTURNで中継) Internet STUN STUN Dropped… NAT NAT
  9. 9. そもそも
  10. 10. なんで通ったり 落ちたりするの? https://flic.kr/p/b6WaSP
  11. 11. 気になる!(技術者的な意味で) https://flic.kr/p/oH1mPu N A T
  12. 12. そんなあなたに良いRFC(4787)
  13. 13. UDP向けNATの振舞いについて 熱く語っているRFC
  14. 14. あと、Obsoleteだけど 3489(Classic STUN)も参考になる
  15. 15. Full Coneとか、Symmetric NATとか、 その辺りの用語はこのRFCで登場 (ただし、区分けがちょっと足りない)
  16. 16. 続きは RFCで!
  17. 17. が、RFC読むと1分で、こうなる↓ https://flic.kr/p/6n5y3k
  18. 18. そこで本トークでは 特にWebRTCに関係するNAT振舞い のエッセンス(12章)を紹介 (=RFC 4787をざっくりと) 免責:正確性はRFC原典の用語を参照のこと
  19. 19. https://flic.kr/p/p1Q8WT Requirement
  20. 20. RFCの抜粋です
  21. 21. マッピングの話から
  22. 22. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する
  23. 23. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1
  24. 24. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80
  25. 25. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80
  26. 26. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.200:80
  27. 27. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:1.1.1.1:12345 先:1.1.1.200:80 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.200:80
  28. 28. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 エンドポイント(宛先) に拘らないマッピング 192.168.1.1 1.1.1.1 元:1.1.1.1:12345 先:1.1.1.200:80 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.200:80
  29. 29. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1
  30. 30. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80
  31. 31. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.200:80
  32. 32. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.200:80 元:1.1.1.1:54321 先:1.1.1.200:80 今回は、同じマッピングじゃない (下図だとPortが異なる)
  33. 33. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する 同じホストの別ポートに送ると?? NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 じゃあ、 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:8888
  34. 34. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する つまり、宛先にのみ依存している。 NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 同じマッピング! 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:8888 元:1.1.1.1:12345 先:1.1.1.100:8888 つまり、宛先にのみ依存している
  35. 35. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1
  36. 36. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する 3つ目のケースで、同じホストで違 NAT 1.1.1.100 1.1.1.200 うポートに送ると??? 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:8888
  37. 37. 3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 違うマッピングができる! 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:8888 元:1.1.1.1:54321 先:1.1.1.100:8888
  38. 38. WebRTC的にイケてる のはどれでしょう? (正確には、P2P的にイケてるのはどれでしょう?) https://flic.kr/p/kSFs6b
  39. 39. 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する
  40. 40. 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する
  41. 41. 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する 2と3は、STUNで自分のNATの外側のアドレス (= Server-Reflexive Address、Mapped-Address)を調 べても、結局使えない…。
  42. 42. なのでRFCも・・・
  43. 43. MUSTになってる!
  44. 44.
  45. 45. NATはパブリック側(外側)のIPアドレスを複数貯めておける。 その貯めたアドレスを使う場合は、 「同じ宛先には同じ送信元アドレス」を使いましょう、ということ。
  46. 46. ポート多重ダメ・ゼッタイ
  47. 47. ポート多重(Port Overloading) NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.3:10000 先:1.1.1.200:80 192.168.1.3
  48. 48. ポート多重(Port Overloading) NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:10000 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.3:10000 先:1.1.1.200:80 元:1.1.1.1:10000 先:1.1.1.200:80 192.168.1.3
  49. 49. ポート多重(Port Overloading) 同じの使っちゃうケース NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:10000 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.3:10000 先:1.1.1.200:80 元:1.1.1.1:10000 先:1.1.1.200:80 192.168.1.3
  50. 50. ちなみに帰り道(復路)は、送信元が大事 NAT 1.1.1.100 1.1.1.200 往路 192.168.1.2 元:1.1.1.1:10000 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.3:10000 先:1.1.1.200:80 元:1.1.1.1:10000 先:1.1.1.200:80 192.168.1.3 NAT 1.1.1.100 1.1.1.200 復路 192.168.1.2 元:1.1.1.100:80 先:1.1.1.1:10000 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 192.168.1.3 元:1.1.1.200:80 このアドレスで復路を打ち分ける先:1.1.1.1:10000
  51. 51.
  52. 52. もともとの送信元ポートが0-1023ならNAT後も0-1023、 もともとの送信元ポートが1024-65535ならNAT後も1024-65535、 といったように同じレンジを使うのがRECOMMENDED
  53. 53. NATするときのポート番号は、 Before−>Afterで奇数偶数を同じにしようねということ。 つまり、もともとのポートが偶数なら、NAT後も偶数ということ。
  54. 54. マッピングの保持時間は2分以下だとダメだよ。 5分以上がオススメで、自由に設定してOK。 ただし、0-1023のウェルノウンポートはIANAに従ってね。
  55. 55. マッピング更新するトラフィックの向きは アウトバウンド(外向き)のトラフィックがMUST。 インバウンドやってもいいけど、攻撃されちゃうかもね。
  56. 56. NATによっては、NAT前後のIPレンジが同じことも。 例えば、10.0.0.0/Xから10.0.0.0/XのNATもあり得る。 (ご家庭だとあんまり無いけど) そんなときはには、どっちかで対応すること: (1)内外でアドレスかぶらんように (2)アドレスがコンフリクト(衝突)してもよしなに翻訳転送してね
  57. 57. 大事!絵!
  58. 58. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する
  59. 59. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80
  60. 60. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する まず外側に送る NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80
  61. 61. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 さっきと宛先が違う ホストから来ても通せる =エンドポイントに依存しない 元:1.1.1.200:80 先:1.1.1.1:12345
  62. 62. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1
  63. 63. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する まず外側に送る NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80
  64. 64. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 最初に送ったホストと 違うから落ちる (=アドレスに依存している) 元:1.1.1.200:80 先:1.1.1.1:12345
  65. 65. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:1.1.1.200:80 先:1.1.1.1:12345 同じホストからならOK (上図だと、同じホストで異なるPort)
  66. 66. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1
  67. 67. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する まず外側に送る NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80
  68. 68. 3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する NAT 1.1.1.100 1.1.1.200 192.168.1.2 元:1.1.1.1:12345 先:1.1.1.100:80 192.168.1.1 1.1.1.1 元:192.168.1.2:10000 先:1.1.1.100:80 元:1.1.1.200:80 先:1.1.1.1:12345 同じホストでも、ポートが異なるとNG (かなり厳しいフィルタリング)
  69. 69. RFC的にイケてるのは https://flic.kr/p/kSFs6b どれでしょう? (本日2回目)
  70. 70. 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する
  71. 71. 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する
  72. 72. 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する ただし、RFC4787ではセキュリティを気にする場合は、 2. Address DependentもRECOMMENDEDとしている。
  73. 73. 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する WebRTC的に言えば、Mappingとの組み合わせが需要で、 「3. Address and Port Dependent」でもつながるはず
  74. 74.
  75. 75. ヘアピン接続も サポートしてね!
  76. 76. ヘアピン接続 点線のマッピングができている状態で、 PC-Aから、PC-BのNAT後のアドレスを指定して、 NAT折り返しで接続すること NAT PC-A 192.168.1.1 1.1.1.1 PC-B 送信先アドレスとして 外側のアドレスを指定する のがポイント
  77. 77. ALG(Application Level Gateway)の機能はOFFしてね (例:勝手にペイロードの中身も書き換えないでね)
  78. 78. 好き勝手に動作を変えないでね (deterministic behaviorしてね)
  79. 79. (力尽きたので)そこまでWebRTCに関係しないので 省略
  80. 80. 14個おしまい!(一部ショートカット有り) https://flic.kr/p/4LXLZ2
  81. 81. ん?そもそも
  82. 82. なんで通ったり 落ちたりするの? https://flic.kr/p/b6WaSP
  83. 83. 答えの前にUDPホールパンチング NAT NAT PC-A PC-B
  84. 84. 答えの前にUDPホールパンチング マッピングが無 いので落ちる NAT NAT PC-A PC-B
  85. 85. 答えの前にUDPホールパンチング マッピングが無 いので落ちる だが、PC-B向 けに穴が開いた (マッピングが NAT NAT 出来た) PC-A PC-B
  86. 86. 答えの前にUDPホールパンチング NAT 次に反対向きにNAT 打つと今度は 疎通OK PC-A PC-B
  87. 87. 答えの前にUDPホールパンチング しかも、PC-A 向けの穴が開く ということは、 NAT 次に反対向きにNAT 打つと今度は 疎通OK PC-A PC-B
  88. 88. 答えの前にUDPホールパンチング いまなら NAT NAT 一発目の向きも 疎通OK PC-A PC-B
  89. 89. 再掲:なんで通ったり 落ちたりするの? https://flic.kr/p/b6WaSP
  90. 90. Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合)
  91. 91. Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint Independent Mapping - Endpoint Independent Filtering
  92. 92. Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint Independent Mapping - Endpoint Independent Filtering
  93. 93. Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint いIndependent つなんとき Mapping - Endpoint Independent Filtering 誰のでも挑戦を待つ 猪木的NAT
  94. 94. Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Address Dependent Mapping - Address Dependent Filtering NAT - Address Dependent Mapping - Address Dependent Filtering
  95. 95. Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Address Dependent Mapping - Address Dependent Filtering NAT - Address Dependent Mapping - Address Dependent Filtering
  96. 96. Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Address Dependent Mapping - Address Dependent Filtering NAT - Address Dependent Mapping - Address Dependent Filtering 相手が狙うべきアドレスが 変わっちゃうから通らない (STUNで調べたアドレスが NG)
  97. 97. おまけ Miscellaneous Topics
  98. 98. 古いRFCのNAT分類は マッピング×フィルタリングで説明できる http://www.netmanias.com/en/?m=view&id=techdocs&no=6065
  99. 99. 注 今日の話はあくまでRFCの話! ホントの動作は装置依存です!
  100. 100. 参考資料 Further Study
  101. 101. 参考資料: P2P通信技術:NAT超え〜STUNとUPnPと、時々、TURN〜 http://homepage3.nifty.com/toremoro/study/voip2008/NATTraversal.p df NAT技術者にお勧めするRFCとドラフト http://toremoro.tea-nifty.com/tomos_hotline/2008/06/natrfc_e2f2.html P2Pとファイアウォール http://homepage3.nifty.com/toremoro/p2p/firewall.html ISPのNATには何が求められるか? http://www.janog.gr.jp/meeting/janog22/program/day1/data/day1-5- 1_Nishitani.pdf 共存/移行技術とP2P対戦ゲームの相性 https://www.janog.gr.jp/meeting/janog30/doc/janog30-v64-pre-stun-ryosato- 02.pdf

×