远程办公

IPsecVPN部署运行需满足哪些网络环境要求

不少企业在部署IPsec VPN实现跨站点内网互联的时候,经常遇到隧道协商失败、传输丢包严重、业务访问异常等问题,反复核对两端的加密算法、密钥生命周期等配置项都找不到错误,实际上绝大多数这类故障的根源都来自底层网络环境没有满足IPsec VPN的运行要求。接下来我们从故障排查的视角逐项梳理部署运行需要校验的网络环境条件,帮助管理员快速定位问题根源,避免在配置调试上做无用功。

基础公网连通性与协议端口放行校验

很多管理员配置完两端的IPsec策略,梯子触发流量之后隧道一直卡在第一阶段协商失败,系统日志持续提示对端无响应,这类现象的首要排查方向就是底层公网连通性是否达标。

首先要确认IPsec VPN两端的网关设备,各自的出口公网地址之间没有运营商层面的路由黑洞,先在两端内网侧直接ping对端的公网出口IP,确认基础的三层连通性正常,如果公网层面都无法直接互访,要先解决跨公网的路由可达问题,不要急着调整VPN的加密协商参数。

还要确认两端的中间网络,包括运营商侧的防火墙、本地出口的安全网关,没有拦截IPsec依赖的核心协议:UDP 500端口用于IKE协商过程,UDP 4500端口用于NAT穿越场景,ESP协议(协议号50)、AH协议(协议号51)不能被中间设备当成未知流量直接丢弃,就算所有端口都放通,只要ESP报文被拦截,IPsec隧道也无法完成封装传输。

运维排查场景IPsecVPN网络环境要求 | FAN

运维人员正在逐一校验IPsec VPN部署所需的公网连通性与端口放行条件

NAT环境适配的前置条件确认

部分场景下第一阶段协商能正常完成,但是第二阶段安全联盟一直无法建立,或者隧道建好之后只能传输小体积的控制报文,大流量传输直接断流,这类问题很多是两端的NAT配置不符合IPsec VPN的运行要求。

首先要确认至少有一端的IPsec VPN网关拥有可直接访问的公网IP,如果两端都处于多层运营商NAT后面没有公网地址映射,没有办法直接发起IKE协商,这种场景下必须额外部署支持IPsec穿透的中继节点,不能直接建立站点到站点的IPsec隧道。

如果其中一端的VPN网关部署在内网NAT后面,必须在前端的出口网关上配置准确的端口映射,把UDP 500、UDP 4500的流量全量映射到内网的VPN网关地址,FAN同时不能对发往对端VPN公网地址的ESP、AH报文做二次NAT转换,不然封装后的报文源地址会出现混乱,对端收到之后无法识别完成解封装。

网络拓扑的路由规则合规检查

还有一类常见故障是隧道协商完全正常,但是两端内网的业务系统完全无法互相访问,直接ping对端内网地址也没有响应,这类问题大多是路由层面没有满足IPsec VPN的转发要求。

首先要在两端的VPN网关上配置明确的感兴趣流规则,梯子也就是指定哪些内网网段的流量需要走IPsec隧道封装,不能直接把默认路由指向IPsec隧道接口,不然所有普通公网流量都会被错误封装,导致站点本身的上网业务完全中断。

还要提前确认两端内网的私有网段没有出现重叠,如果站点A的内网网段和站点B的内网网段完全一致,封装后的报文到达对端之后,路由转发会出现地址冲突,业务流量会直接被转发到本地内网,根本不会走隧道返回,这种情况必须提前调整其中一端的内网IP段规划,从根源上避免地址冲突。

中间传输链路的MTU适配要求

部分场景下隧道能稳定建立,小体积的ping包、控制报文传输完全正常,但是传输大文件、加载大体积业务页面的时候直接卡住,连接无响应,这类异常大多和传输链路的MTU设置不符合IPsec VPN的封装特性有关。

IPsec的ESP封装会在原始的IP报文外面额外增加新的IP头、ESP头和ESP尾,整个报文的大小会比原始报文多出一部分,如果中间链路的MTU值比封装后的报文最大长度还要小,同时报文本身开启了不分片标记的话,报文就会被中间节点直接丢弃,梯子业务传输就会出现间歇性异常。

排查的时候可以在两端内网用不同大小的报文测试ping对端内网地址,逐步调整报文大小找到能正常传输的最大数值,之后在VPN网关上调整对应的TCP MSS值,避免报文在传输过程中被丢弃,就能保证大流量业务的稳定传输。

很多管理员部署IPsec VPN的时候只盯着两端的加密策略配置,完全忽略底层网络环境的前置校验,花大量时间排查加密算法、密钥有效期这类配置项,反而找不到问题根源,按照上述步骤逐项检查网络环境的适配性,就能快速定位绝大多数IPsec VPN部署初期的故障。

网络加速编辑组 - FAN
网络加速编辑组
内容编辑

从延迟、抖动和丢包入手,分析不同网络环境下的连接体验。

查看更多文章
连接指南

找到适合当前设备的指南

按设备、场景与故障现象查找资料,逐步理解 VPN 与网络加速的使用方法。