您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 网络互联与路由技术--OSPF和BGP
网络互联与路由技术OSPF与BGP西南石油学院计算机科学学院2链路状态路由选择协议—OSPF(1)OSPF—OpenShortestPathFirst。属于IGP协议。运行在一个自治系统内部。属于链路状态算法。是目前应用最广,性能最优的一个协议。3链路状态路由选择协议--OSPF基本思想每个路由器有责任和邻机会话,并获悉它们的名字。每个路由器构建一个称为“链路状态广播(LSA)”的包,该包列出了邻机的名字和到达这些邻机的费用。LSA被传送到所有的别的路由器,每个路由器存储了来自其他路由器的最新的LSA。每个路由器现在有了完整的拓扑图,计算出到每个目的地的路由。4OSPF协议概述(1)OSPF是OpenShortestPathFirst的缩写。是IETF组织开发的一个基于链路状态的自治系统内部路由协议。适应范围:OSPF支持各种规模的网络,最多可支持几百台路由器。快速收敛:如果网络的拓扑结构发生变化,OSPF立即发送更新报文,使这一变化在自治系统中同步。这是衡量路由协议好坏的重要指标。无自环:由于OSPF通过收集到的链路状态用最短路径树算法计算路由,故从算法本身保证了不会生成自环路由。但是在引入外部路由时不能保证没有路由环路。5OSPF协议概述(2)子网掩码:由于OSPF在描述路由时携带网段的掩码信息,所以OSPF协议不受自然掩码的限制,对VLSM提供很好的支持。区域划分:OSPF协议允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用网络的带宽。等值路由:OSPF支持到同一目的地址的多条等值路由。在RIP中也有。6OSPF协议概述(3)路由分级:OSPF使用4类不同的路由,按优先顺序分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。支持验证:它支持基于接口的报文验证以保证路由计算的安全性。组播发送:OSPF在有组播发送能力的链路层上以组播地址发送协议报文,即达到了广播的作用,又最大程度的减少了对其他网络段设备的干扰。(224.0.0.5)7OSPF和RIP的比较(1)向本自治系统中所有路由器发送信息。这里使用的方法是洪泛法(flooding),这样,最终整个区域中所有的路由器都得到了这个信息的一个副本。而RIP协议是仅仅向自己相邻的几个路由器发送信息。发送的信息就是与本路由器相邻的所有路由器的链路状态,这是路由器所知道的部分信息。链路状态就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”。OSPF将这个“度量”用来表示费用、距离、时延、带宽等等。而RIP协议发送的信息是:“到所有网络的距离和下一跳路由器”。8OSPF和RIP的比较(2)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。而RIP不管网络拓扑有无发生变化,路由器之间都要定期交换路由器表的信息。9基本的OSPF协议RouterID:一个32bit的无符号整数,是一台路由器的唯一标识,在整个自治系统内惟一。一般是手工配置。OSPF报文直接封装在IP报文中传输。IP头部中协议号为89。OSPF的协议报文不转发,通常OSPF协议报文不被转发,TTL为1。10OSPF通过链路状态描述网络的拓扑结构RTCRTDRTBRTARTFRTEEthernetPPPX.25FRStubNetworks(该接口所连的网段中只有本路由器自己)Point-to-Point(该接口通过点到点的网络与另一台路由器相连)Broadcast或NBMA(该接口通过广播或NBMA的网络与多台路由器相连)点到多点(该接口通过点到多点的网络与多台路由器相连)NBMA和点到多点的区别:在OSPF协议中NBMA和点到多点都是指非广播多点可达的网络,但是NBMA网络必须满足全连通的要求,即任意两点都可以不经转发而使报文直达对端。否则我们称该网络为点到多点网络11对Stubnet链路状态的描述Linkid:10.0.0.0//网段Data:255.0.0.0//掩码Type:Stubnet(3)//类型Metric:50//花费12对P2P链路状态的描述对本接口网段地址的描述Linkid:20.0.0.0//网段Data:255.0.0.0//掩码Type:Stubnet(3)//类型Metric:5//花费对路由器的描述Linkid:2.2.2.2//对端路由器的routerIDData:20.0.0.2//对端路由器的接口地址Type:Router(1)//类型Metric:5//花费13对点对多点链路状态的描述Linkid:40.0.0.1//网段Data:255.255.255.255//掩码Type:Stubnet(3)//类型Metric:5//花费Linkid:3.3.3.3//路由器的routerIDData:40.0.0.1//路由器的接口地址Type:Router(1)//类型Metric:5//花费Linkid:4.4.4.4//路由器的routerIDData:40.0.0.1//路由器的接口地址Type:Router(1)//类型Metric:5//花费14对广播型链路状态的描述Linkid:30.0.0.3//网段中DR的接口地址Data:30.0.0.1//本接口的地址Type:TransNet(2)//类型Metric:50//花费//DR(6.6.6.6)生成的LSANetmask:255.255.255.0Attached:30.0.0.1routerAttached:30.0.0.2routerAttached:30.0.0.3router15加上LSA的头(head)结构Type:Router//LSA的类型Lsid:1.1.1.1//LSA的连接标示,即路由器的IDAdvrtr:1.1.1.1//生成该LSA的路由器LsAge:4//本条LSA的老化时间Len:108//LSA的长度Seq:80000001//LSA的序列号Cksum:0x3542//校验和Linkcount:7//本LSA中包含的连接个数16OSPF协议计算路由过程RTCRTDRTBRTALSDBRTA的LSARTB的LSARTC的LSARTD的LSAABCD123ABCD123ABCD123ABCD123网络的拓扑结构每台路由器的链路状态数据库由链路状态数据库得到的带权有向图每台路由器分别以自己为根节点计算最小生成树由上图可知:OSPF协议计算出路由主要有以下三个步骤:1、描述本路由器周边的网络拓扑结构,并生成LSA。2、将自己生成的LSA在自治系统中传播。并同时收集所有的其他路由器生成的LSA。3、根据收集到的所有的LSA计算路由17OSPF协议的报文格式(1)OSPF分组首部类型1至类型5的OSPF分组IP首部OSPF分组IP数据报路由器标识符区域标识符检验和鉴别鉴别版本类型分组长度鉴别类型08163124Bytes18OSPF协议的报文格式(2)所有的OSPF协议以24Bytes的通用报头开始。每个字段的含义为:版本:当前版本号为2;类型:可以是如下五种类型中的一种。值类型1Hello报文,用来发现和维持邻居的可达性2DD报文,向邻居给出自己的链路状态数据库中的所有链路状态项目的摘要信息3LSR报文,向对方请求发送某些链路状态项目的详细信息4LSU报文,用洪泛法对全网更新链路状态。这是OSPF的核心报文。一共有五种不同的链路状态5LSACK报文,对链路更新分组的确认19OSPF协议的报文格式(3)分组长度:包括OSPF首部在内的分组长度,以字节为单位。路由器标识符:标志发送该分组的路由器的接口的IP地址。区域标识符:分组属于的区域标识符。检验和:用来检测分组中的差错。鉴别类型:目前有三种,0—无认证;1—明文密码;2—加密的密码。20数据链路数据库的同步过程(1)RT1RT2Hello(DR=0.0.0.0,NeighborsSeen=0)Hello(DR=RT2,NeighborsSeen=RT1)DD(seq=X,I=1,M=1,MS=1)DD(seq=Y,I=1,M=1,MS=1)DD(seq=Y,I=0,M=1,MS=0)DD(seq=Y+1,I=0,M=1,MS=1)DD(seq=Y+1,I=0,M=1,MS=0)DD(seq=Y+n,I=0,M=0,MS=1)DD(seq=Y+n,I=0,M=0,MS=0)LSRLSULSACKDownDownInitExstartExstartExchangeExchangeLoadingFullFull21数据链路数据库的同步过程(2)RT1的一个的接口上激活了OSPF协议,并发送了一个Hello报文(使用组播地址224.0.0.5)。由于此时RT1在该网段中还未发现任何邻居,所以Hello报文中的Neighbor字段为空。RT2收到RT1发送的Hello报文后,为RT1创建一个邻居的数据结构。RT2发送一个Hello报文回应RT1,并且在报文中的Neighbor字段中填入RT1的Routerid,表示已收到RT1的hello报文,并且将RT1的邻居状态机置为Init。RT1收到RT2回应的Hello报文后,为RT2创建一个邻居的数据结构,并将邻居状态机置Exstart状态。下一步双方开始发送各自的链路状态数据库。为了提高发送的效率,双方需先了解一下对端数据库中那些LSA是自己所需要的,方法是先发送DD报文,DD报文中包含了对本地数据库中LSA的摘要描述22数据链路数据库的同步过程(3)RT1首先发送一个DD报文,宣称自己是Master(MS=1),并规定序列号为x。I=1表示这是第一个DD报文,报文中并不包含LSA的摘要,只是为了协商主从关系。M=1说明这不是最后一个报文。RT2在收到RT1的DD报文后,将RT1的邻居状态机改为Exstart,并且回应了一个DD报文(该报文中同样不包含LSA的摘要信息)。由于RT2的Routerid较大,所以在报文中RT2认为自己是Master,并且重新规定了序列号为y。RT1收到报文后,同意RT2为Master,并将RT2的邻居状态机改为Exchange。RT1使用RT2的序列号y来发送新的DD报文,该报文开始正式地传送LSA的摘要。在报文中RT1将MS=0,说明自己是Slave。23数据链路数据库的同步过程(4)RT2收到报文后,将RT1的邻居状态机改为Exchange,并发送新的DD报文来描述自己的LSA摘要,注意:此时RT2己将报文的序列号改为Y+1。上述过程持续进行,RT1通过重复RT2的序列号来确认已收到RT2的报文。RT2通过将序列号+1来确认已收到RT1的报文。当RT2发送最后一个DD报文时,将报文中的M=0,表示这是最后一个DD报文了。RT1收到最后一个DD报文后,发现RT2的数据库中有许多LSA是自己没有的,将邻居状态机改为Loading状态。此时RT2也收到了RT1的最后一个DD报文,但RT1的LSART2都己经有了,不需要再请求,所以直接将RT1的邻居状态机改为Full状态。RT1发送LSR报文向RT2请求所需要的LSA。RT2用LSU报文来回应RT1的请求。RT1收到之后,需要发送LSAck报文来确认。上述过程持续到RT1中的LSA与RT2的LSA完全同步为止。此时RT1将RT2邻居状态机改为Full状态。24数据链路数据库的同步过程(5)以上过程是两台路由器由相互没有发现对方的存在到建立邻接关系的过程。或者可以理解为网络中新加入一台路由器时的处理情况。当两台路由器之间的状态机都己经达到Full状态之后,如果此时网络中再有路由变化时,就无须重复以上的所有步骤。只由一方发送LSU报文通知需要更新的内容,另一方发送LSACK报文予以回应即可。双方的邻居状态机在此过程中不再发生变化。25OSPF的邻居状态机(1)DownAttemptI
本文标题:网络互联与路由技术--OSPF和BGP
链接地址:https://www.777doc.com/doc-4129834 .html