セキュリティ : Dynamic Multipoint VPN(DMVPN)

最も一般的な DMVPN のトラブルシューティング方法

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2011 年 1 月 21 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

このドキュメントでは、Dynamic Multipoint VPN(DMVPN; ダイナミック マルチポイント VPN)に関する問題の最も一般的なソリューションについて説明しています。 これらのソリューションの多くは、DMVPN 接続について徹底的なトラブルシューティングを行う前に実施できます。 このドキュメントは、接続のトラブルシューティングや Cisco テクニカルサポートへの問い合わせの前に、一般的な手順を試すためのチェックリストとして提供されています。

DMVPN の設定例のドキュメントが必要な場合は、『DMVPN の設定例とテクニカルノート』を参照してください。

注: IPSec に関する問題のトラブルシューティングに使用する一般的な debug コマンドの詳細は、『IPSec のトラブルシューティング:debug コマンドの説明と使用』を参照してください。

前提条件

要件

Cisco は Cisco IOS の DMVPN 設定のナレッジがあることを推奨しますか。 を追加します。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • Cisco IOS

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

DMVPN 設定が機能しない

問題

最近設定または設定を変更した DMVPN ソリューションが機能しません。

現在の DMVPN の設定が機能しなくなりました。

解決策

このセクションでは、最も一般的な DMVPN に関する問題のソリューションについて説明しています。

次のソリューション(順不同)は、詳細なトラブルシューティングを行う前に確認したり試したりするためのチェックリスト項目として使用できます。

注: はじめに、次を確認してください。

  1. ハブとスポーク間のタイムスタンプの同期

  2. デバッグとログのミリ秒のタイムスタンプのイネーブル化:

    Router(config)#service timestamps debug datetime msec

    Router(config)#service timestamps log datetime msec

  3. デバッグ セッションに対する terminal exec prompt timestamp のイネーブル化:

    Router#terminal exec prompt timestamp

注: このようにして、簡単に debug の出力を show コマンドの出力と関連付けることができます。

一般的な問題

基本的な接続の確認

  1. NBMA アドレスを使用してハブからスポークへの ping を実行します。また、この逆のスポークからハブへの ping も実行します。

    これらの ping を実行すると、DMVPN トンネルは経由せず、直接物理インターフェイスに到達します。 望ましくは、ping パケットをブロックするファイアウォールは使用しないことです。 これが機能しない場合は、ルーティングを確認し、ハブとスポークのルータ間にファイアウォールがあればそれを調べます。

  2. また、traceroute を使用して、暗号化されたトンネル パケットがとおるパスも確認します。

  3. debug コマンドおよび show コマンドを使用して、接続されていないことを確認します。

    • debug ip icmp

    • debug ip packet

      注: debug ip packet コマンドを使用すると、かなりの量の出力が生成され、相当量のシステム リソースが使用されます。 このコマンドを実稼働ネットワークで使用する場合は注意が必要です。 必ず access-list コマンドとともに使用してください。

      注: access-listdebug ip packet の使用方法については、『IP アクセス リストの設定』の「トラブルシューティング」を参照してください。

互換性のない ISAKMP ポリシーのための確認

設定された ISAKMP ポリシーがリモート ピアによって提示されたポリシーと一致しない場合、ルータは 65535 のデフォルト ポリシーを試行します。 それも一致しない場合は、ISAKMP ネゴシエーションが失敗します。

show crypto isakmp sa コマンドは、ISAKMP SA が MM_NO_STATE にあることを示し、これはメイン モードの失敗を意味します。

不適切な事前共有秘密キーのための確認

事前共有秘密が両側で同じものではない場合、ネゴシエーションが失敗します。

ルータによって「sanity check failed」のメッセージが返されます。

互換性のない IPSec トランスフォーム セットのための確認

2 つの IPSec デバイスで IPSec トランスフォーム セットに互換性がないか、または一致しない場合、IPSec ネゴシエーションが失敗します。

ルータによって、IPSec プロポーザルに対する「atts not acceptable」のメッセージが返されます。

ISAKMP パケットが ISP でブロックされているか確認する

Router#show crypto isakmp sa


IPv4 Crypto ISAKMP SA
Dst	            src	               state	   conn-id	  slot	   status
172.17.0.1	  172.16.1.1	    MM_NO_STATE	     0	           0	   ACTIVE
172.17.0.1	  172.16.1.1	    MM_NO_STATE	     0	           0	   ACTIVE (deleted)
172.17.0.5        172.16.1.1        MM_NO_STATE      0             0	   ACTIVE
172.17.0.5        172.16.1.1        MM_NO_STATE      0             0	   ACTIVE (deleted)

