# VPN / IPsec

IPsec（IP security）は、IPプロトコルファミリーに暗号化や認証などのセキュリティー機能を提供する一連のプロトコル群です。
Note

ファームウェアバージョン5.4.5-0.4までのAT-ARシリーズと5.4.5-1.1以降のAT-ARシリーズとの間ではIPsec接続ができません。AT-ARシリーズ同士でIPsec接続を行う場合はファームウェアのバージョンを揃えてください。

本製品は、IPsecトンネルインターフェースを通じて、次のIPsec関連機能をサポートしています。

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

Note

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

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

- L2TPv3トンネルインターフェース
- GREトンネルインターフェース
- マルチポイントGREトンネルインターフェース

トンネルインターフェース全般については「VPN」の「トンネルインターフェース」を、インターフェース全般については「インターフェース」の「一般設定」をご覧ください。
IPsecを使用するための具体的かつ全体的な設定については「設定例集」をご覧ください。
また、本製品では、証明書認証を使用したルーター間のIPsec VPN接続にも対応しています。
詳しくは、外部CAが発行した証明書を使用したルーター間のIPsec VPN接続をご覧ください。
Note

ルーター間のIPsec VPNで証明書認証を行う場合は、共通の外部CAが発行したサーバー証明書が必要です。

Note

AMFネットワーク構成において、証明書認証を使用して接続したAMFノード配下のAMFオートリカバリーはサポート対象外です。

## 基本設定

### IPsec over IPv4

IPv4ネットワーク上にIPsecトンネルインターフェースを作成するには、次の手順にしたがいます。

以下では、上記構成図のルーターAを例に、基本的な拠点間IPsec VPNを構築するための具体的な設定手順を示します。
なお、前提事項として、ルーターA・BはIPv4でインターネットに接続しているものとします。WAN側インターフェースのIPアドレスは固定であり、ルーター間でのIP通信もできているものとします。

1. ISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。addressパラメーターで指定するのは、IPsecの接続相手（対向装置）、すなわち、ルーターBのIPアドレスです。

       awplus(config)# crypto isakmp key ouR4ecret address 10.2.2.2

2. トンネルインターフェースtunnel0を作成します。

       awplus(config)# interface tunnel0

3. トンネリング方式としてipsec ipv4（IPsec over IPv4）を指定します。これには、tunnel mode ipsecコマンドを使います。

       awplus(config-if)# tunnel mode ipsec ipv4

4. トンネルインターフェースから送信するデリバリーパケットの始点・終点アドレス（自装置と対向装置のIPアドレス）を指定します。これには、tunnel source / tunnel destinationコマンドを使います。

       awplus(config-if)# tunnel source 10.1.1.1
       awplus(config-if)# tunnel destination 10.2.2.2

5. トンネルインターフェースに対し、IPsecによる保護を適用します。これにはtunnel protection ipsecコマンドを使います。

       awplus(config-if)# tunnel protection ipsec

6. トンネルインターフェースtunnel0にIPアドレスを設定して、同インターフェースでIPv4パケットのルーティングが行われるようにします。これには、ip addressコマンドを使います。

       awplus(config-if)# ip address 192.168.254.1/30

7. 対向拠点へのスタティック経路を登録します。これには、ip routeコマンドを使います。

       awplus(config-if)# exit
       awplus(config)# ip route 192.168.20.0/24 tunnel0

インターフェースへのIPアドレス設定については「IP」/「IPインターフェース」を、IPの経路設定については「IP」/「経路制御」、および、ダイナミックルーティングに関する各セクションをご覧ください。

### IPsec over IPv6

IPv6ネットワーク上にIPsecトンネルインターフェースを作成するには、次の手順にしたがいます。

以下では、上記構成図のルーターAを例に、基本的な拠点間IPsec VPNを構築するための具体的な設定手順を示します。
なお、前提事項として、ルーターA・BはIPv6でインターネットに接続しているものとします。WAN側インターフェースのIPv6アドレスは固定であり、ルーター間でのIPv6通信もできているものとします。

1. ISAKMPの事前共有鍵を設定します。これにはcrypto isakmp keyコマンドを使います。addressパラメーターで指定するのは、IPsecの接続相手（対向装置）、すなわち、ルーターBのIPv6アドレスです。

       awplus(config)# crypto isakmp key ouR4ecret address 2001:db8:2:2::2

