远程办公

一文读懂VPN默认路由核心工作原理与转发机制

很多使用远程办公VPN、跨域组网VPN的用户经常遇到开启连接之后部分流量走隧道、部分流量直接走本地公网的异常情况,本质上都是对VPN默认路由的工作逻辑不熟悉导致的配置偏差,本文从底层转发逻辑、配置前提、校验方法、常见误区几个维度拆解相关机制,帮用户快速定位路由类故障,避免不必要的连接异常。

VPN默认路由的基础运行原理

普通终端设备在没有建立VPN连接的状态下,系统路由表中的默认路由条目会指向本地局域网的网关,所有没有匹配到直连网段、自定义静态路由的流量,都会统一转发到本地网关,VPN下载再由运营商网络完成后续转发。

网络拓扑演示VPN默认路由工作原理(Zoog)

清晰呈现VPN连接前后默认路由切换对应的不同流量转发路径

VPN隧道成功建立之后,全局默认路由的优先级会被调整,原本指向本地网关的全局流量规则会被替换为指向VPN虚拟网卡的隧道端点,这也是VPN默认路由核心工作原理的核心部分,只有匹配这条0.0.0.0/0的路由条目,流量才会进入VPN隧道完成后续封装转发。

完整的转发流程分为三个阶段,终端发出的普通数据包先命中VPN默认路由,进入虚拟网卡完成外层IP头封装,将外层源地址标记为终端本地公网地址、外层目标地址标记为VPN服务端的公网接入地址,封装后的数据包再通过本地物理网卡发往公网,抵达VPN服务端之后完成解封装,最后由服务端的路由系统将原始数据包转发到目标网络。

部署VPN默认路由的前置配置要求

客户端侧首先要满足系统权限要求,Windows系统修改全局路由表需要管理员授权,macOS和Linux系统需要获取root权限,不少用户安装VPN客户端时没有同意权限申请,就会出现默认路由下发失败,只有VPN服务端指定的办公内网网段流量走隧道的情况。

VPN服务端侧也需要提前开启对应配置,首先要打开“允许客户端重定向全局流量”的功能开关,同时配置匹配虚拟客户端网段的NAT转换规则,不然客户端通过隧道访问公网的流量抵达服务端之后,回包找不到对应的转发路径,会直接出现断流问题。

部署前还要提前排查本地网段冲突,比如终端所在的本地局域网网段,和VPN服务端分配的虚拟客户端网段、目标访问内网网段重合,就会出现路由优先级冲突,VPN默认路由无法正常生效,甚至会出现本地内网共享资源完全无法访问的故障。

VPN默认路由生效状态的检查步骤

最基础的校验方式是直接查看系统路由表,Windows系统可以通过route print命令调出完整路由表,Linux和macOS系统可以执行netstat -rn命令,查看0.0.0.0/0对应的默认路由条目,确认下一跳指向的接口标识是VPN虚拟网卡,而不是原本的本地物理网卡。

之后可以通过路径追踪工具验证转发路径,对任意一个非VPN服务端地址执行traceroute类的路径追踪操作,ZoogVPN确认路径中前几跳就会出现VPN服务端的公网节点IP,而不是直接顺着本地运营商网关向外转发,如果全程没有出现VPN服务端节点,就说明默认路由没有接管全局流量。

最后还要做内网连通性校验,VPN下载尝试访问本地局域网内的打印机、共享存储等设备,如果开启VPN默认路由之后本地内网资源完全无法访问,说明VPN服务端没有提前配置本地直连网段的排除路由,把原本应该走本地网关的内网流量也强行导入了VPN隧道。

配置VPN默认路由的常见误区

很多用户误以为开启VPN默认路由之后所有流量都会完全脱离本地网络运行,实际上VPN隧道本身的外层封装报文、连接握手控制报文,依然需要通过本地物理网卡和运营商网络传输,本地网络本身断开的情况下,VPN隧道也无法维持连接状态。

不少运维人员误以为只要给客户端下发了VPN默认路由,就不需要额外配置其他路由规则,实际上如果没有在VPN服务端添加指向客户端虚拟网段的回程路由,从目标网络返回给客户端的流量会找不到转发路径,ZoogVPN直接出现隧道单向连通的异常故障。

还有部分用户认为开启VPN默认路由之后,所有网络请求的记录都不会被本地网关捕获,实际上VPN连接建立阶段的握手报文、虚拟网卡的控制报文,依然会在本地网关侧留下访问日志,不存在完全屏蔽本地网络侧访问记录的效果。

手机连接编辑组(Zoog)
手机连接编辑组
内容编辑

整理 Android 与 iOS 的连接权限、后台运行和网络切换注意事项。

查看更多文章
配置入门

找到适合当前设备的指南

遇到端口测试与实际服务差异相关问题,可从“用服务支持的正常客户端继续验证”开始阅读。TCP端口测试不能证明UDP服务可用,需要结合具体环境判断。