通过DEBUG快速定位IPSEC故障
一、故障现象
XX银行开发测试网络出口防火墙与人民银行间IPSec VPN中断,业务访问不通。
二、排查过程
由于前期业务访问正常,由此怀疑可能是由于两端设备配置发生了改动。首先检查配置,经了解两端配置近期均未做变更。通过display ike sa查看,显示IKE SA未成功建立。
在出口防火墙上通过debug ike all 分析IKE SA建立过程,
*Sep 21 11:12:06:492 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: received message:
*Sep 21 11:12:06:492 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: ICOOKIE: 0x3230125f3570a468
*Sep 21 11:12:06:493 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: RCOOKIE: 0x68aca08236bbce11
*Sep 21 11:12:06:493 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: NEXT_PAYLOAD: HASH
*Sep 21 11:12:06:493 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: VERSION: 16
*Sep 21 11:12:06:494 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: EXCH_TYPE: INFO
*Sep 21 11:12:06:494 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: FLAGS: [ ENC ]
*Sep 21 11:12:06:494 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: MESSAGE_ID: 0xb597c8e4
*Sep 21 11:12:06:495 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: LENGTH: 76
*Sep 21 11:12:06:495 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: parse payloads: payload HASH
*Sep 21 11:12:06:496 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: parse payloads: payload NOTIFY
*Sep 21 11:12:06:496 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: validate payload HASH
*Sep 21 11:12:06:496 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: validate payload NOTIFY
*Sep 21 11:12:06:497 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: DOI: IPSEC
*Sep 21 11:12:06:497 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: PROTO: ISAKMP
*Sep 21 11:12:06:497 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: SPI_SZ: 16
*Sep 21 11:12:06:498 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: MSG_TYPE: INVALID_CERTIFICATE
*Sep 21 11:12:06:498 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: exchange setup(R): 306c2d0
*Sep 21 11:12:06:498 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: exchange check: checking for required INFO
*Sep 21 11:12:06:499 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: got NOTIFY of type INVALID_CERTIFICATE
*Sep 21 11:12:06:499 2018 ZYZX_Wai_FW1000 IKE/7/DEBUG: recv notify message of type INVALID_CERTIFICATE
通过以上DEBUG报错信息可以看出是由于证书无效导致IKE SA无法正常建立,
在防火墙上通过display pki certificate local domain renhang查看证书信息,人民银行签发的本地证书有效期为一年且已过期,向人民银行重新申请并导入新证书后业务恢复正常。
三、总结分析
解决IPSec VPN问题使用debug可以快速帮助我们定位故障点,通过查看debug信息,根据协商时的出错信息,进而缩小错误的范围。
主模式协商有6条报文的交互。这6条报文的交互是有规律的。将6条报文拆开,分别是“1和2”,“3和4”,“5和6”三对报文。IKE的debug信息十分明确。信息的发送和接收的标识分别是Sending和Received。
其中,第1、2条报文的“next payload”是“SA”,SA协商阶段,主要包括双方的加密算法,认证算法,身份认证方法,DH组,生存时间等信息,与第三方设备对接时,生存周期不同可能也会导致IKE建立失败。
第3、4条的是“KE”,密钥交换阶段,此阶段中KE为包含了用于Diffie-Hellman交换的公共信息的密钥交换负载。通过这一阶段的交换,根据DH算法就可计算出一个只有双方知道的共享密钥。
第5、6条的是“ID”,此阶段中ID值为双方的身份信息,即peer中的地址,或者名字,HASH用于双方的身份验证。
2018年11月