Japan
サイト内の現在位置を表示しています。
UNIVERGE IXシリーズ 障害切り分けガイドライン
1章 インターネットVPNでの障害切り分け方法事例2 IPsecを使ったVPNで通信が失敗する
機器導入時 (一度も通信ができていない)
確認ポイントに沿って確認を行います。
確認ポイント
- SAが生成できているか
- IPsecのパラメータが一致しているか
- “show”コマンドによる確認
- イベントログによる確認
確認ポイント1 SAが生成できているか
最初に「ISAKMP SA」と「IPsec SA」が生成できているかを確認します。
[確認コマンド]
Router(config)# show ike sa
Router(config)# show ipsec sa
[表示例]
Router(config)# show ike sa
ISAKMP SA - 1 configured, 1 created
Local address is 198.51.100.100, port is 500
Remote address is 198.51.100.200, port is 500
IKE policy name is ike-policy
Direction is initiator
Initiator's cookie is 0x61355a22c7504fe0
Responder's cookie is 0x94911c5cc61de379
Exchange type is main mode
State is established
Authentication method is pre-shared
Encryption algorithm is aes-256
Hash algorithm is sha1
DH group is modp768, lifetime is 28796 seconds
Router(config)# show ipsec sa
IPsec SA - 1 configured, 2 created
Interface is Tunnel0.0
Key policy map name is ipsec-policy
Tunnel mode, 4-over-4, autokey-map
Local address is 198.51.100.100
Remote address is 198.51.100.200
Outgoing interface is GigaEthernet0.1
Interface MTU is 1390, path MTU is 1454
Inbound:
ESP, SPI is 0xd5b93861(3585685601)
Transform is ESP-AES-256-HMAC-SHA-96
Remaining lifetime is 28743 seconds
Replay detection support is on
Outbound:
ESP, SPI is 0xc3893c75(3280551029)
Transform is ESP-AES-256-HMAC-SHA-96
Remaining lifetime is 28743 seconds
Replay detection support is on
Perfect forward secrecy is off
「configured」が定義済のポリシーを、「created」が実際に生成したSAを示しています。
なお、IPsec SAはポリシー毎に「送信方向(outbound)のSA」と「受信方向(inbound)のSA」を1つずつ持ちますので、正しくIPsec接続ができていると「created」は「configured」の2倍の数となります。
確認ポイント2 IPsecのパラメータが一致しているか
自装置と相手装置のIPsecのパラメータが一致しているか確認します。
(A) IKE/IPsecプロポーザルの暗号化/認証アルゴリズムが対向装置と一致しているか。
(B) 事前共有鍵が対抗装置と一致しているか。
(C) IKEプロポーザルがIKEポリシーに正しく関連付けされているか。
(D) IPsecプロポーザルがIPsecポリシーに正しく関連付けされているか。
(E) IPsecポリシーで指定しているアクセスリストが正しく登録されているか。
(F) TunnelインタフェースにIPsecポリシーが関連付けられているか。
(G) IPsecローカルIDとリモートIDの設定が対向装置と対になっているか。
ip access-list sec-list(E) permit ip src any dest any
ike proposal ike-prop(C) encryption aes-256 hash sha(A)
ike policy ike-policy peer 198.51.100.200 key [事前共有鍵](B) ike-prop(C)
ipsec autokey-proposal auto-prop(D) esp-aes-256 esp-sha(A)
ipsec autokey-map ipsec-policy(F) sec-list(E) peer 198.51.100.200 auto-prop(D)
ipsec local-id ipsec-policy 192.168.0.0/24(G)
ipsec remote-id ipsec-policy 192.168.1.0/24(G)
interface Tunnel0.0
tunnel mode ipsec
ip unnumbered GigaEthernet1.0
ip tcp adjust-mss auto
ipsec policy tunnel ipsec-policy(F) out
no shutdown
WAN側インタフェースにNAPTやフィルタを設定していている場合やIKEアグレッシブモードを利用されている場合は、追加で以下の点も確認ください。
■NAPTを設定している場合
静的NAPT機能でIKEパケット(UDP:500番)を許可しておく必要があります。
Router(config-GigaEthernet0.1)# ip napt static GigaEthernet0.1 udp 500
■フィルタを設定している場合
WAN側インタフェースにフィルタを設定している場合、IKEパケットがフィルタで廃棄されないようにUDP/500番を許可する必要があります。
Router(config)# ip access-list ike-pass permit udp src any sport eq 500 dest any dport eq 500
■IKEアグレッシブモードを利用している場合
「ike local-id/remote-id」と「ipsec local-id/ipsec remote-id」は相手装置と対になっている必要があります。
◇自装置◇
ike remote-id ike-policy keyid kyoten
ipsec local-id ipsec-policy 192.168.0.0/24
ipsec remote-id ipsec-policy 192.168.1.0/24
◇相手装置◇
ike local-id ike-policy keyid kyoten
ipsec local-id ipsec-policy 192.168.1.0/24
ipsec remote-id ipsec-policy 192.168.0.0/24
確認ポイント3 “show”コマンドによる確認
IKEの統計情報を確認します。
[確認コマンド]
Router(config)# show ike statistics
IKEの統計情報では、IKEネゴシエーションの成功/失敗回数、及び、通知メッセージ(Notify message)を送受信した回数を確認することができます。
VPN接続ができないときに確認すべきポイントを紹介します。
・IKE/IPsecプロポザールの不一致を検出していないか
「no proposal chosen」のカウンタはIKE/IPsecプロポザールの不一致を示します。
本カウンタが上昇している場合は、「暗号化/認証アルゴリズムが双方のルータで一致しているか」、「ピアのアドレスが正しく登録されているか」を確認ください。
・IKE/IPsecのID不一致を検出していないか
「invalid id information」のカウンタはIKE/IPsecのID不一致を示します。
本カウンタが上昇している場合は、「ipsec autokey-mapで指定しているアクセスリストが存在するか」、「アクセスリストの設定が相手装置と対になっているか」、「IKEのlocal-id/remote-idが相手装置と対になっているか」、「IPsecのlocal-id/remote-idが相手装置と対になっているか」を確認してください。
IKEアグレッシブモードでVPN接続ができない原因の多くは、この「invalid id」です。
Router(config)# show ike statistics
:
<省略>
:
IKE Informations:
Notify message type
Rcvd: 0 invalid payload type, 0 doi not supported
0 situation not supported, 0 invalid cookie
0 invalid major version, 0 invalid minor version
0 invalid exchange type, 0 invalid flags, 0 invalid message id
0 invalid protocol id, 0 invalid spi, 0 invalid transform id
0 attributes not supported, ★0 no proposal chosen★
0 bad proposal syntax, 0 payload malformed
0 invalid key information, ★0 invalid id information★
0 invalid cert encoding, 0 invalid certificate
0 cert type unsupported, 0 invalid cert authority
0 invalid hash information, 0 authentication failed
0 invalid signature, 0 address notification
0 notify sa lifetime, 0 certificate unavailable
0 unsupported exchange type, 0 unequal payload lengths
0 connected
0 responder lifetime, 0 replay status, 0 initial contact
0 keepalive, 0 keepalive ack
0 unknown type
Sent: 0 invalid payload type, 0 doi not supported
0 situation not supported, 0 invalid cookie
0 invalid major version, 0 invalid minor version
0 invalid exchange type, 0 invalid flags, 0 invalid message id
0 invalid protocol id, 0 invalid spi, 0 invalid transform id
0 attributes not supported, ★0 no proposal chosen★
0 bad proposal syntax, 0 payload malformed
0 invalid key information, ★0 invalid id information★
0 invalid cert encoding, 0 invalid certificate
0 cert type unsupported, 0 invalid cert authority
0 invalid hash information, 0 authentication failed
0 invalid signature, 0 address notification
0 notify sa lifetime, 0 certificate unavailable
0 unsupported exchange type, 0 unequal payload lengths
0 connected
0 responder lifetime, 0 replay status, 0 initial contact
0 keepalive, 0 keepalive ack
0 unknown type
確認ポイント4 イベントログによる確認
イベントログを確認します。
[設定コマンド]
Router(config)# logging subsystem ike info
[確認コマンド]
Router(config)# show logging
VPN接続が失敗するときに出力されるログをいくつか紹介いたします。
以下に紹介するログは全て「info」レベルで取得しています。
太字の箇所は「warn」レベルでも出力されるログです。
■IKEプロポーザル不一致
IKE.001: Begin IKE phase 1 negotiation, destination 198.51.100.200
==> IKEフェーズ1開始。
IKE.047: Initiator negotiation using Main mode
==> 始動者(Initiator)として起動。
IKE.009: Receive notification data from 198.51.100.200, type 14:NO-PROPOSAL-CHOSEN, protocol ISAKMP
==> NO-PROPOSAL-CHOSEN : 始動者が送信したプロポーザルに応答者が対応していないことを示しています。
■修正ポイント
「ike proposal」が相手装置と一致しているかを確認。
ike proposal ike-prop encryption aes-256 hash sha
■IKEフェーズ1 アドレス不一致
IKE.043: IKE(peer or ID) configuration not found
==>IKEピア設定とアドレス情報不一致を検出。
IKE.007: Send notification data to 198.51.100.200, type 14:NO-PROPOSAL-CHOSEN, protocol ISAKMP
IKE.003: Delete phase 1 negotiation table, destination 198.51.100.200
■修正ポイント
「ike policy」で指定したIPsecピアのアドレスが正しいかを確認。
ike policy ike-policy peer 198.51.100.200 key secret ike-prop
■事前共有鍵不一致
IKE.001: Begin IKE phase 1 negotiation, destination 198.51.100.200
==>IKEフェーズ1開始。
IKE.047: Responder negotiation using Main mode
==>応答者(Responder)として起動。
IKE.037: Invalid ID payload length, length 16691
IKE.037: Invalid ID payload length, length 54809
==>始動者の事前共有鍵と応答者の事前共有鍵の不一致を検出。
■修正ポイント
「ike policy」で指定した事前共有鍵が正しいかを確認。
ike policy ike-policy peer 198.51.100.200 key secret ike-prop
■ipsec local-id/remote-id不一致
IKE.001: Begin IKE phase 1 negotiation, destination 198.51.100.200
==>IKEフェーズ1開始。
IKE.047: Initiator negotiation using Aggressive mode
==>始動者(Initiator)として起動。
IKE.002: Finish IKE phase 1 negotiation, destination 198.51.100.200
==>IKEフェーズ1完了。
IKE.001: Begin IKE phase 2 negotiation, destination 198.51.100.200
==>IKEフェーズ2開始。
IKE.009: Receive notification data from 198.51.100.200, type 18:INVALID-ID-INFORMATION, protocol ISAKMP
==>ID情報が双方で一致しない(対になっていない)ため,不正なIDである旨のメッセージを受信。
■修正ポイント
「ipsec local-id」「ipsec remote-id」が相手装置と対になっているかを確認。
- 自装置
ipsec local-id ipsec-policy 192.168.0.0/24
ipsec remote-id ipsec-policy 192.168.1.0/24
- 相手装置
ipsec local-id ipsec-policy 192.168.1.0/24
ipsec remote-id ipsec-policy 192.168.0.0/24
運用中 (以前は通信ができていた)
確認ポイントに沿って確認を行います。
確認ポイント
- SAが生成できているか
- イベントログによる確認
- IPsecのリプレイ防御機能による廃棄が発生していないか(QoS併用時)
確認ポイント1 SAが生成できているか
最初に「ISAKMP SA」と「IPsec SA」が生成できているかを確認します。
[確認コマンド]
Router(config)# show ike sa
Router(config)# show ipsec sa
[表示例]
Router(config)# show ike sa
ISAKMP SA - 1 configured, 1 created
Local address is 198.51.100.100, port is 500
Remote address is 198.51.100.200, port is 500
IKE policy name is ike-policy
Direction is initiator
Initiator's cookie is 0x61355a22c7504fe0
Responder's cookie is 0x94911c5cc61de379
Exchange type is main mode
State is established
Authentication method is pre-shared
Encryption algorithm is aes-256
Hash algorithm is sha1
DH group is modp768, lifetime is 28796 seconds
Router(config)# show ipsec sa
IPsec SA - 1 configured, 2 created
Interface is Tunnel0.0
Key policy map name is ipsec-policy
Tunnel mode, 4-over-4, autokey-map
Local address is 198.51.100.100
Remote address is 198.51.100.200
Outgoing interface is GigaEthernet0.1
Interface MTU is 1390, path MTU is 1454
Inbound:
ESP, SPI is 0xd5b93861(3585685601)
Transform is ESP-AES-256-HMAC-SHA-96
Remaining lifetime is 28743 seconds
Replay detection support is on
Outbound:
ESP, SPI is 0xc3893c75(3280551029)
Transform is ESP-AES-256-HMAC-SHA-96
Remaining lifetime is 28743 seconds
Replay detection support is on
Perfect forward secrecy is off
確認ポイント2 イベントログによる確認
異常を示すログが出力されていないかを調査します。
通信が失敗するときに出力される代表的なログを紹介します。
なお、以下に紹介するログは全て「warn」レベルで出力されます。
■PPPoEセッション切断
PPOE.030: Session stop, AccessCT address aa:aa:aa:bb:bb:bb, SessionID 3, GigaEthernet0.1
==> PPPoEセッションの切断を検出。
PPPoEの状態とIPsec SAの状態は同期しないため、PPPoEが切断状態となった場合でもIPsec SAはLifeTime満了まで残り続けます。
PPPoEセッションの切断を示す「PPPoE.030」が出力されている場合、「SAが生成できていない場合」と同様に、事例1に戻ってPPPoE接続が正しく行えているかを確認してください。
■IPsec SAが存在しない
SEC.012: No SA for received ESP(0xbd7ffcac) packet from 198.51.100.200
SEC.001: Drop invalid packet from 198.51.100.200, protocol 0, error 0
==> 受信したパケットに対応するSAが存在しない。
自装置の再起動等によってIPsec SAが削除され、相手装置側から受信するIPsecパケットを復号化できないことを示しております。
「clear ipsec sa」、「clear ike sa」コマンドで相手装置側のSAを削除することで、再接続を行うことで通信を復旧できます。なお、コマンドは必ず「clear ipsec sa」、「clear ike sa」の順で実行してください。
■帯域不足による廃棄
SEC.025: Packet 192.168.0.100 > 192.168.1.100 discarded for LINK-FRMWRK:
PACKET NOT ACCEPTED FOR FLOW CONTROL REASONS, GigaEthernet0.0
IPsecでカプセル化されたトラフィックが出力インタフェースの帯域を超えたため、帯域超過分のパケットを廃棄したことを示しております。シェーピング機能を利用している際によく出力されるログです。
本ログが定常的に出力されている場合は帯域不足が考えられますので、回線の増速をご検討ください。
■認証エラー(データの改ざん)を検出
SEC.008: Invalid ICV from Tunnel, 198.51.100.200
SEC.001: Drop invalid packet from 198.51.100.200, protocol 0, error 61
==> 認証エラーを検出。
認証エラー(データの改ざん)が検出されたことを示しております。
認証エラーが発生する原因としては、網内の障害によるビット化けの可能性が高いため、回線の品質に問題が無いか確認を行ってください。
※網内でのビット化けも、IPSecではデータ改ざんに見えます。
確認ポイント3 IPsecのリプレイ防御機能による廃棄が発生していないか(QoS併用時)
QoS(優先制御)とIPsecを併用する場合、IPsecのリプレイ防御機能によって通信が廃棄されてしまうため、IPsecのリプレイ防御機能を無効化する必要があります。
リプレイ防御機能による廃棄かどうかは"show ipsec statistics"の「replay errors」のカウンタで確認できます。
「replay errors」のカウンタが上昇している場合には、以下の設定を追加してリプレイ防御機能を無効化する必要があります。
[設定コマンド]
Router(config)# no ipsec anti-replay
[表示例]
Router(config)# show ipsec statistics
IPsec statistics:
Rcvd: 0 process switching
0 esp encap history des
0 esp encap history 3des
0 esp encap history aes
0 esp encap history null
0 esp auth history md5
0 esp auth history sha1
0 ah auth history md5
0 ah auth history sha1
0 succeeded
0 sp errors, 0 not found esp sa, 0 not found ah sa
0 esp errors, 0 ah errors, 0 ahesp errors
0 decrypt failure, 0 auth failure, 0 invalid icv
0 invalid key, 0 invalid pkt
0 replay errors, 0 seq over
0 seclevel miss, 0 other errors
0 failed
資料請求・お問い合わせ