2. トンネルインターフェースtunnel0を作成します。

       awplus(config)# interface tunnel0

3. トンネリング方式としてipsec ipv6（IPsec over IPv6）を指定します。これには、tunnel mode ipsecコマンドを使います。

       awplus(config-if)# tunnel mode ipsec ipv6

4. トンネルインターフェースから送信するデリバリーパケットの始点・終点アドレス（自装置と対向装置のIPv6アドレス）を指定します。これには、tunnel source / tunnel destinationコマンドを使います。

       awplus(config-if)# tunnel source 2001:db8:1:1::1
       awplus(config-if)# tunnel destination 2001:db8:2:2::2

5. トンネルインターフェースに対し、IPsecによる保護を適用します。これにはtunnel protection ipsecコマンドを使います。

       awplus(config-if)# tunnel protection ipsec

6. トンネルインターフェースtunnel0にIPv6のリンクローカルアドレスを設定して、同インターフェースでIPv6パケットのルーティングが行われるようにします。これには、ipv6 enableコマンドを使います。

       awplus(config-if)# ipv6 enable

7. 対向拠点へのスタティック経路を登録します。これには、ipv6 routeコマンドを使います。

       awplus(config-if)# exit
       awplus(config)# ipv6 route 2001:db8:10:20::/64 tunnel0

インターフェースへのIPv6アドレス設定については「IPv6」/「IPv6インターフェース」を、IPv6の経路設定については「IPv6」/「経路制御」、および、ダイナミックルーティングに関する各セクションをご覧ください。

### 外部CAが発行した証明書を使用したルーター間のIPsec VPN接続

外部CAが発行した証明書を使用し、ルーター間でIPsec VPN接続を行うには、次の手順にしたがいます。

以下では、上記構成図のルーターAを例に、基本的な拠点間IPsec VPNを構築するための具体的な設定手順を示します。
なお、前提事項として、ルーターA・BはIPv4でインターネットに接続しているものとします。WAN側インターフェースのIPアドレスは固定であり、ルーター間でのIP通信もできているものとします。
本構成では、ルーター間で証明書認証を使用するため、サーバー側のIPsec設定に加えて、下記の設定が必要になります。

- (a) トラストポイントの設定
- (b) 外部CAのルート証明書をインポート
- (c) サーバー証明書の署名要求（CSR）の生成
- (d) サーバー証明書の発行
- (e) サーバー証明書のインポートとトラストポイントへの保存

#### トラストポイントの設定

1. 外部CAのルート証明書、本製品の秘密鍵ペアとサーバー証明書を保存するためのトラストポイント「vpn_trust」を作成します。
   これには、crypto pki trustpoint、enrollmentコマンドを使います。

       awplus(config)# crypto pki trustpoint vpn_trust
       Created trustpoint "vpn_trust".
       awplus(ca-trustpoint)# enrollment terminal

2. サーバー証明書のサブジェクト名（subjectName）とサブジェクト代替名（altSubjectName）を指定します。
   これには、subject-nameコマンドとsubject-alt-nameコマンドを使います。
   サブジェクト名のCommon Name（CN）およびサブジェクト代替名は、トンネルインターフェースに設定する本製品のローカル名（tunnel local nameコマンドで指定する文字列）と一致している必要があります。
   Note

   サブジェクト名、サブジェクト代替名としてIPアドレスを指定したサーバー証明書はサポート対象外です。

       awplus(ca-trustpoint)# subject-name /CN=test1.example.com
       awplus(ca-trustpoint)# subject-alt-name test1.example.com
       awplus(ca-trustpoint)# end

#### 外部CAのルート証明書をインポート

1. 外部CAのルート証明書ファイルをテキストエディターで開き、`-----BEGIN CERTIFICATE-----` から `-----END CERTIFICATE-----` の行までをクリップボードにコピーします。
2. トラストポイント「vpn_trust」に外部CAのルート証明書をインポートし、同トラストポイントの使用準備を完了します。
   これにはcrypto pki authenticateコマンドを使います。
   コマンドを実行すると次のようなメッセージが表示されるので、コピーしておいたものをペーストし、「Enter」キーを押してください。

       awplus# crypto pki authenticate vpn_trust
       Paste the certificate PEM file into the terminal.
       Type "abort" to cancel.

