# VPN / IPsec

IPsec（IP security）は、IPプロトコルファミリーに暗号化や認証などのセキュリティー機能を提供する一連のプロトコル群です。
本製品はパブリッククラウドサービス上で使用することが可能ですが、その場合にパブリッククラウドサービスが提供するVPNゲートウェイを介さず、ユーザーネットワークと本製品を直接VPN接続するための機能として、VPN機能（IPsecとL2TPv3）をサポートしています。また、これらの機能は本製品を仮想化環境（vSphere/XenServer/Hyper-V）上で直接実行する場合にも使用可能です。
これらは、弊社 AlliedWare Plus ルーター製品（AR4050Sなど）に実装されているのと同等の機能を提供します。
本製品は、IPsecトンネルインターフェースを通じて、次のIPsec関連機能をサポートしています。

- サポートするIPプロトコルファミリー
  - デリバリー（外側）プロトコル：IPv4/IPv6
  - ペイロード（内側）プロトコル：IPv4/IPv6
  （IPv4 over IPv4、IPv4 over IPv6、IPv6 over IPv4、IPv6 over IPv6のすべての組み合わせをサポート）
- 鍵交換と通信路のネゴシエーション機能
  - IKEv1（ISAKMP）、IKEv2
    - IKEv1フェーズ1：Mainモード、Aggressiveモード
    - IKEv2：INIT、AUTH、CREATE_CHILD_SA、INFORMATIONAL交換
    - 暗号化アルゴリズム：AES256、AES192、AES128、3DES
    - 認証アルゴリズム：SHA512、SHA256、SHA1
    - Diffie-Hellmanグループ：18、16、15、14、5、2
    - 認証方式：事前共有鍵、証明書
- 通信を保護するための機能
  - IPsecプロトコル：ESP（暗号化・認証）
  - IPsec動作モード
    - トンネルモード（IPsecトンネルインターフェース）
  - 暗号化アルゴリズム：AES256、AES192、AES128、3DES
  - 認証アルゴリズム：SHA512、SHA256、SHA1
- その他の機能
  - DPD（Dead Peer Detection）
  - NAT-T（NAT-Traversal）

Note

暗号化アルゴリズム、認証アルゴリズムなど各種パラメーターの組み合わせや優先度については、「プロファイル」をご覧ください。本製品では、一般的なパラメーターの組み合わせが「デフォルトプロファイル」としてあらかじめ定義されているため、本製品同士の接続では複雑な設定は不要ですが、他機器と接続する場合などには必要に応じて「カスタムプロファイル」を定義して使用することも可能です。

Note

IPsecトンネルインターフェースでは、デリバリー（外側）パケットとペイロード（内側）パケットのプロトコルが一致している必要があります。すなわち、IPsec over IPv4トンネルインターフェース（tunnel mode ipsec ipv4）にはIPv4アドレス（ip address）しか設定できず、IPsec over IPv6トンネルインターフェース（tunnel mode ipsec ipv6）にはIPv6アドレス（ipv6 address）しか設定できません。

IPsec機能は、IPsecトンネルインターフェースだけでなく、L2TPv3トンネルインターフェースでも利用できますが、本解説編ではIPsecトンネルインターフェースに特化した説明を行います。IPsecを利用可能な他のトンネルインターフェースについては下記の各解説編をご参照ください。

- L2TPv3トンネルインターフェース

トンネルインターフェース全般については「VPN」の「トンネルインターフェース」を、インターフェース全般については「インターフェース」の「一般設定」をご覧ください。
パブリッククラウド環境におけるVPN機能の具体的な設定方法については、「インストールガイド」/「アマゾン ウェブ サービス（AWS）編」、「インストールガイド」/「Microsoft Azure編」、「AMF」/「応用」をご覧ください。

## プロファイル

IPsec機能で使用する暗号化アルゴリズム、認証アルゴリズムなど各種パラメーターの組み合わせは、「プロファイル」と呼ぶ設定要素で定義します。プロファイルにはISAKMPプロファイルとIPsecプロファイルの2種類があり、それぞれISAKMP、IPsecの通信方式を規定します。
本製品では、一般的なパラメーターの組み合わせが「デフォルトプロファイル」としてあらかじめ定義されているため、本製品同士の接続では複雑な設定は不要ですが、他機器と接続する場合などには必要に応じて「カスタムプロファイル」を定義して使用することも可能です。
以下、デフォルトプロファイルの内容と、カスタムプロファイルの定義・使用方法について説明します。

### デフォルトプロファイル

本製品では、ISAKMP、IPsecそれぞれの通信で使用する一般的なパラメーターの組み合わせが、優先順位とともに「デフォルトプロファイル」としてあらかじめ定義されています。後述するカスタムプロファイルの設定を行っていない場合は、自動的にデフォルトプロファイルが使用されます。
以下にその内容を示します。

#### デフォルトISAKMPプロファイル

デフォルトISAKMPプロファイルの内容は下記のとおりです。
ISAKMPパラメーターの組み合わせは、優先度の高いほうから順にトランスフォーム 1 ～ 12の12通りが定義されています。

