# 2.31. IPsecの設定

IPsecには、データの完全性を保持するための認証機能と、データの機密性を保持するための暗号機能があります。

IPsecの機能はIKEと併用する必要があります。IKEにはIKEv1とIKEv2がありますが、本章はIKEv1と併用する場合のIPsecについて記載いたします。IKEv2を利用する場合のIPsecについてはIKEv2の章を参照してください。

- アドレスが動的に変化するリモートアクセス環境でも利用できます。

- トンネルインタフェースを利用してIPsecを設定できます。トンネルインタフェースを利用することで、冗長構成やルーティングプロトコルの併用が可能になります。

- NATトラバーサル機能が利用可能です。

- ESPにのみ対応し、AHには対応しません。

- L2TPリモートアクセス機能に対応します。

IPsecを設定する際に使用される用語について説明します。

> 項目 | 説明
> --- | ---
> SA（Security Association） | IPsecを実施する装置間で合意する内容
> ポリシー | 鍵交換を実行するか否かを決定するもの
> プロポーザル | 鍵交換を実行する場合の手段やアルゴリズムなどを決定するもの
> 自動鍵 | IPsecで通信する装置が、IKEを使用して自動的に生成された鍵 （IKEについては、IKEの節を参照してください。）
> PFS（Perfect Forward Secrecy）のためのDHグループ値 | PFSを使用するとよりセキュリティが高くなります。

注釈

UNIVERGE IXシリーズのコンフィグを流用する場合、IX互換モードを設定することで
UNIVERGE IXシリーズと同じ入力形式やデフォルト値で反映することができます。
詳細は、IX互換モードを参照ください。

## 2.31.1. IPsecの基本設定

### 2.31.1.1. IPsecポリシー

IPsecポリシーは、どのモードでIPsec処理するか等を決定するもので、以下の設定項目があります。

- モード選択

  - トンネルモード、トランスポートモードのいずれかを選択します。L2TPリモートアクセス機能等のIKE以外のプロトコルと併用する場合はトランスポートモードを指定します。IKEプロトコルのみを利用する場合はトンネルモードを選択します。

- インタフェース指定

  - IPsec処理を実施するトンネルインタフェースを選択します。トンネルインタフェース以外は指定出来ません。

- 鍵のポリシー選択

IPsecポリシーの設定は、次のコマンドを使用します。

- インタフェースコンフィグモード

  項目 | 説明
  --- | ---
  ipsec policy | IPsecポリシーの設定

- 表示コマンド

  項目 | 説明
  --- | ---
  show ipsec policy | IPsecポリシーの確認

### 2.31.1.2. 自動鍵ポリシーと自動鍵プロポーザル

自動鍵ポリシーは、対向装置毎との自動鍵生成に必要な以下のパラメータを設定します。

- IPsec通信相手アドレス

- PFS値

- 自動鍵プロポーザル

自動鍵プロポーザルは、IPsecで使用する暗号/認証アルゴリズムおよび自動鍵の有効期限を決定します。

自動鍵ポリシーと自動鍵プロポーザルの設定は、次のコマンドを使用します。

> 項目 | 説明
> --- | ---
> ipsec autokey-map | 自動鍵ポリシーの設定
> ipsec dynamic-map | 自動鍵ダイナミックポリシーの設定
> ipsec autokey-proposal | 自動鍵プロポーザルの設定
> ipsec sa-autorefresh | 自動鍵の自動更新の有効/無効
> show ipsec autokey-map | 自動鍵ポリシーの確認
> show ipsec dynamic-map | 自動鍵ダイナミックポリシーの確認
> show ipsec autokey-proposal | 自動鍵プロポーザルの確認
> show ipsec sa-autorefresh | 自動鍵の自動更新の有効/無効の確認

自動鍵ポリシー入力時、自動鍵プロポーザル名の設定を省略した場合、自動的に以下のプロポーザルが使用されます。

> 項目 | 説明
> --- | ---
> ESP暗号アルゴリズム | AES-CBC-256
> ESP認証アルゴリズム | HMAC-SHA2-512
> PFS | Off
> 鍵の有効期限 | 28800秒

なお、自動鍵はIKEと連係した設定を行う必要があります。 IKEv1については、IKEv1の節に詳細を記述します。

### 2.31.1.3. アルゴリズム

UNIVERGE IX-R/IX-V シリーズのIPsecでは、以下のアルゴリズムをサポートしています。

