《静态的与动态的内部路由协议培训(doc 59页).docx》由会员分享,可在线阅读,更多相关《静态的与动态的内部路由协议培训(doc 59页).docx(58页珍藏版)》请在课桌文档上搜索。
1、目录1. 路由契约31.1. 静态的与动态的内部路由31.2. 选路信息契约(RIP)51.2.1. 慢收敛问题的解决71.2.2. RlP报文格式81.2.3. RlP编址约定91.2.4. RlP报文的发送101.3. OSPF101.3.1. 概述.101.3.2. 数据包格式.101.3.3. OSPF基本算法111.3.4. OSPF路由契约的基本特征121.3.5. 区域及域间路由131.3.6. OSPF契约路由器及链路状态数据包分类161.3.7. OSPF契约工作过程.181.3.8. OSPF路由契约验证.211.3.9. 小结.211.4. HELLo契约221.5. 将
2、RIP,HELLO和EGP组合起来231.6. 边界网关契约第4版(BGP4)241.7. EGP271.7.1. 给体系结构模型增加复杂性271.7.2. 一个其本思想:额外跳281.7.3. 自治系统的概念.301.7.4. 外部网关契约(EGP)311.7.5. EGP报文首部.321.7.6. EGP邻站获取报文331.7.7. EGP邻站可达性报文331.7.8. EGP轮询请求报文341.7.9. EGP选路更新报文351.7.10. 从接收者的角度来度量371.7.11. EGP的主要限制.382. CISCO路由器产品介绍402.1. Cisco2500402.2. Cisco
3、4500-M402.3. Cisco7200412.4. Cisco7513/7507433. 路由器的基本HMt43参数设置43网络号.43IP类设置.44菜单没置.44欢迎文本.44异步线的设置45总绿45附录一路由器常用命令454. 基本维护53两种状态.53帮助.53命令简写.53跟踪错误.53进入设置状态.53存储退出53删除设置.54一些常用命令.54修改地址.54修改enableSeCreCtpassword.55附录二常见网络故障分析及排除561路由器常用测试命令562路由器传输故障排除方法563网络常见问题.581 .路由契约1.1. 静态的与动态的内部路由在一个自治系统内的
4、两个路由器彼此互为内部路由器。例如,因为核心组成了一个自治系统,两个Internet核心路由器互为内部路由器。在大学校园里的两个路由器也互为内部路由器,因为在校园里的所有机器都属于同一个自治系统。自治系统中的路由器如何获得关于本系统内部的网络的信息呢?在小型的、缓慢变化着的互连网络中,管理者可以使用手工方式进行路由的建立与修改。管理者保留一张关于网络的表格,并在有新的网络加入到该自治系统或从该自治系统删除一个网络时,更新该表格。例如图1.1中显示的小公司的互连网络。为这样的互连网络选路耗费就微不足道,因为任何两点之间仅有一条路由。管理者可用人工的方式来配置所有的主机和路由器的路由。互连网络更改
5、状态(如新增一个网络)时,管理者重新配置所有机器上的路由。网络4网络5图Ll在一个网点中包括了5个以太网和4个路由器的小型互连网络。在这个互连网络中任意两台主机之间仅有一个路由人工的系统明显存在缺点,它不能适应网络的迅速增长或迅速变化。在大型的、迅速变化的环境中,如Internet网,人对情况变化的反应速度太慢,来不及处理问题;必须使用自动机制。采用自动机制还有利于提高可靠性,并对某些路由可变的小型互连网络中的故障采取反应措施。为了验证这一点,我们假设在图Ll中增加一个路由器,使之变为图1.2所示的结构。网络4网络5图1.2增加了路由器R5后使得网络2和3之间多了一条备用路径当原有路由出故障时
6、,选路软件能够迅速切换到备用路由对于拥有多个物理路径的互连网络体系结构,管理者通常选择其中一条作为基本路径。如果该基本路径上的路由器出故障,就必须改动路由使得通信流量通过备用路由器来传输。人工改变路由的方式耗时长而且容易带来错误。因此,即便是小型互连网中,也应使用处动机制来迅速而可靠地改变路由。为了自动地保存准确的网络可达信息,内部路由器之间要进行通信,即路由器与可到达的另一个路由器要交换网络可到达性数据或网络选路信息。把整个自治系统的可到达信息汇集起来之后,系统中某个路由器就使用EGP把它们通告给另一个自治系统。内部路由器通信与外部路由器通信的不同之处就是:EGP提供了为外部路由器通信广泛使
7、用的标准,而内部路由器通信却没有一个单独的标准。造成这种情况的原因之一,就是自治系统的拓扑结谈判具体技术的多样性。另一个原因是结构简单与效用强大之间的折袋,即易于安装和配置的契约往往不能提供强大的效用。因此,流行的适用于内部路由器通信的契约有很多种,但多数自治系统只选择其中一个在内部的来传播选路信息。由于没有单独的标准,我们使用内部网关契约TGPdnteriorGatewayPrOtoCoD作为统称来描述所有的用于内部路由器之间交换的网络可达信息及选路信息的算法。例如BUtterfIy核心路由器组成了一个特定的自治系统,它使用SPREAD作为其内部网关契约IGP。有些自治系统使用EGP来作TG
8、P,不过这对那些由具有广播效用的局域网组成的小型自治系统没有多少意义。图1.3是自治系统使用某种IGP在内部路由器之间传播可到达信息的示意图。在这个图中,IGPl和TGP2分别表示自治系统1和2所使用的内部网关契约。从图中可以得到这个重要的概念:图1.3两个自治系统各自在其内部使用不同的IGP,但是其外部路由器使用EGP与另一个系统通信的示意图一个单个的路由器可以同时使用两种选路契约,一个用于到自治系统之外的通信,另一个用于自治系统内部的通信。具体地说,运行EGP通告可达性的路由器,通常还需要运行一种IGP,以便获得其自治系统内部的信息。1.2. 选路信息契约(RlP)使用最广泛的一种IGP是
9、选路信息契约RIP(RoutingInformationProtocol),RIP的另一个名字是routed(路由守护神),来自一个实现它的程序。这个程序最初由加利福尼亚大学伯克利分校设计,用于给他们在局域网上的机器提供一致的选路和可达信息。它依靠物理网络的广播效用来迅速交换选路信息。它并不是被设计来用于大型广域网的(尽管现在的确这么用)。在旋乐(XeroX)公司的PalOAIto研究中心PARC早期所作的关于网络互连的研究的基础上,routed实现了起源于XeroxNSRIP的一个新契约,它更为通用化,能够适应多种网络。尽管在其前辈上做了一些小改动,RlP作为IGP流行起来并非技术上有过人之
10、处,而是由于伯克利分校把路由守护神软件附加在流行的4BSDUNIX系统上一起分发,从而使得许多TCP/IP网点根本没考虑其技术上的优劣就采用routed并开始使用RIP。一旦安装并使用了这个软件,它就成为本地选路的基础,研究人员也开始在大型网络上使用它。关于RIP的最令人吃惊的事可能就是它在还没有正式标准之前就已经广泛流行了。大多数的实现都脱胎于伯克利分校的程序,但是由于编程人员对未形成文档的微妙细节理解不同而造成了它们之间互操作性限制。契约出现新版本后,出现了更多的问题。在1988年6月形成了一个RFC标准,这才使软件商解决了互操作性问题。RIP契约的基础就是基于本地网的矢量距离选路算法的直
11、接而简单的实现。它把参加通信的机器分为主机的(active)和被动的(PaSSive或SiIent)。主动路由器向其他路由器通告其路由,而被动路由器接收通告并在此基础上更新其路由,它们自己并不通告路由。只有路由器能以主动方式使用RIP,而主机只能使用被动方式。以主动方式运行RlP的路由器每隔30秒广播一次报文,该报文包含了路由器当前的选路数据库中的信息。每个报文由序偶组成,每个序偶由一个TP网络地址和一个代表到达该网络的距离的整数组成。RlP使用跳数度量(hopcountmetric)来衡量到达目的站的距离。在RIP度量标准中,路由器到它直接相连的网络的跳数被定义为1,到通过另一个路由器可达的
12、网络的距离为2跳,其余依此类推。因此从给定源站到目的站的一条路径的跳数(numberofhops或hopcount)对应于数据报沿该路传输时所经过的路由器数。显然,使用跳数作为衡量最短路径并不一定会得到最佳结果。例如,一条经过三个以太网的跳数为3的路径,可能比经过两条低速串行线的跳数为2的路径要快得多。为了补偿传输技术上的差距,许多RIP软件在通告低速网络路由时人为地增加了跳数。运行RIP的主动机器和被动机器都要监听所有的广播报文,并根据前面所说的矢量距离算法来更新其选路表。例如图1.2中的互连网络中,路由器Rl在网络2上广播的选路信息报文中包含了序偶(1,1),即它能够以费用值1到达网络1。
13、路由器R2和R5收到这个广播报文之后,建立一个通过Rl到达网络1的路由(费用为2)。然后,路由器R2利R5在网络3上广播它们的RIP报文时就会包含序偶(l,2)o最终,所有的路由器和主机都会建立到网络1的路由。RlP规定了少量的规则来改进其性能和可靠性。例如,当路由器收到另一个路由器传来的路由时,它将保留该路由直到收到更好的路由。在我们所举的例子中,如果路由器R2和R5都以费用2来广播到网络1的路由,那么R3的R4就会将路由设置为经过先广播的那个路由器到达网络1。即:为了防止路由在两个或多个费用相等的路径之间振荡不定,RTP规定在得到费用更小的路由之前保留原有路由不变。如果第一个广播路由的路由
14、器出故障(如崩溃)会有什么后果?RIP规定所有收听者必须对通过RIP获得的路由设置定时器。当路由器在选路表中安置新路由时,它也为之设定了定时器。当该路由器又收到关于该路由的另一个广播报文后,定时器也要重新设置。如果经过180秒后还没有下一次通告该路由,它就变为无效路由。RlP必须处理下层算法的三类错误。第一,由于算法不能明确地检测出选路的回路,RIP要么假定参与者是可信赖的,要么采取一定的预防措施。第二,RlP必须对可能的距离使用一个较小的最大值来防止出现不稳定的现象(RIP使用的值是16)。因而对于那些实际跳数值在16左右的互连网络,管理者要么把它划分为若干部分,要么采用其他的契约。第三,选
15、路更新报文在网络之间的传输速度很慢,RIP所使用的矢量距离算法会产生慢收敛(SloWconvergence)或无限计数(COUnttOinfinity)问题从而引发不一致性。选择一个小的无限大值(16),可以限制慢收敛问题,但不能彻底解决客观存在。选路表的不一致问题并非仅在RlP中出现。它是出现在任何矢量距离契约中的一个根本性的问题,在此契约中,更新报文仅仅包含由目的网络及到达该网络的距离组成的序偶。为了理解这个问题我们考虑图1.4中路由集合。图中描述了在图1.2中到达网络1的路由。图L4慢收敛问题。(a)中的三个路由器各有到网络1的路由。中,到网络1的路由已经消失了,但是R2对它的路由通告引
16、起了选路的环路正如图1.4(a)所显示的那样,Rl直接与网络1相连,所以在它的选路表中有一条到该网络的距离为1的路由;在周期性的路由广播中包括了这个路由。R2从Rl处得知了这个路由,并在自己的选路表中建立了相应的路由产工将之以距离值2广播出去。最后R3从R2处得知该路由并以距离值3广播。现在假设Rl到网络1的连接失效了。那么Rl立即更新它的选路表把该路由的距离置为16(无穷大)。在下一次广播时,Rl应该通告这一信息。但是,除非契约包含了额外的机制预防此类情况,可能有其他的路由器在Rl广播之前就广播了其路由。可能假设一个特殊的情况,即R2正好在Rl与网络1连接失效后通告其路由。因此,Rl就会收到
17、R2的报文,并对此使用通常的矢量距离算法:它注意到R2有到达网络1的费用更低的路由,计算出现在到达网络1需要3跳(R2通告的到网络1费用是2跳,再加上到R2的1跳)。然后在选路表中装入新的通过R2到达网络1的路由。图1.4描述了这个结果。这样的话,Rl和R2中的任一个收到去网络1的数据报之后,就会把该报文在两者之间来回传输直到寿命计时器超时溢出。这两个路由器随后广播的RlP不能迅速解决这个问题。在下一轮交换选路信息的过程中,Rl通告它的选路表中的各个项目。而R2得知Rl到网络1的距离是3之后,计算出该路由新长度4。到第三轮的时候,Rl收到从R2传来的路由距离增加的信息,把自己的选路表中该路由的
18、距离增到5。如此循环往复,直至距离值到达RIP的极限。1.2.1. 慢收敛问题的解决对图1.4的例子,可以使用分割范围更新(splithorizonupdate)技术来解决慢收敛问题。在使用分割范围技术时,路由器记录下收到各路由的接口,而当这路由器通告路由时,就不会把该路由再通过那个接口送回去。在该例中,路由器R2不会把它到网络1的距离为2的路由再通告给Rl,因此一旦Rl与网络1的连接失效,它就不会再通告该路由。经过几轮选路更新之后,所有的机器都会知道网络1是不可达的。但是分割范围更新技术不能解决所有的拓扑结构中的问题。考虑慢收敛问题的另一个方法是使用信息流的概念。如果路由器通告了到某网络的短
19、路由,所有接收路由器迅速地作出安装该路由的反应。当路由器停止通告某路由,契约在判断该路由不可达之前,要依据超时机制来工作。当超时出现时,路由器寻找替代路由并开始传播此信息。不幸的是,路由器并不知道这个替代路由是否要依赖于刚刚消失的路由。因此,通常不应迅速地传播否定的信息。有一条警句或谓一语破的:好消息传播得快,坏消息传播得慢。解决慢收敛问题的另一个技术使用了抑制(holddown)法。抑制法迫使参与契约工作的路由器,在收到关于某网络不可达的信息后的一段固定时间内,忽略任何关于该网络的路由信息。这段抑制时间的典型长度是60秒。该技术的思路是等待足够的时间以便确信所有的机器都收到坏消息,并且不会错
20、误地接受内容过时的报文。需要指出的是,所有参与RIP的机器都要遵循抑制策略,否则仍然会发生选路回路现象。抑制技术的缺点是:如果出现了选路同路,那么在抑制期间内这些选路回路仍然会维持下去。更严重的是,在抑制期间所有不正确的路由也保留下来了,即使是有替代路由的存在。解决慢收敛问题的最后一种技术就是毒性逆转(POiSOnreverse当一条连接消失后,路由器在若干个更新周期内都有保留该路由,但是在广播路由时则规定该路由的费用为无限长。为提高毒性逆转法的效率,它应该与触发更新(triggeredupdates)技术结合。触发更新技术使得新信息,路由器减少了因为想信好消息而容易出错的时间。不幸的是,虽然
21、触发更新技术、毒性逆转技术、抑制技术和分割范围技术能够解决一些问题,但它们又带来了一些新的问题。例如,在许多路由器共享一个大众网络的结构中采用触发更新技术的情况下,一个广播就能改变这些路由器的选路表,引发一轮新的广播。如果第二轮广播改变了路由表,它又会引起更多的广播。这就产生了广播雪崩。使用广播技术(这有可能产生选路回路)和使用抑制技术防止慢收敛问题,可使得RIP在广域网上的工作效率极低。广播要耗费大量宝贵的带宽。即使不出现广播雪崩现象,所有机器周期性地进行广播也意味着网络流量随着路由器数目的增加而增加。而可能出现的选路Pl路在线路容量有限的情况下可能就是致命的问题。当兜圈子的分组使得线路的容
22、量饱和后,路由器要交换一些选路报文来打破这种回路,就变得很困难甚至是不可能的。同样,在广域网中,抑制期间可能太长,使得高层契约使用的定时器超时从而中断连接。尽管有这些熟知的问题,但还是有许多的组织在广域网上使用RIP作为TGPo1.2.2.RIP报文格式RlP报文大致可分为两类:选路信息报文和对信息的请求报文。它们都使用同样的格式,由固定的首部和后面可选的网络和距离序偶列表组成。图1.5给出的报文的格式:在这个图中,命令(COMMAW)字段按照下表的规定对应了各种操作:O8162431命令(1-5)版本必为零网1的契约族必为零网1的IP地址必为零必为零至网1的距离网2的契约族必为零网2的IP地
23、址必为零必为零至网2的距离图1.5RTP报文的格式。在32比特的首部之后,报文包含了一系列的序偶,每个序偶由一个网络TP地址和一个到达该网络的整数距离值组成命令含义请求部分的或全部的选路信息2 响应,包含发送方选路表内的网络距离序偶3 启动跟踪模式(已过时)4 关闭跟踪模式(已过时)5 保留由SUnMiCrOSyStem公司内部使用路由器或主机通过发送请求命令向另一个路由器请求(request)选路信息。路由器使用响应(response)命令回答。但是在大多数情况下,路由器不经请求就周期性发送响应报文。版木(VERSlON)字段包含了契约的版本号(目前的值是D,接收方检测该字段以便对报文作出正
24、确的解释。1.2. 3.RIP编址约定RIP的普遍适用性也体现在它传送网络地址的方式上。它的地址格式不局限于供TCP/IP用户使用,还能适应其他网络契约族的规定。图1.5中显示出RIP通告中的每个网络地址可以长达14个八位组。当然,IP地址仅需4个八位组,RlP定义余下的八位组必须为零。网络i族(FAMlLYOFNETi)字段指出了解释它后面出现的网络地址时应遵循的契约族。RlP对各类地址族的赋值遵循了4BSDUNlX操作系统的规定(IP地址类型的赋值是2)。除了正常的IP地址之外,RIP规定地址0.0.0.0作为默认路由。RIP对通告的每个路由,包括默认路由,都附加了距离度量标准。因此可以让
25、两个路由器以不同的度量标准来通告默认路由(如到互连网络的其余部分的路由),选择其中的一条作为基本路径,另一条作为备用。在RIP报文每个项目的最后一个字段是到网络i的距离(DISTANCETONETi)字段,其内容是到达指定网络的整数型距离值。距离值是以跳数作为度量单位的,但是它的取值范围限制在1至U16,16代表无限远(也就是说该路由不存在)。1.2.4. RIP报文的发送RlP报文中并没包含显式的长度字段。相反,RTP假设底层投递系统能够告诉接收方收到的报文长度。特别是,在TCP/IP系统中,RIP报文依赖于UDP来告诉接收方报文的长度。RTP工作在UDP上的端口是520,虽然RlP可以以不
26、同的UDP端口来发送请求报文,但是在接收端的UDP端口通常都是520,同时这也是RlP产生广播报文的源端口。使用RIP作为内部路由器契约限制选路的度量必须基于跳数。但跳数通常仅仅提供对网络响应能力和容量的粗略估计,而并不能产生最佳路由。此外,基于最小跳数来计算路由会有严重的缺点,即它会使选路相对固定不变,因为路由不能对网络负荷的变化作出反应。1.3. OSPF随着Internet技术在全球范围的飞速发展,OSPF已成为目前Inlemel广域网和Inlranet企业网采用最多、应用最广泛的路由契约之一。OSPF(OpenShortestPathFirst)路由契约是由IETF(InternetE
27、ngineeringTaskForce)IGP工作小组提出的,是一种基于SPF算法的路由契约,目前使用的OSPF契约是其第二版,定义于RFC1247和RFCI583。1.3.4. 概述OSPF路由契约是一种典型的链路状态(Link-Stale)的路由契约,一般用于同一个路由域内。在这里,路由域是指一个自治系统(AUIOnomOUSSySlem),即AS,它是指一组通过统一的路由政策或路由契约互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息QSPF路由器正是通过这个数据库计算出其OSPF路由表的。作为
28、一种链路状态的路由契约QSPF将链路状态广播数据包LSA(LinkStateAdvertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由契约不同。运行距离矢量路由契约的路由器是将部分或全部的路由表传递给与其相邻的路由器。1.3.5. 数据包格式在OSPF路由契约的数据包中,其数据包头长为24个字节,包含如下8个字段:* Versionnumber-定义所采用的OSPF路由契约的版本。* Type-定义OSPF数据包类型。OSPF数据包共有五种:* Hello-用于建立和维护相邻的两个OSPF路由器的关系,该数据包是周期性地发送的。* DatabaseDeSCriPIiOn-
29、用于描述整个数据库,该数据包仅在OSPF初始化时发送。* 1.inkstaterequest-用于向相邻的OSPF路由器请求部分或全部的数据,这种数据包是在当路由器发现其数据已经过期时才发送的。* 1.inkstateUPdate-这是对Iinkstate请求数据包的响应,即通常所说的LSA数据包。* 1.inkstaleacknowledgment-是对LSA数据包的响应。* PaCkellenglh-定义整个数据包的长度。* ROUterID-用于描述数据包的源地址,以IP地址来表示。* AreaID-用于区分OSPF数据包属于的区域号,所有的OSPF数据包都属于一个特定的OSPF区域。*
30、 Checksum-校验位,用于标记数据包在传递时有无误码。* AuthenticationIyPe-定义OSPF验证类型。* AUthenliCatiOn-包含OSPF验证信息,长为8个字节。1.3.3.OSPF基本算法SPF算法及最短路径树SPF算法是OSPF路由契约的基础。SPF算法有时也被称为Dijkstra算法,这是因为最短路径优先算法SPF是DijkStra发明的。SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树。在OSPF路由契约中,最短
31、路径树的树干长度,即OSPF路由器至每一个目的地路由器的距离,称为OSPF的CoSI,其算法为:Cost=IOoXlO6/链路带宽在这里,链路带宽以bps来表示。也就是说,OSPF的Cost与链路的带宽成反比,带宽越高,Cost越小,表示OSPF到目的地的距离越近。举例来说,FDDI或快速以太网的Cost为1,2M串行链路的CoSl为48,10M以太网的CoSt为10等。链路状态算法作为一种典型的链路状态的路由契约QSPF还得遵循链路状态路由契约的统一算法。链路状态的算法非常简单,在这里将链路状态算法概括为以下四个步骤:1、当路由器初始化或当网络结构发生变化(例如增减路由器,链路状态发生变化等
32、)时,路由器会产生链路状态广播数据包LSA(Link-StateAdVerliSement),该数据包里包含路由器上所有相连链路,也即为所有端口的状态信息。2、所有路由器会通过一种被称为刷新(FIoOding)的方法来交换链路状态数据。Flooding是指路由器将其LSA数据包传送给所有与其相邻的OSPF路由器,相邻路由器根据其接收到的链路状态信息更新自己的数据库,并将该链路状态信息转送给与其相邻的路由器,直至稳定的一个过程。3、当网络重新稳定下来,也可以说OSPF路由契约收敛下来时,所有的路由器会根据其各自的链路状态信息数据库计算出各自的路由表。该路由表中包含路由器到每一个可到达目的地的CO
33、Sl以及到达该目的地所要转发的下一个路由器(next-hop)o4、第4个步骤实际上是指OSPF路由契约的一个特性。当网络状态比较稳定时,网络中传递的链路状态信息是比较少的,或者可以说,当网络稳定时,网络中是比较安静的。这也正是链路状态路由契约区别与距离矢量路由契约的一大特点。1.3.4. OSPF路由契约的基本特征前文已经说明了OSPF路由契约是一种链路状态的路由契约,为了更好地说明OSPF路由契约的基本特征,我们将OSPF路由契约与距离矢量路由契约之一的RlP(RoutingInformationProtocol)作一比较,归纳为如下几点:* RIP路由契约中用于表示目的网络远近的唯一参数
34、为跳(HoP),也即到达目的网络所要经过的路由器个数。在RIP路由契约中,该参数被限制为最大15,也就是说RIP路由信息最多能传递至第16个路由器;对于OSPF路由契约,路由表中表示目的网络的参数为CoSL该参数为一虚拟值,与网络中链路的带宽等相关,也就是说OSPF路由信息不受物理跳数的限制。并且QSPF路由契约还支持TOS(TypeOfService)路由,因此QSPF比较适合应用于大型网络中。* RIP路由契约不支持变长子网屏蔽码(VLSM),这被认为是RIP路由契约不适用于大型网络的又一重要原因。采用变长子网屏蔽码可以在最大限度上节约IP地址。OSPF路由契约对VLSM有良好的支持性。*
35、 RlP路由契约路由收敛较慢。RlP路由契约周期性地将整个路由表作为路由信息广播至网络中,该广播周期为30秒。在一个较为大型的网络中,RIP契约会产生很大的广播信息,占用较多的网络带宽资源;并且由于RIP契约30秒的广播周期,影响了RlP路由契约的收敛,甚至出现不收敛的现象。而OSPF是一种链路状态的路由契约,当网络比较稳定时,网络中的路由信息是比较少的,并且其广播也不是周期性的,因此OSPF路由契约即使是在大型网络中也能够较快地收敛。* 在RIP契约中,网络是一个平面的概念,并无区域及边界等的定义。随着无级路由CIDR概念的出现,RIP契约就明显落伍了。在OSPF路由契约中,一个网络,或者说
36、是一个路由域可以划分为很多个区域area,每一个区域通过OSPF边界路由器相连,区域间可以通过路由总结(Summary)来减少路由信息,减小路由表,提高路由器的运算速度。一个典型的OSPF网络结构可以参见附图二附图2:OSPF典型结构* OSPF路由契约支持路由验证,只有互相通过路由验证的路由器之间才能交换路由信息。并且OSPF可以对不同的区域定义不同的验证方式,提高网络的安全性。* OSPF路由契约对负载分担的支持性能较好。OSPF路由契约支持多条COSt相同的链路上的负载分担,目前一些厂家的路由器支持6条链路的负载分担。1.3.5. 区域及域间路由前文已经提到过,在OSPF路由契约的定义中
37、,可以将一个路由域或者一个自治系统AS划分为几个区域。在OSPF中,由按照一定的OSPF路由法则组合在一起的一组网络或路由器的集合称为区域(AREA)。在OSPF路由契约中,每一个区域中的路由器都按照该区域中定义的链路状态算法来计算网络拓扑结构,这意味着每一个区域都有着该区域独立的网络拓扑数据库及网络拓扑图。对于每一个区域,其网络拓扑结构在区域外是不可见的,同样,在每一个区域中的路由器对其域外的其余网络结构也不了解。这意味着OSPF路由域中的网络链路状态数据广播被区域.的边界挡住了,这样做有利于减少网络中链路状态数据包在全网范围内的广播,也是OSPF将其路由域或一个AS划分成很多个区域的重要原
38、因。随着区域概念的引入,意味着不再是在同一个AS内的所有路由器都有一个相同的链路状态数据库,而是路由器具有与其相连的每一个区域的链路状态信息,即该区域的结构数据库,当一个路由器与多个区域相连时,我们称之为区域边界路由器。一个区域边界路由器有自身相连的所有区域的网络结构数据。在同一个区域中的两个路由器有着对该区域相同的结构数据库。我们可以根据IP数据包的目的地地址及源地址将OSPF路由域中的路由分成两类,当目的地与源地址处于同一个区域中时,称为区域内路由,当目的地与源地址处于不同的区域甚至处于不同的AS时,我们称之为域间路由。OSPF的骨干区域及虚拟链路(VirIUal-Iink)在OSPF路由
39、契约中存在一个骨干区域(BaCkbone),该区域包括属于这个区域的网络及相应的路由器,骨干区域必须是连续的,同时也要求其余区域必须与骨干区域直接相连。骨干区域一般为区域0,其主要工作是在其余区域间传递路由信息。所有的区域,包括骨干区域之间的网络结构情况是互不可见的,当一个区域的路由信息对外广播时,其路由信息是先传递至区域0(骨干区域),再由区域0将该路由信息向其余区域作广播。骨干区域与其余区域的关系可以以附图三来说明。area1Inter-arouteIntra-areaRouteIr4reaRouteIntra-ayeaRoutearea2areal附图3:骨干区域及域间路由在实际网络中,
40、可能会存在backbone不连续的或者某一个区域与骨干区域物理不相连的情况,在这两种情况下,系统管理员可以通过设置虚拟链路的方法来解决。虚拟链路是设置在两个路由器之间,这两个路由器都有一个端口与同一个非骨干区域相连。虚拟链路被认为是属于骨干区域的,在OSPF路由契约看来,虚拟链路两端的两个路由器被一个点对点的链路连在一起。在OSPF路由契约中,通过虚拟链路的路由信息是作为域内路由来看待的。下面我们分两种情况来说明虚拟链路在OSPF路由契约中的作用。1.当一个区域与area没有物理链路相连时前文已经提到,一个骨干区域AreaO必须位于所有区域的中心,其余所有区域必须与骨干区域直接相连。但是,也存
41、在一个区域无法与骨干区域建立物理链路的可能性,在这种情况下,我们可以采用虚拟链路。虚拟链路使该区域与骨干区域间建立一个逻辑联接点,该虚拟链路必须建立在两个区域边界路由器之间,并且其中一个区域边界路由器必须属于骨干区域。这种虚拟链路可以以下图来说明。areal附图4:虚拟链路(1)在上图所示的例子中,区域1与区域O并无物理相连链路,我们可以在路由器A及路由器B之间建立虚拟链路,这样,将区域2作为一个穿透网络(TrarISit-network),路由器B作为接入点,区域1就与区域0建立了逻辑联接。2.当骨干区域不连续时OSPF路由契约要求骨干区域area。必须是连续的,但是,骨干区域也会出现不连续
42、的情况,例如,当我们想把两个OSPF路由域混合到一起,并且想要使用一个骨干区域时,或者当某些路由器出现故障引起骨干区域不连续的情况,在这些情况下,我们可以采用虚拟链路将两个不连续的区域0连接到一起。这时,虚拟链路的两端必须是两个区域0的边界路由器,并且这两个路由器必须都有处于同一个区域的端口,以下图为例:附图5:虚拟链路(2)在上图的例子中,穿过区域1的虚拟链路将两个分为两半的骨干区域连接到一起,路由器A与B之间的路由信息作为OSPF域内路由来处理。另外,当一个非骨干区域的区域分裂成两半时,不能采用虚拟链路的方法来解决。当出现这种情况时,分裂出的其中一个区域将被其余的区域作为域间路由来处理。残
43、域(Stubarea)在OSPF路由契约的链路状态数据库中,可以包括AS外部链路状态信息,这些信息会通过flooding传递到AS内的所有OSPF路由器上。但是,在OSPF路由契约中存在这样一种区域,我们把它称为残域(stubarea),AS外部信息不允许广播进/出这个区域。对于残域来说,访问AS外部的数据只能根据默认路由(defaull-route)来寻址。这样做有利于减小残域内部路由器上的链路状态数据库的大小及存储器的使用,提高路由器计算路由表的速度。当一个OSPF的区域只存在一个区域出口点时,我们可以将该区域配置成一个残域,在这时,该区域的边界路由器会对域内广播默认路由信息。需要注意的是
44、,一个残域中的所有路由器都必须知道自身属于该残域,否则残域的设置没有作用。另外,针对残域还有两点需要注意:一是残域中不允许存在虚拟链路;二是残域中不允许存在AS边界路由器。1.3. 6.OSPF契约路由器及链路状态数据包分类OSPF路由罂分类当一个AS划分成几个OSPF区域时,根据一个路由器在相应的区域之内的作用,可以将OSPF路由器作如下分类:内部路由器:当一个OSPF路由器上所有直联的链路都处于同一个区域时,我们称这种路由器为内部路由器。内部路由器上仅仅运行其所属区域的OSPF运算法则。区域边界路由器:当一个路由器与多个区域相连时,我们称之为区域边界路由器。区域边界路由器运行与其相连的所有
45、区域定义的OSPF运算法则,具有相连的每一个区域的网络结构数据,并且了解如何将该区域的链路状态信息广播至骨干区域,再由骨干区域转发至其余区域。AS边界路由器:AS边界路由器是与AS外部的路由器互相交换路由信息的OSPF路由器,该路由器在AS内部广播其所得到的AS外部路由信息;这样AS内部的所有路由器都知道至AS边界路由器的路由信息。AS边界路由器的定义是与前面几种路由器的定义相独立的,一个AS边界路由器可以是一个区域内部路由器或是一个区域边界路由器。指定路由器一DR:在一个广播性的、多接入的网络(例如EIhemeI、TOkenRing及FDDl环境)中,存在一个指定路由器(DeSignated
46、RoUter),指定路由器主要在OSPF契约中完成如下工作:*指定路由器产生用于描述所处的网段的链路数据包一networkIink,该数据包里包含在该网段上所有的路由器,包括指定路由器本身的状态信息。*指定路由器与所有与其处于同一网段上的OSPF路由器建立相邻关系。由于OSPF路由器之间通过建立相邻关系及以后的flooding来进行链路状态数据库是同步的,因此,我们可以说指定路由器处于一个网段的中心地位。需要说明的是,指定路由器DR的定义与前面所定义的几种路由器是不同的。DR的选择是通过OSPF的Hello数据包来完成的,在OSPF路由契约初始化的过程中,会通过Hello数据包在一个广播性网段
47、上选出一个ID最大的路由器作为指定路由器DR,并且选出ID次大的路由器作为备份指定路由器BDR,BDR在DR发生故障后能自动替代DR的所有工作。当一个网段上的DR和BDR选择产生后,该网段上的其余所有路由器都只与DR及BDR建立相邻关系。在这里,一个路由器的ID是指向该路由器的标识,一般是指该路由器的环回端口或是该路由器上的最小的IP地址.DR和BDR在一个广播性网络中的作用可用下图来说明。Ethernet附图6 : DR及BDR选择OSPF链路状态广播数据包种类随着OSPF路由器种类概念的引入QSPF路由契约又对其链路状态广播数据包(LSA)作出了分类。OSPF将链路状态广播数据包共分成5类,分别为:类型1:又被称为路由器链路信息数据包(RouterLink),所有的OSPF路由器都会产生这种数据包,用于描述路由器上联接到某一个区域的链路或是某一端口的状态信息。路由器链路信息数据包只会在某一个特定的区域内广播,而不会广播至其它的区域。在类型1的链路数据包中QSPF路由器通过对数据包中某些特定数据位的设定,告诉其余的路由器自身是一个区域边界路由器或是一个AS边界路由器。并且,类型1的链路状态数据包在描述其所联接的链路时,会根据各链路所联接的网络类型对各链路打上链路标识,LinkIDo表一列出了常见的链路类型及链路标识。链路具体描述链路标识类型I用于描述点对点的网络相邻路由器的