トランスフォーム | 1 | 2 | 3 | 4 | 5 | 6
暗号化アルゴリズム | AES256 | AES256 | AES256 | AES256 | AES128 | AES128
認証アルゴリズム | SHA256 | SHA256 | SHA1 | SHA1 | SHA256 | SHA256
Diffie-Hellmanグループ | 14 | 16 | 14 | 16 | 14 | 16
IKEバージョン | IKEv2
認証方式 | 事前共有鍵
SA有効期間 | 24時間
DPDキープアライブ間隔 | 30秒
トランスフォーム | 7 | 8 | 9 | 10 | 11 | 12
暗号化アルゴリズム | AES128 | AES128 | 3DES | 3DES | 3DES | 3DES
認証アルゴリズム | SHA1 | SHA1 | SHA256 | SHA256 | SHA1 | SHA1
Diffie-Hellmanグループ | 14 | 16 | 14 | 16 | 14 | 16
IKEバージョン | IKEv2
認証方式 | 事前共有鍵
SA有効期間 | 24時間
DPDキープアライブ間隔 | 30秒

Note

IKEバージョン、認証方式、SA有効期間、DPDキープアライブ間隔は、同一ISAKMPプロファイル内で共通です。

#### デフォルトIPsecプロファイル

デフォルトIPsecプロファイルの内容は下記のとおりです。
IPsecパラメーターの組み合わせは、優先度の高いほうから順にプロポーザル 1 ～ 10の10通りが定義されています。

プロポーザル | 1 | 2 | 3 | 4 | 5 | 6
IPsecプロトコル | ESP | ESP | ESP | ESP | ESP | ESP
暗号化アルゴリズム（CBC） | AES256 | AES256 | AES256 | AES256 | AES128 | AES128
認証アルゴリズム（HMAC） | SHA256 | GCM16 | GCM8 | SHA1 | SHA256 | GCM16
PFS | 使用しない
SA有効期間 | 8時間
プロポーザル | 7 | 8 | 9 | 10 |  |
IPsecプロトコル | ESP | ESP | ESP | ESP |  |
暗号化アルゴリズム（CBC） | AES128 | AES128 | 3DES | 3DES |  |
認証アルゴリズム（HMAC） | GCM8 | SHA1 | SHA256 | SHA1 |  |
PFS | 使用しない
SA有効期間 | 8時間

Note

PFS、SA有効期間は、同一IPsecプロファイル内で共通です。

Note

IPsec動作モード（トンネルモード、トランスポートモード）は、IPsecトンネルインターフェースではトンネルモードとなります。

### カスタムプロファイル

デフォルトプロファイルでは一般的なパラメーターの組み合わせを網羅していますが、対向機器のサポートしているパラメーターが異なり、デフォルトプロファイルで接続できない場合は、カスタムプロファイルを定義することにより対応が可能です。

#### カスタムISAKMPプロファイル

カスタムISAKMPプロファイルは、crypto isakmp profileコマンドで命名・作成し、同コマンド実行後の移行先であるISAKMPプロファイルモードで具体的な内容を定義します。
カスタムISAKMPプロファイルでは、本製品がサポートしている範囲内で、下記パラメーターの組み合わせを自由に定義できます。
ISAKMPプロファイルの構造は、「デフォルトISAKMPプロファイル」の表をご覧いただくとイメージしやすいでしょう。

- 1つのISAKMPプロファイルに対して複数設定できるパラメーター
  下記3つのパラメーターを一組の「トランスフォーム」（transform）として、複数の組み合わせを優先順位とともに指定できます。
  - 暗号化アルゴリズム
  - 認証アルゴリズム
  - Diffie-Hellmanグループ
- 1つのISAKMPプロファイルに対して1つだけ設定できるパラメーター
  - IKEバージョンとIKE交換モード（モードはIKEv1時のみ）（version）
  - SA有効期間（lifetime）
  - DPDキープアライブ間隔（dpd-interval）
  - DPDタイムアウト（IKEv1時のみ）（dpd-timeout）

Note

認証方式は事前共有鍵のみサポートのため、カスタムISAKMPプロファイルにおける設定項目はありません。

##### 作成

次に、カスタムISAKMPプロファイルの具体的な定義例を示します。
IKEv1 Mainモード、SA有効期間1時間、暗号化/認証アルゴリズム/Diffie-Hellmanグループの組み合わせは「AES128/SHA1/Group2」の1つだけ。

    awplus(config)# crypto isakmp profile legacy-main
    awplus(config-isakmp-profile)# version 1 mode main
    awplus(config-isakmp-profile)# lifetime 3600
    awplus(config-isakmp-profile)# transform 1 integrity sha1 encryption aes128 group 2

IKEv1 Aggressiveモード、SA有効期間1時間、暗号化/認証アルゴリズム/Diffie-Hellmanグループの組み合わせは「AES128/SHA1/Group2」の1つだけ。

    awplus(config)# crypto isakmp profile legacy-aggr
    awplus(config-isakmp-profile)# version 1 mode aggressive
    awplus(config-isakmp-profile)# lifetime 3600
    awplus(config-isakmp-profile)# transform 1 integrity sha1 encryption aes128 group 2