> 項目 | 説明
> --- | ---
> ESP暗号アルゴリズム | Triple DES-CBC AES-CBC 128bit AES-CBC 192bit AES-CBC 256bit
> ESP認証アルゴリズム | HMAC-SHA1-96 HMAC-SHA2-256 HMAC-SHA2-384 HMAC-SHA2-512

### 2.31.1.4. 強制フラグメント

DFビットが設定されたIPv4パケットをフラグメントすることができます。

通常、IPsecのカプセル化によってパケットサイズがインタフェースのMTUを超過した場合、オリジナルパケットのDFビットがセットされていなければフラグメントしてパケットを送信します。また、DFビットがセットされていれば、ICMPエラーによってIPsecを考慮したMTU値をホストに通知します（Path MTU Discovery機能）。Path MTU Discovery機能が使用できないネットワークでは、フラグメント禁止パケットが通信不可となりますが、設定により強制的にフラグメント動作させることが可能です。

設定は以下のコマンドで行います。

> 項目 | 説明
> --- | ---
> ipsec policy ... mtu ignore | 強制フラグメント設定

### 2.31.1.5. commit-bit対応

IKEフェーズ2においてcommit-bitを使用することにより、InitiatorとResponderのSA状態不一致が発生する可能性を低下させることができます。

本機能はResponderにおいて設定する場合のみサポートしています。

動作については、IKEv1の場合と同様ですので、「IKEv1の設定」の章を参照してください。

設定は以下のコマンドで行います。

> 項目 | 説明
> --- | ---
> ipsec commit-bit | commit-bit使用の設定

commit-bitの設定はResponderでのみ行います。Initiatorで設定した場合、設定は無視されます。クイック交換を行う装置を使用する場合は、commit-bit設定時にquick-modeを指定してください。また、再送回数、再送間隔は、ike retransmit-count, ike retransmit-intervalコマンドでの設定と同じ値が使用されます。変更する場合は、これらのコマンドを使用してください。

> リスト 2.31.1 設定例：個別に交換を行う装置と対向する場合

>     ike retransmit-count 20
>     ipsec commit-bit ipsec_policy1

> リスト 2.31.2 設定例：クイック交換を行う装置と対向する場合

>     ike retransmit-count 20
>     ipsec commit-bit ipsec_policy1 quick-mode

### 2.31.1.6. Anti-Replay機能の無効化

Anti-Replay機能を無効化することができます。IPsecでは、シーケンス番号を監視し、重複して受け取ったパケットを廃棄することによりリプレイ攻撃からの防御を行います。Anti-Replay機能を無効化することにより、受信時のシーケンス番号の監視を行いません。

通信経路やインターネット回線上において帯域制御によりパケットの転送順序が変更されるような環境では、リプレイ攻撃と誤認しパケットを廃棄する場合があります。このような場合は、Anti-Replay機能を無効化することにより、パケットの廃棄を防ぐことができます。

デフォルトでは、Anti-Replay機能は有効になっています。これを無効にすることは、セキュリティホールとなる可能性がありますので、無効化の設定を行う場合には使用環境を十分考慮する必要があります。

設定は以下のコマンドで行います。

> 項目 | 説明
> --- | ---
> ipsec anti-replay | Anti-Replay防御機能の有効/無効化

> リスト 2.31.3 設定例

>     Anti-Replayの無効化

>     no ipsec anti-replay policy1

### 2.31.1.7. DELETE送信機能

復号できないパケットを受信した場合に、相手装置に対しDELETEメッセージを送信する機能です。

IKEはデータ転送プロトコルとしてUDPを使用します。したがって、IKEパケットがやり取りされるときには、エンドツーエンドのコネクションは張られません。失われたIKEパケットがプロトコルレベルで確認されないため思わぬ事態を引き起こす可能性があります。たとえば、IKE接続状態にある装置間の片方のIPsec SA情報が何らかの要因で消えてしまったとき、ほとんどの場合は、IPsec SA削除通知（DELETEメッセージ）を送信することで、もう片方の装置は接続相手のIPsec SA情報が消えたことを知ります。しかし、信頼性のないUDPによるこの通知が確実に届くとはかぎりません。届かなかった場合、IPsec SA情報がある装置は相手にIPsec SA情報がないことを知らずに暗号パケットを送信し続け、相手装置は復号できず受信できない状態になります。

