很多企业部署跨地域的站点到站点VPN之后,经常遇到隧道显示连通但业务系统无法互访的隐性故障,没法快速定位问题影响办公和数据同步效率。本文结合主流防火墙、路由器的实际运维场景,整理从底层隧道状态到上层业务连通的全流程验证方法,帮运维人员快速判断站点到站点VPN是否正常工作,避开常见的配置误区。

运维人员在机房核查边界防火墙的VPN隧道状态,完成基础连通性校验。
第一层级:VPN隧道基础状态校验
这是验证站点到站点VPN运行状态的第一步,不要上来就直接测试上层业务,先确认隧道有没有成功完成两次密钥协商。比如用华为、华三、思科的主流边界防火墙,登录设备Web管理后台或者命令行,找到IPsec VPN的隧道列表页面,看对应两端站点的隧道条目状态是不是显示“已建立”,如果一直显示协商中或者空闲,说明第一阶段或者第二阶段的策略匹配就没通过,后续所有连通性都没有保障。
这里要注意一个常见误区,很多设备的隧道状态条目如果长时间没有流量,会自动触发空闲断开机制,不能直接判定为配置错误,这时候可以从任意一端的内网PC向对端内网地址发一个ping包触发协商,之后再刷新状态看是否正常建立。如果多次触发之后隧道依然无法建立,再去核对两端的预共享密钥、加密算法组合配置是否完全一致。
第二层级:两端网络层连通性验证
隧道状态显示已建立之后,接下来要验证跨隧道的网络包能不能正常转发,水母最基础的操作就是在任意一端的内网主机上,ping对端站点内网的一个存活IP,比如对端办公区的网关IP、文件服务器IP,不要直接ping对端防火墙的外网接口地址,那个流量根本不会走VPN隧道,测出来的结果没有任何参考性。
要是ping不通的话,不能直接判定VPN故障,还要登录两端的边界设备,检查VPN配置里的感兴趣流规则,也就是加密域的配置,是不是两端的本端内网网段和对端内网网段完全镜像匹配,比如A端写的是192.168.1.0/24访问192.168.2.0/24,B端的加密域漏写了反向的路由条目,流量就不会被导入VPN隧道,自然无法连通。
还可以在边界设备上直接开启IPsec流量统计功能,发起ping操作之后看对应隧道的入方向和出方向数据包计数有没有增长,如果计数一直是0,说明流量根本没被匹配到VPN策略,大概率是本地内网的回程路由配置错误,内网网段的流量没有被指向边界VPN设备,这类问题和VPN本身的协商状态没有关系,很容易被误判为隧道故障。
第三层级:传输层与业务可用性校验
很多场景下ping能通,但实际业务系统还是无法访问,这时候站点到站点VPN的工作状态也不能算完全正常,接下来要针对业务使用的具体端口做连通性测试,比如两端要同步的OA系统用的TCP 8080端口,就可以用telnet或者tcping工具,VPN加速器从一端的内网主机测试对端对应IP的8080端口是否能正常建立连接。
部分企业的VPN配置里开启了ESP协议的加密转发,部分运营商中间节点会拦截ESP报文的分片大包,这时候就会出现小的ping包能通,但是大文件传输、视频会议这类大包业务直接卡顿中断的情况,这时候可以测试发送不分片的大数据包,验证VPN隧道的MTU配置是否适配两端网络,避免隐性的传输故障。
第四层级:长期运行稳定性校验
单次测试连通不代表站点到站点VPN可以长期稳定工作,运维人员还可以在两端的内网服务器上部署长期的连通性监控任务,定时向对端发送探测包,记录隧道的连通状态变化,避免隧道意外断开之后长时间没人发现,导致跨站点的备份任务中断。
日常运维里还要定期核对两端VPN设备的SA会话存活时间配置,要是两端的第一阶段、第二阶段协商的超时时间配置不一致,就会出现一端已经主动重置SA会话,另一端还保留旧会话的情况,导致隧道随机断连,这类隐性故障靠单次短时间测试根本没法发现,必须结合长期的日志记录排查。
完成以上几个层级的校验之后,就可以基本确认站点到站点VPN的运行状态是否符合预期,不需要再靠业务人员反馈故障才事后排查,能大幅降低跨站点网络的运维成本。
水母加速器 