##### 適用

カスタムISAKMPプロファイルは、crypto isakmp peerコマンドを使って、対向装置またはインターフェースごとに適用します。
対向装置10.2.2.2との間でカスタムISAKMPプロファイルlegacyを使用するには、次のようにします。

    awplus(config)# crypto isakmp peer address 10.2.2.2 profile legacy

IPアドレスが不定な対向装置との間でカスタムISAKMPプロファイルを使用したいときは、次のようにdynamicキーワードを使います。この場合、IPアドレスが不定なすべての対向装置とのISAKMP通信において、指定したカスタムISAKMPプロファイルが使われます。

    awplus(config)# crypto isakmp peer dynamic profile legacy-aggr

特定のトンネルインターフェースで使用するカスタムISAKMPプロファイルを固定的に設定したいときは、次のようにpolicyパラメーターにトンネルインターフェース名を指定します。この場合、該当トンネルインターフェースを使用するすべてのISAKMP通信において、指定したカスタムISAKMPプロファイルが使われます。

    awplus(config)# crypto isakmp peer policy tunnel0 profile myprof

crypto isakmp peerコマンドでカスタムISAKMPプロファイルを指定していない対向装置との間ではデフォルトISAKMPプロファイルが使われます。

#### カスタムIPsecプロファイル

カスタムIPsecプロファイルは、crypto ipsec profileコマンドで命名・作成し、同コマンド実行後の移行先であるIPsecプロファイルモードで具体的な内容を定義します。
カスタムIPsecプロファイルでは、本製品がサポートしている範囲内で、下記パラメーターの組み合わせを自由に定義できます。
IPsecプロファイルの構造は、「デフォルトIPsecプロファイル」の表をご覧いただくとイメージしやすいでしょう。

- 1つのIPsecプロファイルに対して複数設定できるパラメーター
  下記3つのパラメーターを一組の「トランスフォーム」（transform）として、複数の組み合わせを優先順位とともに指定できます。
  - IPsecプロトコル
  - 暗号化アルゴリズム
  - 認証アルゴリズム
- 1つのIPsecプロファイルに対して1つだけ設定できるパラメーター
  - SA有効期間（lifetime）
  - PFSの有効・無効、および有効時に使用するDiffie-Hellmanグループ（pfs）

Note

IPsecプロトコルはESPのみサポートのため、カスタムIPsecプロファイルの設定ではつねに「protocol esp」を指定します。

##### 作成

次に、カスタムIPsecプロファイルの具体的な定義例を示します。
SA有効期間1時間、暗号化/認証アルゴリズムの組み合わせは「AES128/SHA1」の1つだけ。

    awplus(config)# crypto ipsec profile legacy
    awplus(config-ipsec-profile)# lifetime seconds 3600
    awplus(config-ipsec-profile)# transform 1 protocol esp integrity sha1 encryption aes128

SA有効期間1時間、暗号化/認証アルゴリズムの組み合わせは優先度の高い順に「AES256/SHA256」、「AES128/SHA256」の2つ。

    awplus(config)# crypto ipsec profile shortlife
    awplus(config-ipsec-profile)# lifetime seconds 3600
    awplus(config-ipsec-profile)# transform 1 protocol esp integrity sha256 encryption aes256
    awplus(config-ipsec-profile)# transform 2 protocol esp integrity sha256 encryption aes128

##### 適用

カスタムIPsecプロファイルは、tunnel protection ipsecコマンドのprofileパラメーターを使って、トンネルインターフェースごとに適用します。
トンネルインターフェースtunnel0にカスタムIPsecプロファイルlegacyを適用するには、次のようにします。

    awplus(config)# interface tunnel0
    ...
    awplus(config-if)# tunnel protection ipsec profile legacy

tunnel protection ipsecコマンドのprofileパラメーターでカスタムIPsecプロファイルを指定していない場合、該当トンネルインターフェースではデフォルトIPsecプロファイルが使われます。

## その他

### IPsec DPD

IPsec DPDは、IPsecの対向側の接続断を検知する機能です。
本製品では、DPD要求パケットを定期的に対向側に送信するキープアライブ方式を使用しています。
対向側は、DPD要求パケットに応答することで自身が動作していることを証明します。
IKEv1とIKEv2ではSAを削除するまでの動作が次のように異なります。

#### IKEv1

IKEv1の場合、最後に成功した（応答があった）DPD要求から dpd-timeout秒後にSAが削除されます。
初期設定（dpd-interval 30、dpd-timeout 150）の場合のシーケンスを次に示します。

#### IKEv2

IKEv2の場合、最後に成功した（応答があった）DPD要求から dpd-interval + 166 秒後にSAが削除されます。
DPD要求に失敗した場合（応答がなかった場合）、4秒後にIKE再送要求（IKE retransmit request）が動作し、5回リトライします。
リトライするたびに送信間隔が徐々に大きくなります。
初期設定（dpd-interval 30）の場合のシーケンスを次に示します。