轻舟VPN
轻舟VPN Logo
一文详解VPN数据封装的完整工作过程
手机连接

一文详解VPN数据封装的完整工作过程

本文结合企业办公场景下常用的IPsec、SSL VPN实际部署逻辑,完整拆解VPN数据封装从触发到完成传输的全流程,既可以帮助运维人员理解底层运行逻辑,也能帮普通VPN用户快速定位日常使用中遇到的连接异常问题,所有步骤均可以通过主流厂商的VPN网关后台日志、终端系统的网络抓包工具完成验证。

VPN数据封装的前置配置前提

所有封装动作正式启动前,两端的VPN隧道端点必须完成预协商,比如企业总部的防火墙VPN模块、员工侧的VPN客户端或者家用VPN路由器,要先匹配好身份认证方式、轻舟加密套件、隧道模式参数,没有这些预配置的话后续封装流程根本不会触发。

很多普通用户以为点击VPN客户端的连接按钮就直接开始传输业务数据,实际上点击连接后首先触发的是IKE第一阶段协商,两端先验证彼此的身份合法性,生成临时的共享密钥材料,这一步还没涉及到用户业务数据的封装,只是给后续的加密封装搭好统一的安全规则基础。

外层公网报头的生成过程

当协商完全完成,用户发起访问总部OA系统的请求时,终端的VPN模块首先拿到原本的原生IP数据包,这个数据包里的源地址是员工终端的私网IP,目的地址是总部OA服务器的私网IP,这类私网地址本来就不能在公网上被正常路由转发。

企业办公场景VPN数据封装工作过程

企业远程办公场景下VPN数据封装全流程运行示意

VPN数据封装的第一步,就是给这个原生的完整IP包,额外套上一个新的公网IP报头,新报头里的源地址是终端当前接入公网的公网IP,目的地址是总部VPN网关的公网接口IP,相当于给原本不能跨公网传输的私网数据包,贴了一个能在公网上被路由设备识别的“快递面单”。

这一步很多新手运维容易搞混,误以为封装是修改原生数据包的源目地址,实际上原生的整个IP包包括内部的TCP头、OA系统的访问数据都被完整保留,没有做任何修改,只是在外面新增了外层的传输标识。

加密与安全载荷的嵌入逻辑

贴完外层公网报头之后,VPN模块会根据之前协商好的加密算法,把内层的整个原生IP包做加密处理,同时嵌入完整性校验字段,防止数据包在公网传输过程中被篡改。

不同类型的VPN封装在这里的细节有区别,比如IPsec VPN的隧道模式会在加密后的载荷和外层IP头之间,插入ESP或者AH协议头,科学上网用来通知对端网关收到数据包之后,该用什么规则解密、怎么校验数据完整性,而SSL VPN的封装则是把加密后的载荷封装成普通的HTTPS报文格式,能直接穿过大部分普通家庭的防火墙限制。

解封装与校验的全流程对应

封装完成的数据包沿着公网路由传输到总部的VPN网关之后,网关首先校验外层IP报头的目的地址是否属于自身的VPN接口,再检查协议头的标识是不是之前协商好的合法隧道流量,不符合规则的数据包会直接被丢弃。

校验通过之后,网关会按照之前协商生成的密钥对加密载荷做解密,取出里面的完整性校验字段和本地重新计算的校验值做比对,如果比对不一致就说明数据包在传输过程中被篡改或者损坏,网关会直接丢弃该包,不会往内部私网转发。

校验完全通过之后,网关才会剥掉外层所有的封装报头,科学上网还原出最开始的原生IP数据包,再根据内层的目的私网地址,把数据包转发到对应的OA服务器上,后续服务器返回的响应数据也会沿着完全相反的流程,在总部网关完成封装,公网传输到用户终端之后再解封装,最终送到用户的浏览器里。

常见封装异常的故障定位思路

很多用户遇到VPN连接成功但打不开内部系统的问题,大概率是封装过程的参数匹配出了问题,最常见的情况是两端配置的加密套件不一致,导致对端网关收到封装后的数据包之后无法完成解密校验,直接丢弃所有流量。

运维人员排查这类问题的时候,不需要一开始就抓包看完整封装结构,先在两端的VPN网关上检查隧道的协商状态是否完整激活,再核对两端配置的感兴趣流规则,确认需要走VPN封装的私网地址段没有配置错误,就能定位大部分封装类故障。

隐私与安全编辑组
隐私与安全编辑组
内容编辑

介绍浏览器隐私、账号保护与数据传输,区分工具能力和使用边界。

查看更多文章
连接指南

找到适合当前设备的指南

遇到网页脚本加载超时相关问题,可从“查看对应请求的失败阶段并对照原网络”开始阅读。页面文字显示出来不代表功能已经全部就绪,需要结合具体环境判断。