特点:

相较于RIP而言,收敛速度快;可扩展性强;不易产生环路;

OSPF工作过程

交换hello报文
同步链路状态数据库(LSDB)
计算最优路径,将最优路径添加到路由表(由于每台路由器的LSDB都相同,所以去往同一个目标的路由也相同,不会产生环路)

区域的作用

链路状态算法消耗过多的路由资源,于是ospf引入区域的概念,将链路状态行为限制在区域内,从而减轻进程消耗的资源。

骨干区域与非骨干区域直连;
非骨干区域之间通信必须经过骨干区域;
骨干区域有且只有一个;
从骨干区域学习来的不会在传递给骨干区域;
非骨干区域不与骨干区域相连,使用虚连接;
多区域不存在骨干区域,区域间不可以通信;

路由器角色

ABR:区域边界路由器,将普通区域与骨干区域连接在一起的路由器
ASBR:自治系统边界路由器,位于OSPF区域与非OSPF网络之间,可以理解为外部路由通信信息进入OSPF区域的网关路由器;
区域内路由器:位于同一个区域的路由内的路由器;
骨干路由器:至少有一个接口位于骨干区域
router-id
优先选择手工配置的router-id;
没有手动配置的情况下,选择环回口最大的ip作为自己的router-id;
没有环回口ip的情况下,选择物理接口最大的ip最为router-id。

OSPF启动进程启动后再配置router-id是无效的,需要重启ospf进程,命令如下:
华为重启ospf:reset ospf process
思科重启ospf:clear ip ospf process

OSPF报文类型

hello:用于动态发现邻居,协商邻居参数,维持邻居关系
DD:用来同步LSDB,邻居间确认主从关系,还包含了LSA的摘要
LSRequest:用于向邻居请求自己缺少的LSA
LSUpdate:发送邻居请求的LSA
LSACK:告诉邻居,确认自己受到了LSUpdate

OSPF计时器

hello interval:为了维持邻居关系,ospf路由器会定时向邻居发送hello报文维持邻居关系;hello interval是路由器定期向邻居发送hello报文的时间间隔;

dead interval:在dead interval时间内没有收到邻居路由的hello报文就会宣告该邻居路由器无效;

OSPF状态机

DOWN:关闭状态,该状态下邻居之间的接口没有宣告ospf进程;
Init:初始化状态,收到邻居的hello报文,但是报文中不包含自己的router-id时会进入该状态;
Attempt:尝试状态,只会出现在NBMA网络中;
2-way:双向通信状态,收到邻居的hello报文中包含自己的router-id,路由器会认为双向通信已经建立,会进入该状态;
Exstart:该状态下的主要任务就是确定邻居间的主从关系;当从主机位发出的DD报文标志位为010或者000时,路由器会进入Exchange状态;
Exchange:当主设备发出的报文状态标志位为001,从设备回复000时,主设备会进入Full状态,从设备会进入Loading状态;
Loading:该状态下会向邻居请求自己缺少的LSA,链路状态数据库同步完成后路由器会进入Full状态;
Full:该状态下数据库同步完成,邻接关系建立完成。

网络类型

OSPF常见的网络类型有:p-2-p,NBMA,P2MP,Broadcast

DR/BDR选举

选举DR/BDR的原因:减少邻接关系,减少LSA泛洪,减少CPU资源和链路带宽的占用

DR/BDR选举:首先比较优先级(优先级小的优先级高),默认优先级为1,优先级为0不参与选举;优先级相同则router-id大的成为DR

DR路由器挂了之后BDR会成为新的DR,同时会选举新的BDR;此时,就算原来的DR回复工作也不能抢占DR,。

LSA与LSA分类

LSA头部格式:

ospf骨干路由器的作用 ospf骨干区域的作用_ospf

其中重要的6个重要信息:
LSA-age:LSA的年龄,是一个LSA的保持时间,泛洪时间越久,LSA-age越大,他的寿命只有3600秒,过了3600秒就会重新泛洪;
LS-Type:链路状态类型,指示该LSA是几类LSA;
LSID:链路状态标识符,相当于LSA的名字,LSID根据LSA的不同,其中包含的内容也不一样;
Advertising Router:通告路由器,指明该LSA是哪台路由器发的;
LS sequence number:序列号,指明该LSA版本,同一个LSA可能会被多次更新;
LS checksum:校验和,用于检查LSA信息的完整性。

LSID、LS-type、Advertising Router标识唯一一个LSA;
LSA-age、LS sequence number、LS checksum标识一个LSA的新旧。

LSA的分类

一类LSA(Router-LSA):每台路由器都必须产生一个自己的一类LSA,用来描述自己直连链路的链路状态信息;一类LSA的存储和计算需要消耗大量的资源,为了减少资源开销,一类LSA不能离开始发区域泛洪;
二类LSA(Network-LSA):由每个传送网络的DR产生,产生后不能离开始发区域;
三类LSA(Summary LSA 汇总LSA):OSPF使用三类LSA传递区间路由,三类LSA始发于ABR设备,ABR设备从自己连接的区域的一类二类LSA中算出这些区域的详细路由信息,将这些路由转换成三类LSA发往除了这些路由信息始发区域外的其他区域;其他ABR收到这些三类LSA会重新生成,发给自己直连的其他区域;ABR只会处理来自骨干区域的三类LSA;
四类LSA(ASBR-summary LSA)
五类LSA(AS-External LSA)