Slide 1

Slide 1 text

WebRTCの裏側にあるNATの話 - A talk on NAT behind WebRTC - @iwashi86 / 岩瀬 義昌 2014/11/26 WebRTC Meetup Tokyo #5

Slide 2

Slide 2 text

●Attribute  Name Yoshimasa Iwase      @iwashi86  web  iwashi.co ●Work  ・Web Engineer@NTT Com  ・HTML5 Experts.jp Editor ●Recently  ・HTML5 Experts.jpにてWebRTC特集掲載!   

Slide 3

Slide 3 text

本題 今日はNATの話 (WebRTCなので特にUDPのNAT)

Slide 4

Slide 4 text

https://flic.kr/p/4HKJE1 なぜ、いまさらNAT?

Slide 5

Slide 5 text

Internet NAT NAT WebRTCのクライアントは NAT配下に居ることが多い

Slide 6

Slide 6 text

Internet NAT NAT クライアント達は何の工夫も無しには 直接通信できない・・・ Dropped…

Slide 7

Slide 7 text

Internet NAT NAT そこで、WebRTCでは主にSTUN※ を使って なんとか穴あけしている Reached! ☺ STUN STUN ※UDP Hole Punchも

Slide 8

Slide 8 text

Internet NAT NAT でも、ダメなケースもある… (その場合はTURNで中継) STUN STUN Dropped…

Slide 9

Slide 9 text

そもそも

Slide 10

Slide 10 text

https://flic.kr/p/b6WaSP なんで通ったり 落ちたりするの?

Slide 11

Slide 11 text

https://flic.kr/p/oH1mPu 気になる!(技術者的な意味で) N A T

Slide 12

Slide 12 text

そんなあなたに良いRFC(4787)

Slide 13

Slide 13 text

UDP向けNATの振舞いについて 熱く語っているRFC

Slide 14

Slide 14 text

あと、Obsoleteだけど 3489(Classic STUN)も参考になる

Slide 15

Slide 15 text

Full Coneとか、Symmetric NATとか、 その辺りの用語はこのRFCで登場 (ただし、区分けがちょっと足りない)

Slide 16

Slide 16 text

続きは RFCで!

Slide 17

Slide 17 text

https://flic.kr/p/6n5y3k が、RFC読むと1分で、こうなる↓

Slide 18

Slide 18 text

そこで本トークでは 特にWebRTCに関係するNAT振舞いの エッセンス(12章)を紹介 (=RFC 4787をざっくりと) 免責:正確性はRFC原典の用語を参照のこと

Slide 19

Slide 19 text

https://flic.kr/p/p1Q8WT Requirement

Slide 20

Slide 20 text

RFCの抜粋です

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

マッピングの話から

Slide 23

Slide 23 text

3 種類のマッピング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80

Slide 27

Slide 27 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.200:80

Slide 28

Slide 28 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元: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

Slide 29

Slide 29 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元: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 エンドポイント(宛先) に拘らないマッピング

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80

Slide 32

Slide 32 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.200:80

Slide 33

Slide 33 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元: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が異なる)

Slide 34

Slide 34 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:8888 じゃあ、 同じホストの別ポートに送ると??

Slide 35

Slide 35 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元: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 同じマッピング! つまり、宛先にのみ依存している

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:8888 3つ目のケースで、同じホストで違うポー トに送ると???

Slide 38

Slide 38 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元: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

Slide 39

Slide 39 text

https://flic.kr/p/kSFs6b WebRTC的にイケてるの はどれでしょう? (正確には、P2P的にイケてるのはどれでしょう?)

Slide 40

Slide 40 text

1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する

Slide 41

Slide 41 text

1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する

Slide 42

Slide 42 text

1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する 2と3は、STUNで自分のNATの外側のアドレス (= Server-Reflexive Address、Mapped-Address)を調べ ても、結局使えない…。

Slide 43

Slide 43 text

なのでRFCも・・・

Slide 44

Slide 44 text

MUSTになってる!

Slide 45

Slide 45 text

