《【网络工程】OSPF协议.docx》由会员分享,可在线阅读,更多相关《【网络工程】OSPF协议.docx(10页珍藏版)》请在课桌文档上搜索。
1、OSPF协议1. 概述22. SPF算法33. OSPF协议原理53.1自治系统的分区53.2区域间路由53.3StUb区和自治系统外路由63.4DR和BPR64.OSpF报文64. 1OSPF协议报文65. 2OSPF包承我的内容86. OSPF协议的运行85.1He1.Io侨议的运行85.2DR和BDR的产生95.3链路状态数据库的同步105.4路由表的产生和杳找101. 概述OSPF协议是由Internet网络工程部(IETF)开发的一种内部网关协议(IGP),即网关和路由器都在一个自治系统内部.OSPF是一个琏路状态协议或最短路径优先(SPF)协议.虽然该协议依赖于IP环境以外的一些技
2、术.但谛物议专用芋IP.而F1.还包括子网编址的功能冽办/根/【I,故-mU业;U决定了如何为个IP数据报选择路径,就将数据报发往所选样的路径中,不需要额外的包头,即不存在额外.一该方法与许多网络不同,因为他们使用某种类型的内部网络报头对UDP进行封笠以控制子网中的路由选择协议。另外OsPF可以在很短的时间里使路由选择表收敛。OSPF还能移防止出现回路,这种能力财于网状网络或使用多个同桥连接的不同局域网是非常很要的.在运行OSPF的每一个路由岩中椰维护一个描述自治系统拓扑结构的统一的数据库,该数据库中每一个路由器的局部状态信息(该路由器可用的接口信息、鸵居信息)、路由器相连的网络状态信息(该网
3、络所连接的路由器)、外部状态信息(该自治系统的外部路由信息等组成。每一个路由器在自治系统范用内扩散相应的状态信息。所有的路出器并行运行同样的算法,根据该露出器的拓扑数据库构造出以它自己为根节点的最短路径树,该收短路径树的叶子节点是自治系统内部的其它路由器。当到达同一日的路由器存在多条相I可代价的路由时,OSPF能够实现在多条跖径上分配流量.RFC2178中删除了OSPF的TaS功能,但是为了保证和以前版本的兼容性,在各个链路状态宣告中还保存了ToS工程.2. SPF算法与V-D算法相比较的一组舞法叫作“琏接一状态(1ink-siaie)算法,又叫或短路径优先或SPF(ShortestPathF
4、irS1.)算法。按照SPF算法的要求,网关寻径衣依椀于一张表示整个Internet网中网关与网络拓扑结构的图.在这张图中,节点表示网关,边表示连接网关的网络(Iink),我们除之为1.-S图。在信息一致的情况下,所有网关的1.-S图应该是完全相同的.各网关的寻径表是根据相同的1.-S图计算出来的.1.-S算法包括三个步骤:(1)各个网关主动测试与所有相邻网关之间的状态。为此,网关周期性地向相邻网关发出HeIIo报文,闻问相邻网关是否能够访问,假设相邻网关做出反应,说明魅接为“开”(1.P).否则为“关”(三0,健接一状态的取名即出于此.(2)各网关周期性地播送其1.-S信恩.这里的“播送”是
5、其正意义的播送,不象Y-D算法那样只向相邻网关发送V-D报文,而是向所有参加SPF舞法的网关发送1.-S报文“(3)网关收到1.一$报文后,利用它刷新网络拓扑图,然相应链接改为“开”或关”状态.假设1.-S发生变化.N关立即利用最短路径算法,根据1.-S图揖新计算本地路径.在实际应用中有好几种最短路径选择算法,大多数是以A算法(a1.gorith三A为基础.该算法已作为互连网络SPF协议的模型,并且多年来被用于优化网络设计和网络的拓扑结构.各节.点用自己掘有的统一的描述自治系统拓扑结构的数据库,以自己为根,建立一个路径选择的寻径表.在图1中,节点A是源节点,节点J是目的节点。其具体的步骤如下:
6、(1)企图1中,网络中的包条路径有一个权值,该权值是根据某一标准(如考虑斯禹、时廷、队列长度等)得出的:(2)为越个节点标上一条路径从源端到该节点需要的G小代价,最初不知道任何路径,所以每个节点的标号为无穷大:(3)为斑个节点检测它同I目有哪些相邻的节点,源节点是第个被考虑的节点,并旦变为工作节点;(4)为工作节点的每个相邻的节点分配一个最小代价标号。如果发现一条从该节点到源节点的更短的路径,则修改标号。在OSPF中,当链路状态报文播送到所有其他节点时,会发生这种情况(即因发现更短的路径而修改标号:(5)在给相邻节点分配了标号以后,检测网络中的其他节点,如果某个已分配了标号的节点拥有较小的标号
7、值,则它的标号变为永久标号,该节点变为J1.作节点:(6)如果某节点的标号与到它的某个相邻节点路径上的权值之和小于该相凭节点的标号,在改变该相邻节点的标号,因为发现了一条更短的路径:(7)选择另一个工作节点,虫或上述过程直到力尽所有的可能,爆后的斑个节点的标号就给出了源节点和目的节点之间的条端到端的代价最低的路径.ff1.JA芽法的应用经过了上面的计算可以形成图2所示的路由选择拓扑图(即最短距禹树,又称城优树):图2珞由战A的路由选齐拓扑图3. OSPF协议原理3. 1自治系统的分区OSPF允许在一个自治系统里划分区域的做法,相邻的网络和它们相连的路由器组成一个区域(Area).每一个区域有该
8、区域自己拓扑数楙库.该数据库对于外部的区域是不可见的,每个区域内部路田擀的链路状态信息数据库实际上只包含着该区域内的就路状态信息,他们也不能详细地知道外部的S1.接情况,在同一个区域内的路由器拥有同样的拓扑数据库.和多个区域相连的路由器拥有多个区域的链路状态信息际。划分区域的方法H少了铳路状态信息数据库的大小、并极大殳然少了路由器间交级状态信息的数J鼠如图3所示.图3把自治系统分成多个OSPF区域在多于一个区域的自治系统中,OSPF规定必须有一个柠干区(backbone)-area0,竹干区是OSPF的中枢区域.它与其他区域通过区域边界路山渊(ABR)相连.区域边界路由通过甘干区进行区域路由信
9、息的交换.为了到达一个区域的各个跖由器保持相同的链路状态信息库,这就要求骨干区是相连的,但是并不要求它们是物理连接的。在实际的环境中,如果它们在勃理上是断开的,这时可以通过建立虚钺跖(VirIUa1.1.ink)的方法保证骨干区域的连线性.虚处将屈于性干区并且到一个非馆干区都有接口的两个AIJR连接起来,虚链本身版于柠干区.OSPF将通过虚性连接的两个路由湍看作是通过未端号的点对点鞋路(unnumberedpointtopoint)连接.3. 2区域间路由当两个非骨干区域间路HIIP包的时必须通过骨干区.IP包经过的路径分为三个局部:源区域内路径(从源端到ABR)、骨干路径源和目的区域间的骨干
10、区路径)、目的端区域内路径(目的区域的ABR到目的路由器的路径,从另一个观点来看,一个自治系统就象一个以骨干区作为HU回各个非骨干区域连到HUb上的星型站构图.各个区域边界路由器在骨干区上进行路由信息的交换,发布本区域的路由信息,同时收到其他ABR发布的信息.传到本区城进行璀路状态的更新以形成最新的路由表.3. 3StUb区和自治系统外路由在一个OSPF自治系统中有这样一种特殊的区域-一存根区域(Stub区域).在这个区域中只有-个外部出11.该区域不允许外部的非OSPF的路由信息进入。到自治系统外的包只能依挣:玦省路由。方根区域的边界路由器必须在路由慨要里向区域宣告这个缺省路由,但是不能邮过
11、这个存根区域,我省跖出的使用可以减少链路状态信息诲的大小.对于该自治系统外部跖由伯息,如BGP产生的跖由伯恩,可以通过该自治系统的区域边界路由器(AsBR)透明地犷散到整个自治系统的各个区域中.使得该自治系统内部的每一台路由零都能够获得外部的路由信息。但是该信息不健扩散到存根区域。这样自治系统内的路由器UJ以通过ASBR路由包到自治系统外的目标,3. 4DR和BDR在自治系统内的短个报送和非播送多点访问(BM)网络里,都有一个指定路出器(DR-DesiKnaiedRouter)和一个备份指定路出器(BDR-BackupDesignatedRouter),它们是通过HeIIo协议选举产生的。DR
12、的主要功能是:(1)产生代表本网络的网络路由宣告,这个宣告列出了连到该网络有哪线路由器,其中包括DR自己:(2)DR同本网络的所有其他的路住I器建立一种星型的锯接关系,这种邻接关系是用来交换各个路由器的琏路状态信息,从而同步能路状态信息库,DR在路出器的链路状态信息库的同步上起到核心的作用,另一个比较重要的路由器是BDR,BDR也和该网络中的其它路由器建立钳;按关系。因此,BDR的设立是为了保证当DR发生故障时尽快接昔DR的工作,而不至于出现由于需虫新选举DR和重新构筑拓扑数据库而产生大范围的数据库熊荡.当院存在的情况下,BDR不生成网络磕路播送消息.在DR、BDR的选举后,该网络内其它路由器
13、向OR、BDR发送链跖状态信息,并经OR转发到和DR建立邻接关系的其它路由器.当链路状态信息交换完毕时,DR和其它路由器的邻接关系进入了稳定态,区域范围内统一的拓扑(埼路状态)数据库也就建立了,每个路用器以该数据库为基础.采用SPF算法计算出各个路由港的路由表.这样就可以进行路由杼发了.4. OSPF报文4. 1OSPF悔议报文OSPF使用五种类型的路由协议包.在各个路由器间进行交换信息,如表1所示.何种协议包都包含24字节的OSPF协议包的甘部,如图4所示。He1.1.o协议用于寻找和维护路由器所连网络上的邻居关系.通过周期性地发出I1.e1.1.o包,来确定和维护邻居路由涔接口是否仍在起作
14、用.He1.1.u包被发送到网络上的每个活动的路由器按E1.在播送和非搔送的多点访问的网络上,DR和BDR的选举也是通过He1.1。包来完成的.在不同的勃理网络上,HeII。包的目的地址是不同的;在点到点和播送网络上,其目的地址是AIISPFROUter(224.0.0.5):在虚链路上是小措,也就是从虚链路的源端直接发送到鞋路的另一端:而在点到多点的网络上,别离的He1.1。包分别发送到相连的每一个邻居:在非播送的多点访问网络上,He1.1.o包的发送要看各个路由器的配置信息.ft1OSPF路由协议包类型包类小IIftfJIkU1.o为议包发现和独护纪时数IWM:描述汇总数据W内容琏路状态请
15、求JkiK陈卜致琏路状态更新1KJ琏路状态痈认扩畋琥认版本号类型包长度路由器IDKID检验和AuTypc?身份验证身份验证图4OSPF协议包的百舒数据库描述包是类型往为2的OSPF包.在形成邻接过程中的路由器之间交换数据库描述包,且它们描述鞋路状态数据库。根据接口数和网络数,可能不只一个数据库描述包来传输整个链路状态数据库。在交换的过程中所涉及的路由器建立主从关系.主路由器发送包,而从路由器通过使用数据库描述(DatabasePescription-DD)序列号认可接收到的包.接口WIT域指示通过该接口可发送的/大IP包长度.当通过虚链路发送包时,这个域设置为(1.选项城包含3位,用于板示路由
16、器的能力.I位是Init位.对数据库序列中的第一个包.设置为1.M位设置为I,表示在序列中还有更多的数据库描述包。MS位是主从位,在数据库描述包交换期间,1衣示路由案是主路由涔,而0表示路由器是从路由器,包的其余局部是一个或多个1.SA,如图5所示。InterfaceMTUOptions00000IIMMSDDsequencenumberAn1.SAHeader数熨作描述包格式链路状态请求包是类型为3的QSPF包,它们的格式如图6所示。当两个路由器完成交换数据库描述包时,路由涔可检测链路状态数据麻是否过时.当这种情况发生时,略由器可请求新一些的数据阵描述包.1.S类型钛路状态ID图6路由状悠谛
17、求包格式鞋路状态更新包是类型为4的OSPF包它们用于实现1.SA的传播.於路状态更新包格式显示在图7中.每个链路状态更新包包含一个或多个1.SA,而斑个包通过使用链路状态确认包来认可”ISA的个数1.SA图7链路状态更狱包的格式胜路状态确认包是类型位5的OSPF包,其格式中除了OSPF包首部外,包括1.AS的首都.这些包发送到二个地址之一:多点传送地址A1.IDROUters.多点传送地址AIISPFRoUters.或单点传送地址.4. 2OSPF包承载的内容 路由涔链路状态宣告路由器为每个有活动OSPF接口的区域生成一个路由零1.SA.包含在路由器WS中的信恩是路由器接口在该区域中的状态,而
18、1.SA在整个区域传播.进入一个区域的所有路山零接I必须在一个路由潺1.SA中说明.桂路状态ID域是路由器的OSPFI及VEB位用于确定路出器可能有的链路类型。V位显示路由器虚拟琏路的玷点.跳路ID标识路由涔的接I所连接的对象.琏路ID般等于邻居路由器的桂路状态H).链路数据域的内容取决于就路类型.如果路由器与存根区域连接,那么,这个域将包含这个网络的IP地址掩码.而其他类型的锌路,这个城包含分配给该接口的IP地址,效劳类型域通,前设置为。,殿后的伯是鹿城值,或链路的费用。 网络琏路状态式告N络1.SA是类型为2的1.AS.而这样的1.SA是由支持两个或多个路用零的每个播送和NBMA网络所生成
19、的.网络1.SA是由网络的DR所创立的,这个1.SA描述了连接到网络的所有的路由器,包括DR自己。旋路状态ID是DR到这个区域的接口的IP地址。 汇总SJ路状态宣告类型3和类型4的1.SA是汇总隹路状态宣告.汇总1.SA是有区域边界路由器生成的,而且它们说明区域的目标,3型汇总有IP地址目标,锋路状态ID是IP的网络号.4型汇总1.SA以一个自治系统边界路由器为其目标,链路状态ID是OSPF路由器ID,链路状态ID是两种类里1.SA包之间的唯一区别. 外部自治系统链路状态宣告类型5是RS-EXterna1.1.SA.它被用于说明自治系统外的网络.AS-Externa1.1.SA用于说明到外部网
20、络的路由。疑路状态ID域包含IP网络号或0.0.0.0,如果它描述一个帙认路由,此时的作为掩码也是0.0.0.0。5. OSPF协议的运行5. 1He1.1.o协议的运行HC1.I。协议的作用是发现和维护邻居关系、选举DR和BDR.在播送型网络.每一个路由潺周期性地播送He1.1。包(目的地址是A1.ISPFRUU1.Cr),使得它能够被锦居发现。短一个路由器的每个接口都有一个相关的接口数据结构,当He1.1.o包里的特定参数(如Area1.D,Authentication,NetworkMask,He1.1.oInterva1.,RouterDeadInterva1.WOptionsva1.
21、ues)相匹配时,He1.1.o包才能被接收,HeIIo包中包含存本路由器所希望选举的DR和该DR的优先徼、BDR和HDR的优先级、还有本路由器Jfi过交换He1.1.。协议包所“看”到的其它路由器.从He1.1.。包里得到的邻居被放在路南零的领居列表里.当从接收到的He1.I。包里看到自己时.就建立了双向通信.建立了双向通信的路由器才有可能建立连接(adjacency)关系,能否建立连接关系,要看连接两个邻居的网络的类型.通过He1.1。协议包的交换,得知了希望成为DR和BDR的路由器以及他们的优先然下一步的工作是选举DR和BDRt5. 2DR和BDR的产生在初始状态卜一个路由器的活动接口设
22、置I)R和BDR为0.0.0.0,这意味莉没有DR和BDR被选举出来。同时设置Wai1.Timer,其伯为R。UterDeadInterYa1.,其作用是如果在这段数时间里还没有收到有关DR和BDR的宣告,那么它就宣告自己为DR或BDR.钱过I1.o1.1。协议交换过程后,每一个路由器获得了希望成为DR和BDR的那些路由潺的信息,按照以下步期选举DR和BDR:(1)在路由器同一个或多个路囹器建立双向的通信以后,就检查每个邻居HeI1.。包里的优先级、DR和BI)R域.列出所有符合DR和BDR选举的路I1.1.器(他们的优先级要大于0.接口状态要大于双向通信,列出所有的DR.列出所有的BDR:(
23、2)从这些合格的路由器中建立一个没有宣称自己为DR的子集(因为宣称为DR的路由器不能选举成为BDR):(3)如果在这个子集里有一个或多个匏居(包括它自己的接口)在BDR域宣称自己为BM1.则选举具有最高优先级的路出器,如果优先侬相同,则选择具有最高R。U1.erID的那个路由器为BDR:(4)如果在这个子集里没行路由零宣称自己为BDR,则在它的邻居里选择具有最高优先级的路由渊为BDR.如果优先级相同,则选择具有被大RUU1.erID的路由器为BDR;(5)在宣称自己为DR的路由湍列表中,如果有一个或多个路由器宣称自己为DR.则选择具有最高优先级的路由器为DR,如果优先级相同,则选择具有最大Ro
24、UterID的路由为为DR:(6)如果没有路由湍宣称为DR,则将最新选举的BDR作为DR:(7)如果是第一选举某个路由SS为DR/BDR或没有DRBDR被选举,则要理熨2到6步,然后是第8步.(8)将选举出来的路由器的端口状态作相应的改变,DR的然口状态为DR,BDR的端口状态为BDR,否则的话为DRother.在多路访问网络中,DR和BDR与该网络内所有其它的路由器建立邻接关系,这些邻接关系也是该网络内全部的邻接关系.由于DR和BDR的引入,简化了网络的龙卷拓扑结构,将一个网状网络转变成一个星型网络,使协议包的扩欣.计算变的简单,并有效防止了邻接关系慈荡的发生.5.3箧路状态数据阵的同步在O
25、SPF中,保持区域能附内的所仃路由器的桂路状态数据库同步极为重要.通过也立并保持邻接关系.OSPF使具有邻接关系的路出器的数据库同步,进而保证了区域范用内所有路由器数据库同步,数据库同步过程从建立铭接关系开始,在完全邻接关系己建立时完成,当路由器的端口状态为EXStart时,路由器通过发,个空的数据阵描述包来协商“主从”关系以及数据库描述包的序号,R。Uter1.D大的为主,反之为从.序号也以主路由器产生的初始序号为基准,以后的每一次数据阵描述包的发送.序号部要加1.主路由器发送院路状态描述包(数据库描述包,从路由器接收能路状态描述包后来检查自己的链路状态数据库,如果发现桂路状态数据库里没有改
26、项,则进行添加该项,并将该项多加St路状态请求列表,准茶向主路由器讲求新的衽路状态,井向主路由器发送确认包.主路由器收到陡路状态请求包时,发出推跖状态的更新包,进行鞋路状态的更新.从路由器收到链路状态更新包后发出确认包,进行确认,表示收到该更新包.否则主路由器就在重发定时潺的启动下进行或更发送.每一个路由器向它的邻居发送数据库描述包来描述自己的数据库,每一个数据库描述包由一如能路状态播送现成,邻居路由器接收该数据库描述包,并返回确认消息。这两个路由器形成了种“主从”关系,只有主路由器能够向从路由器发送数据原描述包,反之则不行.当所彳F的数据库请求包都已被主路由器处理后,主从路由器也就进入了邻接
27、完成状态.当DR与将个区域内所有的路由都完成邻接关系时.整个区域中所有路由的数据库也就同步了。5.4路由表的产生和杳找当链路状态数据库到达同步以后,各个路由器就利用同步的数据库以自己为根节点来并行地计算最优树,从而形本钱地的路由表。当收到IP包需要看询路由表时,按照以下规则完成路由查找:(I)在路由表中选择相匹配的路由记录.相匹鼠的记录是指需转发IP包的目的地址“落在”该匹闽路由记录的目的地址范国内(该匹配记录可能有多个)。如:如果有路由表项为172.16.64.0/18,172.16.64.0/24和172.16.64.0/27供目的地址172.16.64.205选择,则选小最后一项。因为它是最匹配的一个.也就是说要选择一个掩码最长的一个.法行路也是最后要选择的,因为它的掩码最短.如果没有匹配的路由衣顶供选择,则有IQ1.P发送一个目标不可到达的控制报文而且该IP包将被丢弃.(2)如果有多个路径匹配,根据路H1.的类型来进行进一步的选择,它们的优先欲依次为区域内的路径,区域间得颤路径,E1.型的外部路径.E2里的外部路径如果有类型和费用都相等的多条路径,则OSPF将同时利用它们.(4)AiJJ利用所注找的路径来进行IP包的转发,