1284

基本概念

OSPF(Open Shortest Path First)是典型的链路状态路由协议,简单概括其原理是每个路由器都产生一个描述自己家门口情况的通过泛洪到整个网络,路由器会将这些信息存在LSDB(链路状态数据库)中,所有路由器基于LSDB使用相同的算法生成一棵以自己为根的、无环的最短路径树,并将最优路径信息加载到自己的路由表

Router-ID

用于OSPF的路由器唯一标识(与IPv4格式相同),一系列OSPF路由器组成的网络称为OSPF域,这些路由器采用相同的OSPF策略,ID必须全域唯一,该ID可以手动配置,一般手动指定为设备的Loopback接口IP地址,如果没有手动指定,设备会自动分配一个设备上的IP地址作为router id,为了稳定性最好是手动指定,配置案例:

1
2
3
4
5
6
7
8
# 为设备创建Loopback接口,并指定ip
interface loopback 0
ip address 1.1.1.1 32
quit
# 创建一个OSPF进程,并指定router-id
ospf 1 router-id 1.1.1.1
# router-id配置之后,修改需要重启ospf服务,重启会清空OSPF进程的所有邻接关系,需谨慎
reset ospf process

Loopback

是本地环回接口,是逻辑接口不是物理接口,主机也支持Loopback接口,用户可以在设备上创建Loopback接口并配置IP地址,此接口非常稳定,除非人为关闭或删除,否则永不失效,所以通常用于设备网管、网络测试、网络协议应用等

OSPF的三张表

邻居表

当设备上一个接口激活OSPF后,该接口会周期性发送OSPF hello报文,同时监听hello报文从而发现直连链路上的邻居,并写入邻居表

链路状态数据库LSDB

运行链路状态路由协议的设备在网络中泛洪链路状态信息,设备将这些信息装载到自己的LSDB中(应该是同一个OSPF区域中的链路状态信息,全网信息太大)

OSPF路由表

OSPF根据LSDB中数据,运行SPF算法得到一棵以自己为根的、无环最短路径树,从而得到路由信息加载到OSPF路由表中(至于是否加入全局路由表,需要进一步比较路由优先级)

度量值

OSPF使用cost作为路由度量值,激活OSPF的接口都拥有一个接口级别的cost(参考带宽/接口带宽,不足1按1算,参考带宽默认为100M),转发线路的cost为路径cost之和

  • 注意,cost计算的参考带宽值是可以调整的,但是要谨慎
  • 接口的cost值也是可以手动调整的,实际应用中常通过调整cost来影响OSPF的路由计算

报文

OSPF里面的报文类型有以下5种

image-20230713180345414

  • hello报文是为了建立和维护邻居关系
  • DD报文是为了交换LSDB信息摘要
  • 在知道LSDB信息摘要之后,通过LSR向邻居请求所需的LSA数据
  • LSU是对LSR的回复,包含请求的LSA完整信息
  • LSAck是请求者收到LSU之后的确认(维护可靠性)

邻接关系

之前提到的邻居关系:直连的设备双方接口都激活OSPF后,经过hello报文建立形成邻居关系

邻接关系是两台设备完成LSDB同步,开始独立计算路由