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. 区域划分规则
- 星型结构:
所有非骨干必须直连到骨干区域 区域0为骨干 大于0为非骨干
ospf区域0中必须有一个邻居,否则会出环 - ABR:
区域边界路由器
5. OSPF结构突变
-
新增网段—直连新增网段的设备使用DBD告知邻居,邻居再使用LSR/LSU/LSack来获取
-
断开网段—直连断开网段的设备使用DBD告知邻居,邻居再使用LSR/LSU/LSack来获取
-
无法沟通—dead time 计时到后,邻居关系断开,删除所有从该邻接处学习到的所有LSA信息;
6. HELLO包
作用:邻居的发现、关系的建立和保活
网络类型 | NBMA | 其它 |
---|---|---|
hello time | 30s | 10s |
dead time |