政策背景
2018年5月初,工信部发布了关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》(厅字〔2017〕47号,以下简称《行动计划》)的通知。
通知明确要求,到2025年末,我国IPv6网络规模、用户规模、流量规模将位居世界第一位,网络、应用、终端需全面支持IPv6。
IPv6因地址空间巨大,在应对部分安全攻击方面具有天然优势,在可溯源性、反黑客嗅探能力、邻居发现协议、安全邻居发现协议以及端到端的IPSec安全传输能力等方面均提升网络安全性,并且从根本上解决了IPv4地址枯竭的问题。
要迁移到IPv6,需要升级软件或者更换硬件。
在IPv4迁移到IPv6网络的过程中,经常会遇到一部分电脑或者服务器是 IPv4的,另一部分是IPv6的,这时候网络中的数通设备往往需要支持v4-v6双栈,甚至要支持能从IPv4到IPv6的跨协议转换。
如果您使用的正好是太一星晨的应用交付产品,Congratulations!您的应用交付已经全面支持IPv6了!
从2013年第一个版本开始,
太一星晨应用交付T-Force ADC已经前瞻性地支持IPv4/IPv6双栈。
所以,使用太一星晨T-Force ADC,无需升级,您就可以随时在IPv6和IPv4网络中切换,更重要的是,性能还没有损耗。
====================正文分割线=================
1.1 双栈功能
在细说双栈功能之前,有必要先认识一下应用交付的主要功能之一:服务器负载均衡,即虚拟服务功能。
简单来说,虚拟服务就是这个样子的:
* 将提供同一组业务的服务器用一个服务池圈起来。
* ADC上对外发布一个IP地址 + 端口。
* 大量用户都来访问100.1.10:80。
* 访问被均匀地调度到各个服务器上。
当然虚拟服务还涉及很多功能,如会话保持,健康检查,调度算法等等,这里就不一一赘述了。
那么,太一星晨的虚拟服务功能如何支持IPV6?
1.2 纯IPv6的虚拟服务
纯IPv6的网络,IPv6虚拟服务场景如下:
>> 在配置上,和IPv4的虚拟服务没什么区别,只是地址是IPv6的而已。
>> ADC不仅仅支持L4的高性能模式负载,L7的HTTP代理同样毫无压力。
>> 除了实现负载均衡,IPv6在安全方面,还可以通过配置防火墙策略,完成基本的安全防护。
注意:
太一星晨T-Force ADC主要功能对IPv6的支持,和IPv4差异不大,基本保持一致:从负载功能到安全功能,均很完备。
1.3 虚拟服务的跨协议转换
跨协议转换包括NAT64和NAT46的转换。
太一星晨的虚拟服务支持各种转换:发布IPv4或者IPv6的虚拟服务,后端的服务池里面既有IPv6的服务器,又有IPv4的服务器。从IPv4到IPv6,或者从IPv6到IPv4,跨与不跨,各种玩法,怎么任性怎么来。
如上,访问 http://100.1.1.10/或者 http://[2001::ABCD]/的业务流量可以均匀地负载到四台服务器上。
我们以访问 http://100.1.1.10/,调度到IPv6服务器1为例,来详细描述一下这个NAT46的转换过程:
* ADC收到访问请求,调度到服务器1,发现服务器1为IPv6地址;
* 从IPv4到IPv6需要执行跨协议转换,目的地址转换为服务器1的地址,源地址默认使用GE1接口上的IPv6地址,完成转换后,记录v4-v6的转换表项;
* 收到服务器IPV6回包,查询v4-v6表项,还原转换后,发送IPv4的应答。
IPv6网络访问转换到IPv4网络也是一样的道理,会记录v6-v4的转换表项。
注意:
太一星晨T-Force ADC是一个功能完备的跨协议转换网关,通过记录状态表项,无论用户使用IPv6还是IPv4,也不管服务器是IPv6的还是IPv4的,都可以实现服务器负载均衡,且整个配置逻辑上与标准虚拟服务配置保持一致。
不仅如此,尽管ADC要记录和查询转换表项,但是经过了优化后,性能测试数据与不跨协议转换对比,基本没有损耗。
1.4 全局的跨协议转换
全局的跨协议转换,即全局支持的功能,不限于虚拟服务的使用场景,可以把ADC直接当作跨协议转换网关来使用。
这种无状态的跨协议转换包含:IVI地址转换,以及嵌入地址转换。
1.4.1 IVI地址转换
IVI方案是由CNGI-CERNET2的研究人员、清华大学李星教授提出的IPv4和IPv6的翻译技术。
“IVI”的命名灵感来源于罗马字码,IV是四,VI是六,所以IVI可代表IPv4和IPv6的过渡和互访。
1.4.2 IVI的地址格式
PREFIX由ISP提供,为32位,SUFFIX一般是全0。
1.4.3 IVI的基本原理
ADC指定好需要转换的IPv6地址前缀,通过IVI规定的特殊的地址关系,IPv4和IPv6之间可以互相转换,并得到唯一的转换结果。
:举个例子:
从IVI 的IPv6转换到IPv4,ADC上配置好策略,源地址前缀和目标地址前缀符合配置的,进入IVI的转换:
3001:1000:ff64:101:6400::< - - > 100.1.1.100
5001:0:ff0a:101:a00::< - - >10.1.1.10
从左往右,为NAT64的转换;
从右往左看,是IVI的nat46的转换。
1.4.4 嵌入地址转换
所谓嵌入地址转换,就是指转换的目的IPv4地址是从原有的目的IPv6地址中截取出来的,具体截取哪一部分,取决于用户配置的目的地址前缀(不得超过96位)。
:举个例子:
用户配置前缀为3001::/96,那么10.1.1.10对应的IPv6的嵌入地址为3001::a01:10a,可以直接写成这样的格式:3001::10.1.1.10。
基于这种约定,我们可以从IPv6地址中提取出IPv4地址,也可以将IPv4地址补充为IPv6地址,从而实现跨协议的转换。
注意:
以上两种转换方式,规定了特殊的地址映射关系,使IPv6地址和IPv4地址形成了一对一的转换关系,因此可以进行无状态的跨协议转换。
无状态的地址转换技术因为无需记录和查询转换表项,能为网关设备节省一定的性能开销。
1.5 DNS64
在IPv4向IPv6过渡的进程中,大部分需求是IPv6孤岛需要访问公网的IPv4服务器,如果直接提供了IPv4的服务器地址,只需进行IPv6到IPv4的跨协议转换,即可实现访问。
但是,很多IPv4的公共资源是域名方式提供的,且不提供AAAA记录,这样就给访问造成了困难。
为了解决IPv6访问IPv4域名资源的问题,就有了DNS64这个技术,大致原理如下图:
* ADC收到客户端的DNS AAAA请求,将其转换为A记录请求,发送到IPv4网络中的DNS服务器203.5.5.5上。
* ADC收到DNS服务器的A记录回复,提取查询结果100.100.100.100,根据自己的配置,将查询结果转换为IPv6地址5001::100.100.100.100,并构造一个IPv6的AAAA回复,发送给客户端。
* 这样,IPv6域名请求成功,接下来就向5001::100.100.100.100发起数据请求。
显然5001::100.100.100.100是一个假的IPv6地址,数据到达ADC后,再经过ADC配置好的NAT64的转换规则,就可以将5001::100.100.100.100地址再转换成100.100.100.100,从而实现数据的跨协议通信。
注意:
DNS64和NAT64一般都是结合在一起使用的;DNS64完成DNS协议层面的地址转换,NAT64完成IP地址层面的地址转换,两者结合,形成了一个非常实用的解决方案。
综上所述,无论是通过ADC上网访问IPv6网络,又或者是基于IPv6对外提供业务访问,有了太一星晨T-Force ADC,您就可以在IPv4与IPv6中随意遨游!