Slide 46

Slide 46 text

NATはパブリック側(外側)のIPアドレスを複数貯めておける。 その貯めたアドレスを使う場合は、 「同じ宛先には同じ送信元アドレス」を使いましょう、ということ。

Slide 47

Slide 47 text

ポート多重 ダメ・ゼッタイ

Slide 48

Slide 48 text

ポート多重(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

Slide 49

Slide 49 text

ポート多重(Port Overloading) NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1 元:1.1.1.1:10000 先:1.1.1.100:80 元: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

Slide 50

Slide 50 text

ポート多重(Port Overloading) NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1 元:1.1.1.1:10000 先:1.1.1.100:80 元: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 同じの使っちゃうケース 同じの使っちゃうケース

Slide 51

Slide 51 text

ちなみに帰り道(復路)は、送信元が大事 NAT 1.1.1.100 1.1.1.200 192.168.1.2 192.168.1.1 1.1.1.1 元:1.1.1.1:10000 先:1.1.1.100:80 元: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 192.168.1.1 1.1.1.1 元:1.1.1.100:80 先:1.1.1.1:10000 元:192.168.1.2:10000 先:1.1.1.100:80 192.168.1.3 往路 復路 元:1.1.1.200:80 先:1.1.1.1:10000 このアドレスで復路を打ち分ける

Slide 52

Slide 52 text

Slide 53

Slide 53 text

もともとの送信元ポートが0-1023ならNAT後も0-1023、 もともとの送信元ポートが1024-65535ならNAT後も1024-65535、 といったように同じレンジを使うのがRECOMMENDED

Slide 54

Slide 54 text

NATするときのポート番号は、 Before−>Afterで奇数偶数を同じにしようね ということ。 つまり、もともとのポートが偶数なら、NAT後も偶数ということ。

Slide 55

Slide 55 text

マッピングの保持時間は2分以下だとダメだよ。 5分以上がオススメで、自由に設定してOK。 ただし、0-1023のウェルノウンポートはIANAに従ってね。

Slide 56

Slide 56 text

マッピング更新するトラフィックの向きは アウトバウンド(外向き)のトラフィックがMUST。 インバウンドやってもいいけど、攻撃されちゃうかもね。

Slide 57

Slide 57 text

NATによっては、NAT前後のIPレンジが同じことも。 例えば、10.0.0.0/Xから10.0.0.0/XのNATもあり得る。 (ご家庭だとあんまり無いけど) そんなときはには、どっちかで対応すること: (1)内外でアドレスかぶらんように (2)アドレスがコンフリクト(衝突)してもよしなに翻訳転送してね

Slide 58

Slide 58 text

大事!絵!

Slide 59

Slide 59 text

3 種類のフィルタリング: 1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する

Slide 60

Slide 60 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80

Slide 61

Slide 61 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 まず外側に送る

Slide 62

Slide 62 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 さっきと宛先が違う ホストから来ても通せる =エンドポイントに依存しない 元:1.1.1.200:80 先:1.1.1.1:12345

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 まず外側に送る

Slide 65

Slide 65 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 最初に送ったホストと 違うから落ちる (=アドレスに依存している) 元:1.1.1.200:80 先:1.1.1.1:12345

Slide 66

Slide 66 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 元:1.1.1.200:80 先:1.1.1.1:12345 同じホストからならOK (上図だと、同じホストで異なるPort)

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 まず外側に送る

Slide 69

Slide 69 text

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 元:1.1.1.1:12345 先:1.1.1.100:80 元:192.168.1.2:10000 先:1.1.1.100:80 元:1.1.1.200:80 先:1.1.1.1:12345 同じホストでも、ポートが異なるとNG (かなり厳しいフィルタリング)

Slide 70

Slide 70 text

https://flic.kr/p/kSFs6b RFC的にイケてるのはど れでしょう? (本日2回目)

Slide 71

Slide 71 text

1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する

Slide 72

Slide 72 text

1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する

Slide 73

Slide 73 text

1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する ただし、RFC4787ではセキュリティを気にする場合は、 2. Address DependentもRECOMMENDEDとしている。

Slide 74

Slide 74 text

1. Endpoint independent エンドポイントに依存しない 2. Address Dependent アドレスに依存する 3. Address and Port Dependent アドレスとポートに依存する WebRTC的に言えば、Mappingとの組み合わせが需要で、 「3. Address and Port Dependent」でもつながるはず

Slide 75

Slide 75 text

Slide 76

Slide 76 text

ヘアピン接続も サポートしてね!

Slide 77

Slide 77 text

ヘアピン接続  点線のマッピングができている状態で、  PC-Aから、PC-BのNAT後のアドレスを指定して、  NAT折り返しで接続すること NAT PC-A 192.168.1.1 1.1.1.1 PC-B 送信先アドレスとして 外側のアドレスを指定するのが ポイント

Slide 78

Slide 78 text

ALG(Application Level Gateway)の機能はOFFしてね (例:勝手にペイロードの中身も書き換えないでね)

Slide 79

Slide 79 text

好き勝手に動作を変えないでね (deterministic behaviorしてね)

Slide 80

Slide 80 text

(力尽きたので)そこまでWebRTCに関係しないので 省略

Slide 81

Slide 81 text

https://flic.kr/p/4LXLZ2 14個おしまい! (一部ショートカット有り)

Slide 82

Slide 82 text

ん?そもそも

Slide 83

Slide 83 text

https://flic.kr/p/b6WaSP なんで通ったり 落ちたりするの?

Slide 84

Slide 84 text

答えの前にUDPホールパンチング PC-A PC-B NAT NAT

Slide 85

Slide 85 text

答えの前にUDPホールパンチング PC-A PC-B NAT NAT マッピングが無い ので落ちる

Slide 86

Slide 86 text

答えの前にUDPホールパンチング PC-A PC-B NAT NAT マッピングが無い ので落ちる だが、PC-B向け に穴が開いた (マッピングが出 来た)

Slide 87

Slide 87 text

答えの前にUDPホールパンチング PC-A PC-B NAT NAT 次に反対向きに 打つと今度は 疎通OK

Slide 88

Slide 88 text

答えの前にUDPホールパンチング PC-A PC-B NAT NAT 次に反対向きに 打つと今度は 疎通OK しかも、PC-A向 けの穴が開く ということは、

Slide 89

Slide 89 text

答えの前にUDPホールパンチング PC-A PC-B NAT NAT いまなら 一発目の向きも 疎通OK

Slide 90

Slide 90 text

https://flic.kr/p/b6WaSP 再掲:なんで通ったり 落ちたりするの?

Slide 91

Slide 91 text

Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合)

