OSPF:开放路径最短优先

链路状态路由协议

基于IP,协议号为89

以组播地址(244.0.0.5和224.0.0.6)发送协议数据包,也支持单播发送

支持验证(明文和MD5)

支持划分区域

支持VLSM和CIDR

支持手工汇总(没有自动汇总)

触发更新,每30min同步LSA


OSPF路由协议

三张表:

邻居表:存放所有的直连邻居的简要信息

拓扑表:整个网络中的LSA的集合,即是LSDB(链路状态数据库)

路由表:存放通过SPF算法计算出来的最佳路由


专业名词:

LSA:链路状态通告,用来描述路由器的本地状态,包括其本身的接口状态和其形成的邻接状态

LSDB:链路状态数据库LSA的集合

邻居:直连路由器的关系,相互间发送OSPF部分报文

邻接:直连路由器的关系,前提必须是邻居,相互间学习LSA(先说话在学习)

Router-ID:在OSPF网络中,唯一的标示一台运行OSPF协议的路由器,使用点分十进制表示

DR/BDR:指定路由器/备份指定路由器(是接口属性)

DRother:既不是DR也不是BDR的接口

区域:接口的集合,区域的边界点必须在路由器上

区域ID:32位,使用点分十进制或者十进制表示      范围:0~(2^32 -1)


路由器角色的分类:

IR:内部路由器,所有的接口处在同一区域内

BR:骨干路由器,至少有一个接口在0区域

ABR:区域边界路由器,至少有两个接口处在不同的区域,并且有一个一定是0区域

ASBR:AS边界路由器,处在OSPF域和其它域之间


五种报文:

-hello:发现、建立和维护邻居关系;为选举DR/BDR提供参数

hello-interval:周期更新hello报的时间,默认10S

dead-interval:若邻居连续一段时间没有发送hello,认为该邻居失效;默认40S


-DBD:数据库描述报文

包含本地所有的LSA的摘要信息

可靠传输


-LSR:链路状态请求报文

向对端请求本地没有而对端有的LSA2

可靠传输


-LSU:链路状态更新报文

回复对端的LSR,包含某些LSA的详细信息

触发更新LSA

可靠传输


-LSACK:链路状态确认报文

确认对端的LSU、LSR,DD


七种状态机:本地路由器记录对端设备的状态(熟记)

Down:没有启用OSPF的状态;邻居失效后变为该状态

Init:初始化状态,第一次收到对端发来的hello包(包含对端route-id)时,将对端的状态设置为init

2-way:邻居状态,相互间周期发送hello的状态(双方建立会话)

Exstart:交换信息的初始化状态

发送DBD(包含本地的LSA的摘要信息)报文,选举主从路由器(利用HELLO报文中的ID和优先权来进行选举,不允许抢占,DR没了,DBDR才能上)

Exchange:交换信息的状态

该状态下,相互间发送DBD,告知对端本地所有的LSA的目录;同时,可以发送 LSR,LSU,LSACK来学习对端的LSA

Loading:加载状态(没有学习完的状态)

发送LSR,LSU,LSACK,专门学习对端的LSA的详细信息

Full:邻接状态(学习完的状态)

彼此的LSDB同步,即所有的LSA相同



Router-ID的选举规则

1、手工指定,可任意指定,但不能重复

2、最大的loopback口地址

3、最大的物理接口地址(必须是up状态)


邻居建立的条件:(邻居建立是以链路为单位的)

-Router-ID不能相同

-hello-interval和dead-interval相同

-接口的子网掩码必须相同

-区域ID必须相同

-验证必须相同

-特殊区域的flag必须相同

(以上参数在hello包中都有包含)


DR/BDR的选举目的:

-减少整个链路上LSA的泛洪,同时也减少邻接关系的维护


选举原则:

-先比较优先级,以大为优

*优先级范围:0-255

-再比较Router-ID,以大为优

当优先级为0,没有资格参加DR/BDR的选举,只能成为DRother


注意:

每一个链路上都有且仅有一个DR!

DR/BDR是路由器接口的属性。

DR/BDR不支持抢占!

DR/BDR组播地址224.0.0.5,DRother全局监听这个地址

DRother组播地址224.0.0.6,只有DR/BDR监听这个地址(相当于皇上传旨让大臣来见,大臣上奏求见皇上)



区域ID的分类:

骨干区域:0区域,负责OSPF网络中所有的数据转发

非骨干区域:非0区域;非0区域之间不能直接通信,必须经过0区域传输数据。