OSPF是当今使用的最广泛的内部网关协议。只有他功能足够强大才能肩负起如此重任。(所以我们也要足够强大,才能肩负起相应的责任。)
基本概念:
- 全称:最短开放路径优先协议
- 被IP协议封装,协议号是89
- 邻居之间传递的是链路状态信息,路由以自己为根计算,不存在路由环路
- 度量值:以开销为度量值,cost=参考带宽(默认100M)/逻辑带宽
- 路由收敛快,通过组播传递报文:224.0.0.5/224.0.0.6
- router-id:长度4字节:用来唯一标识一台路由器的身份信息
1.优先手工指定
2.选择loopback中IP地址最大的
3.选择物理接口IP地址最大的
OSPF的工作过程:
- 路由发现:可以发现自己的直连网段路由信息
- 路由通告:向邻居路由器发送自己和接收到的链路状态信息
- 路由计算:以自己为根使用SPF算法计算最短路径,从而形成一颗树状结构
OSPF的五种报文:
- Hello :用于建立和维护邻居关系。(稳定时周期10s,老化时间40s)
- DD:链路状态数据的描述信息
- LSR:用于请求本地链路状态数据库中所没有的链路状态信息
- LSU:用于发送对端请求的LSA
- LSACK:用于确认对端发送的LSU
OSPF的其中状态:
- Down:表示还未收到Hello报文
- Init:表示收到了其他路由器发送的Hello报文,但是在Hello报文中没有看到自己的Router ID
- 2-way:表示收到了其他路由器发送的Hello报文,并且在Hello报文中看到了自己的Router ID,在该状态选举DR,选举完进入下一状态。
- Exstart:进行主从关系的选举。(因为IP协议是无连接的,选举主从是为了保证报文有序可靠的传输)
- EXchange:交换DD报文
- Loading:请求本地LSDB中所没有的LSA,并进行确认。同时向邻居发送LSU
- Full:LSDB同步完成
OSPF的网络类型:(根据接口的链路层协议来确定网络类型)
- 广播式多路访问类型:需要选举DR和BDR。(如果一个广播域中运行了多个路由器,两两之间都形成了邻居关系,当一个设备的链路状态发生变化时,会导致整个网络中的链路状态更新信息过度洪泛)。DR的选举规则:
1.先比较优先级,越大越优先。
2.优先级相同,比较Router ID,越大越优先。
3.当优先级为0时不参与选举
注:Drother向DR和BDR发送消息时使用224.0.0.6地址 - 点到点类型:不需要选举选举DR(链路上就两个设备)
- 非广播式多路访问类型:帧中继的默认网络类型,需要手动配置邻居,进行DR选举。Hello周期是30s,老化时间是120s
- 点到多点类型:帧中继类型,需要手动修改类型。
OSPF多区域:
在网络规模较大的场景,由于路由器数量较多,形成的LSA也就多,对路由器的压力较大,而且LSA较多,使用SPF算法对路由器资源消耗较大。网络中的路由器需要维护相同的LSDB,所以当某台设备的链路状态发生变化时,影响的波动较大。
将一个区域分为一个骨干区域和多个非骨干区域,非骨干区域必须和骨干区域直连且不允许相互连接。
多区域中的角色:
- 骨干路由器:有一个接口属于骨干区域
- 内部路由器:所有接口都属于同一个区域
- 边界路由器:有部分接口属于骨干区域,部分区域属于非骨干区域,用于连接两个区域
- 自治域边界路由器:有一个接口属于自治域外部就是自治域边界路由器
LSA类型:
- LSA-1:每台路由器都会根据自身的直连链路生成一类LSA用于描述链路状态信息
- LSA-2:DR产生用于描述与其相连的路由器和它本身
- LSA-3:由ABR产生,将连接区域内部的信息以子网的形式传播到其他区域
- LSA-4:由ABR产生,告知其他路由器如何找寻ASBR
- LSA-5:由ASBR产生,用于描述到AS外部的路由信息
OSPF的选路规则:
- 域内路由
- 域间路由
- 第一类外部路由
- 第二类外部路由