# crypto isakmp key

モード
  グローバルコンフィグモード
カテゴリー
  VPN / IPsec

## 構文

コマンド構文

`(config)# [no] crypto isakmp key [8] WORD IDENTIFIER [type {eap|psk}]`

## コマンド説明

ISAKMPの認証パスワード（事前共有鍵またはEAPパスワード）を追加する。
no形式で実行した場合は指定した認証パスワードを削除する。
IPsecによる保護（tunnel protection ipsec）が有効なトンネルインターフェースでは、通信開始前にISAKMPネゴシエーションを行うが、その際に事前共有鍵を使用して対向装置を認証する。
（さらに、マルチポイントVPNのハブ＆スポーク構成では、ハブ（センター）がスポーク（拠点）をRADIUS（EAP）で認証することも可能）
本コマンドでは、事前共有鍵を登録するときに鍵の値（`WORD`）だけでなく、鍵の識別子（`IDENTIFIER`）も登録する。
この識別子は、実際に使用する事前共有鍵を選択する際のキーとなる。
各トンネルインターフェースでISAKMPネゴシエーションを行うときにどの事前共有鍵を使用するかは、次の流れで決定される。

1. 該当トンネルインターフェースの設定内で下記の < > で囲まれているパラメーター（<remote-name>, <ipv4-address>など。これ以降 <xxxx> と表記）が指定されているかどうかを上から順にチェックする。
   ※レスポンダーの場合は設定だけでなくイニシエーターから受信した <IDi> と <IDr> もチェック対象とする。
   - tunnel remote name <remote-name>
   - tunnel destination <ipv4-address>|<ipv6-address>（<remote-name>が指定されていない場合）
   - （レスポンダー時）イニシエーターから受信した<IDi>（イニシエーターID＝リモートID）
   - tunnel local name <local-name>
   - tunnel source <ipv4-address>|<ipv6-address>（<local-name>が指定されていない場合）
   - （レスポンダー時）イニシエーターから受信した<IDr>（レスポンダーID＝ローカルID）
   - interface <ifname>（トンネルインターフェース名）
2. 手順1で <xxxx> が見つかった場合はそれを識別子（`IDENTIFIER`）とするcrypto isakmp keyコマンドがあるかどうかを調べる。
   - 合致するcrypto isakmp keyが存在する場合は、そこで指定された鍵（`WORD`）を使用する。
   - 合致するcrypto isakmp keyが見つからなかった場合は手順1に戻って残りの項目をチェックする。
3. 手順1～2で合致するcrypto isakmp keyが見つからなかった場合はISAKMPネゴシエーションに失敗する。

なお、通常のポイントツーポイント型トンネルインターフェースでは、おおむね次の方針で識別子を指定する。

- トンネルインターフェースでtunnel remote nameコマンドを設定している場合は、同コマンドで指定したのと同じ文字列をhostnameパラメーターで指定する。
- トンネルインターフェースでtunnel remote nameコマンドを設定していない場合は、tunnel destinationコマンドで指定したIPv4またはIPv6アドレスをaddressパラメーターで指定する。

一方、ポイントツーマルチポイント型トンネルインターフェース（マルチポイントGREトンネルインターフェース）では、おおむね次の方針で識別子と鍵を登録する。

- 対向装置ごとに異なる事前共有鍵を使用する場合は、各装置のリモート名（対向装置側で設定したtunnel local name）を識別子として複数の事前共有鍵を登録する。
- すべての対向装置に対して同じ事前共有鍵を使用する場合は、ローカル名（自装置側で設定したtunnel local name）を識別子とする事前共有鍵を1つだけ指定する。

また、マルチポイントVPNの拠点（スポーク）側において、センター（ハブ）側装置からRADIUS（EAP）認証を受ける場合（local authentication eap）、スポーク側では事前共有鍵に加え、自身のEAPパスワード（type eap）も登録する必要がある。

- EAPパスワードは、センター（ハブ）側装置のリモート名（センター側装置で設定したtunnel local name）を識別子とし、`type eap` オプションを付加して登録する。

## パラメーター

`8`
  後続のWORDがすでに暗号化されたパスワードであることを示す。これは通常コンフィグファイル中で使用されるものなので、事前共有鍵を手入力するときには使用しないこと
`WORD`
  パスワード。6～79文字。使用可能な文字は半角英数字と記号（! # $ % & ' ( ) * + , - . / \:\ ; < = > @ [ \ ] ^ _ ` { | } ~）。大文字小文字を区別する
`IDENTIFIER`
  鍵選択用の識別子。次のいずれかの指定が可能。
  `hostname HOSTNAME`
    ホスト名またはユーザー付きホスト名。1～63文字。使用可能な文字は半角英数字と記号（! # $ % & ' ( ) * + , - . \:\ ; < = > @ [ \ ] ^ _ ` { | } ~）。大文字小文字は区別しない
  `address A.B.C.D`
    IPv4アドレス
  `address X:X::X:X`
    IPv6アドレス
  `policy IFNAME`
    トンネルインターフェース名。該当トンネルインターフェースで使用するパスワードを固定設定したい場合に指定する
`type {eap|psk}`
  認証パスワードの形式。eap（EAPパスワード）、psk（事前共有鍵）から選択する。省略時はpsk

## 使用例

対向装置10.2.2.2との間で使用するISAKMP事前共有鍵（パスワード）を設定する。

    awplus(config)# crypto isakmp key 4Ir0ko6 address 10.2.2.2

対向装置「mypeer@example.com」との間で使用するISAKMP事前共有鍵（パスワード）を設定する。

    awplus(config)# crypto isakmp key joGelINk0 hostname mypeer@example.com

対向装置「mypeer@example.com」との間で使用するISAKMP事前共有鍵（パスワード）を削除する。

    awplus(config)# no crypto isakmp key joGelINk0 hostname mypeer@example.com

## 注意・補足事項

パスワードは、ホスト名またはIPv4/IPv6アドレスと関連付けて暗号化しコンフィグに保存されるため、ホスト名、IPv4/IPv6アドレスを変更したい場合は、パスワードを平文にした上で再度設定すること。コンフィグに保存されている暗号化パスワードを使用してホスト名またはIPv4/IPv6アドレスを変更した設定を入力した場合、パスワードが変更されることにより対向機器のパスワードと一致せずIPsecが確立できなくなる。

## コマンドツリー

## 関連コマンド