连接排障

VPN双栈连接主流使用场景与适配方案全解析

VPN双栈连接主流使用场景与适配方案全解析 | shadowrocket

VPN双栈连接指的是VPN隧道同时兼容IPv4与IPv6两类网络协议栈,可在同一条加密隧道内同时传输两类协议的流量,不需要用户切换网络环境就能访问不同协议体系下的内网资源。随着国内运营商全量推进IPv6规模部署,各类政企、教育、个人网络场景下的单栈VPN适配问题逐步凸显,本文梳理目前落地度最高的几类VPN双栈连接使用场景,同时给出可直接落地的配置规则、验证方法与常见误区,所有操作步骤都可通过通用网络设备完成,不需要依赖特殊定制的硬件功能。

跨国企业分支互联的双栈使用场景

目前多数出海企业的总部业务系统都处于新旧交替阶段,既有运行多年基于IPv4协议的传统OA、财务系统,也有近年新上线的基于IPv6协议的IoT设备管理后台、对象存储服务。如果之前采用单IPv4协议的VPN打通海外分支和国内总部,国内运营商给分支分配的IPv6公网地址无法直接访问总部的IPv6专属资源,很多运维人员最初会误以为是IPv6配置未开启,实际根源是VPN隧道本身不支持双栈传输。

这个场景下的配置前提非常明确,总部端部署的VPN网关要同时配置IPv4和IPv6两类隧道端点地址,两端内网的路由条目里,要同时把IPv4私网段和IPv6的ULA私网段都注入VPN路由表,不要遗漏任意一类协议的路由配置,否则对应协议的流量会直接走本地公网出口,脱离加密隧道的保护范围。

配置完成后的检查步骤也不需要复杂工具,先在分支的内网办公PC上,小火箭加速器分别测试总部IPv4业务服务器、IPv6业务服务器的直连连通性,确认内网本身双栈传输正常之后,再发起VPN隧道连接,隧道建立完成后再次用相同的地址测试连通性,就能初步验证双栈隧道的可用性。

跨国企业组网VPN双栈连接使用场景

直观呈现跨国企业跨地域组网中VPN双栈同时传输两类协议流量的运行状态

高校科研网跨域访问的双栈使用场景

国内多数高校的校园网都是教育网双栈接入,师生在校外通过VPN访问校内资源时,之前的单栈VPN经常出现能正常访问IPv4的图书馆数据库,但是无法连接教育网IPv6专属的超算集群、学术镜像站的问题,这也是VPN双栈连接的典型刚需场景。

这个场景下的适配方案完全不需要额外采购硬件,shadowrocket只要在原有SSL VPN的后台配置页里,开启IPv6地址分配的选项,给拨入的用户同时分配一个IPv4虚拟地址和一个IPv6虚拟前缀,不要直接关闭原有IPv4的分配策略,就能兼容校内所有新旧设备。

这个场景下最常见的误区,就是部分管理员为了简化配置,直接关闭了VPN的IPv4地址分配功能,结果校内大量2015年之前采购的实验仪器、老旧监控设备仅支持IPv4协议,师生拨入VPN之后完全无法远程控制这些设备,反而影响正常的科研教学进度。

家庭宽带远程访问家用设备的双栈使用场景

现在国内三大运营商的家庭宽带基本都默认给用户分配IPv6公网地址,很多用户在外网想要远程连接家里的NAS、家用监控摄像头,shadowrocket之前用单IPv4的VPN方案时,因为运营商普遍对家庭宽带的IPv4地址做了CGNAT映射,根本无法打通端到端的隧道,换成支持双栈的VPN之后,就可以直接通过IPv6公网地址建立加密隧道,不需要额外在光猫上做端口映射。

这个场景下的验证方式非常简单,在外网的移动设备上关闭WiFi,仅使用运营商移动数据网络拨入VPN,之后分别访问家里NAS的IPv4管理地址和IPv6访问地址,确认两类资源都可以正常加载,同时打开公网IP查询页面,确认隧道内的出口地址同时匹配家庭宽带的IPv4出口和IPv6前缀,没有出现协议流量走漏到本地公网的情况即可。

VPN双栈连接的通用故障定位思路

遇到双栈VPN连接异常的时候,不要第一时间直接重置整个VPN的配置,先在客户端本地运行系统自带的命令行工具,分别查看IPv4和IPv6对应的VPN虚拟网卡有没有拿到正确的分配地址,如果其中一类协议的地址为空,大概率是服务端的对应协议地址池已经分配溢出,没有剩余地址可以分配给新接入的用户。

如果两类地址都正常,但某一类协议的资源始终访问不通,就逐段检查客户端本地的路由表,shadowrocket确认对应协议的路由条目指向VPN虚拟网卡,而不是走本地的公网网关。很多用户本地自行配置了自定义的公共IPv6 DNS,会导致隧道内的IPv6域名解析请求直接走本地公网处理,自然就无法解析到内网专属的IPv6资源地址。

连接排障编辑组 | shadowrocket
连接排障编辑组
内容编辑

按设备、网络、客户端和服务端逐层检查,让故障定位更有条理。

查看更多文章
配置入门

从一个连接问题开始

遇到WireGuard对端端口变更相关问题,可从“同步批准的配置并检查相关网络规则”开始阅读。开放一个端口不等于认证与路由配置正确,需要结合具体环境判断。