如你安好

时间就像海绵里的水,只要愿挤,总还是有的。 -- 鲁迅
如你安好 ,

便是晴天 。

IPv6过渡阶段的Web服务过渡策略介绍

IPv6过渡分为4个阶段:纯IPv4(阶段0),IPv4为主、存在少量的IPv6(阶段1),IPv6为主、存在少量的IPv4(阶段2)和纯IPv6(阶段3)。由于阶段0和阶段3通信需求仅限于IPv4、IPv6同协议访问,其中阶段1和阶段2的不同点在于纯IPv4网络、双栈网络、纯IPv6网络接入类型所占比例的多少。
本文主要讨论阶段1和阶段2的场景,需要同时满足终端IPv4/IPv6用户访问IPv6/IPv4Web服务的需求。见表1,只有双栈方式接入的终端用户能够访问所有的IPv4/IPv6服务,纯IPv4用户不能访问纯IPv6服务,纯IPv6用户不能访问纯IPv4服务。要满足所有终端用户同时能够访问IPv4/IPv6服务,需要终端用户通过IPv4-over-IPv6或IPv6-over-IPv4隧道的方式建立另外一种协议的通信通道,隧道的建立需要终端用户做一定的配置,对于情况各异的用户来说难以大规模使用。
232.jpg
因此,需要从Web服务端实现纯IPv4和纯IPv6用户的访问,通常有以下两种方法:(1)服务器基于双栈提供Web服务,原生支持IPv4/IPv6;(2)IPv4-IPv6翻译,通过一个翻译模块将IPv4数据包和IPv6数据包互相转换,翻译机制可以分为无状态翻译,如SIIT(stateless IP/ICMP translation)和IVI(IV stands for 4 and VI stands for 6),以及有状态翻译,如NAT-PT(NAT-protocol translation)和NAT64。[3-5]

Web服务本身采用双栈方式是首选,它可避免因转换导致的任何复杂性,并为服务器提供最多信息。[6]双栈方式需要整个链路上的设备均支持双栈,包括服务器和应用本身,这意味着可能涉及到网络改造和软硬件设备更新,且公网双栈需要消耗公网IPv4地址。IPv4-IPv6翻译机制需要在边界部署路由或网关,无状态翻译机制不需要维护会话的状态,具有一定的灵活性,但它是以消耗IPv4地址空间的代价来实现双向通信,有状态翻译机制需要翻译器维护一个动态的地址(地址和端口)映射和一个IPv4地址资源池。

由于公网双栈方式和无状态翻译机制Web服务本身需要消耗公网IPv4地址空间,他们没有解决IPv6协议主要解决的地址空间的问题;私网双栈虽然不消耗公网IPv4地址但仍然需要链路上设备的支持;另外,私网双栈和有状态翻译机制需要部署路由或网关并维护会话状态,增加了网络复杂性。因此,为了降低IPv6过渡期间Web服务部署实施的复杂度,本文提出采用双栈反向代理的方式实现过渡时期对Web服务的访问,通过将反向代理服务器部署在双栈环境中,Web服务可以只接入纯IPv4或纯IPv6,不需要对现有网络结构做任何改变,进而逐步完成向IPv6的过渡。

双栈反向代理服务方案的设计

反向代理是指由代理服务器来接收来自互联网的访问请求,再把访问请求转发到对应的网站服务器,并从对应网站服务器获取结果返回给访问用户。[7]对于终端用户来说,用户正常访问网页即可,不需要做任何改变或配置。文献[7-10]介绍了反向代理在Web服务中的应用,并介绍了在安全、负载均衡、公网地址消耗等方面的优势,但这些文献均未涉及IPv4/IPv6双栈环境的场景。

双栈反向代理的方式是指将反向代理服务器部署在双栈环境中,同时分别监听IPv4和IPv6服务端口,Web服务可以只接入纯IPv4或纯IPv6网络,纯IPv4和纯IPv6终端用户可以通过反向代理服务器进行代理访问另一协议的Web服务。由于采用双栈代理后Web内容可能存在跨协议的资源引用问题,本文设计采用在反向代理服务内设置过滤转换器和通用代理器来实现跨协议访问。

1.双栈反向代理服务的网络设计

IPv6过渡阶段双栈反向代理部署网络结构如图1所示。双栈反向代理服务器部署在双栈网络中,同时监听IPv4/IPv6的服务端口:
2 (1).jpg
(1)对于纯IPv4用户,在一侧作为IPv4服务器,另一侧作为IPv6客户端,将来自IPv4客户端的请求代理到IPv6服务器。

(2)对于纯IPv6用户,在一侧作为IPv6服务器,另一侧作为IPv4客户端,将来自IPv6客户端的请求代理到IPv4服务器。

双栈反向代理服务器部署比较灵活,部署的位置取决于网络的哪个部分可以支持双栈,不需要对现有网络结构做任何变更,又实现了双栈Web服务。即使整个网络没有IPv6或IPv4,也可以在外部支持双栈的数据中心托管自己的反向代理服务器,实现IPv4/IPv6的服务。由于跨协议访问服务是由反向代理服务器中转完成的,因此服务内容的管理维护与之前没有变化,不需要考虑IPv4和IPv6不同的情况。

2.双栈反向代理服务的域名服务设计

在反向代理服务的部署实施过程中,结合DNS(域名服务)配置可以更好地实现Web服务的快速部署。本文中Web服务域名设计如下:域名为example.com和example6.com,其中example.com域下的子域名同时配置A记录和AAAA记录,example6.com域下的子域名仅配置AAAA记录,在实际应用中可以选择不使用example6.com域名。其中A记录是用来创建到IPv4地址的记录,AAAA记录是用来创建到IPv6地址的记录。

假定双栈反向代理服务器的IPv4和IPv6的地址分别为222.204.33.99和2001:250:6c00::3:99,以处于纯IPv4网络中域名为lib.example.com(ipv4地址为222.200.3.200)和处于纯IPv6网络中域名为6.example.com(IPv6地址为2001:250:6c00::210:201)的Web服务站点为例介绍域名设置方式。具体域名配置时将原本纯IPv4服务域名lib.example.com和lib.example6.com的AAAA记录指向反向代理服务器的IPv6地址2001:250:6c00::3:99,将原本纯IPv6服务域名6.example.com对应的A记录指向反向代理服务器的IPv4地址222.204.33.99。当纯IPv4或纯IPv6用户访问原本只有另一协议网络的Web服务时,域名将解析至反向代理服务器进行代理访问。

3.双栈反向代理服务方案的设计有什么优势

1.提高性能:双栈反向代理可以同时支持 IPv4 和 IPv6 请求,有效提高资源的利用率和系统的性能。它能够根据客户端的请求类型选择合适的栈进行处理,确保流量的快速、高效传输。
2.兼容性强:随着IPv6的普及,不同设备、网络之间的连接方式也越来越多样化。双栈反向代理能够同时兼容 IPv4 和 IPv6 协议,为各种网络环境下的用户提供无缝连接的体验。
3.网络容错性高:双栈反向代理可以在 IPv4 网络不可用时,自动切换到 IPv6 网络,或者反之。这种设计可以有效提高系统的容错性,保证用户的访问不受网络故障的影响。
4.IPv6 推广:随着 IPv4 地址资源的枯竭,IPv6 成为未来网络的发展趋势。双栈反向代理服务方案可以作为逐步过渡到 IPv6 的中间桥梁,帮助服务提供商和用户逐步转向 IPv6 网络,促进 IPv6 的推广和应用。

愿望集合地

(仅限登陆用户评论)

这篇文章获得了个赞!