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タイプの診断アルゴリズム

  • 一般的にUDPはタイプAである場合が多い.
  1. WAN_HostBでサーバーを起動する.
  2. LAN_HostAからWAN_HostBに対してUDP送信を行う.
  3. WAN_HostBは, NATから受信した(IPアドレス,Port番号)を保存する.
  4. WAN_HostCでサーバーを起動する.
  5. WAN_HostBからWAN_HostCへ(IPアドレス,Port番号)を送信する.
  6. WAN_HostCからLAN_HostAへ(IPアドレス,Port番号)を用いて送信する.
  7. LAN_HostAでWAN_HostCからのデータを受信に成功 -> タイプA(EIM)
  8. WAN_Host2からLAN_Aへデータをう送信.その際, 下記2つを試す.
  9. (8-1)LAN_HostAがWAN_HostBに送信した際にWAN_HostB側で受信したPort番号. (8-2)上記と異なるPort番号
  10. LAN_HostA側で(8-1)のパターンで受信できた場合 -> タイプC(APDM)の可能性.
  11. (8-2)のパターンで受信できた場合 -> タイプB(ADM)の可能性
  
    {B} --------------> {C}
     | Y1:y1       Y2:y2 |
     --------|   |--------
     X1':x1' |___| X2':x2'   Internet or WAN
  -----------|NAT|---------------------------
             -----           Internal or LAN
           X:x |
              {A}