通常被称为链路状态数据库(LSDB)
包含该区域或网络中的所有路由器及其连接链路
区域内的所有路由器有相同的LSDB
路由表:
通常称为转发数据库(forwarding database),包含到目的地的最佳路径。
03 网络层次结构
链路状态路由协议通过OSPF协议执行具有层次网络结构。两层的层次结构由中转区域 (骨干区域0)和常规区域 (非骨干区域)组成。
OSPF区域特点:
最大限度地减少路由表条目
本地区域内拓扑变化的影响
在区域边界阻止LSA的泛洪
需要分层网络设计
路由器A和B都是骨干路由器
骨干路由器属于区域0
路由器C,D和E被称为区域边界路由器
ABR连接着骨干区域和非骨干区域
04 SPF计算
OSPF报文类型
01 OSPF报文类型
02 OSPF报文头格式
03 OSPF邻居建立过程
过程详细描述:
(1) OSPF路由器接口up,发送Hello包(NBMA模式时将进入Attempt状态)
(2) OSPF路由器接口收到Hello包,进入Init状态;并将该Hello包的发送者的Router ID,添加到Hello包(自己将要从该接口发送出去的Hello包)的邻居列表中
(3) OSPF路由器接口收到邻居列表中含有自己Router ID的Hello包,进入Two-way状态,形成OSPF邻居关系,并把该路由器的Router ID添加到自己的OSPF邻居表中
(4) 在进入Two-way状态后,广播、非广播网络类型的链路,在DR选举等待时间内进行DR选举。点对点没有这个过程
(5) 在DR选举完成或跳过DR选举后,建立OSPF邻接关系,进入exstart(准启动)状态;并选举DBD交换主从路由器,以及由主路由器定义DBD序列号,Router ID大的为主路由器。目的是为了解决DBD自身的可靠性
(6) 主从路由器选举完成后,进入Exchange(交换)状态,交换DBD信息
(7) DBD交换完成后,进入Loading状态,对链路状态数据库和收到的DBD的LSA头部进行比较,发现自己数据库中没有的LSA就发送LSR,向邻居请求该LSA;邻居收到LSR后,回应LSU;收到邻居发来的LSU,存储这些LSA到自己的链路状态数据库,并发送LSAck确认
(8) LSA交换完成后,进入FULL状态,所有形成邻居的OSPF路由器都拥有相同链路状态数据库
(9) 定期发送Hello包,维护邻居关系
1. 邻居关系: Hello包
2. 建立双向通信
3. 发现网络路由
4. 添加链路状态条目
5. 维护路由信息
04 LSA序列编号
2. 序列号的长度为4个字节,范围是0x80000001 ~ 0x7FFFFFFF
3. OSPF每隔30分钟泛洪每一条LSA以保持适当的数据库同步
4. 每次LSA泛洪,序列号被加1
5. 最终,一个LSA序列号将返回到0x80000001的。当发生这种情况时,现有的LSA达到最大老化时间,重新刷新LSA时间
6. 当路由器遇到一个LSA的两个实例,它必须确定哪个更新,具有较新的(更高)的LSA的LS序列号是更一些
05 LSA操作
LSA序列号和最大年龄:
配置OSPF
01 配置OSPF
02 OSPF Router ID
1. 在OSPF网络内通过OSPF router ID标识路由器。
2. LSDBs 使用OSPF的 Router ID 区分不同的路由器。
3. 默认情况下, Router ID在OSPF进程启动时选择活动接口中最⼤大的IP地址。
4. 环回接口可以参与OSPF路由器ID的选举,如果存在Loopback接口,路由器ID是在任何活动的loopback接口中最大的IP地址。
5. OSPF的Router-id命令可以用来覆盖OSPF路由器ID。
6. 使用Loopback接口或一个Router-id命令用于保持Router-ID稳定.
If the OSPF process is already running, the router must be
reloaded or the OSPF process must be removed and
reconfigured before the new loopback address will take effect
OSPF router-id 命令: