Wiki_Net_NAT - inoueshinichi/Wiki_Web GitHub Wiki
NAT(ルーター)のマッピング方式
- 外部ホストの{Address}:{Port}とNATの外向け{Address}:{Port}のマッピング方式
| タイプ |
略式 |
名称 |
日本語 |
アドレスとポートの関係 |
| A |
EIM |
Endpoint Independent Mapping |
エンドポイント非依存マッピング |
X1':x1'=X2':x2' {Y1}も{Y2}も同じ(アドレス,ポート)に向かう. |
| B |
ADM |
Address Dependent Mapping |
アドレス依存マッピング |
x1'=x2', X1'!=X2' {Y1}も{Y2}も同じPortに向かう.アドレスは異なる. |
| C |
APDM |
Address and Port Dependent Mapping |
アドレス&ポート依存マッピング |
X1':x1'!=X2':x2' {Y1},{Y2}ごとにNATが異なる(アドレス,ポート)の組を設定する. |
{Y1} {Y2}
| Y1:y1 Y2:y2 |
--------| |--------
X1':x1' |___| X2':x2' Internet or WAN
-----------|NAT|---------------------------
----- Internal or LAN
X1:x1 | | X2:x2
{X1} {X2}
NATタイプの診断アルゴリズム
- WAN_HostBでサーバーを起動する.
- LAN_HostAからWAN_HostBに対してUDP送信を行う.
- WAN_HostBは, NATから受信した(IPアドレス,Port番号)を保存する.
- WAN_HostCでサーバーを起動する.
- WAN_HostBからWAN_HostCへ(IPアドレス,Port番号)を送信する.
- WAN_HostCからLAN_HostAへ(IPアドレス,Port番号)を用いて送信する.
- LAN_HostAでWAN_HostCからのデータを受信に成功 -> タイプA(EIM)
- WAN_Host2からLAN_Aへデータをう送信.その際, 下記2つを試す.
- (8-1)LAN_HostAがWAN_HostBに送信した際にWAN_HostB側で受信したPort番号. (8-2)上記と異なるPort番号
- LAN_HostA側で(8-1)のパターンで受信できた場合 -> タイプC(APDM)の可能性.
- (8-2)のパターンで受信できた場合 -> タイプB(ADM)の可能性
{B} --------------> {C}
| Y1:y1 Y2:y2 |
--------| |--------
X1':x1' |___| X2':x2' Internet or WAN
-----------|NAT|---------------------------
----- Internal or LAN
X:x |
{A}