十年前,当人们考虑地址短缺的问题的同时也在考虑一个问题就是路由表“爆炸”的问题,在IPv4下,人们已经为这个问题所困扰,在IPv6的天文数字的地址下,可以想像,将要维护多么大的一个路由表,如何能保证IPv6正确的路由呢?
今天的Internet,如果一个路由器想要计算一个面向所有节点的最佳路由,那么在它的路由表中必须保持Internet上每一个有关网络的条目。大部分路由器是做不到这一点的,因为对它们来说路由表将太大。所以在这些路由器中只维护Internet上一部分子网,或者使用“默认路由”指向其它网络。但对于Internet网络传输提供商的骨干路由器这种简化是不适用的,这些路由器必须维护完成的路由表。这样,这些提供商就必须随这Internet的发展不断升级他们的配置。
众所周知,解决路由表“爆炸”的办法就是将许多的路由条目“聚集”起来。也就是说我们引入一种地址层次结构,在配置域间路由的时候可以利用这种层次结构简化路由表。解决IPv6路由表“爆炸”的办法就是使用提供商地址(provider address),这些地址之间有良好的网络拓扑关系,也就是一种良好的层次结构。
IPv6使用的计算路由表的协议主要有三种,分别是RIPv6 [i]、OSPFv6 [ii]、IDRPv6 [iii]。而IPv4使用的路由算法都不能不加改动的使用,因为它们不能传送128位地址。
一、RIPv6
RIP(Routing Information Protocol,路由信息协议)是一种IGP(Interior Gateway Protocol,内部网关协议),最新的内容在RFC 2453 [iv]中介绍。
RIP是一个距离矢量协议,其中,每一个路由器每30秒一次将其距离矢量发送到相邻的路由器。路由表只存储到目的的最佳下一个路程段。RIP的主要限制是它允许最大为15个路程段,超过15个路程段的每个目的被认为是不可达的。此外,RIP忽略了线路速度,不允许定义成本及其他度量单位,但是它的路由仅仅基于最小路程段数。在网络拓扑变化时,RIP聚集是很慢的。因此,RIP只能用在小型网络中。
RIPv6是可与IPv6共同使用的RIP版本。更新的RIP允许其接收128位地址,没有增加新的特性,没有消除以前限制的相关前缀长度。这种选择的原因在于保持RIPv6的简单性,由此它可以在非常简单的设备上实现,在这种设备上OSPFv6的实现是有问题的。
RIPv6有两种消息类型:请求和响应。它们都是用UDP [i](User Datagram Protocol,用户数据报协议)。在RIPv6中,允许每个信息包目的的有限数目,这样IPv6信息包结果就不会超过链路MTU(Maximum Transmission Unit,最大传输单元)。
二、OSPFv6
OSPF(Open Shortest Path First,开放最短路径优先)是为IP开发的IGP。OSPF最新在RFC 2178 [ii]中定义。
OSPF是基于层次概念的。层次的根是AS(Autonomous System,自治系统),它分为区域,每个区域包括一组互联网络。在一个区域内的路由叫做区域内(intra-area)。在不同区域内的路由叫路由间(inter-area)。每个AS有一个不能相邻的主干区域。在这种情况下,为了保证其内聚性,配置虚拟链路是有必要的。所有其他区域都连接到这个主干区域。
OSPFv6是可以用于IPv6的OSPF版本。它也是IPv6推荐的IGP协议。作为所有路由器厂商的标准实现,它适用于大型网络。
OSPFv6作为OSPF的更新,允许传送新的128位地址和相关的前缀长度。在OSPFv6中,区域定义为128位地址。没有增加新的功能是因为OSPF代表IGP协议的“艺术状态”。用于IPv4的OSPF和用于IPv6的OSPF是并行操作的,符合“晚间运输”方法(见参考文献〔19〕7.3.7节)。OSPFv6直接工作在IPv6层,并且,OSPFv6报头在前面一个报头的下一个报头域定义为值89。
三、IDRPv2
域间路由协议(IDRP)是和IPv6共同适用的EGP(Exterior Gateway Protocol,外部网关协议)协议。IDRP是一个路径矢量协议,在OSI机构中是设计在CLNP ISO 8473协议使用,在Internet上作为EGP从BGP-4(边界网关协议版本4,RFC1771 [iii])得出。适于和IPv6共同使用的IDRP版本是IDRPv2。
IDRPv2使用术语路由域,而不是自治系统。路由域由IPv6前缀(128为地址)标识;这简化了IANA(Internet Assigned Numbers Authority,,Internet分配号码权威机构)的工作,因为明确分配AS的标识符(在Ipv6中是16位)不再是必要的。
路由域可以分组为路由域联盟(Routing Domain Confederation)。联盟路由域可看做是唯一的实体,并且它们也是由IPv6前缀进行标识。联盟路由域通过引入任意数目的层次级别来进行联盟。
IDRP将路由域分为两种类型:
l 最终路由域(End Routing Domain,ERD):这种路由域的路由主要是计算用来提供域内路由服务。
2 传输路由域(Transit Routing Domain,T RD):这种路由域的路由主要是计算用来传送域间通信。
因为以下原因选择IDRPv2来替代BGP:
3 虽然在OSI结构中定义,它本身没有对OSI结构的依赖性。
4 它来自多协议路由的开始部分,允许几种地址类型。
5 它包括了所有的BGP-4的功能,并且它基于同一路径矢量方法(她按到达目的顺序宣告路由域或路由域联盟)。
每个路由器计算到达指定目的的首选路由,并且通过一个路径矢量将它传给IDRP邻接路由器。这种计算策略是可以在每个IDRP路由器上配置的。
IDRPv2工作在IPv6层上,并且在IDRP前面的报头中下一个报头域中值为45。
应当注意的是,虽然选择IDRPv2取代BGP-4作为IPv6的域间路由协议,但是在实际研究中仍然广泛使用BGP-4作为IPv6域间路由的协议来使用,并不断得到改进,尤其是在从IPv4向IPv6的过渡之中,BGP-4仍将大量使用。在本课题研究中使用路由软件ZEBRA就是一种支持BGP-4的路由软件,它不支持IDRPv2协议。虽然如此,在IPv6地址层次体系完善之后,IDRPv2将可能是广泛应用的域间路由协议,因此对于IDRPv2协议的研究也是值得重视的。
在IPv4中使用的一些路由协议如IGRP [i]、双IS-IS [ii]经过改动后在IPv6也可以使用,但目前没有达成一致的标准,有待今后由IPv6研究人员进行取舍和改进。 |