IPsec NATトラバーサル 外部仕様書

$Date: 2023/08/22 10:34:18 $


概要

NATの内側でIPsecを利用するときに生じる制約や運用の難しさを改善します。 ESPパケットをUDPパケットの中に押し込めて送信することで、 次のような改善を引き出します。

既存のファームウェアでは、ESP over UDPという類似の機能が存在しますが、 これはヤマハの独自仕様であり、この文書で説明するものとは別の機能です。

対応機種とファームウェアリビジョン

以下の機種およびファームウェアで、IPsec NATトラバーサルが動作します。

機種 ファームウェア
vRX VMware ESXi版 すべてのリビジョン
vRX Amazon EC2版
RTX3510
RTX1300
RTX1220
RTX830
NVR510 Rev.15.01.03以降
NVR700W すべてのリビジョン
RTX1210
RTX5000
RTX3500
FWX120
RTX810
NVR500 Rev.11.00.36以降
RTX1200 すべてのリビジョン
SRT100
RTX3000 Rev.9.00.15以降
RTX1500 Rev.8.03.46以降
RTX1100
RT107e

詳細

この機能は次の規格に基づいています。

また、次の動作に対応しています。

Internet-Draft、およびRFCの次の部分には対応していません。

IPsec NATトラバーサルでは、次のことは実現できません。

次の項目は、ヤマハルータでの制限事項です。

L2TP/IPsecとL2TPv3を用いたL2VPNで使用されるIKEv1では、メインモードかつトランスポートモードのESPトンネルでNATトラバーサルに対応しています。

設定・操作方法

コマンド

設定例

下記の設定例では説明用のグローバルアドレスとして172.16.0.1を使っています。

1. IPsecクライアントからのリモートアクセス

[ネットワーク構成]

設定例1

[設定のポイント]

[RTX3000の設定例]

  #
  # IPsecの設定
  #
  tunnel select 1
  ipsec tunnel 101
  ipsec sa policy 101 1 esp 3des-cbc sha-hmac
  ipsec ike local address 1 172.16.0.1
  ipsec ike remote address 1 any
  ipsec ike pre-shared-key 1 text key
  ipsec ike remote name 1 pc1
  ipsec ike nat-traversal 1 on
  tunnel enable 1

2. 拠点間のVPN

[ネットワーク構成]

設定例2

[設定のポイント]

[RTX1500の設定例]

  #
  # NATの設定
  nat descriptor type 1 masquerade
  nat descriptor address outer 1 172.16.0.1
  nat descriptor masquerade static 1 1 172.16.0.1 udp 500
  nat descriptor masquerade static 1 2 172.16.0.1 udp 4500

  #
  # IPsecの設定 --- RTX1100(1)とのVPN ---
  #
  tunnel select 1
  ipsec tunnel 101
  ipsec sa policy 101 1 esp 3des-cbc sha-hmac
  ipsec ike local address 1 172.16.0.1
  ipsec ike remote address 1 any
  ipsec ike pre-shared-key 1 text key1
  ipsec ike remote name 1 rtx1100-1
  ipsec ike keepalive use 1 on
  ipsec ike nat-traversal 1 on
  tunnel enable 1

  #
  # IPsecの設定 --- RTX1100(2)とのVPN ---
  #
  tunnel select 2
  ipsec tunnel 102
  ipsec sa policy 102 2 esp 3des-cbc sha-hmac
  ipsec ike local address 2 172.16.0.1
  ipsec ike remote address 2 any
  ipsec ike pre-shared-key 2 text key2
  ipsec ike remote name 2 rtx1100-2
  ipsec ike keepalive use 2 on
  ipsec ike nat-traversal 2 on
  tunnel enable 2

  #
  # IPsecの設定 --- IPsecクライアントとのVPN ---
  #
  tunnel select 3
  ipsec tunnel 103
  ipsec sa policy 103 3 esp 3des-cbc sha-hmac
  ipsec ike local address 3 172.16.0.1
  ipsec ike remote address 3 any
  ipsec ike pre-shared-key 3 text key3
  ipsec ike remote name 3 pc-1
  ipsec ike nat-traversal 3 on
  tunnel enable 3

本社では鍵交換を受け付けるため、静的IPマスカレードを設定し、 外側からのパケットを常に通します。UDPの500番はIKEを通すために必要で、 UDPの4500番もNATトラバーサルで発生するパケットを通すために必要です。 NATトラバーサルを使う限り、ESPパケットは発生しないので、ESPの設定は不要です。

