什么是OSPF
(1).开放式最短路径优先(Open Shortest Path First)
(2).基于链路状态的内部网关(IGP)协议
OSPF的原理
(1).路由器之间LSA泛洪,在每个路由表中得出一个相同的LSDB;
(2).LSDB通过SPF算法,得到最短路径的树(/拓扑);
(3).这个拓扑图经过路由计算,呈现出来的就是路由表。
OSPF的报文
(1).报文封装在IP报文中,协议号是89;
(2).报文类型有5种
Hello报文 | 用于发现、维护邻居关系 |
DD(database Description)报文 | 描述自身(相当于目录,信息较少) |
LSR(LSA Request)报文 | 请求所需的LSA摘要 |
LSU(LSA Update)报文 | 拥有详细的路由信息 |
LSACK(Link State Acknowledgment)报文 | 对收到的LSU报文进行确认 |
OSPF的状态机
Down | 初始 关闭的状态下 | 邻居关系 |
Init | 发送Hello包数据之后进入init | |
2-Way | 相互init之后进入2-way状态,邻居关系建立完成 | |
xstart | 发送DD报文后进入Exstart,确定主从关系 | 邻接关系 |
Exchange | 主从关系确定后进入Exchange状态,继续相互发送DD报文描述自身LSDB | |
Loading | 描述完LSDB后,发送LSR和LSU请求和更新 |
|
Full | 所有数据都下载完之后,发送LSACK报文,进入最终的Full状态,邻接关系建立完成 |
Router ID
(1).Router ID是OSPF网络中的路由的标识符,用来表示一台路由器;
(2).Router ID不是IP地址,只是一个值,因为他用点分十进制来表示,所以是IP的样子;
(3).Router ID指定时一般这样选举:
a).优先手工指定的;(一般都会手动指定)
b).逻辑接口最大的;(loo 0)
c).物理接口最大的;(g0/0/0)
Ospf交互报文
(1).相互发送Hello报文,接收端口的类型广播型、点到多点、NBMA;
(2).判断Hello报文是否合法:
a).Network Mask字段必须和接收端口的网络掩码一致;
b).hello Interval一致;
c).Router Dead Interval一致;
d).E-bit一致。
数据库同步的过程
(1).初步建立邻接关系,exstart交换DD报文确定主从;
(2).exchange交换LSDB建立区域内相同的LSDB
完全建立邻接关系
(1).描述各自的LSDB后,进入Loading状态,request和update请求和更新LSDB;
(2).数据下载完成之后交换LACK报文,进入full状态,邻接关系完全建立。
DR和BDR
(1).为了减少报文交换的次数以减少带宽,路由器之间并不是两两建立邻接关系的;
(2).选举出DR和BDR的设备,其他设备只和这两台路由器建立邻接关系,其他的是邻居关系。
DR和BDR的怎么选举
(1).基于路由器端口的优先级进行选举;
(2).优先级越高越优先;
(3).新接入的路由器不会成为DR或BDR,DR故障时,BDR接替;BDR故障时,重新选举BDR。
OSPF有哪些区域
其他
(1).反掩码,0对应的地址要严格匹配;1对应的地址不严格匹配。
(1).224.0.0.6是DR和BDR接受DRother路由链路状态更新
(2).224.0.0.5,其余的使用hello报文,DR选举等
(3).OSPF支持接口和区域认证