很多企业远程办公、分支站点互联场景下,用户经常遇到内网资源访问不通、特定业务数据包被公网防火墙拦截的问题,不少故障的根源都出在运维人员对VPN数据封装的基础逻辑认知模糊。本文就从实际网络运维场景出发,拆解VPN数据封装的基本概念、运行逻辑、配置校验方法和常见误区,帮普通运维人员和远程用户快速定位相关连接故障。
VPN数据封装的基本概念定义
VPN数据封装的基本概念,本质上是把原始的用户内网数据包,完整打包进另一个新生成的数据包的载荷部分的操作,这个过程不会修改原始内网数据包的头部信息,相当于给原本只能在企业内网路由的数据包套上了一层公网可识别的传输外壳。
很多新手会把封装和加密两个概念混为一谈,实际上加密只是封装流程里的可选环节,部分早期用于运营商内部专线延伸场景的明文VPN隧道也会做数据封装,只是这类方案的外层和内层数据包都没有加密保护,不会开放给普通远程用户使用。

结合真实网络设备演示VPN数据封装的分层传输原理
常规场景下的封装运行流程
我们以最常见的企业分支用IPsec VPN连接总部内网的场景举例,用户在分支办公电脑上发起访问总部OA服务器的请求,生成的原始数据包源地址是分支内网的192.168.1.10,目的地址是总部内网的192.168.2.20,这类私网地址的数据包本身是没办法在公网上直接路由传输的。
当这个原始数据包抵达分支端的VPN网关设备时,网关会按照预设的封装规则,把整个原始数据包完整放进新生成的外层数据包的载荷区域,同时给外层数据包的头部填上两个公网地址,源地址是分支网关的公网接口IP,目的地址是总部VPN网关的公网接口IP,这个新的外层数据包就可以正常在公网的路由器之间转发了。
当外层数据包抵达总部VPN网关之后,网关会先校验外层包头的合法性,确认是之前协商好的VPN隧道发来的合法数据包,就会剥除外层的包头,取出里面封装的原始内网数据包,直接转发给总部内网的目标服务器,整个过程总部内网的交换机、业务服务器都感知不到外层数据包的存在。
封装配置的前提校验方法
很多运维人员刚配置完VPN隧道之后发现内网不通,第一个要排查的就是封装匹配规则有没有配置错误,以主流企业VPN网关的配置界面为例,首先要检查两端配置的感兴趣流规则,也就是定义哪些内网数据包需要被封装的ACL规则,两端的规则必须是反向匹配的,一端指定源是分支私网段、目的是总部私网段,另一端就必须对应源是总部私网段、目的是分支私网段。
第二个校验步骤是在网关的系统视图下查看隧道接口的统计信息,确认有没有封装数据包的计数增长,如果发起内网访问请求之后,封装计数始终是0,就说明本地的感兴趣流规则没有匹配到用户的内网数据包,数据包根本没有进入封装流程,大概率是ACL规则写反了或者覆盖的网段范围不对。
如果封装计数正常增长,NordVPN但是对端的解封装计数始终是0,就说明外层封装的数据包在公网传输的时候被运营商的中间防火墙拦截了,这时候可以尝试更换VPN隧道的外层传输协议,比如把默认的ESP协议切换成支持NAT穿越的UDP封装模式,规避公网防火墙对ESP协议的拦截。
常见的封装认知误区
第一个常见误区是认为VPN封装之后所有流量都会走隧道,实际上如果没有在感兴趣流里添加对应的网段规则,梯子代理用户访问公网网站的数据包不会被封装,会直接通过本地网关转发到公网,也就是常说的分流模式,很多远程办公用户误以为自己所有上网流量都走企业VPN,实际上只有访问内网资源的流量会被封装传输。
第二个误区是认为封装层数越多安全性越高,实际上多层封装只会额外增加设备的处理开销,没有特殊的合规需求不需要额外叠加封装,普通的IPsec VPN的单重封装已经可以满足绝大多数企业远程访问的安全要求,盲目叠加封装反而容易出现数据包分片、传输不通的故障。
日常运维中遇到VPN连接异常的时候,先从封装计数的统计数据入手排查,不要直接盲目重启网关设备,绝大多数封装相关的连接故障,都可以通过核对两端的感兴趣流规则、外层协议配置快速定位解决。

