CiscoルータでIPsec VPNが貼れない時の対処法

Ciscoルータを使用してIPsec VPNを構築する際、VPNトンネルが確立できない、トラフィックが流れないといった問題に直面することがあります。
この記事では、「Cisco ルータ 設定」におけるIPsecの基本構成と、トラブル発生時のチェックポイント、FortiGate VPNとの連携時の注意点、そしてshowコマンド・debugコマンドを使ったトラブルシューティングの具体的手順までを解説します。

図1:CiscoルータとFortiGateのVPN構成例

よくあるIPsec VPN接続失敗の原因

IPsecが貼れないとき、以下のような原因が考えられます:

  • ISAKMP/IKE(フェーズ1)の設定不一致
  • トランスフォームセット(フェーズ2)の不一致
  • 暗号方式やハッシュアルゴリズムの非対応
  • アクセスリスト(ACL)の設定ミス
  • VPN対象のトラフィックがマッチしていない
  • NATトラバーサルが無効
  • FortiGateとの仕様不一致

1. ISAKMP(IKE Phase1)の設定確認

IKEフェーズ1はVPNトンネルの土台です。Ciscoルータで現在の設定を確認するには:

show crypto isakmp policy

以下の項目がFortiGateや他のVPN装置と一致している必要があります:

  • encryption(例:aes)
  • hash(例:sha)
  • authentication(例:pre-share)
  • group(DHグループ、例:group2)
  • lifetime(秒数)

2. トランスフォームセットの確認(IKE Phase2)

IKEフェーズ2では、IPsecトンネルで使用する暗号・認証方式を定義します。

crypto ipsec transform-set MYSET esp-aes esp-sha-hmac

FortiGateと接続する場合、双方でトランスフォームセットの内容が一致している必要があります。

図2:暗号・認証方式の互換性

3. アクセスリストとトラフィックのマッチング

トンネルに通す通信はアクセスリスト(ACL)で定義します。

access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

crypto map VPNMAP 10 ipsec-isakmp 
 set peer 203.0.113.1
 set transform-set MYSET
 match address 100

VPN対象のトラフィックがACLに一致していなければ、IPsec SAは確立されません。

4. NATトラバーサル設定の確認

NAT環境を通る通信では、nat-traversal の有効化が必要です。

crypto isakmp nat-traversal 20

未設定だと、ISAKMPパケットがブロックされてトンネルが貼れません。

5. FortiGateとの連携時の注意点

FortiGateとのVPN接続では、以下の項目に注意してください:

  • IKEバージョン(v1/v2)
  • ルートベースVPN / ポリシーベースVPNの違い
  • PFS(Perfect Forward Secrecy)の有無
  • 事前共有鍵(Pre-Shared Key)の一致

6. showコマンドとdebugコマンドの活用

代表的なshowコマンドと確認ポイント

  • show crypto isakmp sa
    → IKEフェーズ1の状態確認。
    • MM_ACTIVE:成功
    • IDLEまたはNO_STATE:失敗
  • show crypto ipsec sa
    → フェーズ2のSA確認。
    #pkts encaps / decaps が増えていれば通信中。
  • show access-lists
    → VPNトラフィックにACLがマッチしているかを確認。
    hitcnt が増加しているかをチェック。
  • show crypto map
    → crypto map に正しいACLとpeerが設定されているか確認。

debugコマンドの使い方と出力例

問題の詳細を知るには debug が有効です。ただし、本番環境では使用に注意が必要です。

  • debug crypto isakmp
    → フェーズ1の認証・交渉ログ。
    出力例: ISAKMP (0): authentication failed → Pre-shared key の不一致
  • debug crypto ipsec
    → フェーズ2の動作ログ。
    出力例: IPSEC(sa_initiate): no policy found → トラフィックがcrypto mapと一致していない可能性

リアルタイム出力を表示するには:

terminal monitor

終了時は必ず以下で停止しましょう:

undebug all

図3:IPsec VPNの処理フロー(フェーズ1・2)

まとめ

CiscoルータでIPsec VPNが貼れない原因は多岐にわたりますが、以下のポイントを順に確認することで効率的にトラブルを解消できます。

  • ISAKMPポリシー(IKE Phase1)の設定確認
  • トランスフォームセット(IKE Phase2)の一致
  • アクセスリストとトラフィックの定義の正確性
  • NATトラバーサル設定の有無
  • FortiGateとの接続時のバージョン差や仕様確認
  • show・debugコマンドを使ったフェーズごとの状況把握

Cisco ルータ 設定」や「FortiGate VPN」の連携は実務でも頻繁に登場する構成です。今回ご紹介したトラブルシューティング手法を活用し、効率よく問題を解決していきましょう。