もし、暗号パケットを送信する側が不定アドレスを持つ装置ならば、IPsec SAを持たない装置は、接続を開始することができずに相手からの再接続（Re-key）まで待つしかない状態となります。この様な状態で復号できないパケットを一定時間に一定回数受信した場合に、相手装置に対し削除通知（DELETEメッセージ）を再度送信します。削除通知（DELETEメッセージ）を確実に受け取った場合、IPsec SA情報がある装置は、IPsec SAを削除し再接続を開始することでIPsec通信が復旧します。

DELETE送信機能は、相手装置に無効なIPsec SA情報を削除させる機能です。ただし、DELETEメッセージを送信できるのはIKE SAが存在しているときのみです。

設定／確認コマンドは次のとおりです。

> 項目 | 説明
> --- | ---
> ipsec delete-notify | SA削除要求送信の設定
> show ipsec delete-notify | SA削除要求送信の表示

> リスト 2.31.4 設定例

>     30秒間に100パケットを受信した場合に、DELETEメッセージを送信

>     ipsec delete-notify 100 30

図 2.31.1 DELETE送信のシーケンス

### 2.31.1.8. 不定アドレス宛フェーズ2開始機構

IKE SAが存在し、IPsec SAが存在しない状態で、不定アドレス宛のデータの送信を行う場合に、IKE SAの情報を利用し自装置からフェーズ2のネゴシエーションを開始する機能です。

パケット受信時、指定したIKE SAの情報から相手アドレスを調べ、自装置からフェーズ2の接続を行うことができます。これにより、IPsec SAが作成され、再度通信を行うことができます。指定したIKEポリシーに一致する相手からのみフェーズ2の接続させるように指定することができます。

設定は、自動鍵ダイナミックポリシーの設定コマンドを使用します。

> 項目 | 説明
> --- | ---
> ipsec dynamic-map | 自動鍵ダイナミックポリシーの設定

> リスト 2.31.5 設定例

>     IKEポリシーを自装置からの接続のみ使用（IPv4）
>     ipsec dynamic-map policy1 ipv4 ike ikepolicy

>     IKEポリシーを自装置からの接続のみ使用（IPv6）
>     ipsec dynamic-map policy1 ipv6 ike ikepolicy

>     IKEポリシーを対向装置からの接続にも使用（IPv4）
>     ipsec dynamic-map policy1 ipv4 ike-binding ikepolicy

>     IKEポリシーを対向装置からの接続にも使用（IPv6）
>     ipsec dynamic-map policy1 ipv6 ike-binding ikepolicy

図 2.31.2 不定アドレス宛フェーズ2ネゴシエーション開始時のシーケンス

不定アドレス宛フェーズ2開始機能の有無による、アグレッシブモード使用時のResponder側（固定IP側）のSA状態とトンネルインタフェース状態を以下に示します。

> 不定アドレス宛 フェーズ2開始機能 | IPsec SA ○ IKE SA ○ | IPsec SA ○ IKE SA × | IPSec SA × IKE SA ○ | IPsec SA × IKESA × | インタフェースダウン
> --- | --- | --- | --- | --- | ---
> あり | up | up | up | up | down
> なし | up | up | down | down | down

### 2.31.1.9. リキー設定

IKEv1はIPsecで使用する鍵を一定期間で更新するリキー（Rekey）機能が利用できます。

デフォルトではライフタイム満了の1分前、また、リキー開始までに該当SAを使用して通信が行われた場合に、IPsec-SAのリキーを行います。

リキー開始タイミングの設定の変更、通信の有無によらずリキーする設定ができます。

設定は次のとおりです。

> 項目 | 説明
> --- | ---
> ipsec rekey remaining-lifetime | IPsec SAリキータイミング設定
> ipsec rekey unconditional-rekeying | IPsec SA無通信リキー設定

> リスト 2.31.6 設定例：全ポリシーのリキーを120秒前に行う場合

>     ipsec rekey remaining-lifetime default second 120

> リスト 2.31.7 設定例：特定ポリシー（map1）のリキーを180秒前に行う場合

>     ipsec rekey remaining-lifetime policy map1 second 180

> リスト 2.31.8 設定例：通信が無くてもSAのリキーを行う場合

>     ipsec rekey unconditional-rekeying

リキー開始タイミング設定は、ライフタイムの1/2以下の値を設定してください。ライフタイムの1/2以上の値を設定した場合、ライフタイムの1/2の値で動作します。

