トップページ研究・発表 > 家庭用ルーターのNAT特性

家庭用ルーターのNAT特性

NATの特性(NATタイプ)

NATは標準仕様が存在しないため、製品によってふるまいが異なる。そして、そのふるまいはNAT越えの難易度に影響する。

STUN (RFC 3489) [1] では、NATのふるまいを4種類に分類している。Full Cone NAT < Restricted Cone NAT < Port Restricted Cone NAT < Symmetric NATの順に越えるのが難しくなり、既存のNAT越えアルゴリズムの多くはSymmetric NATを越えることができない。NAT越えの分野では歴史的にこの分類が用いられているが、これは現実のNATの特性を説明するには不十分であることがわかっている。

そこで、RFC 4787 [2] ではConeやSymmetricといった用語を使う代わりに個々のNATの特性 (behavior) を、Mapping Behavior, Port Assignment Behavior, Filtering Behavior, Hairpinning Behaviorのそれぞれについて明確に述べている。なお、Mapping BehaviorとFiltering Behaviorの組合せには、RFC 3489におけるNATタイプと対応関係 [3] がある。

NAT越えなどの実験をするにあたり、NATの特性が重要になるが、ルーターに実装されたNATの特性は公開されておらず、実際に調べてみるしかない。そこで、実験に先立って、研究室に存在するルーターのNAT特性を調べることから始めた。また、仮想マシンの実行環境であるVMware [5] や Virtual PC [6] は、ゲストOSをNATでインターネットへ接続する機能を持っているため、このNATについても同様の調査を行った。

この調査結果はNAT越え技術者や研究者にとって有用であると思われるため、Webで公開することにした。それがこのページである。

調査結果

WinStun [4] を用いて、家庭用ブロードバンドルーターおよびVMwareとVirtual PCのNAT特性を調べた。WinStunの出力(「WinStunの出力」に記した)はRFC 4787に基づいているが、このままでは煩雑であるため、メーカー名、製品名(型番)、NAT Variations [1]、Hairpinning Behavior [2] の4項目に整理して表1にまとめた。

なお、NAT VariationsはWinStunが出力するRFC 4787に基づいたMapping BehaviorとFiltering Behaviorの組合せから、[3] の対応関係に基づいて、RFC 3489におけるNAT Variationsに置き換えている。

また、サポートセンターへの問い合わせにより、BUFFALO(バッファロー)とI-O DATA(アイ・オー・データ)ではRestricted Cone NATを実装したルーターは作っていないことと、BUFFALOのルーターはすべてPort Restricted Cone NATが実装されていることがわかった。I-O DATAのルーターはFull Cone, Port Restricted Cone, Symmetricの3種類の実装が存在する。(製品によってNATの実装が異なる)

表1. 家庭用ルーターと仮想マシン実行環境のNAT特性

メーカー名 製品名(型番) NAT Variations [1] Hairpinning Behavior [2]
BUFFALO BBR-4HG Port Restricted Cone Supports
BUFFALO WZR-AGL300NH Port Restricted Cone Supports
corega CG-BARMX2 Port Restricted Cone Does not support
corega CG-BARPROG-X Port Restricted Cone Does not support
I-O DATA NP-BBRL Full Cone Supports
LINKSYS BEFW11S4-CN Restricted Cone Does not support
LINKSYS BEFSR41C-JP V3 Restricted Cone Does not support
Microsoft Virtual PC 2007 Symmetric Supports
NETGEAR WGR614B Symmetric Supports
PLANEX BRL-04CW Port Restricted Cone Does not support
VMware Vmware Player 2.5.1 Full Cone Supports

WinStunの出力

(BUFFALO) BBR-4HG

Nat with Independend Mapping and Port Dependent Filter - VoIP will work with STUN
Preserves port number
Supports hairpin of media
Public IP address: 133.9.xxx.xxx

(BUFFALO) WZR-AGL300NH

Nat with Independend Mapping and Port Dependent Filter - VoIP will work with STUN
Preserves port number
Does not supports hairpin of media
Public IP address: 133.9.xxx.xxx

(corega) CG-BARMX2

Nat with Independend Mapping and Port Dependent Filter - VoIP will work with STUN
Preserves port number
Does not supports hairpin of media
Public IP address: 133.9.xxx.xxx

(corega) CG-BARPROG-X

Nat with Independend Mapping and Dependent Filter - VoIP will work with STUN
Preserves port number
Does not supports hairpin of media
Public IP address: 133.9.xxx.xxx

(I-O DATA) NP-BBRL

Nat with Independend Mapping and Independent Filter - VoIP will work with STUN
Does not preserve port number
Supports hairpin of media
Public IP address: 133.9.xxx.xxx

(LINKSYS) BEFW11S4-CN

Nat with Independend Mapping and Dependent Filter - VoIP will work with STUN
Preserves port number
Does not supports hairpin of media
Public IP address: 133.9.xxx.xxx

(LINKSYS) BEFSR41C-JP V3

Nat with Independend Mapping and Dependent Filter - VoIP will work with STUN
Preserves port number
Does not supports hairpin of media
Public IP address: 133.9.xxx.xxx

(Microsoft) Virtual PC 2007

NAT Mapping is not endpoint independent - VOIP will NOT work
Does not preserve port number
Supports hairpin of media
Public IP address: 133.9.xxx.xxx

(NETGEAR) WGR614B

NAT Mapping is not endpoint independent - VOIP will NOT work
Preserves port number
Supports hairpin of media
Public IP address: 133.9.xxx.xxx

(PLANEX) BRL-04CW

Nat with Independend Mapping and Port Dependent Filter - VoIP will work with STUN
Preserves port number
Does not supports hairpin of media
Public IP address: 133.9.xxx.xxx

(VMware) Vmware Player 2.5.1

NAT with Independent Mapping and Independent Filter - VoIP will work with STUN
Does not preserves port number
Supports hairpin of media
Public IP address: 133.9.xxx.xxx

※Public IP addressの第3、第4オクテット目の値はxxxで隠してある(実際にはNATの外部IPアドレスが表示される)。

参考文献


Copyright (C) 2009 - 2011 Kazuhiro Tobe <>. All Rights Reserved.