Slide 92

Slide 92 text

Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint Independent Mapping - Endpoint Independent Filtering

Slide 93

Slide 93 text

Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint Independent Mapping - Endpoint Independent Filtering

Slide 94

Slide 94 text

Mapping × Filtering の特性で決まる (特にUDPホールパンチングで通す場合) NAT - Endpoint Independent Mapping - Endpoint Independent Filtering NAT - Endpoint Independent Mapping - Endpoint Independent Filtering いつなんとき 誰のでも挑戦を待つ 猪木的NAT

Slide 95

Slide 95 text

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

Slide 96

Slide 96 text

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

Slide 97

Slide 97 text

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)

Slide 98

Slide 98 text

おまけ Miscellaneous Topics

Slide 99

Slide 99 text

http://www.netmanias.com/en/?m=view&id=techdocs&no=6065 古いRFCのNAT分類は マッピング×フィルタリングで説明できる

Slide 100

Slide 100 text

注 今日の話はあくまでRFCの話! ホントの動作は装置依存です!

Slide 101

Slide 101 text

参考資料 Further Study

Slide 102

Slide 102 text

P2P通信技術:NAT超え 〜STUNとUPnPと、時々、TURN〜 http://homepage3.nifty.com/toremoro/study/voip2008/NATTrave rsal.pdf 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