### 2.31.1.10. 宛先のFQDN指定

宛先をFQDNで指定することが可能です。指定したFQDNの名前解決を行い対応したアドレスを宛先として使用します。宛先のFQDN指定を利用することにより、不定アドレス同士での接続が可能となります。詳細はDNSの項を参照してください。

名前解決の契機、アドレス更新時の動作、未解決時の動作は以下のとおりです。

> 項目 | 説明
> --- | ---
> 名前解決の契機 | 定期的な更新
> アドレス更新時の動作 | 該当するSAを削除
> 名前未解決時の動作 | SA作成不可

設定例は以下のとおりです。

> リスト 2.31.9 設定例

>     宛先をhost1.example.comで指定

>     ike proposal ike-prop encryption aes hash sha
>     !
>     ike policy ike-policy peer-fqdn-ipv4 host1.example.com key secret ike-policy
>     ike keepalive ike-policy 10 3
>     !
>     ipsec autokey-proposal sec-prop esp-aes esp-sha
>     !
>     ipsec autokey-map sec-map ipv4 peer-fqdn-ipv4 host1.example.com sec-prop
>     !
>     interface Tunnel0.0
>       tunnel mode ipsec
>       ip address 10.0.0.1/30
>       ipsec policy tunnel sec-map
>       no shutdown

### 2.31.1.11. IKEフェーズ2 ID送信なし機能

IKEフェーズ2のネゴシエーションにIDを含めないように設定することが可能です。この設定を行うことにより、IKEフェーズ2のネゴシエーションにIDが利用できない装置への接続が可能となります。

設定は以下のコマンドで行います。

> 項目 | 説明
> --- | ---
> ipsec policy ... without-id-payload | IKEフェーズ2 ID送信なし設定

設定例は以下のとおりです。

> リスト 2.31.10 設定例

>     interface Tunnel0.0
>       tunnel mode ipsec
>       ip address 10.0.0.1/30
>       ipsec policy tunnel sec-map without-id-payload
>       no shutdown

## 2.31.2. トンネルモード

トンネルモードは、L2TPのIPsec以外のカプセル化プロトコルと併用しない場合に利用します。

オリジナルのパケットに対して、暗号化を行い、その後にESPヘッダ、IPヘッダを付加して転送します。

トンネルモードで使用する主なコマンドは、前述したipsecコマンドの他、次に示すコマンドを使用します。

> 項目 | 説明
> --- | ---
> tunnel mode ipsec | トンネルインタフェースIPsec適用設定
> ipsec policy tunnel | トンネルモードの設定

以下に、IPsecのトンネルモードの動作イメージと設定例を示します。

図 2.31.3 IPsec のトンネルモードの動作イメージ

> リスト 2.31.11 設定例

>     ip route 10.3.3.0/24 Tunnel0.0
>     ike proposal ike-prop encryption 3des hash sha group 1024-bit
>     ike policy policy1 peer 10.2.2.2 key xxxxxxxx ike-prop
>     ipsec autokey-proposal ipsec-prop esp-3des esp-sha
>     ipsec autokey-map auto1 ipv4 peer 10.2.2.2 ipsec-prop
>     !
>     interface GigaEthernet0.0
>       ip address 10.1.1.254/24
>       no shutdown
>     !
>     interface GigaEthernet1.0
>       ip address 10.2.2.1/24
>       no shutdown
>     !
>     interface Tunnel0.0
>       tunnel mode ipsec
>       ip unnumbered GigaEthernet0.0
>       ipsec policy tunnel auto1
>       no shutdown

注釈

- トンネルモード使用時のMTUに関する注意事項

  - トンネルモード時のMTUは、出力する物理インタフェースのMTUを使用します。そのため、IPsecのMTUを調整する場合、IPsecに使用するトンネルインタフェースのMTUを変更しても、IPsecのMTUは変更されません。

  - IPsecのMTUは出力するインタフェースのMTUからヘッダ、トレイラを引いた値に自動調整されます。OSPF 等、MTU のネゴシエーションを行う場合には注意してください。

図 2.31.4 トンネルモード使用時のMTUに関する注意事項

## 2.31.3. IPsecリモートアクセス機能

一方のルータのアドレスが動的に変化するような場合（固定IPアドレスが配布されないサービスなど）にも、VPNを構築することが可能です。

図 2.31.5 構成図

