防火墙IPsec VPN建立失败

2026-03-20发表
  • 0收藏

描述

问题描述:

防火墙IPsec VPN无法建立或IPsec VPN功能异常。

 

解决方法:

本类故障的常见原因主要包括:

—   主机到IPsec网关路由不可达,IPsec网关之间路由不可达,IPsec网关上到达对端主机所在网段的路由配置不正确;

—   安全域之间的安全策略配置不正确;

—   IPsec两端对等体关键配置不一致,如IKE profileIKE proposal等;

—   IPsec两端对等体感兴趣流配置不正确或不互为对称流量。

 

1、查看隧道两端设备互通情况

要想保证IPSec VPN隧道建立成功,首先需要保证隧道两端设备通信正常,IKE协议报文(UDP端口500或者4500)能够正常交互。先查看两端VPN设备的路由或者通过ping等手段测试网络互通情况,然后检查对端设备及中间防火墙的配置确保UDP 500或者4500端口开放。在本地可以通过抓包或者debug IKE的方法确认是否收到对端设备发送的IKE报文,但是如果设备配置多个IKE Peer时,不建议采用debug IKE的方法。

命令:ping x.x.x.x

 

2、检查公网路由

如果不能ping通隧道对端地址,或者无法收到对端发送的IKE报文,需要检查两端设备之间的路由和安全策略配置。不同设备的安全策略配置不同,具体参考对应设备的配置手册。

命令:display ip routing-table x.x.x.x

例如:通过命令查看本地设备到达隧道对端地址60.191.99.142的路由是否正常。

 

3、检查感兴趣流

IPsec隧道可以保护匹配ACL的报文,将引用了ACLIPsec安全策略应用到接口上后,该接口上匹配ACL的报文将会受到IPsec保护。这里的接口包括以太网接口等实际物理接口,以及TunnelVirtual Template等虚接口(loopback口除外)。只要接口发送的报文与该接口上应用的IPsec安全策略中的ACLpermit规则匹配,就会受到出方向IPsec SA的保护并进行封装处理。接口接收到目的地址是本机的IPsec报文时,首先根据报文头里携带的SPI查找本地的入方向IPsec SA,由对应的入方向IPsec SA进行解封装处理。解封装后的IP报文若能与ACLpermit规则匹配上则采取后续处理,否则被丢弃。因此在配置IPSec协商保护的感兴趣流时,两端要保持一致,否则可能会影响IPSec SA的协商。通过命令行display ipsec policy可以查看ipsec保护的感兴趣流,如下图所示。

 

4、查看IKE SA

查看VPN设备上IKE第一阶段和第二阶段SA是否建立正常。

命令:display ike sa {verbose}

例如:通过命令查看,可以确认IKE第一阶段和第二阶段的SA已经正常建立。

 

5、查看IPSec SA

如果IPSec SA是通过手工建立的,需要仔细查看两端设备SA的相关参数配置是否正确,如果IPSec SA是通过IKE协议动态协商的,那么需要查看两端IPSec SA是否已经建立,并检查两端SASPI、保护的数据流等信息是否匹配。正常情况下两端设备的InboundOutbound SA是相互对应的,保护数据流(flow)的源目的地址也是相反的。

命令:display ipsec sa {brief|remote}

例如:通过命令查看,可以确认IPSec VPNSA已经正常建立,SPI和保护的数据流(FLOW)都是正确的。

 

6、检查IKE配置

检查VPN隧道两端设备IKE相关配置是否正确,包括ike local-nameike proposal以及ike peer等配置。

命令:display current-configuration

      display ike proposal

      diplay ike peer

例如:通过命令查看ike local-nameike proposalike peer等相关配置是否正确。

 

7、检查IPSec 配置

查看隧道两端设备IPSec策略的封装模式、加密及认证方式是否一致,保护的数据流是否对应,以及IPSec策略是否正确下发等内容。

命令:display acl number

display ipsec transform-set

      display ipsec policy 

      display current-configuration interface

例如:通过命令查看IPSec ACL、安全协议、加密认证算法等相关配置。

 

8、检查私网路由

私网路由就是指被IPSec VPN保护的数据流的路由,主要是查看两端VPN设备到站点之间的路由是否正常,VPN设备上到对端私网的路由是否从配置IPSec策略的接口出去等信息。

命令:display ip routing-table

例如:通过命令查看,可以确认VPN设备到达本端私网网段192.168.1.0/24的路由正常,到达对端私网网段192.168.2.0/24的路由也已经存在,而且出接口就是下发IPSec VPN策略的接口。

 

9、检查域间策略或者包过滤配置

在某些情况下有可能会在设备上配置IPSec VPN的同时也配置了相关包过滤或者域间策略等功能,为了保证IPSec VPN隧道能够正常建立和通信,需要在配置包过滤策略时允许IPSec VPN的协议报文以及加解密后的数据报文通过。

命令:display current-configuration

例如:以防火墙为例,设备配置了UntrustTrust的域间策略并允许所有报文通过,所以不会阻断IPSec VPN的协议报文及加密后的数据报文。

 

10、检查协商交互过程

如果两端设备建立IPsec隧道数目较少,并且流量不大的情况下,可以在设备上开启debugging ike alldebugging ipsec all查看协商过程交互的调试信息。如果是在设备上建立多个IPsec隧道的情况下,打开debug调试时最好指明对端的remote-address,否则大量的debug信息可能会对设备的性能造成较大的冲击,影响设备的使用。本文就第二阶段debug调试主要用到的调试命令如下:

<FW>debugging ike all

<FW>debugging ipsec all

<FW>t m

<FW>t d

例如:在设备上开启一阶段debugging ike all调试信息和二阶段debugging ipsec all的调试信息,如下图所示。

通过display ike sa查看一阶段SA已经建立,并且Flag状态为RD的情况下,此时display ipsec sa查看二阶段SA是否建立,如果没有信息,需要首先检查IPsec安全提议,IPsec安全提议是IPsec安全策略的一个组成部分,它用于定义IPsec需要使用的安全协议、加密/认证算法以及封装模式,为IPsec协商SA提供各种安全参数。通过display ipsec transform-set命令检查两端设备配置的加密算法和认证算法是否一致,如果两端配置的加密算法和认证算法参数不一致,那么需要对IPsec安全提议进行修改,但是对已协商成功的IPsec SA,新修改的安全提议并不起作用,即仍然使用原来的安全提议,只有新协商的SA使用新的安全提议。若要使修改对已协商成功的IPsec SA生效,则需要执行reset ipsec sa命令之后重新触发新的ipsec sa生成。

还有一种情况:当两端设备配置的加密算法和认证算法一致,PFS算法不一致时,可能会出现Failed to negotiate IPsec SA的报错,这是因为IKEv1协商时发起方的PFS强度必须大于或等于响应方的PFS强度,否则协商会失败。如果采用IKEv2则不受该限制。

 

更多排查思路及正确配置可参考防火墙产品维护宝典IPsec篇:

https://www.h3c.com/cn/d_202405/2141461_30005_1.htm



提出建议

    +

亲~登录后才可以操作哦!

确定

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作