IPv6单播地址分配指南 | ||
http://www.media.edu.cn 中国教育网络 作者:陈茂科 |
地址规划是任何IP通信基础设置的基本方面。由于新的地址体系结构和新的分配策略,将IPv6引入真实网络意味着设计者和运营者要重新考虑现有的地址编址方式。在这方面缺乏行之有效的指导是延缓IPv6实施的一个重要原因。
Van de Velde等人提出的这份草案,旨在为IPv6部署中有关地址规划的问题提供信息和建议。作为这个话题的第一份草案,作者期望能引发更多的讨论,并继续丰富该草案的案例分析部分。草案讨论的范围局限于IPv6的单播地址,包括单播全局地址、单播局部地址和6bone地址空间的问题。所讨论的地址规划范畴包括纯IPv6网络及双协议栈的基础设施。对于地址分配,则针对网络部分的地址编址、子网前缀和接口标识分别进行分析。草案的很多部分注重讨论IPv6部署中和IPv4很不一样的方面。
广域网地址编址的设计
全局单播地址
全局单播地址是最常用的IPv6单播地址。如果一个机构被分配了一块地址空间,并且只有一个地址前缀通过一个唯一的上游服务提供商接入IPv6 Internet,那么这方面并不需要特别的考虑。
但一个多接入的(Multihomed)网络可能需要考虑如何使用两个以上服务提供商所分配的地址空间。如何使用多个地址前缀取决于采用多接入的根本原因——有弹性的故障保护、负载均衡、实施策略路由,或者解决重新编址(renumbering)的过渡问题。IPv6已经改进了主机对多地址的支持,实现了主机默认地址的选择算法(参见RFC3484: Default Address Selection for IPv6)。多接入的主机如果含有两个不同前缀的全局地址,那么其源地址或者目的地址将按RFC3484所描述的那样去选择。
单播局部地址(Unique Local IPv6 Addresses,ULA)
RFC4193所提议的全局唯一的单播局部地址(ULA)已经取代所谓的“站点局部地址”(Site-Local Addresses)在IPv6地址体系结构中的位置,而中国国内的IPv6工作者很少注意到这一变化。RFC3879解释了取消站点局部地址概念的理由。归根结底,“站点”(site)是个含混不清的定义。ULA使一个地址前缀的全局唯一概率大大提高。这样,无论是偶然或者蓄意的泄漏,都不至于对路由造成巨大的影响;在不同的网络融合的时候,也可以避免先前的站点局部地址所存在的歧义。
用法上,ULA和IPv4的私有地址十分类似,但它具有近似的全局唯一性。图1是ULA的地址结构示意图。其中,FC00::/7是ULA类型的前缀。作为一个统一前缀,有利于限制边界网关将这类地址的路由控制在一定范围之内。L是局部标志,置位表示后面的Global ID是各网络独自选择的;40位的Global ID由各网络独自随机选择,随机性保证一个ULA前缀在很大概率上是全局唯一的,因此,ULA并不要求部署它的管理员向一个全球机构注册使用某个前缀。在网络变换其服务提供商及对应的全局地址前缀时,ULA的地址编址体制可以保持不变,因此网络内部的运行将不因重编址而受到影响。
网络在部署ULA同时一般也部署全局地址,因此主机一般都同时分配有这样两种地址。默认地址选择算法能够正确选取源和目的地址,即如果源和目的主机都包含ULA地址时,则选择ULA地址。由于ULA前缀和一个全局的站点网络前缀都是48位的,因此管理员可以考虑对这二者采用一致的子网编址方案。
ULA使用中的一个典型问题是对IPv6组播的影响。IPv6默认地址选择算法会优先考虑ULA地址作为一个IPv6组播流的源地址。这个选择在IPv6组播流发往IPv6 Internet时是不正确的,因为ULA不是全局可路由的,将导致该组播会话的反向路径传递(RPF)在这个内部网络以外失效。
6Bone的地址空间
依据RFC3701,6bone的地址空间3FFE::/16已经于2006年6月6日停用。所有使用6bone前缀的网络必须过渡到使用由RIR分配的商用IPv6地址空间。CERNET自1998年11月获得6bone pTLA前缀3FFE:3200::/24以来,参与6bone的试验并为我国部署IPv6网络积累了经验。6bone地址停用后,原有的隧道为主的试验网如何成功过渡,是当前必须认真考虑的紧迫议题。
设计小结
总的来说,地址分配可以依据某种特定的逻辑来分割已经从RIR获得的地址前缀。这些设计逻辑可以包含对以下因素的考察:
地理边界——同一地区的所有子网分配相同的前缀;
组织机构边界——同一机构或同一类型机构的联合体分配相同的前缀;
业务类别——为某些特定的业务预留地址前缀,如:VoIP、内容分发服务、无线接入、ADSL接入等等;
这些方面和IPv4的地址规划类似。然而设计者务必同时考虑到以下IPv6特定的问题:
前缀聚类;
网络的增长,特别是增长过程中是否还能保持聚类;
ULA在大网中的使用。
由于随机选择40位的Global ID,FC00::/7地址块内的大量ULA前缀必然是不聚类的。然而注意到在一个/48大小的ULA Global ID之下,仍然有16位的子网ID可供使用,适当分配ULA Global ID,尽量将逻辑上属于同一对象的网络规划到子网范畴以内,也是避免大网内部路由产生过多more-specifics的有效途径。
子网前缀的设计考虑
短于64位的子网前缀在实践上没有太大意义——因为很少有一个直接连通的局域网,其需要接入的对象会使得264个地址这么大的地址空间还嫌紧张;而64位的子网前缀是IPv6地址体系结构的标准设计;因此,需要特别考虑子网前缀设计的场合多半属于比64位更长的子网前缀情况。由于这时候子网前缀扩散到传统意义上的接口标识部分,需要考虑避让特别定义的位或模式。
如果子网前缀长于80位,要斟酌是否需要考虑RFC4291所提到的第81和第82位,即univeral/local标志(u-位)和group/individual标志(g-位)。尽管目前这两位的错误设置并无影响,但可能将来的设计会利用其含义。
在设计长于64位的子网前缀时需要考虑anycast地址、Embedded-RP采用的地址、ISATAP地址等十种情况。
Anycast地址
子网的路由器anycast地址,即子网前缀后面全零的地址,要避免分配给除路由器以外的主机接口。特别注意不同长度子网前缀之间对这一地址的回避。
保留的子网内anycast地址,是子网内最高的128个接口标识。EUI-64结构的子网anycast地址的构成如图2。
因此,设计者务必回避使用第65到第121位为“1111110111……111”这样模式的前缀作为子网前缀。另一方面,对于非EUI-64类型的接口标识,保留的子网anycast地址如图3。
从编者的建议来说,最好回避使用一切/121的子网前缀,避免引起类似的麻烦。
Embedded-RP采用的地址
RFC3956所规范的Embedded-RP是把IPv6的组播会集点(RP)地址编进IPv6组播组地址的方法。由于不可能把RP的地址整个嵌入到组播组地址里去,人们规定一个单播前缀只能包含最多15个RP,如图4。
因此,对于比64位更长的子网前缀来说,如果子网前缀64位以后的部分不是全零,则该子网就没有Embedded-RP可用。
同时,当然也不鼓励将一个Embedded-RP格式的地址赋予一个并非真正组播会集点的设备。
ISATAP地址
ISATAP是一种在园区网内部范围使用的自动隧道协议,它将IPv4的地址嵌入到IPv6地址里,实现对封装依据的自动识别。如图5。
当使用比64位更长的子网前缀时,建议从第65位开始的部分不要与ISATAP可能用到的模式相冲突。
/126地址
如同IPv4中的/30,用于点到点链路。
/127地址
如RFC3627所说明的,强烈建议不使用/127地址。
/128地址
/128的前缀用于我们确信一个地址且只需要一个地址就足够使用的场合。一个典型的用法是用于设置网络设备链路无关的回环地址。选择/128前缀时,建议考虑u-位和g-位,同时回避与上述anycast、Embedded-RP及ISATAP地址冲突。
分配接口标识(IID)的考虑
IID的产生可能通过EUI-64规范无状态的产生,也可能通过手工或者DHCPv6配置。EUI-64自动产生IID这样的方式不必有更多的考虑。
使用隐私扩展
依据RFC3041产生IID的主要目的是给使用该地址的实体提供隐私保护。使用这样的地址没有任何特别的限制,但需要了解某些潜在的影响:
隐私扩展算法可能影响未来传输协议的灵活性;
隐私地址可能增加运行管理和基础设施故障管理的复杂度;
反向域名查询将无法简单实现。
加密产生的IID
加密产生IPv6地址(CGA)的技术是在RFC3972里阐述的,其基本思想是将一个公钥签名通过一个散列函数加到IPv6的接口标识里去。对应的私钥则可以用来对由这个地址发出的消息签名。使用CGA地址需要注意的潜在问题可以在RFC3972的第7节找到,主要包括:
使用CGA地址时,u-位和g-位的值将被忽略;
不存在证明一个地址不是CGA地址的机制;
一旦发现节点被危及,则必须产生新的签名密钥及相应的CGA地址。
此外,隐私地址的有关考虑同样适用于CGA。
手工或动态分配的考虑
和子网前缀的选择类似,人们需要回避保留的anycast地址、Embedded-RP地址、ISATAP地址等等。建议不要采用过于容易被猜测到的IPv6地址,同时避免将现今基础设施中还在使用的IPv4地址嵌入到某个IPv6地址里去。这两点有利于防止不怀好意的第三方猜测一个重要的目标并实施攻击。
对于今天的CERNET和CERNET2而言,部署IPv6的环境已经是典型的多接入(multihoming)的环境,同时还有大量的新技术在研究和开发的过程中。例如真实IPv6地址的体系结构、IPv4到IPv6无状态地址映射技术等等,都或多或少涉及到对地址体系结构的调整和变更。从这方面来说,发展这些新技术的同时,设计好多接入环境的地址规划方案,是一项颇具挑战性的工作。
中国IPv4地址申请数量在奋起直追多年后,目前已经居世界第三位,然而中国下一代互联网IPv6地址申请却再次落后。 据中国互联网络信息中心(CNNIC)资料,目前我国在IPv6地址上的申请已经远远落后于发达国家,IPv6地址拥有量仅有27块,排名第一的德国IPv6地址是我国的345倍,和亚太地区的日本和韩国相比,也相差极大,我国IPv6地址只是日本的1/270,韩国的1/154。目前日本拥有IPv6地址7271块、韩国拥有4145 块。 此外,我国网络IP地址资源主要集中在广州、北京、江苏、浙江、上海和山东六省市,几乎占全国地址资源的50%,其他25省市占50%。在可预见的未来,IP地址资源分配不平衡和其他25省市IP地址不足将制约国家互联网建设的均衡发展。为了使网民享有平等机会分享互联网络技术进步的成果,解决这些省市IP地址不足问题是一个重要前提。 据悉,截止到2006年1月25日,全球IPv6地址分配数量前十名分别为德国(9308 )、法国(8223)、日本(7271 )、韩国(4145 )、澳大利亚(4108 )、荷兰(561 )、挪威(268 )、台湾(195)、美国(158)、英国(86 )。可以看出,目前IPv6的分配主要集中在发达国家手中。从地域上,亚太地区的日本和韩国在IPv6的申请数量上比较靠前。目前中国的IPv6地址拥有量排名世界第十四。 |