现在很多企业员工需要居家、外勤接入内部办公系统,经常遇到VPN连不上、连上之后访问OA和业务系统卡顿的问题,很多管理员第一反应去排查VPN服务端配置,却忽略了底层网络环境不符合企业远程访问VPN协议的运行要求,本文从实际故障排查的场景出发,逐项拆解不同VPN协议正常运行必须满足的网络环境条件,帮运维人员快速定位连接异常的根因。
公网链路基础连通性排查
很多运维人员排查VPN故障的第一步直接跳转到协议端口检测,其实首先要确认两端的基础公网链路没有被运营商层面拦截。先在客户端侧用普通网页访问、普通文件下载的方式确认本地公网本身没有断连,没有被运营商限制通用的出站连接权限,避免后续所有排查动作都建立在本地网络本身故障的前提下。
接下来要确认VPN服务端所在的企业侧公网链路,没有配置运营商层面的端口封禁、NAT超限限制,部分企业租用的低带宽非商用公网线路,运营商默认会封禁大量常用VPN协议对应的端口,直接导致协议握手报文无法传递,这个阶段的预期结果是两端公网普通TCP、UDP出站入站访问都没有全局拦截,没有链路层面的持续性丢包中断。

运维人员分别从企业服务端侧和远程客户端侧排查VPN公网基础链路连通性
不同VPN协议对应的端口与报文放行规则校验
不同的企业远程访问VPN协议,对应的传输报文特征完全不同,不能用统一的放行规则适配所有协议。比如常用的IPsec VPN协议,除了常规的500、4500端口之外,还需要放行ESP协议对应的IP协议号50,很多企业边界防火墙只开了对应端口的TCP规则,漏掉了IP层的协议放行,就会出现VPN握手到一半直接中断的现象。
如果用的是SSL VPN协议,需要确认客户端侧的本地防火墙、家用路由器没有拦截对应SSL VPN服务端口的TCP出站报文,部分家用路由器内置的防攻击规则,会把连续的SSL握手报文判定为异常流量直接丢弃,蓝莓VPN下载导致客户端反复发起连接请求都得不到服务端响应。
这个排查步骤的预期结果是,从客户端到VPN服务端的全链路所有网络设备,包括中间经过的运营商路由节点、客户端侧的个人防火墙、企业侧的边界防火墙,都没有对对应VPN协议的报文做拦截、限速处理,所有协议报文都能正常双向传递。
NAT穿越环境的兼容性检查
超过九成的远程访问VPN客户端都处于内网NAT之后,不管是员工家里的家用路由器NAT,还是外勤场景下公共WiFi的运营商级NAT,都需要确认对应的VPN协议支持对应的NAT穿越能力,同时网络环境没有限制NAT端口映射的超时时间。
很多企业遇到的VPN连接之后几分钟就自动断连的问题,大部分原因都是客户端侧的NAT网关设置的UDP会话超时时间过短,在VPN协议没有及时发送保活报文的情况下,对应的NAT映射条目被网关直接清除,后续的报文无法路由回客户端。排查的时候可以先在客户端侧抓包,确认VPN的保活报文能正常发送到服务端,同时调整VPN协议的保活报文发送间隔,适配当前NAT网关的超时规则。
这个步骤的常见误区是很多管理员以为只要开了IPsec的NAT穿越选项就万事大吉,实际上部分运营商级的对称NAT环境下,普通的NAT穿越规则依然无法建立映射,这种场景下需要更换适配性更强的SSL VPN协议,或者调整VPN服务端的部署位置,避免服务端本身也处于多层NAT之后。
网络环境的路由与隐私边界合规校验
很多企业没有意识到,部分远程访问客户端所处的网络环境,本身存在流量劫持、中间人代理的规则,会直接修改VPN协议的握手报文内容,导致VPN隧道无法正常建立。比如部分公共WiFi环境下的强制门户代理,会拦截所有非浏览器的出站连接,VPN报文被重定向到认证页面,自然无法完成握手流程。
还要确认VPN隧道建立之后,两端的路由规则没有冲突,不能出现VPN分配的内网虚拟网段,和客户端本地所处的内网网段地址段重合的情况,否则客户端的路由表会出现路由冲突,访问内部业务系统的报文直接被路由到本地内网,根本走不上VPN隧道。
这个排查步骤的预期结果是,客户端侧没有全局的流量代理规则拦截VPN报文,两端的内网网段没有地址重叠,蓝莓VPNVPN隧道的路由转发规则可以正常把访问企业内网的流量引导到隧道内,不会出现路由错发的情况。
很多企业远程访问VPN的连接故障,本质上都不是VPN服务端本身的功能问题,而是底层网络环境没有满足对应协议的运行前提,按照上述步骤逐项排查,基本可以覆盖绝大多数非硬件故障的VPN连接异常场景,不需要盲目更换VPN设备或者调整复杂的加密配置。
蓝莓VPN 

