目录

简介

先决条件

要求

使用的组件

规则

背景信息

DMVPN 配置不起作用

问题

解决方案

常见问题

验证基本连接

验证forIncompatibleISAKMP策略

验证预共享密钥是否不正确

验证 IPsec 转换集是否不兼容

验证是否在 ISP 上阻止了 ISAKMP 数据包

验证GRE在删除隧道保护时是否有效

NHRP注册失败

验证是否已正确配置生命周期

验证是否只在一个方向传输流量

验证已建立路由协议邻居

使用DMVPN集成的远程访问VPN问题

问题

解决方案

Dual-hub-dual-dmvpn问题

问题

解决方案

通过DMVPN登录到服务器时出现问题

问题

解决方案

无法通过特定端口访问 DMVPN 上的服务器

问题

解决方案

相关信息

简介

本文档介绍解决动态多点VPN (DMVPN)问题最常用的解决方案。

先决条件

要求

思科建议您了解在 Cisco IOS® 路由器上进行 DMVPN 配置的知识。

使用的组件

本文档中的信息基于以下软件和硬件版本：

- Cisco IOS

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

背景信息

本文档介绍解决动态多点VPN (DMVPN)问题最常用的解决方案。其中许多解决方案可在对DMVPN连接进行深入故障排除之前实施。本文档列出了您开始对连接进行故障排除并联系思科技术支持团队之前可以尝试的常见操作。

有关详细信息，请参阅动态多点VPN配置指南，Cisco IOS版本15M&T。

请参阅了解和使用调试命令对IPsec进行故障排除，了解用于对IPsec问题进行故障排除的常见调试命令。

DMVPN 配置不起作用

问题

最近配置或修改的 DMVPN 解决方案不起作用。

当前的 DMVPN 配置不再有效。

解决方案

此部分包含最常见的 DMVPN 问题的解决方案。

这些解决方案（顺序不分先后）可用作项目核对表，在您进行深入故障排除之前进行验证或尝试：

- 常见问题

- 验证互联网安全连接和密钥管理协议(ISAKMP)数据包是否被互联网服务提供商(ISP)阻止。

- 验证在隧道保护删除后，通用路由封装(GRE)是否有效。

- 下一跳解析协议(NHRP)注册失败。

- 验证是否已正确配置生命周期。

- 验证是否只在一个方向传输流量。

- 验证已建立路由协议邻居。

注意：开始之前，请检查后续步骤：

1. 同步中心和辐射点之间的时间戳

2. 启用 msec 调试和记录时间戳：

Router(config)#service timestamps debug datetime msec

Router(config)#service timestamps log datetime msec

3. 启用调试会话的终端 exec 提示符时间戳：

Router#terminal exec prompt timestamp

注意：通过这种方式，您可以轻松地将调试输出与show命令输出相关联。

常见问题

验证基本连接

1. 从集线器Ping具有NBMA地址的分支，然后反向。

这些ping必须直接从物理接口发出，而不是通过DMVPN隧道。希望没有防火墙阻止 ping 数据包。如果此做法不起作用，请检查中心和辐射点路由器之间的路由和防火墙，

2. 并使用traceroute检查已加密隧道数据包采用的路径。

3. 使用 debug 和 show 命令验证无连接的状态：

- debug ip icmp

- debug ip packet

注意：debug ip packet命令会生成大量输出，并消耗大量的系统资源。在生产网络中必须慎用此命令。请始终使用 access-list 命令。 有关如何通过debug ip packet使用access-list命令，请参阅使用IP访问列表进行故障排除。

验证 ISAKMP 策略是否不兼容

如果配置的 ISAKMP 策略与远程对等体提议的策略不匹配，则路由器会尝试使用默认策略 65535。如果与两者均不匹配，则 ISAKMP 协商会失败。

show crypto isakmp sa命令显示ISAKMP SA处于MM_NO_STATE中，这表示main-mode命令失败。

验证预共享密钥是否不正确

如果两端的预共享密钥不相同，则协商会失败。

路由器会返回“合理性检查失败”的消息。

验证 IPsec 转换集是否不兼容

如果IPsec转换集在两个IPsec设备上不兼容或不匹配，则IPsec协商失败。

路由器会针对IPsec提议返回“atts不被接受的消息。

验证是否在 ISP 上阻止了 ISAKMP 数据包

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   输出显示，辐射点路由器每隔10秒发送一次udp 500数据包。

检查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)

注意：请确保您的access-list中允许ip any any。否则，由于访问列表应用在出口接口的入站方向，因此可以阻止所有其他流量。

验证GRE在删除隧道保护时是否有效

当DMVPN不起作用时，在您使用IPsec进行故障排除之前，请验证GRE隧道在没有IPsec加密的情况下可以正常工作。

有关详细信息，请参阅如何配置GRE隧道。

NHRP注册失败

中心和辐射点之间的 VPN 隧道处于 Up 状态，但无法传输数据流量：

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 中无 decap 数据包，这表明在 spoke1 到 spoke2 的返程路径中的某个位置丢弃了 esp 数据包。

spoke2路由器同时显示encap和decap，这意味着ESP流量在到达spoke2之前会被过滤。它可能发生在spoke2的ISP端，也可能发生在spoke2路由器和spoke1路由器之间路径中的任何防火墙上。在允许ESP （IP协议50）之后，spoke1和spoke2都会显示封装和解码计数器增加。

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 映射。

有关详细信息，请参阅思科IOS IP地址服务命令参考中的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 协议获知到辐射点的路由。

使用DMVPN集成的远程访问VPN问题

问题

DMVPN工作正常，但无法建立RAVPN。

解决方案

使用 ISAKMP 配置文件和 IPsec 配置文件实现此目的。 创建单独的 DMVPN 和 RAVPN 配置文件。

有关详细信息，请参阅 DMVPN 和带 ISAKMP 配置文件的简易 VPN 服务器配置示例。

Dual-hub-dual-dmvpn问题

问题

dual-hub-dual-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 !---

有关详细信息，请参阅思科IOS安全命令参考(A-C)中的tunnel protection 命令。

通过DMVPN登录到服务器时出现问题

问题

发出无法访问DMVPN网络服务器的流量。

解决方案

此问题可能与使用GRE和IPsec的数据包的MTU和MSS大小有关。

数据包大小问题可能与分段有关。要避免此问题，请使用以下命令：

ip mtu 1400

ip tcp adjust-mss 1360

crypto IPSec fragmentation after-encryption (global)

您还可以配置tunnel path-mtu-discovery命令来动态发现MTU大小。

有关详细说明，请参阅解决GRE和IPSEC中的IP分段、MTU、MSS和PMTUD问题.

无法通过特定端口访问 DMVPN 上的服务器

问题

无法通过特定端口访问 DMVPN 上的服务器。

解决方案

要验证禁用Cisco IOS防火墙功能集，并查看其是否有效。

如果运行正常，则问题与Cisco IOS防火墙配置有关，与DMVPN无关。

相关信息

- 动态多点 VPN (DMVPN)

- IPsec 协商/IKE 协议

- 思科技术支持和下载