[RTX1100(1)の設定例]

  #
  # NATの設定
  nat descriptor type 1 masquerade
  nat descriptor address outer 1 ipcp

  #
  # IPsecの設定 --- RTX1500とのVPN ---
  #
  tunnel select 1
  ipsec tunnel 101
  ipsec sa policy 101 1 esp 3des-cbc sha-hmac
  ipsec ike remote address 1 172.16.0.1
  ipsec ike pre-shared-key 1 text key1
  ipsec ike local name 1 rtx1100-1
  ipsec ike keepalive use 1 on
  ipsec ike nat-traversal 1 on
  tunnel enable 1

NATトラバーサルがないときには、 UDPの500番やESPに対応する静的IPマスカレードの設定が必要でした。 NATトラバーサルを使うと、これらの設定が不要になります。

[RTX1100(2)の設定例]

  #
  # IPsecの設定 --- RTX1500とのVPN ---
  #
  tunnel select 1
  ipsec tunnel 101
  ipsec sa policy 101 1 esp 3des-cbc sha-hmac
  ipsec ike remote address 1 172.16.0.1
  ipsec ike pre-shared-key 1 text key2
  ipsec ike local name 1 rtx1100-2
  ipsec ike keepalive use 1 on
  ipsec ike nat-traversal 1 on
  tunnel enable 1

3. 拠点間のVPN(IKEv1 メインモード)

[ネットワーク構成]

設定例3

[設定のポイント]

[本社RTの設定例]

  #
  # NATの設定
  nat descriptor type 1 masquerade
  nat descriptor address outer 1 <本社RTのグローバルIPアドレス>
  nat descriptor masquerade static 1 1 192.168.0.1 udp 500 # 本社RTのローカルIPアドレス
  nat descriptor masquerade static 1 2 192.168.0.1 udp 4500

  #
  # IPsecの設定 --- 支社RT(2)とのVPN ---
  #
  tunnel select 1
  ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike keepalive log 1 off
  ipsec ike keepalive use 1 on
  ipsec ike nat-traversal 1 on type=2
  ipsec ike pre-shared-key 1 text key1
  ipsec ike remote address 1 <支社RT(1)のグローバルIPアドレス>
  tunnel enable 1
  ipsec auto refresh on

相手側セキュリティ・ゲートウェイのリモートアドレスとして、 ipsec ike remote address コマンドに支社RT(1)のグローバルアドレスを指定します。
本社では鍵交換を受け付けるため、静的IPマスカレードを設定し、 外側からのパケットを常に通します。UDPの500番はIKEを通すために必要で、 UDPの4500番もNATトラバーサルで発生するパケットを通すために必要です。 NATトラバーサルを使う限り、ESPパケットは発生しないので、ESPの設定は不要です。
ipsec ike nat-traversal コマンドの type パラメータは、本社RT、支社RT(2)で同じ設定に揃えます。

[支社RT(1)の設定例]

  #
  # NATの設定
  nat descriptor type 1 masquerade
  nat descriptor address outer 1 <支社RT(1)のグローバルIPアドレス>
  nat descriptor masquerade static 1 1 192.168.1.200 udp 500 # 支社RT(2)のWAN側IPアドレス
  nat descriptor masquerade static 1 2 192.168.1.200 udp 4500

本社RTから始動した鍵交換を支社RT(2)に通すため、UDPの500番を静的IPマスカレードで設定します。
UDPの4500番もNATトラバーサルで発生するパケットを通すために必要です。

[支社RT(2)の設定例]

  #
  # NATの設定
  nat descriptor type 1 masquerade
  nat descriptor address outer 1 192.168.1.200 # 支社RT(2)のWAN側IPアドレス
  nat descriptor masquerade static 1 1 192.168.11.1 udp 500 # 支社RT(2)のLAN側IPアドレス
  nat descriptor masquerade static 1 2 192.168.11.1 udp 4500

  #
  # IPsecの設定 --- 本社RTとのVPN ---
  #
  tunnel select 1
  ipsec tunnel 101
  ipsec sa policy 101 1 esp aes-cbc sha-hmac
  ipsec ike keepalive log 1 off
  ipsec ike keepalive use 1 on
  ipsec ike nat-traversal 1 on type=2
  ipsec ike pre-shared-key 1 text key1
  ipsec ike remote address 1 <本社RTのグローバルIPアドレス>
  tunnel enable 1
  ipsec auto refresh on

本社RTから始動した鍵交換を通すため、UDPの500番を静的IPマスカレードで設定します。
UDPの4500番もNATトラバーサルで発生するパケットを通すために必要です。
ipsec ike nat-traversal コマンドの type パラメータは、本社RT、支社RT(2)で同じ設定に揃えます。