ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:1.06MB ,
资源ID:5728934      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5728934.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(OSPF路由协议.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

OSPF路由协议.docx

1、OSPF路由协议课程 DA000010 OSPF路由协议ISSUE 1.0目 录课程说明 1课程介绍 1课程目标 1第1章 OSPF路由协议 21.1 OSPF协议原理 21.2 OSPF基本概念 41.3 链路状态 51.4 计算路由 71.5 OSPF的协议报文 91.6 OSPF的邻居状态机 111.7 链路状态数据库的同步过程 131.8 DR和BDR 161.9 NBMA和点到多点 191.10 区域划分 211.11 区域间路由计算 231.12 骨干区域与虚连接 241.13 与自治系统外部通讯 261.14 STUB区域与路由聚合 281.15 LSA分类 301.16 接口分

2、类及路由器分类 321.17 OSPF与路由自环 34课程说明课程介绍本课程主要介绍OSPF协议原理,OSPF 是 Open Shortest Path First(即“开放最短路由优先协议”)的缩写。OSPF是 IETF (Internet Engineering Task Force)组织开发的一个基于链路状态的自治系统内部路由协议,是目前使用最为广泛的内部网关路由协议。 课程目标完成本课程的学习后,您应该能够: (正文,F2) 掌握OSPF 路由协议的基本原理(Item List,F3) 掌握OSPF 的区域划分 掌握OSPF路由协议的规划 掌握OSPF 路由协议的基本排错第1章 OSP

3、F路由协议1.1 OSPF协议原理OSPF 是 Open Shortest Path First(即“开放最短路由优先协议”)的缩写。它是 IETF (Internet Engineering Task Force)组织开发的一个基于链路状态的自治系统内部路由协议。在 IP 网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。当前OSPF协议使用的是第二版,最新的RFC是2328。OSPF协议具有如下特点:适应范围: OSPF 支持各种规模的网络,最多可支持几百台路由器。快速收敛: 如果网络的拓扑结构发生变化,OSPF 立即发送更新报文,使这一变化在自治系统中同步。无自环: 由于

4、 OSPF 通过收集到的链路状态用最短路径树算法计算路由,故从算法本身保证了不会生成自环路由。子网掩码 : 由于 OSPF 在描述路由时携带网段的掩码信息,所以OSPF协议不受自然掩码的限制,对VLSM 提供很好的支持。 区域划分 : OSPF 协议允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用网络的带宽。等值路由 : OSPF 支持到同一目的地址的多条等值路由。路由分级 : OSPF 使用 4 类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。支持验证 : 它支持基于接口的报文验证以保证路由计算的安全性。组播发

5、送 : OSPF在有组播发送能力的链路层上以组播地址发送协议报文,即达到了广播的作用,又最大程度的减少了对其他网络设备的干扰。1.2 OSPF基本概念1. Router IDOSPF协议使用一个被称为Router ID的32位无符号整数来唯一标识一台路由器。基于这个目的,每一台运行OSPF的路由器都需要一个Router ID。这个Router ID一般需要手工配置,一般将其配置为该路由器的某个接口的IP地址。由于IP地址是唯一的,所以这样就很容易保证Router ID的唯一性。在没有手工配置Router ID的情况下,一些厂家的路由器(包括Quidway系列)支持自动从当前所有接口的IP地址自

6、动选举一个IP地址作为Router ID。2. 协议号OSPF 协议用IP 报文直接封装协议报文,协议号是89。1.3 链路状态OSPF协议计算路由是以本路由器周边网络的拓扑结构为基础的。每台路由器将自己周边的网络拓扑描述出来,传递给其他所有的路由器。OSPF 将不同的网络拓扑抽象为以下四种类型: 该接口所连的网段中只有本路由器自己。(stub networks) 该接口通过点到点的网络与一台路由器相连。(point-to-point ) 该接口通过广播或NBMA的网络与多台路由器相连。(broadcast or NBMA networks) 该接口通过点到多点的网络与多台路由器相连。(poi

7、nt-to-multipoint)NBMA与点到多点的区别:在OSPF协议中NBMA和点到多点都是指非广播多点可达的网络,但NBMA网络必须满足全连通(full meshed)的要求,即任意两点都可以不经转发而使报文直达对端。否则,我们称该网络是点到多点网络。如上图所示:RTA作为网络中的一台路由器,其周围的链路状态情况可归纳为以下四种: 通过 PPP 协议与另一台路由器RTB直接相连; 通过一个 X.25 网络与 RTC 和 RTD 相连(该网络是全连通的); 通过一个Frame Relay网络与RTE和RTF相连(该网络不是全连通的,RTE与RTF不直接相连); 直接连接着一个局域网。1.

8、4 计算路由上图中描述了通过 OSPF 协议计算路由的过程。(1)由四台路由器组成的网络,连线旁边的数字表示从一台路由器到另一台路由器所需要的花费。为简化问题,我们假定两台路由器相互之间发送报文所需花费是相同的。(2)每台路由器都根据自己周围的网络拓扑结构生成一条 LSA(链路状态广播),并通过相互之间发送协议报文将这条 LSA 发送给网络中其它的所有路由器。这样每台路由器都收到了其它路由器的 LSA,所有的 LSA 放在一起称作 LSDB(链路状态数据库)。显然,4 台路由器的 LSDB 都是相同的。(3)由于一条 LSA 是对一台路由器周围网络拓扑结构的描述,那么 LSDB 则是对整个网络

9、的拓扑结构的描述。路由器很容易将 LSDB 转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。显然,4 台路由器得到的是一张完全相同的图。(4)接下来每台路由器在图中以自己为根节点,使用SPF算法计算出一棵最短路径树,由这棵树得到了到网络中各个节点的路由表。显然,4 台路由器各自得到的路由表是不同的。这样每台路由器都计算出了到其它路由器的路由。由上面的分析可知:OSPF协议计算出路由主要有以下三个主要步骤: 描述本路由器周边的网络拓扑结构,并生成LSA。 将自己生成的LSA在自治系统中传播。并同时收集所有的其他路由器生成的LSA。 根据收集的所有的LSA计算路由。1.5 OSPF

10、的协议报文OSPF的报文类型一共有五种:HELLO报文(Hello Packet):最常用的一种报文,周期性的发送给本路由器的邻居。内容包括一些定时器的数值,DR,BDR,以及自己已知的邻居。DD报文(Database Description Packet):两台路由器进行数据库同步时,用DD报文来描述自己的LSDB,内容包括LSDB中每一条LSA的摘要(摘要是指LSA的HEAD,通过该HEAD可以唯一标识一条LSA)。这样做是为了减少路由器之间传递信息的量,因为LSA的HEAD只占一条LSA的整个数据量的一小部分,根据HEAD,对端路由器就可以判断出是否已经有了这条LSA。LSR报文(Lin

11、k State Request Packet):两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的或是对端更新的LSA,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSU报文(Link State Update Packet):用来向对端路由器发送所需要的LSA,内容是多条LSA(全部内容)的集合。LSAck 报文(Link State Acknowledgment Packet)用来对接收到的LSU报文进行确认。内容是需要确认的LSA的HEAD(一个报文可对多个LSA进行确认)。1.6 OSPF的邻居状态机Down:邻居状态

12、机的初始状态,是指在过去的Dead-Interval时间内没有收到对方的Hello报文。Attempt:只适用于NBMA类型的接口,处于本状态时,定期向那些手工配置的邻居发送HELLO报文。Init:本状态表示已经收到了邻居的HELLO报文,但是该报文中列出的邻居中没有包含我的Router ID(对方并没有收到我发的HELLO报文)。2-Way:本状态表示双方互相收到了对端发送的HELLO报文,建立了邻居关系。在广播和NBMA类型的网络中,两个接口状态是DROther的路由器之间将停留在此状态。其他情况状态机将继续转入高级状态。ExStart:在此状态下,路由器和它的邻居之间通过互相交换DD报

13、文(该报文并不包含实际的内容,只包含一些标志位)来决定发送时的主/从关系。建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。Exchange:路由器将本地的LSDB用DD报文来描述,并发给邻居。Loading:路由器发送LSR报文向邻居请求对方的DD报文。Full:在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了。即,本路由器和邻居建立了邻接(adjacency)状态。 注意:1. 灰色的状态是指稳定的状态,其他状态则是在转换过程中瞬间(一般不会超过几分钟)存在的状态。2. 本路由器和状态可能与对端路由器的状态不相同。例如本路由器的邻居状态是Full,对端的邻居状

14、态可能是Loading。1.7 链路状态数据库的同步过程上图显示了两台路由器之间如何通过发送5种协议报文来建立邻接关系,以及邻居状态机的迁移。1. RT1的一个连接到广播类型网络的接口上激活了OSPF协议,并发送了一个HELLO报文(使用组播地址224.0.0.5)。由于此时RT1在该网段中还未发现任何邻居,所以HELLO报文中的Neighbor字段为空。2. RT2收到RT1发送的HELLO报文后,为RT1创建一个邻居的数据结构。RT2发送一个HELLO报文回应RT1,并且在报文中的Neighbor字段中填入RT1的Router id,表示已收到RT1的HELLO报文,并且将RT1的邻居状态

15、机置为Init。3. RT1收到RT2回应的HELLO报文后,为RT2创建一个邻居的数据结构,并将邻居状态机置为Exstart状态。下一步双方开始发送各自的链路状态数据库。为了提高发送的效率,双方需先了解一下对端数据库中那些LSA是自己所需要的(如果某一条LSA自己已经有了,就不再需要请求了)。方法是先发送DD报文,DD报文中包含了对本地数据库中LSA的摘要描述(每一条摘要可以惟一标识一条LSA,但所占的空间要少得多)。由于OSPF直接用IP报文来封装自己的协议报文,所以在传输的过程中必须考虑到报文传输的可靠性。为了做到这一点,在DD报文的发送过程中需要确定双方的主从关系。作为Master的一

16、方定义一个序列号seq,每发送一个新的DD报文将seq 加一。作为Slave的一方,每次发送DD报文时使用接收到的上一个Master的DD报文中的seq。实际上这种序列号机制是一种隐含的确认方法。如果再加上每个报文都有超时重传,就可以保证这种传输是可靠的。RT1首先发送一个DD报文,宣称自己是Master(MS=1),并规定序列号为x。I=1表示这是第一个DD报文,报文中并不包含LSA的摘要,只是为了协商主从关系。M=1说明这不是最后一个报文。4. RT2在收到RT1的DD报文后,将RT1的邻居状态机改为Exstart,并且回应了一个DD报文(该报文中同样不包含LSA的摘要信息)。由于RT2的

17、Router ID较大,所以在报文中RT2认为自己是Master,并且重新规定了序列号为y。5. RT1收到报文后,同意了RT2为Master,并将RT2的邻居状态机改为Exchange。RT1使用RT2的序列号y来发送新的DD报文,该报文开始正式地传送LSA的摘要。在报文中RT1将MS=0,说明自己是Slave。6. RT2收到报文后,将RT1的邻居状态机改为Exchange,并发送新的DD报文来描述自己的LSA摘要,需要注意的是:此时RT2已将报文的序列号改为y+1了。7. 上述过程持续进行,RT1通过重复RT2的序列号来确认已收到RT2的报文。RT2通过将序列号+1来确认已收到RT1的报

18、文。当RT2发送最后一个DD报文时,将报文中的M=0,表示这是最后一个DD报文了。8. RT1收到最后一个DD报文后,发现RT2的数据库中有许多LSA是自己没有的,将邻居状态机改为Loading状态。此时RT2也收到了RT1的最后一个DD报文,但RT1的LSA,RT2都已经有了,不需要再请求,所以直接将RT1的邻居状态机改为Full状态。9. RT1发送LS Request报文向RT2请求所需要的LSA。RT2用LS Update报文来回应RT1的请求。RT1收到之后,需要发送LS Ack报文来确认。上述过程持续到RT1中的LSA与RT2的LSA完全同步为止。此时RT1将RT2的邻居状态机改为

19、Full状态。 注意:以上过程是两台路由器由相互没有发现对方的存在到建立邻接关系的过程。或者可以理解为网络中新加入一台路由器时的处理情况。当两台路由器之间的状态机都已经达到Full状态之后,如果此时网络中再有路由变化时,就无须重复以上的所有步骤。只由一方发送LS Update报文通知需要更新的内容,另一方发送LS Ack报文予以回应即可。双方的邻居状态机在此过程中不再发生变化。1.8 DR和BDRDR的概念:在广播和NBMA类型的网络上,任意两台路由器之间都需要传递路由信息(flood),如果网络中有 N 台路由器,则需要建立N *(N-1)/2 个邻接关系。任何一台路由器的路由变化,都需要在

20、网段中进行N*(N-1)/2 次的传递。这是没有必要的,也浪费了宝贵的带宽资源。为了解决这个问题,OSPF协议指定一台路由器DR(Designated Router)来负责传递信息。所有的路由器都只将路由信息发送给DR,再由DR将路由信息发送给本网段内的其他路由器。两台不是DR的路由器(DROther)之间不再建立邻接关系,也不再交换任何路由信息。这样在同一网段内的路由器之间只需建立N个邻接关系,每次路由变化只需进行2N 次的传递即可。DR的产生过程:哪台路由器会成为本网段内的DR并不是人为指定的,而是由本网段中所有的路由器共同选举出来的。DR的选举过程如下: 登记选民本网段内的运行OSPF的

21、路由器; 登记候选人本网段内的Priority0 的OSPF路由器;Priority 是接口上的参数,可以配置,缺省值是1; 竞选演说一部分Priority0 的OSPF路由器自己是DR; 投票在所有自称是DR的路由器中选priority值最大的当选,若两台路由器的priority值相等,则选Router ID最大的当选。选票就是HELLO报文,每台路由器将自己选出的DR写入HELLO中,发给网段上的每台路由器;稳定压倒一切由于网段中的每台路由器都只和DR建立邻接关系。如果DR频繁的更迭,则每次都要重新引起本网段内的所有路由器与新的DR建立邻接关系。 这样会导致在短时间内网段中有大量的OSPF

22、协议报文在传输,降低网络的可用带宽。所以协议中规定应该尽量的减少DR的变化。具体的处理方法是,每一台新加入的路由器并不急于参加选举,而是先考察一下本网段中是否已有DR存在。如果目前网段中已经存在DR,即使本路由器的priority比现有的DR还高,也不会再声称自己是DR了。而是承认现有的DR。快速响应:如果DR由于某种故障而失效,这时必须重新选举DR,并与之同步。这需要较长的时间,在这段时间内,路由计算是不正确的。为了能够缩短这个过程,OSPF提出了BDR(Backup Designated Router)的概念。BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段

23、内的所有路由器建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为DR,由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的。当然这时还需要重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由计算。 注意:3. 网段中的DR并不一定是priority最大的路由器;同理,BDR也并不一定就是priority第二大的路由器。4. DR是指某个网段中概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上可能是BDR,或者是DROther。5. 只有在广播和NBMA类型的接口上才会选举DR,在point-to-point和point-to-

24、muiltipoint类型的接口上不需要选举。6. 两台DROther路由器之间不进行路由信息的交换,但仍旧互相发送HELLO报文。他们之间的邻居状态机停留在2-Way状态。1.9 NBMA和点到多点NBMA(NonBroadcast MultiAccess)是指非广播多点可达的网络,比较典型的有X.25和Frame Relay。在这种网络中,为了减少路由信息的传递次数,需要选举DR,其他的路由器只与DR交换路由信息。在上述描述中有一个缺省的条件:这个NBMA网络必须是全连通的(Full Meshed)。但这在实际情况中并不一定总能得到满足:例如一个X.25网络出于花费方面的考虑,并不一定在任

25、何两台路由器之间都建立一条map;即使是一个全连通的网络,也可能由于故障导致某条map中断,使该网络变成不是全连通的。在这种情况下会有什么问题呢?图二中是一个非全连通的X.25网络,但其中A、B、E三者是全连通的,假设E被选举为DR,其他为DROther(这里先不考虑BDR)。A、C、D三者也是全连通的,D是其中的DR。由于D、E之间不连通,所以DR的选举算法不能正确运行,D、E都坚持宣称自己是DR。对于A,则只能根据选举算法确定一个DR,假设是E,则A与E之间交换路由信息。A不承认D是DR,D无法与A交换路由信息,A,C之间也无法交换路由信息(两者都是DROther)。这样D、C就无法与网络

26、中其他路由器交换路由信息。导致路由计算不正确。由上述分析可知:错误产生的原因是因为在非全连通的网络中选举DR所至。为了解决这个问题,OSPF协议定义了一种新的网络类型:point-to-multipoint(点到多点)。点到多点与NBMA最本质的区别是:在点到多点的网络中不选举DR、BDR,即这种类型的网络中任意两台路由器之间都交换路由信息。在上面的图二中B、C可以通过A与网段中的其他路由器交换路由信息。一个NBMA的网络是否是全连通的需要网络管理人员去判断,如果不是,则需要更改配置,将网络的类型改为点到多点。NBMA与点到多点之间的区别: 在OSPF协议中NBMA是指那些全连通的非广播多点可

27、达网络。而点到多点的网络并不需要一定是全连通的。 在NBMA上需要选举DR、BDR,在点到多点上则不需要。 NBMA是一种缺省的网络类型,例如:如果链路层是X.25、Frame Relay等类型,则OSPF会缺省的认为该接口的网络类型是NBMA(不论该网络是否全连通,因为链路层无法判断出来)。而点到多点不是缺省的网络类型,没有哪种链路层协议会被认为是点到多点。点到多点必须是由其他的网络类型强制更改的。最常用的是将非全连通的NBMA改为点到多点。 NBMA用单播发送协议报文,需要手工配置邻居。点到多点是可选的,即可以用单播发送,又可以用多播发送报文。1.10 区域划分为什么需要划分区域?随着网络

28、规模日益扩大,网络中的路由器数量不断增加。当一个巨型网络中的路由器都运行OSPF路由协议时,就会遇到如下问题: 每台路由器都保留着整个网络中其他所有路由器生成的LSA,这些LSA的集合组成LSDB,路由器数量的增多会导致LSDB非常庞大,这会占用大量的存储空间。 LSDB的庞大会增加运行SPF算法的复杂度,导致CPU负担很重。 由于LSDB很大,两台路由器之间达到LSDB同步会需要很长时间。 网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“动荡”之中,为了同步这种变化,网络中会有大量的OSPF协议报文在传递,降低了网络的带宽利用率。更糟糕的是:每一次变化都会导致网络中所有的路由

29、器重新进行路由计算。 解决上述问题的关键主要有两点:减少LSA的数量;屏蔽网络变化波及的范围。OSPF 协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是在逻辑上将路由器划分为不同的组。区域的边界是路由器,这样会有一些路由器属于不同的区域,(这样的路由器称作区域边界路由器ABR),而一个网段只能属于一个区域。划分成区域之后,给OSPF协议的处理带来了很大的变化。 每一个网段必须属于一个区域,或者说每个运行OSPF协议的接口必须指名属于某一个特定的区域,区域用区域号(Area ID)来标识。区域号是一个从0开始的32位整数。 不同的区域之间通过ABR来传递路由信息。1.11 区

30、域间路由计算OSPF将自治系统划分为不同的区域后,路由计算方法也发生了很多变化: 只有同一个区域内的路由器之间会保持LSDB的同步,网络拓扑结构的变化首先在区域内更新。 区域之间的路由计算是通过ABR来完成的。ABR首先完成一个区域内的路由计算,然后查询路由表,为每一条OSPF路由生成一条Type3类型的LSA,内容主要包括该条路由的目的地址、掩码、花费等信息。然后将这些LSA发送到另一个区域中。 在另一个区域中的路由器根据每一条Type3的LSA生成一条路由,由于这些路由信息都是由ABR发布的,所以这些路由的下一跳都指向该ABR。划分区域后的好处: 由于划分区域后ABR是根据本区域内的路由生

31、成LSA,则可以根据IP地址的规律先将这些路由进行聚合后再生成LSA,这样做可以大大减少自治系统中LSA的数量。 划分区域之后,网络拓扑的变化首先在区域内进行同步,如果该变化影响到聚合之后的路由,则才会由ABR将该变化通知到其他区域。大部分的拓扑结构变化都会被屏蔽在区域之内了。1.12 骨干区域与虚连接为何需要骨干区域?OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号(Area ID)是0,通常被称为骨干区域(Backbone Area)。由于划分区域之后,区域之间是通过ABR将一个区域内的已计算出的路由封装成Type3类的LSA发送到另一个区域之中来传递路由信息。需要注意的是:此时的LSA中包含的已不再是链路状态信息,而是纯粹的路由信息了。或者说,此时的OSPF是基于D-V算法,而不是基于链路状态算法的了。这就涉及到一个很重要的问题:路由自环。因为D-V算法无法保证消除路由自环。如果无法解决这个问题,则区域概念的提出就是失败的。通过分析D-V算法中路由环的产生的原因可知,自环的产生主要是因为生成该条路由信息的路由器没有加入生成者的信息,即每一条路由信息都无法知道最初是由谁所生成。OSPF协议在生成LSA时首先将自己的Router ID加入到LSA中,但是如果该

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1