网络通信 频道

IPV6的选路问题

目前好像几乎人人都知道IPv4网络地址即将耗尽。另一个问题却不是如此显而易见,即非默认路由器,或者是列出Internet上所有路由的路由器,即在Internet骨干网上或骨干网附近、因而必须知道全部路由的路由器,它们如何处理日益庞大的路由表。路由表中必须列出到达所有独立网络的路由,因此CIDR广受欢迎。使用CIDR,一个上述骨干路由器可以用一个涵盖8位地址空间的CIDR路由代替256个C类网络的256条路由。所有的256条路由可以经由一个Internet访问供应商来选路,因此CIDR可以显著减少映射到Internet所需要的路由数目。

IPv6没有IPv4中的地址类别的概念。不论A、B、C类地址的存在对于IPv4如何有用,长期以来这种分类都是对地址的浪费,对于网络地址体系结构,子网或超网能力好像用处更多。而且出于选路目的,IPv6地址可以积累起来,理论上有很大潜力可以显著地减少非默认选路表的大小。

当然,这种高度集聚的体系结构也有缺点,即一旦一个机构改变其供应商,就必须对网络重新编号。同样,多宿主网络可能引起更多的问题。实际上,基于供应商的CIDR模式集聚方法的反对者把这个问题称为“专制”,他们已经提出了替代方案。很显然,这些替代方案在IPv6中没有采纳,但是这些方案有助于使自动配置和供应商移动性成为IPv6过渡策略的关键部分。

看起来IPv6选路协议IPv4选路协议好像没有显著的不同,这一点也许会很令人吃惊。毕竟IPv6寻址体系结构自身将显著改进选路效率,并减少非默认选路表的大小,因此选路算法和协议只需要进行极少的修改便可取得更好的执行效果。为支持IPv6,对这些协议所做的修改大部分都与如何处理较长的IPv6地址有关。

IP选路协议

IP选路协议实质上可以分为链路状态协议和矢量距离(或路径矢量)协议两类,也可以按照内部选路和外部选路来分类。这两种分类方法看起来很简单,但足以满足本书的要求。

1.内部选路和外部选路

内部选路和外部选路的概念对Internet的结构非常重要。这两个概念与Internet以及相连的互联网络之间的交互方式密切相关。例如,某个公司的内联网通过一条链路与Internet相连,该内联网与全球Internet之间的全部业务流都经由该链路来传送。如果这条链路中断,内联网就不再有外部连接能力。这种类型的网络称为自治系统(AS),因为网络内部的一切都由单一的管理机构来管辖。这种系统的自治性体现在如果想要访问系统内的任何节点,全球Internet路由器只需要了解一条路由。同样,AS内的任何节点可以使用默认路由来向AS之外的任何节点发送包。默认路由用于标识链接该AS与全球Internet的路由器。

内部选路参与AS内部包的选路。换言之,在相对小型的互联网络内的选路,所谓小型是相对于全球Internet而言。AS内部的路由器保持的路由表相对较小,这些路由表包含到AS内部的子网和网络的路由,如果包要寻址的网络的地址没有明确列在路由表中,那么表中也包含一条或多条此时要选的默认路由。

另一方面,外部选路发生在AS环境之外。骨干路由器不能有默认路由。作为骨干路由器,如果要正确地发挥其作用,它就必须了解每个目的网络的显式路由。这意味着它的选路表将非常庞大,由此可见,使用诸如CIDR之类的集聚机制对于改善骨干选路性能极为重要。

如下所述,所有的选路协议都使用了链路状态选路算法和距离矢量选路算法中的一些要素。目前的IPv4外部路由器依靠RFC1771中定义的边界网关协议4(BGP-4),这是一种支持CIDR的距离矢量选路协议。尽管最初有一些评论(参见Huitema所著《IPv6TheNewInternetProtocol》)认为BGP非常适用于IPv4的32位地址,但完全不适于IPv6,但是BGP-4似乎仍将用于IPv6中的外部选路。有一个Internet草案中描述了为能够正确处理IPv6单播地址(链路本地地址、站点本地地址和全球地址)而进行的某些扩展,RFC2283中指出,经过上述扩展和为支持多协议选路所进行的相对少量的修改,BGP-4将能够处理IPv6外部选路。

另一个重要的外部选路协议是域间选路协议(IDRP),该协议源自ISO/OSI的努力。IDRP在描述实质上规模无限的网络和支持网络地址体系结构方面提供了更大的灵活性。有些人认为IDRP是更好的IPv6外部选路协议,但是随着Internet的进一步发展,IDRP是否能继续保持其重要性,这一点还存在质疑。

2.链路状态和矢量距离协议

