1、OSPF路由路由协议安全专业服务部安全专业服务部-技术研究部技术研究部Page 2OSPF的概述的概述OSPFOpen Shortest Path First 开放的最短路径优先,动态路由协议由IETF于20世纪80年代末期开发了OSPF v1,见RFC1131OSPF v2取代了v1,加强了其功能和稳定性,见RFC1247/1583/2328等SPF算法实际是基于Dijkstra算法OSPF是典型的基于链路状态类算法,以链路带宽为选路原则适合中到大型的网络环境,应用非常广泛Page 3OSPF的的优缺点缺点优点OSPF网络中,没有跳数的限制OSPF支持VLSM(变长子网掩码)OSPF使用组播
2、进行链路状态更新OSPF收敛速度较快,无循环OSPF可以将网络分区域,大大提高了网络的可扩展性OSPF有身份鉴别机制(Authentication),增加了安全性缺点OSPF计算相对复杂,对路由器压力较大OSPF多区域配置相对复杂Page 4SPF(Dijkstra)算法算法如下是一个典型的有向图:Page 5OSPF组网网结构构Area 1Area 0Autonomous SystemR1R2Autonomous System:自治域系统(OSPF路由域)Area:区域 COST:代价,OSPF对链路状态的度量方法。公式:=10 /链路带宽(bps)8Page 6OSPF区域区域类型型骨干区
3、域Backbone Area非骨干区域None Backbone Areas非残余区域(普通区域)Not So Stubby Area残余区域Stub Area完全残余区域Total Stubby AreaPage 7OSPF路由器路由器类型型 Internal Router:区域内部路由器Designated Router(DR):指定路由器Backup Designated Router(BDR):备份指定路由器DRother:其他非指定路由器 BR(Backbone Router):骨干路由器 ABR(Area Border Router):区域边界路由器 ASBR(Autonomous
4、 System Boundary Router):自 治系统边界路由器Page 8OSPF区域的区域的规则和作用和作用在一个OSPF区域中只能有一个骨干区域,可以有多个非骨干区域,骨干区域的区域号为0。各非骨干区域间是不可以交换信息的,他们必须与骨干区域相连,通过骨干区域相互交换信息。非骨干区域和骨干区域之间相连的路由器叫区域边界路由(ABRs-Area Border Routers),只有ABRs记载了各区域的所有路由表。各非骨干区域内的非ABRs只记载了本区域内的路由表,若要与外部区域中的路由相连,只能通过本区域的ABRs,由ABRs连到骨干区域的BR,再由骨干区域的BR连到要到达的区域。
5、作用:骨干区域和非骨干区域的划分,大大降低了各非骨干区域内路由器的负担。从而提高了网络的可扩展性。Page 9OSPF工作原理工作原理HELLO数据包数据包Neighborship Database 邻居表DD/LSU/LSA数据包数据包Topology Database 拓扑表SPF算法算法Routing Table 路由表Page 10OSPF数据包的种数据包的种类Hello-用于建立和维护相邻的两个OSPF路由器的关系,该数据包是周期性地发送。所有路由器发送Hello数据包到224.0.0.5。Database Description-用于描述整个数据库,该数据包仅在OSPF初始化时发送
6、Link State Request-用于向相邻的OSPF路由器请求部分或全部的数据,这种数据包是在当路由器发现其数据已经过期时才发送的(默认是30分钟)。Link State Update-链路状态更新数据包,即通常所说的LSA数据包。Link State Acknowledgment-是对LSU数据包的确认响应。Page 11OSPF的的Hello数据包数据包1.用于发现邻居2.在成为邻居之前,Hello数据包里的一些参数必须一致3.Hello包在邻居之间扮演着keepalive的角色 4.允许邻居之间的双向通信 5.在广播或非广播多点访问(NBMA)的网络中选举DR和BDRHello包
7、的作用包的作用Page 12OSPF的的Hello数据包数据包1.源路由器的RID2.源路由器的区域号(Area ID)3.源路由器接口的掩码(Network Mask)4.源路由器接口的认证类型和认证信息(Authentication Password)5.源路由器接口的Hello包发送的时间间隔(Hello Interval)6.源路由器接口的无效时间间隔(Dead Interval)7.优先级(Priority)8.DR/BDR IP address9.用于区分是否stub区域的五个标记位(flag bit)10.源路由器的所有邻居的RIDHello包的内容包的内容Page 13OSPF
8、的数据包格式的数据包格式IP 头版本号(8bits)类型(8bits)数据包总长度(16bits)路由器 ID(32bits)区域号(32bits)校验和(16bits)验证类型(16bits)验证信息(64bits)HELLO/DD/LSR/LSU(LSA)/LSAckPage 14LS头结构构LS年龄选项LS类型链路状态ID通告路由器LS序列号LS校验和长度Page 15LSA的类型的类型类型1:Router LSA(路由链路通告):每个路由器都将产生Router LSA,这种LSA只在本区域内传播,描述了路由器所有的链路和接口,状态和代价。类型2:Network LSA(网络链路通告):
9、在每个多路访问网络中,DR都会产生这种Network LSA,它只在产生这条Network LSA的区域泛洪,它描述了所有和自己相连的路由器(包括DR本身)。类型3:Network Summary LSA(ABR汇总链路通告):由ABR发出,用于通告该区域外部的目的地址。当其他的路由器收到来自ABR的Network Summary LSA以后,不会引发SPF重算,它只简单的加上到达那个ABR的代价和Network Summary LSA中包含的代价。通过ABR到达目标地址的路由和代价一起被加进路由表里,这种依赖中间路由器来确定到达目标地址的完全路由(full route)实际上可以看做是距离向
10、量路由协议的行为。类型4:ASBR Summary LSA(ASBR汇总链路通告):由ABR发出,ASBR汇总LSA,除了所通告的目的地是一个ASBR而不是一个网络外,其他同Network Summary LSA。类型5:AS External LSA(自治系统扩展路由通告):ASBR发出,用来通告到达OSPF AS(自治域系统)外部的目的地,或者OSPF AS那个外部的缺省路由的LSA。这种LSA将在全AS内泛洪,在到达残余区域的ABR时被转化为缺省路由。类型7:NSSA External LSA(非完全残余区ASBR扩展):来自非完全Stub区域(not-so-stubby area)内A
11、SBR路由器始发的LSA通告,它只在NSSA区域内泛洪。这是与LSA-Type5的区别。Page 16DR和和BDR的的选举 1.在路由器和邻居之间首先建立成功的双向通信,然后根据Hello报文中的优先级、DR和BDR等字段。列出所有具有选举资格的路由器,即优先级是非0的,邻居状态达到2-way的路由器,建立一个列表,(每个路由器都要建立这个表),然后每个路由器都将以自己的接口地址来宣称自己是DR也是BDR。2.从具有选取资格的路由器列表中,创建一个BDR子集(前提是网络中没有DR/BDR诞生)。3.比较这个子集中所有路由器的优先级和RID,最优的为BDR。4.如果网络中没有DR路由器,那么这
12、个BDR路由器将成为DR路由器,然后再执行一次BDR选举。5.所有DRother发送链路状态更新包到224.0.0.6,只有DR/BDR才能收到。Page 17OSPF AS区域区域间路由描述路由描述自治域系自治域系统AS骨干区骨干区 Area 0普通区域 Area1残余区 Area 2完全残余区Area 3ABRPage 18OSPF-COST选路路实验实验拓扑:Page 19有待完善内容有待完善内容结构还需调整,重要名词功能解释未在ppt中体现,如BR/BDR路由重发布,Virtual link(虚拟链路)配置实例区域间路由描述备注,增加多区配置实例OSPF路由排错(Troubleshooting)






