当前位置: 代码迷 >> 综合 >> OSPF-开放最短路径优先协议
  详细解决方案

OSPF-开放最短路径优先协议

热度:68   发布时间:2023-12-21 12:14:44.0

OSPF(Open Shortest Path First 开放式最短路径优先)

  • 无类别链路状态路由协议
  • 组播更新:224.0.0.5/224.0.0.6
  • 触发更新、周期更新(30min)
  • 跨层封装到网络层:协议号89
  • 支持等开销负载均衡:默认4条、最大6条;IOS版本12.4以上支持16条
  • 基于LSA更新:导致更新量很大
  • 结构化部署:区域划分

1. 数据包

  • HELLO:邻居的发现、建立、保活
  • DBD:数据库描述包(数据库目录信息)
  • LSR:链路状态请求
  • LSU:链路状态更新(携带各种LSA)
  • LSack:链路状态确认

在这里插入图片描述

2. OSPF的状态机

  • down:没有启用OSPF的状态
    邻居失效后变为该状态,本地一旦发出hello包,进入下一状态;若卡在此状态,原因是ospf没有运行,互相不发包

  • Init:初始化状态
    第一次收到对端发来的hello包(包含对端route-id)时,将对端的状态设置为init; 若卡在此状态,原因是一方收不到另一方的hello包,比如认证出了问题

  • 2-way:邻居状态
    相互间周期发送hello的状态(双方建立会话);点到点网络直接进入下一状态;MA网络将进行DR/BDR选举(40S),非DR/BDR间不能进入下一状态;若卡在此状态,原因是没有成功选举

  • Exstart:交换信息的初始化状态
    发送DBD(包含本地的LSA的摘要信息)报文,选举主从路由器(利用HELLO报文中的ID和优先权来进行选举,不允许抢占,RID数值大为主,主优先进入下一状态);若卡在此状态,原因是MTU值不匹配。

  • Exchange:交换信息的状态
    该状态下,相互间发送DBD,告知对端本地所有的LSA的目录,需要ACK;若卡在此状态,原因是包的交互有问题。

  • Loading:加载状态(没有学习完的状态)
    发送LSR,LSU,LSACK,专门学习对端的LSA的详细信息;若卡在此状态,原因是LSA加载不完全。

  • Full:邻接状态(学习完的状态)
    彼此的LSDB同步,即所有的LSA相同,邻接关系建立的标志;


3. OSPF的工作过程

r1(config)#router ospf 1   启动时需要配置进程号,仅具有本地意义
r1(config-router)#router-id 1.1.1.1  

router-id全网唯一:1.手工 > 2.环回接口上最大数值的ip地址 > 3.物理接口最大数值 > 4.无进程

宣告:1、激活 2、拓扑 3、区域划分

r1(config-router)#network 1.1.1.1 0.0.0.0 area 0
r1(config-router)#network 12.1.1.1 0.0.0.0 area 0
在宣告时必须携带反掩码  

启动配置完成后,本地收发hello包,建立邻居关系,生成邻居表

r2#show ip ospf neighbor 查看邻居表
Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           0   FULL/  -        00:00:32    12.1.1.1        Serial1/0
3.3.3.3           0   FULL/  -        00:00:36    23.1.1.2        Serial1/1状态机

再进行条件的匹配,匹配失败将停留于邻居关系,仅hello包周期保活即可;

匹配成功者间可以建立邻接(毗邻)关系,需要DBD共享数据库目录,LSR/LSU/LSack来获取未知的LSA信息,该过程被称为 LSA洪泛或LSDB同步,当收集完网络中所有的LSA后,生成数据库表(LSDB)

r2#show ip ospf database  查看数据库的目录
r2#show ip ospf database router 1.1.1.1  具体查看某条LSA类别  番号

LSDB建立完成后,本地基于SPF选路规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中,完成收敛

O - OSPF, IA - OSPF inter area 
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2使用O标识OSPF本区域内通过拓扑计算所得路由
使用O IA标识其他区域路由器通过ABR导入所得
使用O E1/2标识其他协议或其他进程产生后,通过ASBR重发布进入
使用O N1/2标识其他协议或其他进程产生后,通过ASBR重发布进入,同时本地处于NSSA特殊区域;

收敛完成后–hello包周期保活

30min周期的DBD比对,若不一致将使用LSR/LSU/LSack重新获取(周期更新)


4. 区域划分规则

  1. 星型结构:
    所有非骨干必须直连到骨干区域 区域0为骨干 大于0为非骨干
    ospf区域0中必须有一个邻居,否则会出环
  2. ABR:
    区域边界路由器

5. OSPF结构突变

  1. 新增网段—直连新增网段的设备使用DBD告知邻居,邻居再使用LSR/LSU/LSack来获取

  2. 断开网段—直连断开网段的设备使用DBD告知邻居,邻居再使用LSR/LSU/LSack来获取

  3. 无法沟通—dead time 计时到后,邻居关系断开,删除所有从该邻接处学习到的所有LSA信息;


6. HELLO包

作用:邻居的发现、关系的建立和保活

网络类型 NBMA 其它
hello time 30s 10s
dead time