上記は、VPN トンネル フラッピングを示しています。

さらに、debug crypto isakmp を確認して、スポーク ルータが UDP 500 パケットを送信していることを確認します。

Router#debug crypto isakmp
04:14:44.450: ISAKMP:(0):Old State = IKE_READY  
                       New State = IKE_I_MM1
04:14:44.450: ISAKMP:(0): beginning Main Mode exchange
04:14:44.450: ISAKMP:(0): sending packet to 172.17.0.1 
              my_port 500 peer_port 500 (I) MM_NO_STATE
04:14:44.450: ISAKMP:(0):Sending an IKE IPv4 Packet.
04:14:54.450: ISAKMP:(0): retransmitting phase 1 MM_NO_STATE...
04:14:54.450: ISAKMP (0:0): incrementing error counter on sa, 
              attempt 1 of 5: retransmit phase 1
04:14:54.450: ISAKMP:(0): retransmitting phase 1 MM_NO_STATE
04:14:54.450: ISAKMP:(0): sending packet to 172.17.0.1 
              my_port 500 peer_port 500 (I) MM_NO_STATE
04:14:54.450: ISAKMP:(0):Sending an IKE IPv4 Packet.
04:15:04.450: ISAKMP:(0): retransmitting phase 1 MM_NO_STATE...
04:15:04.450: ISAKMP:(0): retransmitting phase 1 MM_NO_STATE...
04:15:04.450: ISAKMP (0:0): incrementing error counter on sa, 
              attempt 2 of 5: retransmit phase 1
04:15:04.450: ISAKMP:(0): retransmitting phase 1 MM_NO_STATE

上記の debug の出力は、スポーク ルータが UDP 500 パケットを 10 秒ごとに送信していることを示しています。

スポーク ルータが ISP のルータに直接接続されているかを ISP に確認して、UDP 500 トラフィックを許可してもらいます。

ISP で UDP 500 が許可されたら、出力インターフェイスの着信 ACL を追加します。これは、UDP 500 トラフィックを確実にルータに到達させるために、UDP 500 を許可するトンネル発信元です。 show access-list コマンドを使用して、ヒット カウントが加算されているかどうかを確認します。

Router#show access-lists 101
Extended IP access list 101
    10 permit udp host 172.17.0.1 host 172.16.1.1 eq isakmp log (4 matches)
    20 permit udp host 172.17.0.5 host 172.16.1.1 eq isakmp log (4 matches)
    30 permit ip any any (295 matches)

注意 注意: 使用しているアクセス リストでip any any が許可されていることを確認してください。 許可されていないと、出力インターフェイスの着信に access-list が適用されるため、その他のすべてのトラフィックがブロックされます。

トンネル保護を削除して GRE が機能しているか確認する

DMVPN が機能していない場合、IPSec に関するトラブルシューティングを行う前に、GRE トンネルが IPSec 暗号化を使用しないで正しく機能することを確認します。

詳細については、「GRE トンネルの設定」を参照してください。

NHRP 登録に失敗する

ハブとスポーク間の VPN トンネルはアップ状態にありますが、データ トラフィックを渡すことができません。

Router#show crypto isakmp sa
        dst             src             state          conn-id  slot   status
        172.17.0.1      172.16.1.1      QM_IDLE           1082    0    ACTIVE