3. 内容を確認し、「Accept this certificate?」に「y」で答えてください。

       awplus# crypto pki authenticate vpn_trust
       Paste the certificate PEM file into the terminal.
       Type "abort" to cancel.
       -----BEGIN CERTIFICATE-----
       XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       ...
       xaPuyjGcQ3kCjW32sO0InQxjLPCp/celKKRZbIwETAor
       -----END CERTIFICATE-----
       Complete ("END CERTIFICATE" detected).
       Subject     : /C=JP/O=EXAMPLE/CN=SampleRootCA
       Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
       Valid From  : Apr  7 05:32:30 2023 GMT
       Valid To    : Apr  4 05:32:30 2033 GMT
       Fingerprint : D51BB535 8CBCFE2C BDD6E56B 759BB5C9 4CF9DCBF
       This is a self-signed CA certificate.
       The certificate has been validated successfully.
       Accept this certificate? (y/n): y
       Successfully authenticated trustpoint "vpn_trust".

#### サーバー証明書の署名要求（CSR）の生成

1. 外部CA発行の証明書を利用するためのトラストポイント「vpn_trust」において、本製品の公開鍵ペア（秘密鍵と公開鍵）を生成し、サーバー証明書の署名要求（CSR）を生成します。
   これにはcrypto pki enrollコマンドを使います。
   コマンドを実行すると次のようにCSRの内容が出力されるので、 `-----BEGIN CERTIFICATE REQUEST-----` から `-----END CERTIFICATE REQUEST-----` の行までをクリップボードにコピーしてPC上のファイル（ここでは「example_csr.pem」とします）に保存してください。

       awplus# crypto pki enroll vpn_trust
       Using private key "server-default"...
       Cut and paste this request to the certificate authority:
       -----------------------------------------------------------------
       -----BEGIN CERTIFICATE REQUEST-----
       XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       ...
       sQCD7gbOkrMSEpDCSdB85P5on2Gs+CwpHsYlhA==
       -----END CERTIFICATE REQUEST-----
       -----------------------------------------------------------------

#### サーバー証明書の発行

1. 前の手順でPC上に保存したCSRファイル（本例ではexample_csr.pem）を外部CAに渡し、サーバー証明書の発行を依頼してください。
   ここでは、外部CAが発行した本製品のサーバー証明書を example_cert.pem という名前のファイルとして入手したものと仮定します。

#### サーバー証明書のインポートとトラストポイントへの保存

1. 本製品のサーバー証明書をテキストエディターで開き、`-----BEGIN CERTIFICATE-----` から `-----END CERTIFICATE-----` の行までをクリップボードにコピーします。
2. サーバー証明書をトラストポイントに保存します。
   これにはcrypto pki import pemコマンドを使います。
   コマンドを実行すると次のようなメッセージが表示されるので、コピーしておいたものをペーストし、「Enter」キーを押してください。

       awplus# crypto pki import vpn_trust pem terminal
       Paste the certificate PEM file into the terminal.
       Type "abort" to cancel.

3. 内容を確認し、「Accept this certificate?」に「y」で答えてください。

       awplus# crypto pki import vpn_trust pem terminal
       Paste the certificate PEM file into the terminal.
       Type "abort" to cancel.
       -----BEGIN CERTIFICATE-----
       XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       ...
       WF/C9/ijoy0UIjDFJms6uBo5gw==
       -----END CERTIFICATE-----

       Complete ("END CERTIFICATE" detected).
       Subject     : /O=AlliedWare Plus/CN=test1.example.com
       Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
       Valid From  : Apr 19 07:41:24 2023 GMT
       Valid To    : Apr 18 07:41:24 2024 GMT
       Fingerprint : FAB1FC57 6CD0DC6A 7198C3F2 67E37C0F 6FAE8AFB
       This is not a valid CA certificate. Attempting to import as a server certificate.
       The certificate has been validated successfully.
       Accept this certificate? (y/n): y
       The certificate was successfully imported.

#### IPsec VPNの設定

