IPSec ×××不通
介绍了IPSec ×××不通时的故障处理方法。
现象描述
如图1所示,管理员希望在NGFW_A和NGFW_B之间建立IKE方式的IPSec隧道,使网络A和网络B的用户可以通过IPSec隧道互相访问。
图1 IPSec ×××不通组网图
配置完成后,发现网络A和网络B的用户不能相互访问。
可能原因
流量未匹配ACL规则
两端设备的IKE安全提议配置不一致
两端设备的IKE版本不同
对端IP地址或对端域名配置错误
两端设备的预共享密钥配置不一致
未启用NAT穿越功能
两端设备的IPSec安全提议配置不一致
两端设备的PFS功能配置不一致
IPSec安全策略顺序号配置错误
IPSec安全策略应用在错误的接口上
SA超时时间配置过小
路由配置错误
安全策略配置错误
NAT策略配置错误
没有清除旧的或已经存在的SA(安全联盟)
处理步骤
流量未匹配ACL规则
执行命令display acl acl-number,查看流量是否匹配了IPSec的ACL规则。
[NGFW_A] display acl 3010 Advanced ACL 3010, 1 rule Acl's step is 5 rule 5 permit ip source 10.1.0.0 0.0.255.255 destination 10.2.0.0 0.0.255.255 (0 times matched)
如上信息所示,命中次数为0表示流量没有命中IPSec的ACL规则,不会触发建立IPSec隧道。这时要检查源地址和目的地址是不是符合实际数据流的信息。
建议IPSec隧道两端配置的ACL规则互为镜像。配置为镜像不是必要条件,不过实际应用中配置成镜像更简单也不易出错,如下所示。
NGFW_A的ACL规则:
# acl number 3010 rule 5 permit ip source 10.1.1.0 0.255.255.255 destination 10.2.1.0 0.255.255.255
NGFW_B的ACL规则:
# acl number 3010 rule 5 permit ip source 10.1.2.0 0.255.255.255 destination 10.1.1.0 0.255.255.255
两端设备的IKE安全提议配置不一致
分别在NGFW_A和NGFW_B上执行命令display ike proposal,查看两台设备的IKE安全提议配置是否一致,包括加密算法(authentication algorithm)、认证算法(encryption algorithm)和DH组标识(Diffie-Hellman group)等。
[NGFW_A] display ike proposal priority authentication authentication encryption Diffie-Hellman duration method algorithm algorithm group (seconds) --------------------------------------------------------------------------- 10 PRE_SHARED SHA2-256 AES MODP_1024 86400 default PRE_SHARED SHA2-512 256-AES MODP_1024 86400
如果两台设备的IKE安全提议配置不一致,可以执行以下命令将不一致的参数配置一致。
对端IP地址或对端域名配置错误
分别在NGFW_A和NGFW_B上执行命令display ike peer [ brief [ ipv6 ] | name peer-name ],查看对端IP地址是否配置正确。
[NGFW_A] display ike peer name a--------------------------- IKE peer: a Exchange mode: main on phase 1 Pre-shared key: %$%$%8vDH)RfuV)P\g7NMA4I6g^U%$%$ Local certificate file name: Peer certificate file name: Proposal: Local ID type: IP Local ID: Remote IP: 2.2.2.2 ××× instance: root Authentic IP address: IP address pool: User table: 1 Remote ID type: IP Peer name: Peer domain name: Eap-auth domain: ××× instance bound to the SA: root NAT traversal: disable SA soft timeout buffer time: IKEv1 bind Phase1-Phase2 SA: enable ---------------------------
Peer IP address的地址必须与对端发起IKE协商的地址,即发起协商的接口地址或local-address指定的地址相同。Peer IP address的地址需要执行remote-address进行配置。
两端设备的预共享密钥配置不一致
管理员需要确保IPSec ×××隧道两端的设备输入的预共享密钥一致。
输入预共享密钥错误会导致IPSec ×××隧道不能正常建立。在NGFW上输入预共享密钥后,密钥会以密文的形式显示,这就使管理员无法判断密钥是否输入正确。
因此当IPSec ×××隧道无法建立时,重新输入预共享密钥以确保其正确是一个常见的故障解决方法。
未启用NAT穿越功能
分别在NGFW_A和NGFW_B上执行命令display ike peer [ brief [ ipv6 ] | name peer-name ],查看NAT穿越功能是否启用。
[NGFW_A] display ike peer name a--------------------------- IKE peer: a Exchange mode: main on phase 1 Pre-shared key: %$%$%8vDH)RfuV)P\g7NMA4I6g^U%$%$ Local certificate file name: Peer certificate file name: Proposal: Local ID type: IP Local ID: Remote IP: 2.2.2.2 ××× instance: root Authentic IP address: IP address pool: User table: 1 Remote ID type: IP Peer name: Peer domain name: Eap-auth domain: ××× instance bound to the SA: root NAT traversal: disable SA soft timeout buffer time: IKEv1 bind Phase1-Phase2 SA: enable ---------------------------
NAT穿越功能允许×××流量穿越NAT设备,例如路由器等。如果没有启用NAT穿越功能,×××客户端的用户通常只能连接到NGFW,但是他们不能访问NGFW后面的内部网络。
NAT穿越功能默认开启,建议保持开启状态。
两端设备的IPSec安全提议配置不一致
分别在NGFW_A和NGFW_B上执行命令display ipsec proposal [ brief | name proposal-name ],查看两台设备的IPSec安全提议配置是否一致,包括采用的安全协议,安全协议采用的认证算法和加密算法,报文封装模式等。
[NGFW_A] display ipsec proposal IPsec proposal name: 10 encapsulation mode: tunnel transform: ah-esp-new AH protocol: authentication sha2-hmac-256 ESP protocol: not use authentication, encryption aes
如果两台设备的IPSec安全提议配置不一致,可以执行以下命令将不一致的参数配置一致。
两端设备的PFS功能配置不一致
两台设备的PFS功能指定的DH组必须一致,否则IPSec隧道协商失败。
分别在NGFW_A和NGFW_B上执行命令display ipsec policy [ brief | name policy-name [ seq-number | extend-acl ] ],查看两台设备的PFS功能配置是否一致。
[NGFW_A] display ipsec policy =========================================== IPsec Policy Group: "test" Using interface: {GigabitEthernet1/0/1} =========================================== ----------------------------- IPsec policy name: "test" sequence number: 1 mode: isakmp ----------------------------- security data flow : 3010 ike-peer name: a perfect forward secrecy: DH group 2 proposal name: 10 IPsec sa local duration(time based): 3600 seconds sa soft-duration time-based buffer: 0 seconds sa soft-duration traffic-based buffer: 0 kilobytes IPsec sa local duration(traffic based): 1843200 kilobytes
如果不一致执行命令pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 | dh-group15 | dh-group16 } *,修改PFS功能的配置。
IPSec安全策略顺序号配置错误
在NGFW上可以创建多个具有相同名字的IPSec安全策略,这些IPSec安全策略可以组成一个IPSec安全策略组,序号(sequence number)越小优先级越高,接口将优先处理该IPSec安全策略,优先为该IPSec安全策略定义的数据流建立IPSec隧道。因此请确保需要使用的IPSec安全策略的序号(sequence number)最小,拥有最高的优先级。
分别在NGFW_A和NGFW_B上执行命令display ipsec policy [ brief | name policy-name [ seq-number | extend-acl ] ],查看两台设备的IPSec安全策略顺序号。
[NGFW_A] display ipsec policy =========================================== IPsec Policy Group: "test" Using interface: {GigabitEthernet1/0/1} =========================================== ----------------------------- IPsec policy name: "test" sequence number: 1 mode: isakmp ----------------------------- security data flow : 3010 ike-peer name: a perfect forward secrecy: DH group 2 proposal name: 10 IPsec sa local duration(time based): 3600 seconds sa soft-duration time-based buffer: 0 seconds sa soft-duration traffic-based buffer: 0 kilobytes IPsec sa local duration(traffic based): 1843200 kilobytes ----------------------------- IPsec policy name: "test" sequence number: 2 mode: isakmp ----------------------------- security data flow : 3020 ike-peer name: b perfect forward secrecy: None proposal name: 20 IPsec sa local duration(time based): 3600 seconds sa soft-duration time-based buffer: 0 seconds sa soft-duration traffic-based buffer: 0 kilobytes IPsec sa local duration(traffic based): 1843200 kilobytes
执行命令ipsec policy policy-name seq-number isakmp,调整IPSec安全策略的顺序。
IPSec安全策略应用在错误的接口上
IPSec安全策略应用到的接口一定是建立隧道的接口,且该接口一定是到对端私网路由的出接口。误将IPSec安全策略应用到其它接口会导致×××业务不通。如图1所示,IPSec安全策略应该应用在接口GigabitEthernet1/0/1上。
分别在NGFW_A和NGFW_B上执行命令display ipsec policy [ brief | name policy-name [ seq-number | extend-acl ] ],查看IPSec安全策略是否应用在正确的接口上。
[NGFW_A] display ipsec policy =========================================== IPsec Policy Group: "test" Using interface: {GigabitEthernet1/0/1} =========================================== ----------------------------- IPsec policy name: "test" sequence number: 1 mode: isakmp ----------------------------- security data flow : 3010 ike-peer name: a perfect forward secrecy: DH group 2 proposal name: 10 IPsec sa local duration(time based): 3600 seconds sa soft-duration time-based buffer: 0 seconds sa soft-duration traffic-based buffer: 0 kilobytes IPsec sa local duration(traffic based): 1843200 kilobytes
SA超时时间配置过小
如果用户频繁断开连接,原因可能是IKE SA超时时间配置过小。IKE SA超时时间缺省为86400秒。
执行命令display ike proposal,查看IKE SA的超时时间
[NGFW_A] display ike proposal priority authentication authentication encryption Diffie-Hellman duration method algorithm algorithm group (seconds) --------------------------------------------------------------------------- 10 PRE_SHARED SHA2-256 AES MODP_1024 400 default PRE_SHARED SHA2-512 256-AES MODP_1024 86400
如果IKE SA超时时间过小,执行命令sa duration seconds修改SA超时时间。
路由配置错误
路由是部署IPSec ×××隧道的一个重要环节。管理员需要确保NGFW上配置了正确的路由,保证去往对端(分支机构)的流量能够进入IPSec ×××隧道。
如图1所示,NGFW_A的路由配置如下:
# ip route-static 10.1.2.0 255.255.255.0 1.1.1.254
NGFW_B的路由配置如下:
# ip route-static 10.1.1.0 255.255.255.0 2.2.2.254
安全策略配置错误
为了保证IPSec隧道正常建立,以及总部和分支机构间能够正常通讯,需要正确配置安全策略,包Local区域与应用IPSec策略的接口所在区域间的安全策略,以及内网接口所在安全区域与应用IPSec策略的接口所在区域间的安全策略。
如图1所示,安全策略的正确配置如下(以NGFW_A为例):
# 配置从Local到Untrust的域间策略。
# security-policy rule name policy_ipsec_1 source-zone local destination-zone untrust source-address 1.1.1.0 24 destination-address 2.2.2.0 24 action permit
# 配置从Untrust到Local的域间策略。
# security-policy rule name policy_ipsec_2 source-zone untrust destination-zone local source-address 2.2.2.0 24 destination-address 1.1.1.0 24 action permit
# 配置从Trust到Untrust的域间策略。
# security-policy rule name policy_ipsec_3 source-zone trust destination-zone untrust source-address 10.1.1.0 24 destination-address 10.1.2.0 24 action permit
# 配置从Untrust到Trust的域间策略。
# security-policy rule name policy_ipsec_4 source-zone untrust destination-zone trust source-address 10.1.2.0 24 destination-address 10.1.1.0 24 action permit
NAT策略配置错误
配置NAT策略时需要对IPSec保护的数据流不做NAT转换(action no-nat)。
如图1所示,NAT策略的正确配置如下(以NGFW_A为例):
# 对进入IPSec隧道的数据流(源地址为10.1.1.0/24,目的地址为10.1.2.0/24)不进行NAT转换。
# nat-policy rule name no_nat source-zone trust destination-zone untrust source-address 10.1.1.0 24 destination-address 10.1.2.0 24 action no-nat
没有清除旧的或已经存在的SA(安全联盟)
清除IKE SA(reset ike sa)和IPSec SA(reset ipsec sa)是最简单和常见的解决IPSec ×××故障的方法。当管理员修改或增加IPSec配置后,一般都需要清除旧的或已经存在的SA。