IP网络中的路由

下载
本部分内容包括:
• IP网络中的路由
• 路由信息协议( R I P )
• 开放式最短路径优先( O S P F )协议
• 网关协议
第11章IP网络中的路由
作者:Mark A. Sportack
本章内容包括:
• 路由基础知识
• IP网络中的收敛
• IP网络中的路由计算
任何I P网络最重要的一项功能是路由。路由是发现、比较、选择通过网络到达任何目的
I P地址的路径的过程。在典型情况下,路由功能嵌入到称为路由器的专用设备中。然而技术
的发展很快使得传统路由器、局域网交换机,甚至于和网络相连的主机之间的差别变得越来
越模糊。今天,这三种设备都能发现、比较、选择路由。因此,路由必须被看作功能而不是
物理设备。
路由的精髓以高度专业化的网络协议形式存在,这些协议使路由器(不管是哪种形式的物
理设备)执行它们重要的功能。这些功能包括:
• 共享局部相连主机和网络的信息。
• 比较冗余的潜在路径。
• 汇聚网络拓扑信息。
考查I P网络中的这些基本功能需要深入考查三种最常见的动态I P路由协议,这些协议会
在1 2到1 4章中讨论。
11.1 路由基本知识
路由器能以两种基本方式路由。一是可以使用预编程的静态路由,二是使用通过任何一
种动态路由协议来动态计算路由。路由器使用动态路由协议发现路由,之后,路由器通过这
些路由来转发报文(或数据报)。静态编程的路由器不能发现路由,它们缺少与其他路由器交换
路由信息的任何机制。静态编程的路由器只能使用网络管理员定义的路由来转发报文。
除了静态编程的路由,还有两种基本的动态路由协议类型:
第四部分I P 互联
• 距离-向量
• 链路-状态
这两种动态路由协议类型的基本区别在于二者发现和计算到目的地新路由的方式不同。
动态路由协议的两种功能类型
有许多方式对路由协议进行分类,比如,可以按如下操作特性对路由协议进行分
类:它们的使用领域、到每个目的地的冗余路由数等等。本书以发现和计算路由的方
式对路由协议进行分类。但是,有时参考它们的使用领域仍有用处。也就是说,以它
们在互联网络中充当的角色进行分类。比如,动态路由协议有两类功能类型:内部网
关协议(IGP)和外部网关协议(EGP)。
或许解释这一点的最简单方式是: I G P用于自治系统内部,如内部网( I n t r a n e t ),
而E G P用于自治系统之间。自治系统是一个自含的网络集,通常由一个或一组管理员
管理。边界网关协议(Border Gateway Protocal, BGP-EGP的一种)是用在I n t e r n e t之间计
算路由的协议。从路由的角度看I n t e r n e t,就是为所有私有的、可操作的自治系统进行
骨干传输。
本书包括的特定协议用IGP或EGP标识。
11.1.1 静态路由
静态的或预编程的路由是最简单的路由形式。发现和通过网络传播路由的任务由互联网
络管理员来完成。
静态路由编程的路由器把报文转发至预定的端口。在目的地址和路由器端口之间的关系配置
之后,就不再需要路由器来试图发现路由甚至和其他的路由器来交换通向目的地的路由信息。但
是有这样的可能,一个路由器对一部分目的地使用静态路由,而对其他的目的地使用动态路由。
使用静态路由有许多优点。比如,静态编程的路由可以使网络更安全:只有一条流进和
流出网络的路径(除非定义多条静态路由)。
静态路由的另一个优点是可以更有效地利用资源。它使用少得多的传输带宽。不使用路由
器上的C P U来计算路由,并且需要更少的存储器。在一些网络中通过使用静态路由甚至可以
使用更小的、廉价的路由器。除了这些优点外,还有一些静态路由自身的限制需要引起注意。
1. 静态路由的缺点
在网络发生问题或拓扑结构发生变化时,网络管理员负责手动适应这种变化。图11 - 1显
示了这一点。
在这个简单的例子中,网络管理员实现了一种分布路由信息的策略,使用这种策略他们
认为可以使工作量和网络流量达到最小。这个互联网络相对较小,由3个不同的网络组成,其
中一个支持小的、隔离的网络。这样的网络称为s t u b网络。每个网络使用自己的地址空间和不
同的动态路由协议。考虑到三种不同路由协议的不兼容性,网络管理员选择在网络之间不重
分配路由信息。相反,他们汇聚路由信息,静态地为它们定义路径。三个路由器网关的路由
表汇总在表11 - 1中,路由器D把一个小的s t u b网络和其他网络连接起来。这样,路由器可以使
用自己的串口作为所有去向不属于1 9 2 . 1 6 8 . 1 2 6网络报文的缺省网关。
96使用第四部分IP 互联
下载
图11-1 具有静态路由的简单互联网络
表11-1 静态定义的路由
路由器目的地下一跳
A 1 7 2 . 1 6 . 0 . 0 B
A 1 9 2 . 1 6 8 . 1 2 5 . 0 C
A 1 9 2 . 1 6 8 . 1 2 6 . 0 C
B 1 0 . 0 . 0 . 0 A
B 1 9 2 . 1 6 8 . 1 2 5 . 0 C
B 1 9 2 . 1 6 8 . 1 2 6 . 0 C
C 1 0 . 0 . 0 . 0 A
C 1 7 2 . 1 6 . 0 . 0 B
C 1 9 2 . 1 6 8 . 1 2 6 . 0 D
在这个例子中,路由器A会把所有去向1 7 2 . 1 6网络地址空间中主机的报文转发给路由器B。
路由器A也将把所有去向1 9 2 . 1 6 8 . 1 2 5和1 9 2 . 1 6 8 . 1 2 6网络中主机的报文转发至路由器C。路由器
B会把去向1 9 2 . 1 6 8 . 1 2 5和1 9 2 . 1 6 8 . 1 2 6网络地址空间中主机的报文转发给路由器C。路由器B会
把去向网络1 0中主机的报文转发给路由器A。路由器C会把所有去向网络1 0的报文转发给路由
器A,把去向网络1 7 2 . 1 6的报文转发给路由器B。而且路由器C会把去向1 9 2 . 1 6 8 . 1 2 6网络中主
机的报文转发给路由器D。这个网络是一个s t u b网络,因为它是网络中的死点( d e a d - e n d ),只
有一条路可以进出。这个小网络完全依赖于它到路由器C的链路及路由器C本身,这样才能和
整个互联网络主机联系起来。
在这个例子中,出现一个问题就会导致目的地不可达(虽然还有其他的路径可以使用)。在
图11 - 2中,网关路由器A与C之间的传输线路出现故障。
这个问题的结果导致网络1 0和网络1 9 2 . 1 6 8中的端系统不能彼此通信(即使通过路由器B有
一条有效路径!)。这种失败的结果使路由表如表11 - 2所示。
第11章I P网络中的路由使用97
下载
网络1 0
网络1 7 2 . 1 6 .
网络1 9 2 . 1 6 8 . 1 2 5
网络1 9 2 . 1 6 8 . 1 2 6
路由器A
路由器B 路由器C
路由器D
以太网
图11-2 静态编程的互联网络中链路中断会使通信崩溃
表11-2 产生了链路故障的静态路由
路由器目的地下一跳
A 1 7 2 . 1 6 . 0 . 0 B
A 1 9 2 . 1 6 8 . 1 2 5 . 0 C—不可达
A 1 9 2 . 1 6 8 . 1 2 6 . 0 C—不可达
B 1 0 . 0 . 0 . 0 A
B 1 9 2 . 1 6 8 . 1 2 5 . 0 C
B 1 9 2 . 1 6 8 . 1 2 6 . 0 C
C 1 0 . 0 . 0 . 0 A—不可达
C 1 7 2 . 1 6 . 0 . 0 B
缺乏任何动态机制可以使路由器A和路由器C认识到链路故障。它们不使用路由协议,如
果使用路由协议,就会发现和检测链路质量来获得到达目的地的路由信息。因此,路由器A和
C不能发现通过路由器B的另一条路径,虽然这是有效和可用的路由,静态编程不允许发现并
使用此路由。这种情况一直维持直到网络管理员手动地采取纠正措施。
2. 静态路由的好处
此时,读者可能怀疑静态定义的路由会有什么好处。静态路由只适用于小型网络,且到
达任一目的地只有一个路径,在这种情况下,静态路由是最有效的路由机制,因为它不消耗
任何带宽来发现路由或与其他路由器进行通信。
随着网络的增大,到达目的地冗余路径的出现,使用静态路由的工作量会变大。路由器
或广域网中传输线路可用性的任何变化必须手工发现并要对路由进行编程。广域网的特点是
拓扑复杂,提供多条可能的路径,这种情况绝对需要动态路由。试图在复杂的、具有多路径
的广域网中使用静态路由会使路由冗余的目的遭到破坏。
在有些情况下,静态定义路由是理想的,即使是在大型或复杂的网络中也是如此。比如,
98使用第四部分IP 互联
下载
网络1 0
路由器A
路由器B 路由器C
路由器D
网络1 7 2 . 1 6
网络1 9 2 . 1 6 8 . 1 2 5
网络1 9 2 . 1 6 8 . 1 2 6
以太网
能配置静态路由来加强安全。公司到I n t e r n e t的连接可以静态定义一条到安全服务器的路由。
不经过服务器提供的认证机制,任何进入都是不可能的。
另一种情况是,使用I P建造外部网到其他公司(公司的雇员在其中做大量的工作)的连接,
此时,静态路由非常有用。最后,静态路由是把小的s t u b网络和广域网连接的最好方式。静态
路由非常有用,读者只需理解它能做什么,不能做什么。
11.1.2 距离-向量路由
在基于距离-向量算法,有时也称为B e l l m a n - F o r d算法的路由中,算法会周期性地把自己
的路由表拷贝传给与其直接相连的网络邻居。每一个接收者加上一个距离向量,或它自己的
距离“值”到表上,并把它转发给它的直接邻居。这个过程无定向地发生在直接相连的路由
器之间。这个一步一步的过程导致每一个路由器得到了其他路由器的信息,最终形成一个网
络“距离”的积累视图。
积累表用于更新每个路由器的路由表。当这个过程完成时,每个路由器就学习到了到网
络资源的“距离”的模糊信息。它不学习和其他路由器相关的任何信息或网络的实际拓扑。
1. 距离-向量路由的缺点
距离-向量路由,在一定环境下会产生路由问题。比如,当网络失败或发生其他变化时,
路由器需要一些时间才能收敛到对网络拓扑的重新认识。在收敛过程中,网络可能是脆弱的,
产生不一致的路由,甚至路由环。有许多措施来防止这些情况发生,但在收敛过程中,网络
的性能仍处于危险之中。因此,旧的收敛慢的距离-向量协议不适合于大的、复杂的广域网。
即使在更小的网络中,距离-向量路由协议也会产生问题,或者至少距离-向量路由协议也
不是最优的。这是因为简单性的长处也会成为不足的来源。比如,图11 - 3表示出了具有特殊
地理位置的互联网络结构。
图11-3 使用距离——向量路由协议的互联网络
第11章I P网络中的路由使用99
下载
纽约
耗费= 1
耗费= 1
耗费= 1
西雅图
耗费= 1
路由器A
路由器B
路由器C
路由器D
费城
网络1 0 . 0 . 0 . 0 网络1 9 2 . 1 6 8 . 1 2 5 . 0
网络1 7 2 . 1 6 . 0 . 0 网络1 9 2 . 1 6 8 . 2 5 3 . 0
M i n n e a p o l i s
在这个例子中,网络1位于纽约,2位于西雅图,3位于费城,4位于M i n n e a p o l i s。距离-向
量路由协议使用静态分配的1作为每一跳的耗费,而不管链路间的距离或带宽。表11 - 3汇总了
到每个目的网络的跳数。在这个表中,读者会注意到路由器不必为每一个知道的端系统创建
不同的表项。用户的网络能实现基于主机的路由,但是如果实现基于网络的路由,会工作得
更好。基于网络的路由是仅仅基于I P地址中网络部分的路由;主机标识被截去。
理论上讲,给定任何网络,相同的路径可以到达所有主机或端系统。因此为每一个主机
地址创建不同项得不到任何东西。
表11-3 距离-向量路由协议中的跳步数
路由器目的地下一跳到目的地的跳步数
A 1 7 2 . 1 6 . 0 . 0 B 1
A 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
A 1 9 2 . 1 6 8 . 2 5 3 . 0 B或C 2
B 1 0 . 0 . 0 . 0 A 1
B 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
B 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
C 1 0 . 0 . 0 . 0 A 1
C 1 7 2 . 1 6 . 0 . 0 B 1
C 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
D 1 0 . 0 . 0 . 0 B或C 2
D 1 7 2 . 1 6 . 0 . 0 B 1
D 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
在任何具有冗余路由的互联网络中,使用距离-向量协议比静态路由更好。这是因为距离-
向量路由协议能自动检测和更正网络中的大多数错误。不幸的是,它不是完美的。比如,考
虑网关A中的路由表项。这是位于纽约的网关。从它看来, M i n n e a p o l i s网关是两跳远,不论
是经过费城还是西雅图。这个路由器将不关心访问M i n n e a p o l i s是经过费城还是西雅图。
如果网络中的所有变量保持不变(包括流量级、每个链路的带宽,甚至传输拓扑),地理上
最短的路径就会带来最小的传播延迟。因此,合理的是取短的路径,即通过费城。实际上,
简单的距离-向量协议没有这种能力。距离-向量协议并不考虑传播是否延迟,因为传播延迟经
常是路由性能中最不重要的因素。带宽和交通级对网络性能有更大的影响。
2. 距离-向量路由的优点
一般地讲,距离-向量协议是非常简单的协议,容易配置、维护和使用。因此,它对于非常
小的、几乎没有冗余路径且无严格性能要求的网络非常有用。距离-向量路由协议集中体现在路
由信息协议( R I P )中。R I P使用单一的距离标准耗费来决定一个报文要选择的最好路径。R I P已
广泛使用了几十年,最近才被证明有更新的必要。获得关于R I P更多的信息,可参考第1 2章。
11.1.3 链路-状态路由
链路-状态路由算法-越来越多的人认为是最短路径优先( S P F )协议-维护一个复杂的网络拓扑
数据库。与距离-向量路由协议不同,链路-状态协议形成和维护网络路由器的全部信息,以及
它们是如何互联的。可以通过和网络中的其他路由器交换链路-状态通告( L S A )来实现这一点。
交换了L S A的每一个路由器于是使用收到的L S A建造一个拓扑数据库。S P F算法用于计算
100使用第四部分IP 互联
下载
目的地的可达性。计算的信息用于更新路由表。这个过程能发现由于组件失败或网络变大而
导致的拓扑变化。
实际上, L S A交换由网络中的事件驱动,而不是周期性地运行,这样能大大减小收敛过
程,因为在这种情况下路由器没有必要等一系列计时器超时后才开始汇聚!
如果图11 - 3中的互联网络使用链路-状态路由协议,那么纽约与M i n n e a p o l i s之间的互联就
会产生多条路径。依赖于实际实现的协议和选择的标准,路由协议有可能在两条路径之间进
行区分并尽力使用最好的。网关的路由表汇总在表11 - 4中。
表11-4 链路-状态网络中的跳步数
路由器目的地下一跳到目的地的跳步数
A 1 7 2 . 1 6 . 0 . 0 B 1
A 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
A 1 9 2 . 1 6 8 . 2 5 3 . 0 B 2
A 1 9 2 . 1 6 8 . 2 5 3 . 0 C 2
B 1 0 . 0 . 0 . 0 A 1
B 192.168.125.0 C 1
B 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
C 1 0 . 0 . 0 . 0 A 1
C 1 7 2 . 1 6 . 0 . 0 B 1
C 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
D 1 0 . 0 . 0 . 0 B 2
D 1 0 . 0 . 0 . 0 C 2
D 1 7 2 . 1 6 . 0 . 0 B 1
D 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
从纽约到M i n n e a p o l i s的路由可以明显地看出,链路-状态协议能记住两条路由。有的链
路-状态协议甚至可以提供一种方法对两条路由性能进行评估,并选择好的路由。如果性能较
好的路径,比如通过费城的路由,发生任何形式的操作性问题(包括拥塞或组件失败),链路状
态协议会检测到这一变化并开始通过西雅图来转发报文。
1. 链路-状态路由的不足
虽然有这些特点和灵活性,链路-状态路由可能产生两个问题:
• 在初始发现过程中,链路-状态路由协议会在网络传输线路上进行洪泛( f l o o d ),因此会
大大削弱网络传输数据的能力。性能降低虽然只是暂时的,但是却非常显著。这样的洪
泛过程是否会显著影响网络性能依赖于两点:可获得的带宽和必须交换路由信息的路由
器数。在一个具有带宽相对窄的大型网络中进行洪泛(如帧中继网络中的低带宽D L C I )造
成的影响比在具有大带宽链路(如T 3 S )的小型网络上造成的影响显著得多。
• 链路-状态路由对存储器和处理器敏感。因此,配置更完全的路由器要求支持链路-状态
路由,而不是距离-向量路由。这会导致配置了链路-状态路由的路由器价格上涨。
这些几乎不是使用链路-状态方法进行路由的致命缺点,因为如上所述的不足可以通过预
测、计划和工程学方法加以解决。
2. 链路-状态路由的优点
链路-状态路由作为动态路由可以适合任何大小的网络。
在一个设计优良的网络中,链路-状态路由协议会使网络可以经得起任何不可预知的网络
第11章I P网络中的路由使用101
下载
拓扑结构变化。使用事件(如变化事件)来驱动更新(而不是固定时间间隔的计时器)能使收敛在
拓扑变化之后更快地进行。
距离-向量路由协议中经常性的、以时间驱动的更新所造成的开销在这里也被避免了。如
果正确地设计网络,可以使更多的带宽用于路由数据流量而不是网络维护流量。
链路-状态路由协议能更好地利用带宽带来的另一个好处是,使网络比使用静态路由或距
离—向量协议的网络具有更好的可扩展性。综合考虑这些协议的限制,会很容易看出链路-状
态路由对于更大的、更复杂化的网络或高度可扩展的网络是最合适的。为一个大型网络初始
配置链路-状态路由协议具有挑战性,但从长远考虑,这种努力是很值得的。获得更多关于链
路-状态路由的信息,参考1 3章。
11.2 IP网络中的收敛
路由中最让人感兴趣的方面是称为“收敛”的概念。非常简单,一旦网络拓扑或形状发
生变化,网络中所有的路由器必须得到对网络拓扑新的理解。这个过程既是协作的又是独立
的;路由器彼此共享信息,但它们必须独立地计算由于拓扑变化对自己路由的影响。但路由
器必须独立地从不同的角度共同来完成对新拓扑结构的一致看法,这个过程称为收敛到一致。
收敛是必要的,因为路由器是能自己做出路由决定的智能设备。这使其既具有健壮性又
具有脆弱性。在一般操作环境下,这种独立和分布式的智能会带来很大好处。在网络拓扑发
生变化时,形成对网络形状新的一致性看法的收敛过程可能会引入不稳定和路由问题。
11.2.1 适应拓扑变化
不幸的是,一旦网络拓扑发生变化,路由器的无关特性也会成为脆弱性的来源。图11 - 4
显示了网络拓扑如何发生变化。
图11-4 网关互联网络
102使用第四部分IP 互联
下载
网络1 0 . 0 . 0 . 0
网络1 7 2 . 1 6 . 0 . 0
服务器1 9 2 . 1 6 8 . 2 5 3 . 2
网络1 9 2 . 1 6 8 . 1 2 5 . 0
以太网
用户桌面机
路由器D
路由器A 路由器C
路由器B
图11 - 4的特点是绘出了一个相当简单、具有一些冗余路由的四节点互联网络。四个路由
器的路由表汇总在表11 - 5中。为了示例方便,认为此表是预收敛的路由表信息。
表11-5 预收敛的路由表信息
路由器目的地下一跳到目的地的跳步数
A 1 7 2 . 1 6 . 0 . 0 B 1
A 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
A 1 9 2 . 1 6 8 . 2 5 3 . 0 B或C 2
B 1 0 . 0 . 0 . 0 A 1
B 1 9 2 . 1 6 8 . 1 2 5 . 0 A或D 2
B 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
C 1 0 . 0 . 0 . 0 A 1
C 1 7 2 . 1 6 . 0 . 0 A或D 2
C 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
D 1 0 . 0 . 0 . 0 B或C 2
D 172.16.0.0 B 1
D 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
如果由路由器C发向服务器1 9 2 . 1 6 8 . 2 5 3 . 2的报文突然变为不可传送的,说明在网络中某处
极有可能出现了错误。这看起来可能是由无数特殊的故障所导致。更常见的情况包括:
• 服务器完全崩溃(由于硬件、软件或电气故障)。
• 局域网到服务器的连接出现故障。
• 路由器D出现故障。
• 路由器D到路由器C的串口出现故障。
• 网关路由器D和C之间的传输线路出现故障。
• 路由器C到路由器D的串口出现故障。
很显然,新的网络拓扑只有在故障位置明确后才能确定。同样道理,路由器不会试图绕
过出现问题的地方进行路由,直到故障点被隔离。如果上述两种情况有一种发生,服务器
1 9 2 . 1 6 8 . 2 5 3 . 2将完全不能被互联网络中的用户所访问,即使网络中可能会有冗余的路由。
同样的道理,如果路由器D完全崩溃,所有位于此点和局域网相连的资源将和网络的其他
部分隔离。但是,如果D路由器发生故障的只是部分故障,或故障发生在网络中的其他地方,
那么仍有到达位于网络1 9 2 . 1 6 8 . 2 5 3中主机的方式。找到一条至网络1 9 2 . 1 6 8 . 2 5 3的新路由需要
网络中的路由器认识到并对网络故障的原因达成一致看法。从网络中去除这个故障设备的结
果就改变了网络拓扑。
继续这个例子,假设路由器D至路由器C的串口发生故障。这会使C和D之间的链路不可用。
新的网络拓扑显示在图11 - 5中。
使用动态路由协议的路由器会很快确定通过当前的、优先使用的路由将不能到达服务器
1 9 2 . 1 6 8 . 2 5 3 . 2。靠自己,没有一个路由器能确定故障发生的位置,也不能确定是否存在可靠
的其他路由。然而,通过彼此共享信息,能得到网络新的混合视图。
注意考虑到本章的目的,这个例子故意使用了通用收敛方法。关于每种路由协议收敛
特性的具体细节将在12章至14章中讨论。
第11章I P网络中的路由使用103
下载
图11-5 路由器C和D之间的链路不可用
在这个互联网络中使用的路由协议相对简单。它限制了路由器只能和与其直接相联的路
由器交换信息,虽然它支持为每个目的地记录多条路由。表11 - 6汇总了图11 - 5中直接相邻的路
由器对。
表11-6 直接相邻共享路由信息的路由器
路由器A B C D
A — y e s y e s n o
B y e s — n o yes
C y e s n o — y e s
D n o y e s y e s —
表11 - 6中包含y e s的项说明路由器对之间有物理连接,并彼此交换路由信息。包含破折号
的项说明是相同的路由器。路由器不能与自身相连。最后,那些包含n o的项说明路由器没有
直接相连,不能直接交换路由信息。这样的路由器必须依赖于与其相连的路由器来更新与其
不相邻路由器上包含的到目的地的路由信息。
从这个表,可以很显然地看出,由于路由器A和D没有直接相连,因此它们必须依赖于路
由器B和C来得到彼此的路由信息。同样道理,路由器B和C必须依赖于路由器A和D来获得彼
此的路由信息。
图11 - 6显示了直接相邻的路由器之间共享路由信息的情形。
在这个例子中重要的一点是,由于并不是每台路由器和其他各台路由器直接相连,因此
需要多个路由更新来传播新的路由信息以适应发生了故障的链路。所以,适应拓扑变化是一
个迭代并需彼此合作的过程。
104使用第四部分IP 互联
下载
网络1 0 . 0 . 0 . 0
网络1 7 2 . 1 6 . 0 . 0
路由器B
路由器A 路由器C
路由器D
用户桌面机
以太网
网络1 9 2 . 1 6 8 . 1 2 5 . 0
服务器1 9 2 . 1 6 8 . 2 5 3 . 2
图11-6 直接相邻路由器共享路由数据
为了简单起见,在这个例子中假设收敛发生在两次路由表更新之内。在第一次迭代过程
中,路由器开始对它们的拓扑结构有了共同的新认识,由于路由器C和D之间的链路不可用,
它们不能交换路由信息。因此,它们会作废所有使用这条链路的路由。在收敛过程中四个路
由器路由表的内容如表11 - 7所示。请注意一些路由表的内容反映了错误的信息,认为路由器C
和D之间的链路仍是有效的。
表11-7 收敛中的路由表
路由器目的地下一跳到目的地的跳步数
A 1 7 2 . 1 6 . 0 . 0 B 1
A 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
A 1 9 2 . 1 6 8 . 2 5 3 . 0 B或C 2
B 1 0 . 0 . 0 . 0 A 1
B 1 9 2 . 1 6 8 . 1 2 5 . 0 A或D 2
B 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
C 1 0 . 0 . 0 . 0 A 1
C 1 7 2 . 1 6 . 0 . 0 只有A ( D失败) 2
C 1 9 2 . 1 6 8 . 2 5 3 . 0 D——无效路由不可达
D 1 0 . 0 . 0 . 0 B或C 2
D 1 7 2 . 1 6 . 0 . 0 B 1
D 1 9 2 . 1 6 8 . 1 2 5 . 0 C——无效路由不可达
在表11 - 7中,路由器C和D已经作废了彼此之间的路由。然而路由器A和B却相信通过此链路的
路由仍然有效。它们必须等着收到路由器C或D的路由更新之后才能认识到互联网络拓扑的变化。
第11章I P网络中的路由使用105
下载
自治系统1
网络1 0 . 0 . 0 . 0
自治系统3
网络1 9 2 . 1 6 8 . 1 2 5 . 0
自治系统2
网络1 7 2 . 1 6 . 0 . 0
用户桌面机
服务器1 9 2 . 1 6 8 . 2 5 3 . 2
=交换路由信息
路由器A
路由器B
路由器C
路由器D
以太网
表11 - 8包含的是四个路由器收敛至新拓扑后的路由表内容。记住,这个例子有意识地对
收敛过程进行一般描述,并不针对任何特定的路由协议机制。
表11-8 收敛后的路由表内容
路由器目的地下一跳到目的地的跳步数
A 1 7 2 . 1 6 . 0 . 0 B 1
A 1 9 2 . 1 6 8 . 1 2 5 . 0 C 1
A 1 9 2 . 1 6 8 . 2 5 3 . 0 只有B 2
B 1 0 . 0 . 0 . 0 A 1
B 1 9 2 . 1 6 8 . 1 2 5 . 0 只有A 2
B 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
C 1 0 . 0 . 0 . 0 A 1
C 1 7 2 . 1 6 . 0 . 0 只有A 2
C 1 9 2 . 1 6 8 . 2 5 3 . 0 D 1
D 1 0 . 0 . 0 . 0 只有B 2
D 1 7 2 . 1 6 . 0 . 0 B 1
D 1 9 2 . 1 6 8 . 1 2 5 . 0 只有B 1
表11 - 8清楚地说明互联网络中的所有路由器最终都认识到了C和D之间的链路已不可用,
但是每个自治系统中的目的地仍可以通过另外的路由到达。
11.2.2 收敛时间
网络中的所有路由器几乎不可能同时检测到拓扑变化。实际上,依赖于所使用的路由协议,
及其他一些因素,会有很长的延时才能使网络中的所有路由器对新拓扑结构达成一致的看法。这
个延时称为收敛时间。特别需要记住的是收敛不是瞬时的。惟一的不确定是需要多长才能收敛。
一些内在的因素会使收敛延迟加长,包括:
• 路由器离发生变化地方的距离(跳数)。
• 网络中使用动态路由协议的路由器数。
• 通信链路上的带宽和流量负载。
• 跳由器负载。
• 相对于拓扑变化的流量模式。
• 所使用的路由协议。
其中一些因素造成的影响可以通过精细的网络工程来极小化。比如,通过网络工程规划
可以使任何一台给定路由器或通信链路上的负载达到最小。其他的因素如网络中的路由器数,
必须作为网络设计中的内在危险因素考虑。然而,规划网络以使更少的路由器需要收敛是可
能的。使用静态路由来互联s t u b s和网络,可以减少必须收敛的路由器数量。这样会直接减少
收敛时间。考虑这些因素,很明显,减少收敛时间的两个关键是:
• 选择能有效计算路由的路由协议。
• 恰当的设计网络。
11.3 计算IP网络中的路由
从前一节的例子可以看出,收敛对于网络的操作功能绝对是重要的。收敛过程中的关键
106使用第四部分IP 互联
下载
因素是网络中路由器之间的通信。路由协议负责提供此功能。特别是,设计的这些协议可以
使网络中的路由器能共享到达网络中各目的地的路由。
不幸的是,所有的路由协议并非相同。实际上,评价一个路由协议适当性的最好方法是
评价其相对于其他路由协议计算路由和收敛的能力。从前面列举的因素应该明显地看出在任
何可信度下计算收敛时间都是困难的。路由器生产商可以帮助用户来完成这个过程,但是,
他们也只能为用户提供一般性的估计。
一个路由协议的收敛能力是其路由计算能力的函数。路由协议的路由计算效率依赖于几
个因素:
• 协议是否为每个目的地计算、存储多条路由。
• 路由更新开始的方式。
• 计算路由距离的或费用的度量标准。
每一个特定功能,及它们对整个计算效率的影响,将在以下各节中讨论。
11.3.1 存储多条路由
一些路由协议试图通过只记录一条(理想的,最好的)至每个已知目的地的路由来提高计算
效率。这种方法的不足是,当拓扑发生变化时,每个路由器必须为受影响的目的地计算一条
新的通过网络的路由。
其他协议接受由于使用更大的路由表和存储多条至每个目的地的路由所带来的处理开销。
一般操作条件下,维护多条路由使路由器在多条链路之间实现负载均衡。如果当拓扑发生变
化时,路由器的路由表中就已经有了至受影响目的地的其他路由。有其他映射路由并不能加
速收敛过程,但它确实可以使网络更好地经受拓扑变化。
11.3.2 初始化更新
一些路由协议使用时间来初始化路由更新,其他的协议以事件驱动来进行路由更新,也
就是说,当检测到拓扑变化时,就进行路由更新。在保持其他变量不变时,事件驱动的更新
比时间触发的更新具有更短的收敛时间。
1. 时间触发更新
时间触发的更新是非常简单的机制。随着时间流逝,计数器被递减。当一个特殊的时间
周期消逝时,就进行路由更新而不管是否发生了拓扑变化。这其中有两点含义:
• 许多更新是不必要的,这会浪费带宽和路由器资源。
• 如果以时间来驱动路由计算会使收敛时间不必要地扩大。
2. 事件驱动的更新
事件驱动是进行路由更新更复杂的方法。字面上讲,更新只发生在检测到网络拓扑变化
时。如果拓扑变化会导致收敛,这显然是更有效的方法。
通过选择路由协议管理员可以简单地选择更新方法;每个协议都实现了一种或另一种更
新机制。因此,这是选择路由协议时必须考虑的因素。
11.3.3 路由度量标准
另一个路由协议所决定的重要因素是度量标准。各种度量标准的数量和类型之间有很大
第11章I P网络中的路由使用107
下载
的不同。
1. 质量标准
简单的路由协议支持尽可能少的一种或两种度量标准。更复杂的协议能支持5个或更多的
度量标准。可以肯定假设度量标准越多,路由协议就越富于变化而且越特殊。因此,可用的
度量标准越多,裁剪网络操作以适应特定需要的能力越大。比如,简单的距离-向量协议使用
固定不变的质量标准:距离。实际上,距离和地理上的英里毫不相干,比源机和目的机之间
的英里数小得多。相反,它经常计算两点之间的跳数。
链路-状态协议可以提供基于几个因素计算路由的能力。
• 交通负载
• 可用带宽
• 传播延时
• 网络连接费用(虽然这个标准往往是真实值更粗略的估计)。
这些因素的大部分在网络中是动态变化的,它们在一天中会变化,一星期中的每天又有
所不同等等。需要记住的重要一点是随着它们的变化,网络性能也会发生变化。因此,动态
路由度量标准的初衷是允许使用最新的可用信息来计算最优路由。
2. 静态和动态标准
一些度量标准是简单、静态的,而其他标准却是非常复杂和动态变化的。静态度量标准
提供定制值配置的能力。配置之后,每个值会保持不变直到这个值被手动改变。
动态协议根据实时的网络状态信息来做路由决定。这些协议只被更复杂的链路-状态或混
合型路由协议所支持。
11.4 小结
路由的功能是使用户和端系统通过I P网络进行通信。然而,有许多计算和比较路由的方
法。这些方法的区别不是脱离实际的或理论上的—它们能直接影响I P网络的性能和功能。这
一章对路由协议各个方面及各种协议的优点和不足进行了一般描述。下面三章,以这个一般
认识为基础,分别讨论R I P、O S P F和B G P的特殊细节。
108使用第四部分IP 互联
下载 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值