OSPF协议概述
1. OSPF(Open Shortest Path First开放最短路径优先)的基本特性
OSPF也是动态路由的一种,因为OSPF是由IETF开发的,它的使用不受任何厂商限制,所有人都可以使用,所以称为开放的;而最短路径优先(SPF)只是OSPF的核心思想,其使用的算法是Dijkstra算法,最短路径优先并没有太多特殊的含义,并没有任何一个路由协议是最长路径优先的,所有协议都会选最短的。以下是OSPF的一些特性:
a)OSPF 是一种链路状态路由协议,使用 cost 作为度量值; b)采用 SPF 算法计算到达目的地的最短路径; c)路由优先级 110 ,协议号 89 ; d) 无环路 ,支持大型网络; e)支持VLSM 、CIDR ; f)支持组播地址( 224.0.0.5 、224.0.0.6 )发送数据报; g)支持认证; h)支持触发更新、增量更新、周期更新1800s 、失效时间3600s 。2. OSPF的三张表
1)OSPF通过组播的形式发送Hello包来发现邻居,每个路由器会与DR建立邻接关系生成邻居表,邻居表存储了双向通信的邻居关系OSPF路由器列表的信息。
2)邻居之间互相发送LSA来描述网络拓扑信息生成LSDB(链路状态数据库)。
3)再通过SPF算法生成最短路径树,根据最短路径树中cost最小的生成路由表。
3. Router ID的选举
Router ID用于自治系统中唯一标识一台运行OSPF 的路由器,其选举规则如下:1)手动配置Router ID最优(建议手动配置);
2)若存在逻辑接口,则选逻辑接口中IP最大的作为Router ID;
3)若没有逻辑接口,则选物理接口中IP最大的作为Router ID。
4. DR/BDR的选举
为减小多路访问网络中的OSPF 流量,OSPF 会在每一个MA 网络(多路访问网络)选举一个指定路由器 (DR) 和一个备用指定路由器 (BDR) ,可以减少LSA 的发布,减轻网络的负担,DR 的选举条件如下:1)端口优先级大的为DR(默认优先级为1,最大为255,当优先级为0时不参与选举);
2)优先级相同时,Router ID较大的为DR(可手动修改优先级)。
5. OSPF的5种报文类型
Hello报文:用于发现邻居,建立邻接关系。
DBD报文:数据库描述报文,用来进行主从路由器的选举和检查路由器的数据库之间是否同步。(报文中有重要的I、M、M/S字段。I字段置1表示是第一个DD报文,否则置为0;M字段置1表示后面还有DD报文,置0表示为最后一个DD报文;M/S用来标识主从,置1表示发送方为主,置0表示为从。)
LSR报文:链路请求报文,向另一台设备请求特定的链路状态。
LSU报文:链路状态更新报文,发送链路状态信息。
LSACK报文:链路状态确认报文,确认多段的链路信息。
6. OSPF建立邻接的7个过程
Down:双发都没发送hello报文;
Init:收到对方的hello报文,但报文里还没有自己的RID;
2-Way:收到对方的hello报文,报文里邻居字段有自己的RID,选举DR/BDR;
ExStart:各自发送空的DD报文协商主从(RID大的为主),同步序列号;
Exchange:发送有内容的DD报文,交互数据库信息;
Loading:交互LSR、LSU、LSAck报文;
full:双方的LSDB同步。
7. OSPF支持的网络类型
OSPF 支持点对点类型、点对多点类型、非广播多路访问、广播等。 缺省情况下,OSPF 认为以太网的网络类型是广播类型,PPP 、DHLC 的网络类型是点到点类型。8. OSPF area的概念
8.1单区域存在的问题
a)LSA泛洪严重,OSPF路由器的负担很大;
b)区域内部动荡会引起全网路由器的SPF计算;
c)LSDB庞大,资源消耗过多,设备性能下降,影响数据转发;
d)每台路由器都需要维护的路由表越来越大,单区域内路由无法汇总。
8.2 OSPF的多区域模式
OSPF 的区域分为骨干区域和非骨干区域,每个区域都维护一个独立的LSDB ,Area 0 为骨干区域,其他区域都必须要和骨干区域相连。OSPF区域划分的优势:
a)减少链路状态数据库的同步范围;
b)缩小LSA泛洪的范围;
c)多区域提高了网络的扩展性,有利于组建大规模的网络;
d)在区域边界可以做路由汇总,减小了路由表。
9. OSPF的配置
Router(config)#router ospf process-id //开启OSPF进程,并设置进程号
Router(config)#router-id XXX //配置RID
Router(config-router)#network address wildcard-mask area area-id //宣告特定的网络到OSPF区域,network后加通告的网段、反掩码(通配符)、区域号
掩码和通配符的区别:
掩码的1位表示网络位;0位表示主机位。掩码用于区分IP地址中的网络及主机部分。
通配符的1位表示无所谓;0位表示需严格匹配。通配符用于决定一个IP中的哪些位该匹配。
Router# show ip ospf neighbor // 查看OSPF邻居表
Router# show ip route // 显示路由表的信息
Router# clear ip route * // 清除 IP路由表的信息
Router# debug ip ospf // 在控制台显示 OSPF的工作状态
图文:郑泽辉
排版:陈海心