资源描述
IPsec VPN故障排除手册
Version1.0
迈普技术服务中心
2008-05-01
一、迈普公司VPN产品简介
迈普公司VPN产品型号还是比较多,包括IPsec VPN产品型号:VPN3030、老VPN3020、VPN3020B、VPN3010、VPN3010E、VPN3005B、VPN3005C、VPN3005C-104、VRC以及防火墙产品型号:FW520、FW505
1.1根据系统平台区分:
VPN3020、FW520:基于linux操作系统采用X86工控机硬件平台。VPN3020支持SSP02硬件加密。FW520不支持SSP02算法,VPN3020和FW520不支持迈普CMS颁发证书并通过预共享方式建立VPN。
FW505:基于linux操作系统采用800路由器硬件平台,FW505不支持SSP02算法。
VPN3020B:基于vxworks操作系统采用3740路由器硬件平台。支持硬件通用加密卡。
VPN3005B:基于vxworks操作系统采用800路由器硬件平台。不支持硬件通用加密卡。
VPN3010/3010E:基于vxworks操作系统采用定制的269×硬件平台。VPN3010E支持硬件通用加密卡。
VPN3005C:基于vxworks操作系统采用2600CD路由器硬件平台。不支持硬件通用加密卡。
VPN3005C-104:基于vxworks操作。
VRC:纯软件IPsec。支持WINDOWS平台。
1.2产品形态(只介绍目前在售产品)
MPSec VPN3020B具有4个多功能插槽(MIM),标配2个千兆光/电自选以太口,最多支持6个以太接口,密文吞吐量达到200Mbps,支持双电源冗余、业务板卡热插拔。
MPSec VPN3010E标配4个百兆以太口,最多支持4个以太接口,密文吞吐量达到50Mbps。
MPSec VPN3005C标配2个百兆以太口,最多支持3个以太接口,密文吞吐量达到10Mbps,并提供VoIP插槽可插入VoIP语音模块实现VoIP与VPN的融合。
MPSec VPN3005C-104标配5个百兆以太口,密文吞吐量达到2Mbps。
二、IPsec配置简要说明
VPN的配置可以通过两种方式来配置,一是手工配置,另外一种是通过网管方式获取配置。网管方式相对比较简单,在网管服务器上添加节点参数和相关资源后,只需要在VPN设备上添加简单的初始化参数后即可获取配置。
2.1网管方式VPN的配置
¡ 配置上网参数
该处只需要保证该设备能够连接上公网,同时需要指定一个默认路由,该路由指向外出IP或接口。
¡ 配置上点参数
请进入shell配置界面,进入config模式,然后输入
(config)#crypto init-config
分别配置user-name,password,以及中心VPN的地址server address,完成后的结果如下
crypto init-config
server address 202.21.1.1
user-name test
password 3ee86377cf3de377€
exit
¡ 获取上点配置
在enable模式下,输入
start crypto init-config
如果返回成功的话,该VPN就已经获取了必需的初始配置,以对应安全用户的身份加入了PM3的管理范围了,最后保存一下配置就可以了。
网管方式的配置只需要上述三步即可。
2.2 手工配置
关键配置:预共享密钥或证书、保护数据流、对端地址、IKE和IPsec使用的加密算法。具体命令和软件版本有关。
预共享密钥配置:
crypto ike key <password> {any|address <A.B.C.D>|identity <idstring>}
当指定identiey关键字时,常常是用于积极模式协商(主模式的情况下ID是被加密的,没有办法找到对应的密钥,就无法协商。),可以支持通配符。例如:
crypto ike key maipu identity *
该命令是说,对所有ID后缀是的协商是用密钥为maipu。
证书的配置是用:配置证书服务器(地址、证书类型)、下载证书服务器证书、下载设备证书。
cry ca identity <CAstring> //配置证书服务器信息
ca type {ctca|mpcms|windows} //配置证书服务器类型。ctca:上海电信CA。
enrollment {address <string>|url <string>} //配置证书服务器地址
crypto ca authenticate <CAstring> //下载CA服务器证书
crypto ca enroll <CAstring> {1024|2048|512} <driver_name> //下载设备证书。1024/2048/512指RSA密钥长度。driver_name:指设备在证书服务器上注册的用户名。CMS必须先注册,windows证书服务器不需要。
是用证书或是用预共享密钥方式都主要是在IKE协商阶段用来作身份验证。和后期的IPsec数据加密无关。
保护数据流:
crypto policy <string>
flow <local_net> <remote_net> <protocol> tunnel <tunnel_name> bypass
Bypass属性使该策略在没有对应的SA存在时允许报文以明文方式转发。主要解决当保护数据流包括内网口地址,访问内网口的问题。在IPsec作为备份线路中也需要使用。
隧道属性:
crypto tunnel <string>
peer {any |address A.B.C.D|hostname <string>}
local {address A.B.C.D|interface <inter_name>}
set sec-level {basic|high|medium}
我们将常用的密码算法、密钥安全属性做了总结,形成三个安全等级的配置。在隧道属性配置中可以直接使用这三个等级。
crypto security level : basic
ike proposal : g1-des-sha1 g1-des-md5
ipsec proposal : esp-nopfs-des-sha1 esp-nopfs-des-md5
crypto security level : medium
ike proposal : g2-3des-sha1 g2-3des-md5 g2-aes128-sha1 g2-aes128-md5
ipsec proposal : esp-g2-3des-sha1 esp-g2-3des-md5 esp-g2-aes128-sha1 esp-g2-aes128-md5
crypto security level : high
ike proposal : g5-3des-sha256 g5-aes256-sha256
ipsec proposal : esp-g5-3des-sha256 esp-g5-aes256-sha256
在使用中要主意这三个安全等级并没有使用AH协议。
VRC配置:主要配置预共享密钥或证书、对端Ipsec网关地址、对端保护网络。
三、IPsec VPN常见问题处理
本章重点介绍VPN的故障排除的基本思路,以及分析故障原因和解决问题的常用方的基本思路,以及分析故障原因和解决问题的常用方法。
本章内容:
n IPsec VPN故障排除基本思路
n IPsec VPN常见故障处理
n IPsec VPN SA状态信息说明
n 调试命令参数解释
3.1 IPsec VPN故障排除基本思路
当IPsec VPN出现问题时,最直接的表现就是无法通过IPsec VPN访问远端内部网络。按照具体的情况又分为:IPsec隧道无法建立、IPsec隧道建立但无法访问远端内部网络和IPsec隧道时断时连。通过IPsec的debug信息检测问题是比较快的,但需要使用者对debug信息比较熟悉。所以这里介绍针对上面三种情况的一般检测方法。
1. IPsec VPN隧道无法建立
检测方法:使用show cry ike proposal <string>和sh cry ipsec proposal <string>命令查看ike和ipsec的策略两端是否相同。使用sh cry policy <string>查看两端数据流是否匹配。
2. IPsec隧道建立但无法访问远端内部网络
检测方法:sh ip esp查看是否有in和out的数据;查看访问列表是否deny了受保护的数据流。
3. IPsec隧道时断时连
检测方法:查看物理线路是否时通时断;查看是否有网点冲突。
3.2 IPsec VPN常见故障处理
故障一:IPsec VPN隧道无法建立
可能的原因
判断方法和解决方案
1.两端VPN设备无法互通
1. 从一端VPN设备ping另外一端,看是否能否ping通。如果不通,首先检查网络连接情况。
2.两端VPN可以ping通,但是相互收不到IKE协商报文
1. 检查VPN是否配置ACL或者前端是否有防火墙,禁止了IKE协商报文,需要在ACL或者防火墙上开放UDP500/4500端口;
2. 检查发起方VPN的内网口是否UP,特别是3005C-104以SW接口作为内网口,LAN口上没有接PC,SW口无法UP,将导致扩展ping不通对端。
3.两端VPN采用证书认证方式,但是没有证书或者证书无效;采用预共享密钥方式认证没有配置密码
1. 通过show cry ike sa查看IKE隧道状态没有任何信息;
2. 打开debug cry ike normal,提示%IKE-ERR: can't initiate, no available authentication material (cert/psk) ;
3. sh crypto ca certificates,查看证书是否有效。
4.两端IKE和IPsec策略不一致
1. 如果采用主模式,查看IKE状态停止在STATE_MAIN_I1,采用积极模式,IKE状态停止在STATE_AGGR_I1,说明可能是两端策略不一致,通过show cry ike proposal和show cry ipsec proposal查看两端策略是否相同;
2. 打开debug cry ike normal,提示ignoring notification payload, type NO_PROPOSAL_CHOSEN 。
5.两端VPN设备配置了ID不是IP地址作为身份标识,而是域名或者其他,但是采用IKE协商采用主模式
1. 查看IKE KEY配置了identity,但是tunnel配置中配置了set mode main;
2. 查看IKE状态停止在STATE_MAIN_I1状态。
6.对端VPN设备配置错误ID或者没有配置ID
1. 查看IKE KEY配置了identity,但是tunnel配置中没有配置ID;
2. 查看IKE状态停止在STATE_AGGR_I1状态;
3. 有%IKE-ERR: Aggressive Mode packet from 20.0.0.2:500 has invalid ID报错。
7.两端VPN设备不支持NAT穿越
1. 如果采用主模式,查看IKE状态停止在STATE_MAIN_I2状态,说明有可能VPN不支持NAT穿越,我们VPN默认支持,一般可能其他厂家VPN不支持。
8.两端VPN设备预共享密钥不一致
1. 如果采用主模式,查看IKE状态停止在STATE_MAIN_I3状态,说明有可能两端VPN预共享密钥配置不一致;
2. 通过show run cry key查看两端的KEY是否相同。
9.两端保护数据流不匹配
1. 查看IKE状态停止在STATE_QUICK_I1状态,说明有可能两端VPN预共享密钥配置不一致;
2. 通过show cry ipsec sa查看没有ipsec隧道;
3. 日志中有报错:%IKE-ERR: cannot respond to IPsec SA request for instance-65666: 30.0.0.0/8:0/0 === 20.0.0.2 (20.0.0.2)... 20.0.0.1 (20.0.0.1)=== 192.168.0.0/16:0/0
& 注:
IKE第一阶段采用积极模式,因为积极模式进行IKE协商同时传送与SA、密钥交换和认证相关的载荷,所以一般IKE的错误都将导致IKE SA的状态为STATE_AGGR_I1。因此上述对IKE第一阶段问题判断基本都是基于主模式。
故障二:VPN隧道通,无法办理业务
可能的原因
判断方法和解决方案
1.业务数据走NAT,没有走VPN隧道
1. 设备配置了NAT转换,访问列表没有将VPN的业务数据deny,可以查看访问列表来判断;
2. 可以通过show cry ipsec sa或者show ip esp查看output的数据一直没有增加;
3. 修改访问列表,拒绝VPN数据走NAT转换。
2.要访问服务器没有路由指向对端VPN网关或者网关设置不对
1. 在中心端VPN设备上ping服务器看能否ping通;
2. 第一步可以ping通,则可以在客户端VPN设备上通过show cry ipsec sa或者show ip esp查看output的数据有增加,但是input的数据一直没有增加,在中心端VPN设备相反,有input的数据,但是没有output;
3. 设置服务器对应的下端网段路由应该指向中心IPsec VPN设备的内网口。
3.线路PMTU导致大数据包丢弃
1. 某些业务软件(例如一些财务软件或者登陆需要下载大量数据的应用程序)可以出现登陆界面,但是输入用户名密码后一直没有反应;
2. 客户端采用默认ping包可以ping通服务器,ping大包不通;
3. 可以修改服务器网卡的MTU=线路PMTU。
故障三:VPN时通时断
可能的原因
判断方法和解决方案
1.公网连接不稳定
1. 通过ping测试检测物理线路问题;
2. 直接用PC接在公网线路测试看看是否会断;
3. 如果是动态拨号,可以更改idle-timeout为0。
2.某次线路故障造成两端的IPsec SA不能够同步
1. 查看两端VPN设备是否关闭了DPD;
2. 通过show cry ipsec sa查看两端SPI是否不相同;
3. 在两端手工清除隧道重新建立或者设置DPD解决不同步问题。
3.分支机构VPN配置重复
1. 隧道时断时连表现为当只有一个下端的时候一切正常,但当第二个或某个特定下端连接上来的时候,出现只有一个能正确建立IPsec隧道或时断时连;
2. 在中心VPN设备检查某个分支机构不能建立VPN隧道时却有相关的IPsec数据流;
3. 可以在分支机构VPN上更换网段测试或者配置使用积极模式,配置不通的标识ID。
3.3 IPsec VPN SA状态信息说明
在进行VPN故障排除过程中,经常要查看IPsec VPN SA状态,这里有必要对SA显示信息做以说明,以便排查问题。
正常情况下,每个分支结构对应两条IKE SA条目,且一般分支机构都是VPN发起方。当我们在分支机构VPN的特权模式下,键入show crypto ike sa后,显示IKE SA信息如下:
localaddr peeraddr peer-identity negotiation-state sa-id
20.0.0.1 20.0.0.2 20.0.0.2 STATE_QUICK_I2 346
20.0.0.1 20.0.0.2 20.0.0.2 STATE_MAIN_I4 345
1、localaddr:发起IKE SA的本端地址,这里为公网接口地址;
2、peeraddr:IKE SA的对端地址,为对端VPN的公网接口地址;
3、peer-identity:对端标识,如果采用证书方式,显示为CN=xxxx;
4、negotiation-state:隧道状态,IKE第一阶段协商分主模式和积极模式,主模式为MAIN,积极模式为AGGR,本例第一阶段采用主模式,IKE第二阶段协商都是QUICK模式。关键字“I”代表IKE发起方,相应方用“R”表示;
5、sa-id:SA的ID号。
& 注:
IKE的状态根据发起方和相应方状态有所区别,根据IKE第一阶段采用模式也有所区别,发起方正常情况状态,主模式时为STATE_QUICK_I2和STATE_MAIN_I4,积极模式时为STATE_QUICK_I2和STATE_AGGR_I2。相应正常情况状态,主模式时为STATE_QUICK_R2和STATE_MAIN_R3,积极模式时为STATE_QUICK_R2和STATE_AGGR_R2。
当在VPN的特权模式下,键入show crypto ipsec sa后,显示IPsec SA信息如下:
VPN#show crypto ipsec sa
1 policy name : p
2 f (src, dst, protocol, src port, dst port) : 192.168.0.0/22 30.0.0.0/8 ip any any
3 local tunnel endpoint : 20.0.0.1 remote tunnel endpoint : 20.0.0.2
4 the pairs of ESP ipsec sa : id : 18933, algorithm : DES HMAC-SHA1-96
5 inbound esp ipsec sa : spi : 0X562f2161(1445929313)
6 current input 0 packets, 0 kbytes
7 encapsulation mode : Tunnel
8 replay protection : ON
9 remaining lifetime (seconds/kbytes) : 1244/4608000
10 uptime is 7 hour 39 minute 16 second
11 outbound esp ipsec sa : spi : 0Xd2a40215(3533963797)
12 current output 0 packets, 0 kbytes
13 encapsulation mode : Tunnel
14 replay protection : ON
15 remaining lifetime (seconds/kbytes) : 1244/4608000
16 uptime is 7 hour 39 minute 16 second
显示信息内容
1 IPsec策略名称
2 源网段、目的网段、协议、源端口和目的端口
3 显示隧道的本地公网地址为和对端公网地址
4 显示隧道为ESP模式,ID号为18933,使用算法为DES HMAC-SHA1-96
5 显示inbound的SPI号为0X562f2161(1445929313)
6 显示隧道入方向的接收到的数据包个数和字节数
7、13 显示封装模式为隧道模式
8、14 重放保护状态为开启
9、15 显示隧道的lifetime,以时间为单位和以字节数为单位表示
10、16 显示隧道建立时间
11 显示inbound的SPI号为0Xd2a40215(3533963797)
12 显示隧道出方向的发送的数据包个数和字节数
3.4 调试命令参数解释
n debug crypto ike命令
【命令说明】
打开IKE调试开关
【命令格式】
vpn#debug crypto ike {all | crypt | dns | downloaded-script | emitting | event | kernel | lifecycle | natt | normal | parsing | private | raw | syslog}
vpn#no debug crypto ike {all | crypt | dns | downloaded-script | emitting | event | kernel | lifecycle | natt | normal | parsing | private | raw | syslog}
【参数说明】
参数
描述
all
所有IKE调试信息
crypt
IKE算法相关的调试信息
dns
IKE协商过程中与DNS相关的调试信息
downloaded-script
配置下载过程的调试信息
emitting
IKE协商过程中发出报文的详细内容
event
IKE的时钟事件相关调试信息
kernel
IKE与内核之间的调试信息
lifecycle
IKE协商过程中与生存期相关的调试信息
natt
IKE协商过程中与NAT穿越相关的调试信息
normal
IKE协商过程中通常使用的调试信息
parsing
IKE协商过程中接收到的报文内容调试信息
raw
IKE协商报文的原始内容调试信息
syslog
IKE发送给SYSLOG服务器的调试信息
n debug crypto ipsec …命令
【命令说明】
显示IPsec 调试信息
【命令格式】
vpn#debug crypto ipsec {all | normal | pfa | ipcomp | address [tx|rx] | packet [tx|rx] |fragment}
vpn#no debug crypto ipsec
【参数说明】
参数
描述
all
打开所有IPsec调试信息
normal
打开通常使用IPsec调试信息
pfa
打开IPsec PFA的调试信息
ipcomp
打开IPComp的调试信息
address [tx|rx]
打开IP报文地址调试信息,tx:显示外出报文地址信息,rx:显示内入报文地址信息,不指定则显示双向地址信息。
packet [tx|rx]
打开IP报文内容调试信息,tx:显示外出报文内容信息,rx:显示内入报文内容信息,不指定则显示双向内容信息。
fragment
打开IP报文为分片时调试处理信息
【配置模式】特权用户模式
3.5 IKE错误信息(以下只是信息的关键语句)及原因
信息
原因
信息1:
00:24:20: %IKE-DBG-received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-03]
00:24:20: %IKE-DBG-ignoring Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02]
00:24:20: %IKE-DBG-ignoring Vendor ID payload [draft-ietf-ipsec-nat-t-ike-00]
00:24:20: %IKE-DBG-received Vendor ID payload [Dead Peer Detection]
00:24:20: %IKE-ERR-no acceptable Oakley Transform
由于对方提议的SA载荷中的变换算法(如加密算法)与本地策略不符,因而拒绝对方的协商请求,协商失败,删除产生的状态信息
信息2:
00:26:24: %IKE-ERR-next payload type of ISAKMP Identification Payload has an unknown value: 201
00:26:24: %IKE-ERR-probable authentication failure (mismatch of preshared secrets?): malformed payload in packet
预共享密钥不匹配,就必然导致双方使用的加密密钥和验证密钥不相同,从而引起解密失败(出现的现象是发现接收到的ISAKMP消息格式不正确)
信息3:
00:35:51: %IKE-DBG-sending encrypted notification NO_PROPOSAL_CHOSEN to 128.255.40.223:500
双方关于进行IPsec封装所采用的算法或协议没有达成一致,就会导致快速模式协商失败
信息4:
00:38:53: %IKE-ERR-requested flow is not matched by any flow of ours, not accepted
00:38:53: %IKE-ERR-cannot respond to IPsec SA request for instance-65545: 1.1.1.0/24:0/0 === 128.255.40.222 (128.255.40.222)... 128.255.40.223 (128.255.40.222)=== 2.2.2.0/24:0/0
双方就提议的受IPsec保护的数据流进行协商不一致就直接导致协商失败
信息5:
2w3d:22:41:26: %IKE-ERR: we require peer to have ID '3005B', but peer declares '20.0.0.2'
2w3d:22:41:26: %IKE-ERR: Aggressive Mode packet from 20.0.0.2:500 has invalid ID
对端ID无效导致IKE协商失败
展开阅读全文