1. ISAKMPの通信方式を規定するISAKMPプロファイルを作成します。
   ここでは、crypto isakmp profileコマンドでISAKMPプロファイルを作成し、以下の情報を設定します。
   - 自装置の認証方式（local authentication）
   - 対向装置の認証方式（remote authentication）
   - 証明書認証を行う場合に使用するトラストポイント（pki trustpoint）
   - アルゴリズム（transform）

       awplus(config)# crypto isakmp profile cert_vpn
       awplus(config-isakmp-profile)# local authentication certificate
       awplus(config-isakmp-profile)# remote authentication certificate
       awplus(config-isakmp-profile)# pki trustpoint vpn_trust
       awplus(config-isakmp-profile)# transform 1 integrity SHA256 encryption AES256 group 14
       awplus(config-isakmp-profile)# exit

2. 対向ルーターとの間で使用するISAKMPプロファイルを指定します。
   これにはcrypto isakmp peerコマンドを使います。

       awplus(config)# crypto isakmp peer hostname test2.example.com profile cert_vpn

3. トンネルインターフェースtunnel0を作成します。
   これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。
   - トンネリング方式（tunnel mode ipsec）
   - トンネルインターフェースから送信するデリバリーパケットの始点（自装置）アドレス（tunnel source）
   - トンネルインターフェースから送信するデリバリーパケットの終点（対向装置）アドレス（tunnel destination）
   - 自装置ID（ローカル名）（tunnel local name）
   - 対向装置ID（リモート名）（tunnel remote name）
   - トンネルインターフェースに対するIPsec保護の適用とIPsecプロファイルの指定（tunnel protection ipsec）
   - トンネルインターフェースのIPアドレス（ip address）

       awplus(config)# interface tunnel0
       awplus(config-if)# tunnel mode ipsec ipv4
       awplus(config-if)# tunnel source 10.1.1.1
       awplus(config-if)# tunnel destination 10.2.2.2
       awplus(config-if)# tunnel local name test1.example.com
       awplus(config-if)# tunnel remote name test2.example.com
       awplus(config-if)# tunnel protection ipsec
       awplus(config-if)# ip address 192.168.254.1/30
       awplus(config-if)# exit

4. 対向拠点へのスタティック経路を登録します。これには、ip routeコマンドを使います。

       awplus(config)# ip route 192.168.20.0/24 tunnel0

## プロファイル

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

暗号化アルゴリズム3DESおよびこれを利用したデフォルトISAKMPプロファイルのトランスフォーム9～12はサポート対象外です。

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

暗号化アルゴリズム3DESおよびこれを利用したデフォルトIPsecプロファイルのプロポーザル9～10はサポート対象外です。

Note

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

Note

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

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

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

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

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

- 1つのISAKMPプロファイルに対して複数設定できるパラメーター
  下記3つのパラメーターを一組の「トランスフォーム」（transform）として、複数の組み合わせを優先順位とともに指定できます。
  - 暗号化アルゴリズム
  - 認証アルゴリズム
  - Diffie-Hellmanグループ
- 1つのISAKMPプロファイルに対して1つだけ設定できるパラメーター
  - SA有効期間（lifetime）
  - DPDキープアライブ間隔（dpd-interval）
  - ローカル認証方式（local authentication）※マルチポイントGREトンネル用
  - リモート認証方式（remote authentication）※マルチポイントGREトンネル用
  - サーバー証明書（pki trustpoint）※マルチポイントIPsecトンネル用

##### 適用

カスタム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要求パケットに応答することで自身が動作していることを証明します。

#### IKEv2

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

## 設定と状態の確認

ISAKMP/IPsec SAの情報を確認するには、show isakmp sa / show ipsec saコマンドを使います。

    awplus# show isakmp sa
    awplus# show ipsec sa

ISAKMP/IPsecの統計情報を確認するには、show isakmp counters / show ipsec countersコマンドを使います。

    awplus# show isakmp counters
    awplus# show ipsec counters

IPsecの動作状況を確認するには、show ipsec peer / show ipsec policyコマンドを使います。

    awplus# show ipsec peer
    awplus# show ipsec policy

ISAKMPの事前共有鍵を確認するには、show isakmp keyコマンドを使います。

    awplus# show isakmp key

ISAKMP/IPsecプロファイル（動作パラメーター）の内容を確認するには、show isakmp profile / show ipsec profileコマンドを使います。

    awplus# show isakmp profile
    awplus# show ipsec profile

各対向装置について、使用するISAKMPプロファイルと事前共有鍵の設定有無を確認するには、show isakmp peerコマンドを使います。

    awplus# show isakmp peer