一、OSPF路由协议概述

开放式最短路径优先(Open Shortest Path First,OSPF)路由协议是一种基于开放式标准的链路状态路由协议。它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。

二、OSPF协议工作原理

OSPF协议的工作原理是每个路由器负责发现自己的邻居,发送Hello报文,建立邻接关系,形成邻居表,就可以交换各自的链路状态信息。接着路由器之间相互发送链路状态通告告知邻居自己的链路连接状态,形成LSDB拓扑表,再通过Dijkstra算法计算出通往目的设备的最优路径,存放在路由表中。

ospf database 但是路由表里没有 ospf的路由表内容_网络

三、OSPF三种表

1、邻居表

和ospf区域内的设备,建立邻居关系,负责存放链路信息,显示了ospf路由器之间的邻居基本状态,可以查看设备的Router ID、接口地址、DR、BDR等信息。

ospf database 但是路由表里没有 ospf的路由表内容_OSPF_02

2、LSDB拓扑表

负责存储接收到的路由器之间的链路状态信息(LSA),是每个OSPF路由器内部维护的数据库。

ospf database 但是路由表里没有 ospf的路由表内容_网络_03

3、OSPF路由表

ospf路由表中存放着通往各个设备的路径,可以通过最短路径算法计算出最优的路径放在路由器路由表中。

ospf database 但是路由表里没有 ospf的路由表内容_OSPF_04

四、路由器种类

DR:OSPF内选举的指定路由器,负责更新其他所有OSPF路由器

BDR:备用指定路由器,BDR会监控DR 的状态,在当前DR发生故障时接替其角色

IR:区域内路由器

ABR:区域间路由器(ospf区域)

ASBR:自治系统边界路由器(OSPF和其它区域)

ospf database 但是路由表里没有 ospf的路由表内容_路由表_05

五、OSPF五种报文

OSPF协议内有五种不同的报文类型,在交互过程中分别起着不同的作用

1.发现彼此(邻居建立过程)

Hello报文:周期性发送,用来发现和维护OSPF邻居关系。

状态down:还没有启动的时候。

        init:有了邻居,但还没有完全同步;

        2-way:知道了彼此,并且知道了对方【知道自己】。

ospf database 但是路由表里没有 ospf的路由表内容_链路_06


 

2.了解彼此的缺陷

DD报文(Database Description)描述本地LSDB的摘要信息,用于两台设备进行数据库同步。

ospf database 但是路由表里没有 ospf的路由表内容_链路_07

3.修补彼此的缺陷

LSR:用于向对方请求所需要的LSA。(设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文)

LSU:用于向对方发送其所需要的LSA。

LSack:用来对收到的LSA进行确认。

ospf database 但是路由表里没有 ospf的路由表内容_链路_08

六、OSPF常见的五种Type

1、Router ( Type 1)

描述了该区域内自己和相邻设备的链路状态和router id

ospf database 但是路由表里没有 ospf的路由表内容_路由表_09

2、Network (Type 2)

描述了同一所属区域内的拓扑信息

ospf database 但是路由表里没有 ospf的路由表内容_OSPF_10

3、Sum-Net (Type 3)

用于在不同的OSPF区域中传播链路状态信息,汇总了一个区域内的子网到另一个区域的信息

ospf database 但是路由表里没有 ospf的路由表内容_路由表_11

4、Sum-Asbr (Type 4)

描述了ASBR的ID信息和到达此位置的路由ID信息

ospf database 但是路由表里没有 ospf的路由表内容_网络_12

5、External ( Type 5)

描述了不属于OSPF区域的链路信息和ASBR的路由信息

ospf database 但是路由表里没有 ospf的路由表内容_网络_13

七、OSPF区域类型

OSPF为什么要划分区域?

因为通过划分区域可以减少局域网内的链路信息数量(LSA),减少路由表规模,提高路由器间的信息传输性能。

1、标准区域

ospf database 但是路由表里没有 ospf的路由表内容_网络_14

标准区域type类型共有:1,2,3,4,5

2、STUB区域

ospf database 但是路由表里没有 ospf的路由表内容_网络_15

ospf database 但是路由表里没有 ospf的路由表内容_链路_16

把区域22变成stub区域后,lsdb表的type 5会变成一条默认路由0.0.0.0的type 3

3、完全STUB区域

ospf database 但是路由表里没有 ospf的路由表内容_路由表_17

把区域22变成完全stub区域后,lsdb表的type 3 会合并成一条,默认路由为0.0.0.0

4、NSSA区域

ospf database 但是路由表里没有 ospf的路由表内容_链路_18

ospf database 但是路由表里没有 ospf的路由表内容_路由表_19

把区域44设置成NSSA后的lsdb表,type 5会变成一条默认路由0.0.0.0的type 7,和一条相邻的链路信息

5、完全NSSA区域

ospf database 但是路由表里没有 ospf的路由表内容_网络_20

把区域44设置成完全NSSA后的lsdb表,type 3 会合并成一条,默认路由为0.0.0.0