1、4.5.3 内部网关协议 OSPF (Open Shortest Path First)1. OSPF 协议的基本特点 “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。 “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。 是分布式的链路状态协议。 三个要点 学习时注意与RIP协议区分开 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。l “链路状态”就是说明本路由器都和哪些路由器
2、相邻,以及该链路的“度量”(metric)。 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。 链路状态数据库(link-state database) 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库链路状态数据库是路由表是路由表吗吗?。 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。 OSPF 的链路状态数据库能较快地进行更新,每一个路由器使用链路状态数据库,用某算法,如Dijkstra算法,构造自己的路由表。使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。 OS
3、PF 的区域(area) 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。 区域也不能太大,在一个区域内的路由器最好不超过 200 个。 自治系统 ASOSPF 划分为两种不同的区域 区域 0.0.0.1区域 0.0.0.3主干区域 0.0.0.0至其他自治系统R9R7R6R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 0.0.0.2网 4网 5R8划分区域 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网
4、络上的通信量。 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。 OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。 自治系统 AS主干路由器区域 0.0.0.1区域 0.0.0.3主干区域 0.0.0.0至其他自治系统R9R7R6R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 0.0.0.2网 4网 5R8自治系统 AS区域边界路由器 区域 0.0.0.1区域 0.0.0.3主干区域 0.0.0.0至其他自治系统R9R7R6
5、R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 0.0.0.2网 4网 5R8R6自治系统边界路由器OSPF 直接用 IP 数据报传送 OSPF 不用 UDP 而是直接用 IP 数据报传送。 OSPF 构成的数据报很短。这样做可减少路由信息的通信量。 数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。 OSPF 的其他特点 OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。 如果到同一个目的网络有多条相同代价的路
6、径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。PIP没有此功能 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。 支持可变长度的子网划分和无分类编址 CIDR。 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。IP 数据报OSPF 分组 IP数据报首部OSPF 分组OSPF 分组首部类型 1 至类型 5 的 OSPF 分组24 字节081631版 本路 由 器 标 识 符类 型分 组 长 度检 验 和鉴 别位鉴 别区 域 标 识 符鉴 别 类 型2. OSPF 的五种分组类型 类型1,问候(Hello)分组。 类型2,数据库描述(Database Des
7、cription)分组。 类型3,链路状态请求(Link State Request)分组。 类型4,链路状态更新(Link State Update)分组, 用洪泛法对全网更新链路状态。 类型5,链路状态确认(Link State Acknowledgment) 分组。 问候(Hello)分组:用来发现和维持邻站的可达性。每两个相邻路由器每隔10秒钟要交换一次问候分组,以确定邻站的可达性。若有40秒没有收到相邻路由器发来的分组,则认为相邻路由器是不可达的。 正常情况下,网络中传输的大多数OSPF分组是问候分组。 其他四种分组,用来进行链路状态数据库的同步。 各路由器把自己的链路状态信息向全网
8、进行广播洪泛法,以获取全网的状态信息。 广播的是哪能些信息?是路由器的本地链路状态信息吗? 摘要信息用于描述有哪些路由器的链路状态信息已写入数据库。 洪泛法交换的是摘要信息数据库描述。OSPF的基本操作 问候问候数据库描述数据库描述数据库描述数据库描述链路状态请求链路状态更新链路状态确认确定可达性达到数据库的同步新情况下的同步OSPF 使用的是可靠的洪泛法 更新报文tACK报文RRRRt1t2t3t4某路由器的链路状态发生变化时OSPF 的其他特点 OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互
9、联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。 OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。 指定的路由器(designated router) 多点接入的局域网采用了指定的路由器的方法,使广播的信息量大大减少。指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。 链路状态路由协议,克服了RIP的两个致命弱点l 收敛速度慢(240秒以上)l 规模限制,只有15跳分区域概念:l 骨干区域Area 0,非骨干区域Area Nl 骨干区域保持连续性,非骨干区域一定要与骨干区域连接RF
10、C 2328定义类型类型名称名称描述描述1Hello发现邻居并在它们之间建立邻接关系2数据库描述(DBD)检查路由器的数据库之间是否同步3链路状态请求(LSR)向另一台路由器请求特定的链路状态记录4LSU发送请求的链路状态记录5LSAck对其他类型的分组进行确认Router(config)#router ospf process-idRouter(config-router)#network address inverse-mask area area-id Area 0Area 1Area 1Area 3Area 4Area 5Router#show ip routeRouter#show ip ospf neighbor detail Router#show ip ospf database Router#show ip ospf interface Router#show ip ospf Router#clear ip route *Router#debug ip ospf