上記の例でリモート拠点側のアドレスは不定のため、センタ側のIKEのpeerはanyで設定し、IPsecはdynamic-mapを利用します。また双方のルータで、事前共有鍵を選択できるようにするため、モード設定にはアグレッシブモードを使用し拠点ごとに固有のIDを設定しておきます。さらにリモート拠点側のルータのアドレスが変化した場合やセンタ側がリブートした場合などにIKE/IPsec SAを削除できるよう、IKEのキープアライブ機能を有効にする必要があります。

これらの設定を行うことにより、動的アドレス環境下でもIPsecトンネルを利用できます。

ただし、以下の制限がありますので注意が必要です。

- アドレスが不定のリモート拠点同士で通信を行うことはできません。

- IPsec双方の内部ネットワークアドレスは、お互いに既知である必要があります。

- 動的アドレス環境でのトランスポートモードはサポートしておりません。

  リスト 2.31.12 設定例：リモート拠点側（動的アドレス側）

      ip route 10.1.1.0/24 Tunnel0.0
      !
      ike proposal iprop1 encryption 3des hash sha
      ike policy ikepol1 peer 10.10.10.1 key xxxxxxxx iprop1 mode aggressive
      !
      ike local-id ikepol1 keyid sg1-site
      ike keepalive ikepol1 10 3
      !
      ipsec autokey-proposal prop1 esp-3des esp-sha
      ipsec autokey-map map1 ipv4 peer 10.10.10.1 prop1
      ipsec local-id map1 10.2.2.1
      ipsec remote-id map1 10.1.1.1
      !
      interface GigaEthernet0.0
        ip address 10.2.2.1/24
        no shutdown
      !
      interface GigaEthernet1.0
        ip address dhcp receive-default
        no shutdown
      !
      interface Tunnel0.0
        tunnel mode ipsec
        ip unnumbered GigaEthernet0.0
        ipsec policy tunnel map1
        no shutdown

  リスト 2.31.13 設定例：センタ側（固定アドレス側）

      ip route 10.2.2.0/24 Tunnel0.0
      !
      ike proposal iprop1 encryption 3des hash sha
      ike policy ikepol1 peer any key xxxxxxxx iprop1 mode aggressive
      !
      ike remote-id ikepol1 keyid sg1-site
      ike keepalive ikepol1 10 3
      !
      ipsec autokey-proposal prop1 esp-3des esp-sha
      ipsec dynamic-map map1 ipv4 prop1
      ipsec local-id map1 10.1.1.1
      ipsec remote-id map1 10.2.2.1
      !
      interface GigaEthernet1.0
        ip address 10.10.10.1/24
        no shutdown
      !
      interface GigaEthernet0.0
        ip address 10.1.1.1/24
        no shutdown
      !
      interface Tunnel0.0
        tunnel mode ipsec
        ip unnumbered GigaEthernet0.0
        ipsec policy tunnel map1
        no shutdown

注釈

- ipsec dynamic-mapを設定した側からIKEのネゴシエーションを行うことはありません。IKEネゴシエーションは常にリモート拠点側から行われます。

- モードの設定はネゴシエーションを開始する側の設定のみ有効です。受け入れる側は設定に拠らず、相手のモードに合わせます。

- アドレスが変化したことを検知した場合には、関連するSAをすべて削除します。

## 2.31.4. IPsecトンネル二重化対応

IPsecトンネルの二重化構成を組むためには、IPsecとともに以下の機能を併用する必要があります。これらは、IPsecを仮想トンネルインタフェース上で設定することで実現可能です。

- ルーティングプロトコル

- ネットワークモニタ

- フローティング・スタティック

経路監視を使用したIPsecの冗長構成例を以下に示します。

図 2.31.6 IPsecトンネル二重化構成

> リスト 2.31.14 設定例