Router#show crypto IPSEC sa
local  ident (addr/mask/prot/port): (172.16.1.1/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (172.17.0.1/255.255.255.255/47/0)
#pkts encaps: 154, #pkts encrypt: 154, #pkts digest: 154
#pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
inbound esp sas:
spi: 0xF830FC95(4163959957)
outbound esp sas:
spi: 0xD65A7865(3596253285)

!---
!--- Output is truncated
!---

これは、リターン トラフィックがトンネルの相手側から戻ってこないことを示しています。

スポーク ルータの NHS エントリを確認します。

Router#show  ip nhrp nhs detail
Legend: E=Expecting replies, R=Responding
Tunnel0: 172.17.0.1  E  req-sent 0  req-failed 30 repl-recv 0
Pending Registration Requests:
Registration Request: Reqid 4371, Ret 64  NHS 172.17.0.1

これは、NHS 要求が失敗していることを示しています。 この問題を解決するには、スポーク ルータのトンネル インターフェイスのコンフィギュレーションが正しいことを確認します。

設定例:

interface Tunnel0
 ip address 10.0.0.9 255.255.255.0
 ip nhrp map 10.0.0.1 172.17.0.1
 ip nhrp map multicast 172.17.0.1
 ip nhrp nhs 172.17.0.1

!---
!--- Output is truncated
!---

NHS サーバの正しいエントリを使用した設定例:

interface Tunnel0
 ip address 10.0.0.9 255.255.255.0
 ip nhrp map 10.0.0.1 172.17.0.1
 ip nhrp map multicast 172.17.0.1
 ip nhrp nhs 10.0.0.1

!---
!--- Output is truncated
!---

ここで、NHS エントリおよび IPSec 暗号化および復号化カウンタを確認します。

Router#show ip nhrp nhs detail
Legend: E=Expecting replies, R=Responding
Tunnel0:        10.0.0.1 RE  req-sent 4  req-failed 0  repl-recv 3 (00:01:04 ago)

Router#show crypto IPSec sa 
local  ident (addr/mask/prot/port): (172.16.1.1/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (172.17.0.1/255.255.255.255/47/0)
#pkts encaps: 121, #pkts encrypt: 121, #pkts digest: 121
#pkts decaps: 118, #pkts decrypt: 118, #pkts verify: 118
inbound esp sas:
spi: 0x1B7670FC(460747004)
outbound esp sas:
spi: 0x3B31AA86(993110662)

!---
!--- Output is truncated
!---

ライフタイムが適切に設定されているかどうか確認する

次のコマンドを使用して、現在の SA ライフタイムおよび次回再ネゴシエーションの時間を確認します。

  • show crypto isakmp sa detail

  • show crypto ipsec sa peer <NBMA-address-peer>

SA ライフタイム値に注意します。 この値が、設定されているライフタイム(デフォルトは ISAKMP で 24 時間、IPSec で 1 時間)に近い場合、この SA は最近ネゴシエートされていることになります。 しばらくして確認し、また再ネゴシエートされている場合は、ISAKMP、IPSec、または両方の状態がアップとダウンに頻繁に切り替わっている可能性があります。

Router#show crypto ipsec security-assoc lifetime
Security association lifetime: 4608000 kilobytes/3600 seconds

Router#show crypto isakmp policy
Global IKE policy
Protection suite of priority 1
Encryption algorithm: DES-Data Encryption Standard (65 bit keys)
Hash algorithm: Message Digest 5
Authentication method: Pre-Shared Key
Diffie-Hellman group: #1 (768 bit)
Lifetime: 86400 seconds, no volume limit
Default protection suite
 Encryption algorithm: DES- Data Encryption Standard (56 bit keys)
 Hash algorithm: Secure Hash Standard
 Authentication method: Rivest-Shamir-Adleman Signature
 Diffie-Hellman group: #1 (768 bit)
 Lifetime: 86400 seconds, no volume limit

Router# show crypto ipsec sa
interface: Ethernet0/3
    Crypto map tag: vpn, local addr. 172.17.0.1
   local  ident (addr/mask/prot/port): (172.16.1.1/255.255.255.255/47/0)
   remote ident (addr/mask/prot/port): (172.17.0.1/255.255.255.255/47/0)
   current_peer: 172.17.0.1:500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 19, #pkts encrypt: 19, #pkts digest 19
    #pkts decaps: 19, #pkts decrypt: 19, #pkts verify 19
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0, #pkts decompress failed: 0
    #send errors 1, #recv errors 0
     local crypto endpt.: 172.16.1.1, remote crypto endpt.: 172.17.0.1
     path mtu 1500, media mtu 1500
     current outbound spi: 8E1CB77A

 inbound esp sas:
      spi: 0x4579753B(1165587771)
        transform: esp-3des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2000, flow_id: 1, crypto map: vpn
        sa timing: remaining key lifetime (k/sec): (4456885/3531)
        IV size: 8 bytes
        replay detection support: Y
outbound esp sas:
      spi: 0x8E1CB77A(2384246650)
        transform: esp-3des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2001, flow_id: 2, crypto map: vpn
        sa timing: remaining key lifetime (k/sec): (4456885/3531)
        IV size: 8 bytes
        replay detection support: Y  

トラフィックが一方向だけに流れているかどうか確認する

スポーク ルータ間の VPN トンネルはアップ状態にありますが、データ トラフィックを渡すことができません。

Spoke1# show crypto ipsec sa peer 172.16.2.11
   local  ident (addr/mask/prot/port): (172.16.1.1/255.255.255.255/47/0)
   remote ident (addr/mask/prot/port): (172.16.2.11/255.255.255.255/47/0)
    #pkts encaps: 110, #pkts encrypt: 110
    #pkts decaps: 0, #pkts decrypt: 0, 
local crypto endpt.: 172.16.1.1, 
remote crypto endpt.: 172.16.2.11
      inbound esp sas:
      spi: 0x4C36F4AF(1278669999)
      outbound esp sas:
      spi: 0x6AC801F4(1791492596)

!---
!--- Output is truncated
!---


Spoke2#sh crypto ipsec sa peer 172.16.1.1
   local  ident (addr/mask/prot/port): (172.16.2.11/255.255.255.255/47/0)
   remote ident (addr/mask/prot/port): (172.16.1.1/255.255.255.255/47/0)
   #pkts encaps: 116, #pkts encrypt: 116,             
   #pkts decaps: 110, #pkts decrypt: 110,  
local crypto endpt.: 172.16.2.11, 
remote crypto endpt.: 172.16.1.1
     inbound esp sas:
     spi: 0x6AC801F4(1791492596)
     outbound esp sas:
     spi: 0x4C36F4AF(1278669999

!---
!--- Output is truncated
!---

spoke1 にカプセル化の解除されたパケットはありません。これは、esp パケットが spoke2 から spoke1 に向かって戻るパスのどこかでドロップされたことを意味します。

spoke2 ルータでは encap と decap の両方が示されています。これは、ESP トラフィックが spoke2 に到達する前にフィルタされたことを意味します。 これは、spoke2 の ISP 側で発生するか、または spoke2 ルータと spoke1 ルータの間のパスにあるファイアウォールで発生する可能性があります。 ESP(IP プロトコル 50)が許可された後、spoke1 と spoke2 の両方に encaps および decaps のカウンタが加算されて表示されます。

spoke1# show crypto ipsec sa peer 172.16.2.11
   local  ident (addr/mask/prot/port): (172.16.1.1/255.255.255.255/47/0)
   remote ident (addr/mask/prot/port): (172.16.2.11/255.255.255.255/47/0)
    #pkts encaps: 300, #pkts encrypt: 300
    #pkts decaps: 200, #pkts decrypt: 200

!---
!--- Output is truncated
!---

spoke2#sh crypto ipsec sa peer 172.16.1.1
   local  ident (addr/mask/prot/port): (172.16.2.11/255.255.255.255/47/0)
   remote ident (addr/mask/prot/port): (172.16.1.1/255.255.255.255/47/0)
   #pkts encaps: 316, #pkts encrypt: 316,             
   #pkts decaps: 300, #pkts decrypt: 310

!---
!--- Output is truncated
!---

ルーティング プロトコル ネイバーが確立されていることを確認する

スポークがルーティング プロトコル ネイバー関係を確立できません。

Hub# show ip eigrp neighbors
H   Address     Interface   Hold Uptime     SRTT    RTO  	 Q  	Seq
                                  (sec)             (ms)  Cnt 	Num
2   10.0.0.9     Tu0         13  00:00:37     1    5000  	 1  	0
0   10.0.0.5     Tu0         11	 00:00:47   1587   5000  	 0 	1483
1   10.0.0.11    Tu0         13	 00:00:56     1    5000  	 1  	0
Syslog message: 
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: 
Neighbor 10.0.0.9 (Tunnel0) is down: retry limit exceeded

Hub# show ip route eigrp
	172.17.0.0/24 is subnetted, 1 subnets
C       172.17.0.0 is directly connected, FastEthernet0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.0.0 is directly connected, Tunnel0
C    192.168.0.0/24 is directly connected, FastEthernet0/1
S*   0.0.0.0/0 [1/0] via 172.17.0.100

NHRP マルチキャスト マッピングがハブで正しく設定されているか確認します。

ハブでは、ダイナミック NHRP マルチキャスト マッピングがハブ トンネル インターフェイスで設定されている必要があります。

設定例:

interface Tunnel0
 ip address 10.0.0.1 255.255.255.0
 ip mtu 1400
 no ip next-hop-self eigrp 10
 ip nhrp authentication test
 ip nhrp network-id 10
 no ip split-horizon eigrp 10
 tunnel mode gre multipoint

!---
!--- Output is truncated
!---

ダイナミック NHRP マルチキャスト マッピングの正しいエントリを使用した設定例:

interface Tunnel0
 ip address 10.0.0.1 255.255.255.0
 ip mtu 1400
 no ip next-hop-self eigrp 10
 ip nhrp authentication test
 ip nhrp map multicast dynamic
 ip nhrp network-id 10
 no ip split-horizon eigrp 10
 tunnel mode gre multipoint

!---
!--- Output is truncated
!---

これにより、NHRP でスポーク ルータをマルチキャスト NHRP マッピングに自動的に追加できるようになります。

詳細については、『NHRP コマンド』の「ip nhrp map multicast dynamic」セクションを参照してください。

Hub#show ip eigrp neighbors
IP-EIGRP neighbors for process 10
H   Address     Interface   Hold   Uptime   SRTT    RTO     Q     Seq
                                           (sec)    (ms)   Cnt    Num
2   10.0.0.9     Tu0         12   00:16:48   13     200     0     334
1   10.0.0.11    Tu0         13   00:17:10   11     200     0     258
0   10.0.0.5     Tu0         12   00:48:44  1017    5000    0     1495

Hub#show ip route

     172.17.0.0/24 is subnetted, 1 subnets
C       172.17.0.0 is directly connected, FastEthernet0/0
D    192.168.11.0/24 [90/2944000] via 10.0.0.11, 00:16:12, Tunnel0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.0.0 is directly connected, Tunnel0
C    192.168.0.0/24 is directly connected, FastEthernet0/1
D    192.168.2.0/24 [90/2818560] via 10.0.0.9, 00:15:45, Tunnel0
S*   0.0.0.0/0 [1/0] via 172.17.0.100

スポークへのルートは、EIGRP プロトコルによって学習されます。

リモート アクセス VPN の DMVPN への統合に関する問題

問題

DMVPN は正しく動作していますが、RAVPN を確立することができません。

解決策

ISAKMP プロファイルおよび IPSec プロファイルを使用して、次を実行します。

DMVPN と RAVPN に別々のプロファイルを作成します。

詳細については、『ISAKMP プロファイルを使用した DMVPN および Easy VPN サーバの設定例』を参照してください。

デュアル ハブ デュアル DMVPN に関する問題。

問題

デュアル ハブ デュアル DMVPN に関する問題。 具体的には、トンネルがダウン状態になり、再ネゴシエートできません。

解決策

ハブのトンネル インターフェイスにトンネル IPSec 保護の共有キーワードを使用します。スポークでも同様に使用します。

設定例:

interface Tunnel43
 description <<tunnel to primary cloud>>
 tunnel source interface vlan10
 tunnel protection IPSec profile myprofile shared

!---
!--- Output is truncated
!---

interface Tunnel44
 description <<tunnel to secondary cloud>>
 tunnel source interface vlan10
 tunnel protection IPSec profile myprofile shared

!---
!--- Output is truncated
!---

詳細については、『Cisco IOS Security コマンド リファレンス』の「トンネル保護」セクションを参照してください。

DMVPN 経由でのサーバへのログインの問題

問題

DMVPN ネットワーク経由のサーバへのアクセスに関する問題。

解決策

この問題は、GRE と IPSec を使用しているパケットの MTU サイズおよび MSS サイズに関連している場合があります。

ここでは、フラグメンテーションに伴うパケット サイズの問題であるとします。 この問題を解消するには、次のコマンドを使用します。

ip mtu 1400
ip tcp adjust-mss 1360
crypto IPSec fragmentation after-encryption (global)

また、MTU サイズを動的に検出するように tunnel path-mtu-discovery コマンドを設定することもできます。

詳細については、『GRE および IPSec での IP フラグメンテーション、MTU、MSS、および PMTUD の問題の解決』を参照してください。

DMVPN 上のサーバに特定のポートを使用してアクセスできない

問題

DMVPN 上のサーバに特定のポートを使用してアクセスできません。

解決策

IOS ファイアウォール フィーチャ セットをディセーブルにして、機能するかを確認します。

正しく機能する場合、問題は DMVPN ではなく、IOS ファイアウォールの設定に関するものです。

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 111976