余波 中国电信江西分公司网络运营支撑事业部 南昌市 330000
随着2017年底国家IPv6的规模部署号令吹响,政府、运营商、金融、互联网企业等响应号召,实施了IPv4过渡到IPv6的双栈改造,各类网络逐渐地可以提供IPv6为基础的通信能力,大部分的公众客户都能够通过手机、家庭宽带获得IPv6实现互联网访问。但是由于目前对IPv6的一些新特性不够了解,还是基于IPv4老思维来看待v6技术,很多人甚至认为IPv6只是简单的扩容地址数量,并没有什么其它太大作用,特别企业内部网络推动整改的决心不足,而笔者认为只有真正理解一些IPv6的理念和思想,才能更好地去适应变化,体会到IPv6的优势所在,下面尝试从技术特征分析入手列举了一些IPv6带来的改变。
IPv4时代,分配终端地址主要依靠DHCP或静态配置来实现的,大部分IPv6的新手都认为,IPv6太长难以记忆,没有IPv4方便。实际上由于IPv6庞大到足以为每一粒沙子都可分配地址的数量级,靠人脑的记忆去手敲地址进行配置几乎不现实,如果把我们把地址和配置打印出来,恐怕连一间屋子都无法装下。因此,IPv6引入了的一个杀手特性,即自动配置。IPv4通过DHCP也可以自动配置,但是它们的本质却是不同的。DHCP是IPv4协议本身之外的服务,即你需要搭建DHCP服务器,你需要DHCP客户端。而IPv6自动配置却是其内在的东西,它是IPv6协议标准的一部分。一个IPv6终端,只要简单的开机,它就会自动获得IPv6地址。
图1 IPv6地址分配方式示意
IPv6环境下,终端和服务器都可以自动配置,但路由器上IPv6是必须使用手工配置,由专业工程师完成。路由器相当于树干,而终端是树叶,树干嫁接而成,而树叶自动生成。IPv4却将IP地址配置这种技术性的工作交给了终端使用者,除非添加额外的DHCP服务的方式,非IPv4特性。IPv6设计时就考虑到这一点,使用IPv6可以轻松实现即插即用,就像家用电器插上电源一样的方便。
很多企业为了提升可靠性,会同时选择多个运营商的出口线路,在某个出口路由器或者负载均衡NAT设备配置均衡策略,终端按策略通过NAT选择适合的线路连接互联网,因为扁平化的IPv4的分配没有规律,只能依靠收集维护大量IP地址的信息策略配置非常复杂,并且很难达到理想的均衡水平。而IPv6的源地址/目标地址选择的机制和策略带来了福音,在这种比较常见的场景下可以不用通过特别的设备和策略设置很好地实现多条线路的负载均衡,IPv6制定了非常严格的源地址/目标地址选择的机制和策略,每个运营商的IPv6地址都可以配置在同一终端网卡上,每个运营商的IP都是有明显的区隔,网卡根据目标IP自动选择源地址,路由器则根据目标地址自动选择最短路径(最合理的线路)实现负荷分担。
大致来讲,可以将多条线路的源地址配置在相同或不同的网卡之上,需要发送数据时,根据不同目标的选择,将遵循rfc3484给出的规则进行匹配,最终将会确定源最适合IPv6地址,通过目标IP长度匹配也最终会选择到最合适的路由。
就满足数量的角度看IPv6地址数量根本不需要128位,MAC地址位长度为48位从来没有听说过不够用,就已经满足了全球所有的网卡唯一性的需求。再考虑一下我们的身份证。身份证目前有18位10进制数,11位十进制数就能编址百亿级别的人口了,而整个地球的人口都不足百亿,根本用不完,所有人都应知道,身份证并不是连续编址的,前6位代表省市区,中间8位代表出生年月日,后4位才代表个人的唯一ID,一看身份证号号码,就能快速定位到这个人出生时的归属地。
与此非常类似,IPv6的编制也是与分层次的设计。既然都可以为每一粒沙子分配一个IPv6地址,如此庞大的数量,如果还和IPv4地址抠出来分配,128bits地址空间的IPv6将会产生无数条离散的路由条目,当前的路由器处理能力需要扩充好多倍也难以应对。因此必须在一开始通过严格的分层设计规划,如此才会带来管理上的方便,也会使得路由效率更高。分层设计IPv6地址,是体现IPv6优势所在的核心关键。
图2 IPv6全球可路由地址功能规划示意
我们看到,IPv6 地址高含义是该地址的类型,001代表的是全局可路由的单播地址,其次时TLA+RES+NLA ID组成的45bits为前缀,类似身份证号的省市区,接下来的SLA ID16bit为子网ID,类似于身份证号的派出所,最后的低64bits为接口标识,一般通过EUI-64方式映射,即将自身的ID映射到64bits的空间内。因此IPv6地址你可以认为它只有64比特,而不是128比特。大企业或机构在申请到IPv6地址资源后,也应该按层次化思路去规划好地址使用,充分考虑地理位置、用途等因素,且尽量保证物理和逻辑之间紧密配合,这样才能更好地实现路由汇聚和管理。
当前我们被NAT保护着,外面的非法连接和攻击被NAT挡掉了绝大部分,但是,它不光阻止了恶意的连接,同时也阻止了授权的连接。笔者就常常被这种限制所困扰,理想的IPv6应该是让互联网变得真正互联互通,彼此对等,尽量少地使用到NAT技术,比如用我们的IPv6手机做热点,所分配到的址依然是公网IPv6地址。
首先看看临时地址机制,与IPv4有着本质的不同,IPv6真正标识了网络,IPv6路由器管理的是网段,而不是主机,主机的IP怎么生成是主机可以自主去完成,并且是可以同时生成多个IP地址,使用EUI-64机制来生成主机标识信息时,很容易被追踪,于是在某些时候,更希望使用随机一点的值,这就是所谓IPv6临时地址。当终端启用了IPv6临时地址,收到路由器发送的前缀信息后将会按EUI-64规则生成一个常规的IPv6地址之外,还会使用随机算法生成一个随机主机标识并和前缀拼接形成一个随机的临时IPv6地址,这个随机的地址生命周期比较短,到期后会发生更换。在没有NAT的环境下,它可般作为源地址和远程服务器通信,从而达到保护隐私的目的。具体可以参加见rfc4941
在IPv6协议中,另一个值得注意的是IPSec是标准的协议头,不像IPv4是额外添加的,可以视为IPv6协议栈内置的安全机制,但将IPsec的ESP头插入到你的TCP头之前,必须自己设定。因此,因此必须了解IPSec的运作方式,才可获得IP端到端的安全,充分利用IPv6的特性。
再来看看防火墙,很多企业和团体都会选择防火墙作为网络的边界,从实现原理上而言并没有很大的不同,除了识别和转发IPv6外,还需要解决处理好扩展头的识别等一些细微的差异,目前已经有了可以用于IPv6协议的防火墙,并且其工作性能与其它防火墙没有什么差别。引入一个兼容IPv6的防火墙,关键是看其是否通过“IPv6 Ready” 的认证,“IPv6 Ready”是由IPv6论坛提供给各个厂商用来衡量它们自身的产品是否符合IPv6协议的标准。
广播风暴是IPv4时代最常见,最令人头疼的问题,进化到IPv6,IPv6摒弃了广播,DHCPv6、ND等均采用组播来替代。理论上,一个网段至少要承担64bit数量的主机,相当于43亿x43亿的海量地址,如果还像运行IPv4协议那样处理,ARP广播将会使整个网络淹没。因此在IPv6时代如使用广播方式解析链路层地址,根本无法实现。IPv6 ND链路层邻居解析旨在将亿万台的设备MAC地址进行散列分组。按EUI-64规则,一般情况下IPv6地址与MAC地址呈现的是一一对应规则,那么将所有处在同一个网段中的主机按照其MAC地址的低24位进行取模散列,就会得到一个值,该值作为一个多播地址,该机制一下子把多播域缩短了2^64/2^24。解析单个IPv6的链路层地址的请求只需要发给此主机的某个接口上配置了地址a对应侦听的一个多播地址,该地址为:M=f(a)M=f(a)M=f(a)具体可参见 rfc3513,因此我可以将大量的IP放到同一个以太网中。
除了上述的几个IPv6的特点,基于多年的网络应用的经验还有很多方面的优化,例如分片、流标签、移动性支持等特性,所以其带来的绝对不仅仅是地址位数变长这一点变化,同时也不应该因为发生的变化去担心网络变得更加复杂,实际上只要你真正地了解和掌握了IPv6以后,管理将更加简单,功能也将更加强大。IPv6时代已经来临,这是一个新的时代,需要我们在很多方面作出改变,我们必须摒弃掉很多以往管理IPv4网络时的习惯,用简单的方式去理解IPv6。