>     ip route default 172.16.2.254
>     ip route 10.1.1.0/24 Tunnel0.0
>     ip route 10.1.1.0/24 Tunnel1.0 metric 100
>     ike proposal ike-pro1 encryption 3des hash sha lifetime 3600
>     ike policy ike-poli1 peer 172.16.111.1 key key1 mode aggressive ike-pro1
>     ike policy ike-poli2 peer 172.16.112.1 key key2 mode aggressive ike-pro1
>     ike local-id ike-poli1 keyid ix-r
>     ike local-id ike-poli2 keyid ix-r
>     ike remote-id ike-poli1 keyid router-1
>     ike remote-id ike-poli2 keyid router-2
>     ike keepalive ike-poli1 10 3
>     ike keepalive ike-poli2 10 3
>     ipsec autokey-proposal ipsec-pro1 esp-3des esp-sha lifetime time 3600
>     ipsec autokey-map ipsec-poli1 ipv4 peer 172.16.111.1 ipsec-pro1
>     ipsec autokey-map ipsec-poli2 ipv4 peer 172.16.112.1 ipsec-pro1
>     !
>     watch-group ipsec1 10
>       event 10 ip unreach-host 172.16.111.1 Tunnel0.0
>       action 10 ip shutdown-route 10.1.1.0/24 Tunnel0.0
>     !
>     network-monitor ipsec1 enable
>     !
>     watch-group ipsec2 10
>       event 10 ip unreach-host 172.16.112.1 Tunnel1.0
>       action 10 ip shutdown-route 10.1.1.0/24 Tunnel1.0
>     !
>     network-monitor ipsec2 enable
>     !
>     interface GigaEthernet0.0
>       ip address 172.16.2.1/24
>       no shutdown
>     !
>     interface GigaEthernet1.0
>       ip address 10.10.10.10/24
>       no shutdown
>     !
>     interface Tunnel0.0
>       tunnel mode ipsec
>       ip unnumbered GigaEthernet1.0
>       ipsec policy tunnel ipsec-poli1
>       no shutdown
>     !
>     interface Tunnel1.0
>       tunnel mode ipsec
>       ip unnumbered GigaEthernet1.0
>       ipsec policy tunnel ipsec-poli2
>       no shutdown

## 2.31.5. IPsecとNAT/NAPTの連携

IPsecの経路の途中にNAT/NAPTルータが存在する等、アドレス・ポートが変更されるような環境ではNATトラバーサルという設定が必要になります。詳細はNATトラバーサル機能を参照してください。

図 2.31.7 インターネットVPNの設定（送信インタフェースでNAPTを利用）

インターネットVPNの設定などで、WAN側インタフェースでNAT/NAPTを有効にし、IPsecの設定も行う場合、アドレスは変換されないのでNATトラバーサルの設定は不要です。ただし、相手側から通信が開始された場合に、NAT/NAPTでパケットが廃棄されないように、静的NAPTの設定が必要になります。

> リスト 2.31.15 設定例

>     ルーティングやIKE/IPsecの設定は省略しています。

>     interface GigaEthernet0.0
>       ip address 10.0.0.1/24
>       ip napt enable
>       ip napt static GigaEthernet0.0 udp 500
>       ip napt static GigaEthernet0.0 50
>       no shutdown
>     !
>     interface GigaEthernet1.0
>       ip address 10.0.1.254/24
>       no shutdown
>     !
>     interface Tunnel0.0
>       tunnel mode ipsec
>       ip unnumbered GigaEthernet1.0
>       ipsec policy tunnel auto1
>       no shutdown

注釈

- 送信元アドレスがNAPTのアドレスになる場合はNATトラバーサルの設定は不要です。

- NAPTは相手側から開始される通信を廃棄するので、NAPTやフィルタではudpの500番およびESPのプロトコル50番を開けておく必要があります。

図 2.31.8 IPsec 対象のアドレス変換設定（TunnelインタフェースにNAT/NAPTを適用）

IPsecでカプセル化するパケットの中身にNAT/NAPTやフィルタを適用したい場合には、トンネルインタフェースでそれらの機能を設定してください。これらの機能が適用されたあとに暗号化されます。

> リスト 2.31.16 設定例

>     IPsecトンネルの設定以外は省略しています。

>     interface Tunnel0.0
>       tunnel mode ipsec
>       ip unnumbered GigaEthernet0.0
>       ip napt enable
>       ipsec policy tunnel auto1
>       no shutdown

## 2.31.6. トランスポートモード

トランスポートモードは、L2TP等のカプセル化プロトコルを併用する場合に利用します。オリジナルパケットに対して、L2TPヘッダ等のヘッダを付加した後に暗号化を行い、その後にESPヘッダ、IPヘッダを付加して転送します。

トランスポートモードで使用する主なコマンドは、前述したipsecコマンドの他、次に示すコマンドを使用します。

項目 | 説明
--- | ---
tunnel mode l2tp-lns ipsec | トンネルインタフェースL2TP/IPsec適用設定
ipsec policy transport | トランスポートモードの設定

