一、什么是IPv6天窗问题?
IPv6天窗问题,是IPv4向IPv6过渡阶段出现的一种常见的访问异常现象。
一个网站往往包含来自其他网站的内容链接,比如图片、样式文件、脚本等,这些链接统称为外链。当网站自身完成了IPv6改造,可以通过IPv6协议正常访问,但网页里引用的外链资源所在的网站还没有升级到IPv6,仍然只支持IPv4协议时,就会出现异常显示问题。
纯IPv6用户访问这个网站时,网页的主框架可以正常加载,但那些来自IPv4外链的图片、样式、脚本等内容无法加载。页面呈现出来的效果是骨架完整但内容缺失,就像一个房子开了很多窗户一样,所以被称为“天窗”问题。
具体表现上,用户会看到页面响应缓慢、部分内容无法显示、部分功能不能正常使用。从技术层面看,根源在于子域名、静态资源域名没有配置IPv6解析记录,纯IPv6终端拿到首页HTML后,无法获取外链资源。
二、天窗问题产生的原因
天窗问题的产生,主要源于三个层面的因素。
第一,外链资源没有完成IPv6改造。第三方资源只支持IPv4协议,无法响应IPv6用户发起的请求。
第二,单方面改造的局限。即使主站部署了双栈技术,但只要外链没有同步升级,IPv6用户在访问时就会遇到问题。大型网站之间互相引用,或者一个网站内存在多个不同栏目,单方面改造会不可避免地留下缺口。
第三,纯IPv6环境缺少协议转换机制。IPv6和IPv4是两种不同的网络协议,彼此不兼容。在没有翻译设备的情况下,纯IPv6客户无法跨协议访问IPv4资源。
从实际的应用情况来看,政企机构不可能在短时间内就完成所有相关网站、业务系统的IPv6改造工作,天窗问题就成了非常普遍的问题。
三、解决天窗问题的主要方法
针对天窗问题,业界已经形成了多种成熟的解决方案。
1.外链地址改写
外链地址改写是目前应用比较广泛的一种做法。这种方法通过在网络中间节点(如CDN边缘节点或负载均衡设备)拦截页面响应内容,自动识别其中的外链URL,把这些IPv4外链地址改写成指向代理服务器的IPv6地址。
改写之后,客户端请求外链资源时会先到达代理服务器,代理服务器通过IPv4协议去获取外链源站的内容,再把内容通过IPv6返回给客户端。整个过程中,外链源站不需要做任何改造。
云服务商提供的CDN产品大多支持这个功能,可以在边缘节点完成外链改写和IPv6加速。负载均衡设备也可以通过配置内容改写规则来实现类似效果。
2.NAT64与DNS64转换
NAT64是一种网络地址与协议转换技术,能够把IPv6数据包翻译成IPv4数据包,反之亦然。DNS64是NAT64的配套技术,负责在DNS层面进行处理。
当纯IPv6客户端发起域名解析请求时,DNS64服务器会先查询该域名的AAAA记录(IPv6地址记录)。如果没有查到,DNS64会利用一个特定前缀,把查询到的A记录(IPv4地址)合成一个AAAA记录返回给客户端。客户端拿到这个合成的IPv6地址后发起访问,数据包到达NAT64网关时,网关把IPv6地址中嵌藏的IPv4地址提取出来,把请求转发给真正的IPv4目标服务器。
NAT64方案主要适用于IPv6过渡的后期阶段,此时IPv6网络已经占据主流,新增的IPv6单栈终端需要穿越IPv6网络访问残存的IPv4业务。一些政务网站在IPv6改造中采用了这个方案,通过出口防火墙设备部署NAT64协议,在不影响原有业务正常运行的前提下直接支持IPv6连接访问。
3.反向代理
反向代理技术是指在用户与目标服务器之间部署一台反向代理服务器,这台服务器同时具备IPv4和IPv6的通信能力。
IPv6用户访问网站时,请求先到达反向代理服务器。代理服务器先把请求转换成IPv4协议,然后转发给后端的IPv4外链源站。拿到响应内容后,代理服务器再通过IPv6返回给用户。
反向代理技术不需要改动源站的配置,部署简单,对业务影响较小,同时能够隐藏源站,具备一定的安全防护能力。国科云IPv6改造方案即采用这种技术方案,已广泛应用于政府、金融、科研、央国企等重点领域头部客户,表现出较高的稳定性和广泛的业务兼容性。
四、选择解决方案的参考因素
如果网站部署了CDN加速,通过CDN平台的外链改写功能来解决天窗问题比较方便。如果企业部署了负载均衡设备,可以利用设备的内容改写和流量引导能力。对于需要快速上线、不希望大规模改动现有架构的场景,反向代理或NAT64方案更为合适。
无论选择哪种方式,其目标是一致的,就是能够让纯IPv6用户完整获取网页中的内容,页面不出现缺失。
推荐阅读:



