CiscoルータやCisco ASAなどでIPsec VPNを構築した際に、「設定したのにVPNが繋がらない」「トンネルがUPしない」「片側だけ通信できない」といったトラブルに遭遇することは珍しくありません。
IPsecは複数のプロトコルやネゴシエーション(IKE)が関係しているため、設定ミスやパラメータの不一致があると簡単に接続が失敗します。現場でも「設定は合っているはずなのに繋がらない」という状況はよく発生します。
この記事では、CiscoでIPsec VPNが繋がらないときの原因、確認方法、実務でよく使うshowコマンド、そして具体的な対処法を現場目線で解説します。
VPNトラブルの切り分けに悩んでいる方は、この記事の手順を順番に確認していくことで原因を特定しやすくなります。
IPsec VPNの仕組み(まずは全体の流れを理解する)
IPsec VPNは、2つのネットワーク間で暗号化された通信トンネルを作る仕組みです。CiscoのIPsec VPNでは、主に以下の2段階のネゴシエーションが行われます。
| フェーズ | 内容 |
|---|---|
| IKE Phase1 | VPN機器同士の認証と安全な通信チャネルの確立 |
| IKE Phase2 | 実際にIPsecトンネルを作成しデータ通信を暗号化 |
つまり、VPN接続が成功するには次の順序が必要です。
- IKE Phase1成功
- IKE Phase2成功
- IPsecトンネル確立
- 暗号化通信開始
そのため、VPNが繋がらない場合は「どのフェーズで止まっているか」を確認することが非常に重要です。
CiscoでIPsecが繋がらないときの典型的な原因
IPsec VPNトラブルの多くは、以下のような設定不一致が原因です。
1. Pre-shared Keyの不一致
最も多い原因の一つが、Pre-shared Key(事前共有鍵)の不一致です。
両拠点で設定したキーが1文字でも違うと、IKE Phase1が失敗します。
現場でも「設定コピペしたつもりがスペースが入っていた」というケースは意外とあります。
2. IKEポリシーの不一致
IKE Phase1では、暗号方式などのパラメータが一致する必要があります。
| 設定項目 | 例 |
|---|---|
| Encryption | AES256 |
| Hash | SHA256 |
| Authentication | pre-share |
| DH Group | group14 |
これらのパラメータが一致しない場合、IKE Phase1が確立されません。
3. ACL(暗号化対象ネットワーク)の不一致
IPsecでは、どの通信をVPNトンネルに通すかをACLで指定します。
例えば次のようなケースです。
拠点A
10.1.1.0/24 → 10.2.2.0/24
拠点B
10.2.2.0/24 → 10.1.2.0/24
このようにネットワークが一致していない場合、Phase2が確立されません。
4. NATの影響
IPsec通信はNATと相性が悪いため、NAT除外設定が必要になる場合があります。
特にCiscoルータでは、NAT設定の影響でトンネルが確立しないケースがよくあります。
5. ルーティング設定のミス
VPNトンネルが確立しても、正しいルートがなければ通信できません。
例えば次のようなケースです。
ip route 10.2.2.0 255.255.255.0 192.0.2.1
ルーティングが誤っていると、通信がトンネルに入らないためVPNが動作しません。
CiscoでIPsecの状態を確認するshowコマンド
IPsecトラブルの切り分けでは、Ciscoのshowコマンドを確認することが非常に重要です。
IKE Phase1の確認
show crypto isakmp sa
| 状態 | 意味 |
|---|---|
| QM_IDLE | 正常(Phase1成功) |
| MM_NO_STATE | ネゴシエーション失敗 |
| MM_KEY_EXCH | 鍵交換中 |
QM_IDLEになっていればPhase1は成功しています。
IPsec Phase2の確認
show crypto ipsec sa
確認するポイントは次の通りです。
- encaps(暗号化パケット数)
- decaps(復号パケット数)
この値が増えていれば、VPN通信が正常に流れています。
VPNトラブルを調査する実務手順
IPsecトラブルの調査は、次の順序で確認すると効率的です。
① Phase1確認
show crypto isakmp sa
ここで状態が確立していなければ、認証やIKE設定を疑います。
② Phase2確認
show crypto ipsec sa
Phase1が成功していてPhase2が失敗している場合、ACLやtransform-setの不一致が疑われます。
③ パケットカウンタ確認
encapsだけ増えてdecapsが増えない場合、相手側の設定ミスが考えられます。
④ debug確認
原因が特定できない場合はdebugを使います。
debug crypto isakmp
debug crypto ipsec
ただしdebugはCPU負荷が高くなるため、本番環境では注意が必要です。
IPsec VPNが繋がらないときの具体的な対処法
実務では、以下のポイントを順番に確認すると解決するケースが多いです。
1. Pre-shared Key確認
両拠点のキーが完全一致しているか確認します。
2. IKEポリシー確認
以下のパラメータを両側で一致させます。
- Encryption
- Hash
- DH Group
- Authentication
3. ACL確認
暗号化対象ネットワークが正しく設定されているか確認します。
4. NAT除外設定
IPsecトラフィックはNATしないよう設定します。
5. ルーティング確認
トンネル先ネットワークへのルートが正しく設定されているか確認します。
現場でよくあるIPsecトラブル
実務では次のようなケースが意外と多くあります。
- ACLのネットワーク逆設定
- 片側だけNAT設定あり
- IKEバージョン違い
- FirewallでUDP500/4500ブロック
特にACLの逆設定はよくあるミスです。
例えば、拠点Aでは次の設定。
permit ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255
拠点Bでは逆方向で設定する必要があります。
permit ip 10.2.2.0 0.0.0.255 10.1.1.0 0.0.0.255
まとめ
CiscoでIPsec VPNが繋がらない場合、多くは設定不一致が原因です。
特に次のポイントを確認することが重要です。
- Pre-shared Key一致
- IKEポリシー一致
- ACL一致
- NAT除外設定
- ルーティング
また、トラブル調査では次のコマンドが非常に役立ちます。
show crypto isakmp sa
show crypto ipsec sa
IPsecトラブルは最初は難しく感じますが、「Phase1 → Phase2 → 通信」の順番で確認していけば原因を絞り込むことができます。
現場でもVPNトラブルは頻繁に発生するため、今回紹介した確認方法を覚えておくと障害対応がかなりスムーズになります。