トランスポートモードはトンネルモードと異なりデフォルトではIDを送信しませんので、IDが必須の対向装置との接続には、with-id-payloadを設定してください。

IPsecのトランスポートモードの設定例についてはスマートデバイス対応（L2TP LNS機能）の章を参照してください。

## 2.31.7. NATトラバーサル機能

NATトラバーサルは、IPsecのパケットをNAPT変換できるように拡張する機能です。NAT/NAPTを使用している環境でも、NAPT内部の複数のIPsecクライアントが１つのNAPTアドレスで同時にIPsecを利用できるようになります。

本機能を使用しない場合、途中に存在するNAT/NAPTルータのVPNパススルー機能を使用することにより、NAT/NAPT内部に存在する1台のVPNルータのみがIPsecを使用することが可能になります。（NAT/NAPTルータにVPNパススルー機能が必要です。）

図 2.31.9 NATトラバーサルの構成

### 2.31.7.1. 概要

NATトラバーサルは、暗号化したパケットにさらにUDPのヘッダを付与する機能です。IPsecのパケットにはポート番号がないためポート変換ができず、複数のIPsecクライアントを１つのNAPTアドレスに集約することはできません。

暗号化したペイロード全体をUDPヘッダでカプセル化することにより、経路上の装置からは単なるUDPパケットに見えるので、NAPT装置ではポート変換が可能となり、通信が可能になります。

具体的には、NATトラバーサル機能でIKEのネゴシエーションに以下の機能が付与されます。

- サポートしているNATトラバーサル機能の種別を相手に通知する

- NAT/NAPTを検出する（ネゴシエーションパケットが変換されたかどうかを判断できる）

- 変換されていた場合、NATトラバーサルのカプセル化モードを提案し採用する

NATトラバーサルが有効になると、IPsecパケットはUDPでカプセル化されるようになります。このUDPは送信先/送信元の両方で4500番ポートを固定的に使用しますので、フィルタを設定している場合は、廃棄されることがないように注意してください。

### 2.31.7.2. 制限事項

- メインモードは未対応です。アグレッシブモードを使用してください。

- NATトラバーサルにはRFCといくつかのドラフトの仕様が存在しており、これらは互換性がありません。このうちRFCと以下のドラフトのみ対応しています。それ以外のドラフトのみサポートする装置とはNATトラバーサルで接続できません。

  - draft-ietf-ipsec-nat-t-ike-02, draft-ietf-ipsec-udp-encaps-02

  - draft-ietf-ipsec-nat-t-ike-03, draft-ietf-ipsec-udp-encaps-03

### 2.31.7.3. 設定方法

NATトラバーサルの設定は、以下のコマンドを使用します。

> 項目 | 説明
> --- | ---
> ike nat-traversal | NATトラバーサル機能を有効にします。

プロポーザルやポリシーの設定は通常のIKE/IPsecと変わりません。上記コマンドで全体またはポリシーごとに有効にすることにより、対向装置とのネゴシエーションを行い必要に応じてUDPヘッダを付与して通信するようになります。

動作する条件は、有効にしたポリシーについて相手装置もNATトラバーサルに対応しており、かつ相手装置との間にNATが存在することです。アドレス変換されない場合は、設定を有効にしてもNATトラバーサル機能が使用されずに普通のIPsecになります。

またNATトラバーサルには通信が停止している場合にNAT/NAPT装置のキャッシュを維持するためのNATキープアライブの機能が標準で備わっています。この時間間隔も本コマンドで変更できますのでキャッシュが削除されないよう調整してください。デフォルトは20秒です。

### 2.31.7.4. フラグメント対策（推奨）

UNIVERGE IX-R/IX-V シリーズのIPsecはデフォルトでは暗号化してからフラグメントを行う順序ですが、NATトラバーサルを使用する場合は、暗号化する前にフラグメントする設定が推奨です。

以下のコマンドのパラメータ、pre-fragmentを有効にしてください。

> 項目 | 説明
> --- | ---
> ipsec policy | フラグメント方式の変更

この設定を行わなかった場合、フラグメントパケットがNAT/NAPTルータで正しく変換されずに廃棄されてしまう可能性があります。