通常矢量距离协议较简单。选路信息协议(RIP)就是一个重要的矢量距离协议,该协议很简单,但是,因为它要求互联网络中的每个路由器都要周期性地向网络中所有其他路由器广播自己的选路信息,故该协议有一定的局限性。正如其名称所示,每个路由器所广播的信息包括路由和表示该路由长度的整数的列表。见图8-2,网络中的路由器1到网络A的路径距离是1跳,到网络B、D、F的路径距离是2跳,到网络C和E的路径距离是3跳。图中路由器2到网络B是单跳路径,到网络A是一条2跳路径。


路由器使用RIP链接而成的一个简单互联网络



使用这个广播信息,路由器2得知任何要发往网络A的包应该向路由器1选路,因为其他路由器没有通告到网络A的更短路径。同样,路由器2知道应该避免把发往网络A的包转发给路由器5,因为该路由器与网络A的距离为3跳。路由器2也清楚路由器3与网络A的距离为3跳,与自己的距离也为3跳,因此如果经由路由器3来转发给网络A将需要6跳。

显而易见,RIP有一些缺陷。首先,该协议“噪音”很大。每个路由器都频繁地发送状态信息,默认情况下每30秒就发送一个报文,这样随着互联网络规模的扩充、路由器数目的增加,整个网络的业务流将急剧增长。其次,由于RIP定义的限制,它只能支持不超过16跳的互联网络,即,如果路由的长度超过16跳,就不能使用RIP来选路。虽然RIP头可以支持的跳长度多达232-1,但由于选路收敛问题,开发者们在早期就确定RIP应该限制在16跳之内。所谓选路收敛问题,是指在不正确的路由通过网络传播之前,有关连通性问题的报文无法转播给所有的路由器。

选路协议有必要允许包的选路独立于网络拓扑。这意味着源节点不必在内存中保留Internet的拓扑结构,也能够向网络中的任何目的地发送包。中间路由器应该了解网络的连通性,以便正确地转发包,但是它们也不必了解整个网络结构,只需要了解本地部分。因此,RIP之类的协议使得路由器能够获得来自其他路由器的有关它们的连接状态的通知。设计IP的目的是使其工作在既不完全可靠也不完全冗余的网络基础设施中。以上图为例,这意味着如果路由器6失效,来自网络E的包仍然可以发送到网络A,不是通过路由“路由器5-路由器6-路由器1”,而是通过替代路由“路由器5-路由器2-路由器1”。

问题是,如果路由器1到网络A的链接失效,网络A和互联网络之间就不再有连通性,即它被从互联网络切断了。但是,路由器1一直接收到有关其他路由器与网络A之间的链路的信息。所有这些路由至少是2跳,对于这些信息路由器1予以忽略,因为它自身到网络A只有1跳。为保证协议有效,必须矫正此问题及类似问题,但是相应地增加了复杂度。

上述问题并不说明RIP无用,对于小型或中型互联网(又称为内联网)而言,对网络带宽的限制并不重要,因而RIP还是很重要的选路协议。但是,对于大型内联网,RIP不适用;当有很多不同路由需要考虑时,对于选路骨干业务流,RIP也不适用。

针对矢量距离方法的缺陷,诸如开放的最短路径优先(OSPF)协议之类的链路状态协议得以大量引入。采用这种方法,路由器不是周期性地向所有其他路由器通知自己的所有路由,而是只通告自己的直接链路。见图8-2,路由器1通告自己和网络A、路由器2、路由器4及路由器6有直接连接。其他的路由器也通告它们的直接连接,这样所有的路由器根据这些通告的报文就可以产生合适且理想的路由。如果路由器5得知与自己直接连接的路由器2又连接到路由器1,而路由器1直接连接到网络A,那么它就可以产生一条从网络E到网络A的路由。路由器只在连接改变或其他路由器询问时才发出通告,这样使用诸如OSPF之类的协议会减少与选路相关的噪声。由于没有RIP的跳限制,也不会在路由器间产生大量业务流,因而OSPF能够支持较大型网络。但是,OSPFRIP要复杂得多。对多层次的支持和对基于服务类型选路的支持也是OSPF的重要特性。

选路协议也可允许更多的选路信息。例如,路由器可以根据可用带宽、延时、甚至价格对某些链路分配不同的值。这样,在图8-2中,对于要发送给网络A的业务流,如果到路由器4的链路在某方面看起来更优(例如更短、更快或价格更低),路由器5可能就倾向于通过路由器4来选路。

3.IPv6对选路协议的更新

如上所述,在为适合IPv6地址和地址范围而进行简单修改之后,BGP-4和IDRP很可能继续用作IP的外部选路协议。同样,在RFC2080(IPv6RIPng)中描述的RIPng与现有协议很相似。OSPF版本2最近作为Internet标准在RFC2328中定义,而用于IPv6OSPF版本还在定义中。预计用于IPv6OSPF将保留OSPF的概貌,包括基本特性和功能,并使之适合于处理IPv6选路。

文章转载地址:http://www.cnpaf.net/Class/IPV6/0532918532714103.html

0
相关文章