暗号化してからフラグメントした場合（デフォルト）、フラグメントされた２番目以降のパケットにはUDPのヘッダがつきません。NAT/NAPTルータは一般にUDPやTCPのヘッダを参照してアドレス変換を行っているため、UDPヘッダがつかないフラグメントパケットを正しく変換できない場合があります。暗号化する前にフラグメントする設定にした場合、すべてのパケットにUDPヘッダが付与されるため、NAT/NAPTルータで正しく変換することが可能になります。

### 2.31.7.5. その他の注意事項

- NAT装置を検出しないかぎり（相手装置からのパケットがアドレス変換されていないかぎり）、NATトラバーサルのカプセル化モードを提案することはありません。

- MTUサイズは通常のIPsecよりもUDPヘッダサイズ分（8byte）だけ小さくなります。

- UDPは500番ポートのほか4500も使用されます。

図 2.31.10 設定例

> リスト 2.31.17 設定例：センタ側設定（固定アドレス側）

>     ip route default 10.1.0.254
>     ip route 192.168.101.0/24 Tunnel1.0
>     ip route 192.168.102.0/24 Tunnel2.0
>     !
>     ike nat-traversal
>     !
>     ike policy ike-site1 peer any key secret-site1 mode aggressive ikeprop
>     ike keepalive ike-site1 10 3
>     ike remote-id ike-site1 keyid site1
>     !
>     ike policy ike-site2 peer any key secret-site2 mode aggressive ikeprop
>     ike keepalive ike-site2 10 3
>     ike remote-id ike-site2 keyid site2
>     !
>     ipsec autokey-proposal ipsecprop esp-aes esp-sha
>     !
>     ipsec dynamic-map ipsec-site1 ipv4 ipsecprop ike ike-site1
>     !
>     ipsec dynamic-map ipsec-site2 ipv4 ipsecprop ike ike-site2
>     !
>     interface GigaEthernet0.0
>       ip address 10.1.0.1/24
>       no shutdown
>     !
>     interface GigaEthernet1.0
>       ip address 192.168.1.1/24
>       no shutdown
>     !
>     interface Tunnel1.0
>       tunnel mode ipsec
>       ip unnumbered GigaEthernet1.0
>       ipsec policy tunnel ipsec-site1 pre-fragment
>       no shutdown
>     !
>     interface Tunnel2.0
>       tunnel mode ipsec
>       ip unnumbered GIgaEthernet1.0
>       ipsec policy tunnel ipsec-site2 pre-fragment
>       no shutdown

> リスト 2.31.18 設定例：拠点1設定（動的アドレス側設定）

>     ip route default 10.101.0.254
>     ip route 192.168.0.0/16 Tunnel0.0
>     !
>     ike nat-traversal
>     !
>     ike proposal ikeprop encryption aes hash sha
>     !
>     ike suppress-dangling
>     !
>     ike policy ike-site1 peer 10.1.0.1 key secret-site1 mode aggressive ikeprop
>     ike keepalive ike-site1 10 3
>     ike local-id ike-site1 keyid site1
>     !
>     ipsec autokey-proposal ipsecprop esp-aes esp-sha
>     !
>     ipsec autokey-map ipsec-site1 ipv4 peer 10.1.0.1 ipsecprop
>     !
>     interface GigaEthernet0.0
>       ip address 10.101.0.1/24
>       no shutdown
>     !
>     interface GigaEthernet1.0
>       ip address 192.168.101.1/24
>       no shutdown
>     !
>     interface Tunnel0.0
>       tunnel mode ipsec
>       ip unnumbered GigaEthernet1.0
>       ipsec policy tunnel ipsec-site1 pre-fragment
>       no shutdown

### 2.31.7.6. 確認方法

IPsec接続中に以下のコマンドを実行することにより、NATトラバーサルで接続されていることを確認することができます。

> 項目 | 説明
> --- | ---
> show ike sa | IKE SAの情報を表示します。
> show ipsec sa | IPsec SAの情報を表示します。

- show ike sa

  - NAT-Traversal RFC3947（動作中のNATトラバーサルの種類）

  - NAT detected at remote side（自ルータがグローバルアドレス側と自動認識）

- show ipsec sa

  - UDP encapsulation Tunnel mode, 4-over-4, dynamic-map（UDPでカプセル化）

## 2.31.8. IPsecのネスト時の注意事項

IPsecトンネルのネスト時に、IPsecトンネルの中を通るIKEパケットは暗号化されます。

図 2.31.11 IPsecのネストの構成