20-ospf技术
OSPF路由协议
一 RIP的不足
- RIP以跳数评估的路由并非最优路径
- RIP协议限制网络直径不能超过16跳,最大跳数16导致网络尺度小
- RIP收敛速度慢,RIP定期路由更新
- 更新计时器:定期路由更新的时间间隔,默认30秒
- 失效计时器:失效计时器内未收到更新,路由失效,默认180秒
- 清除计时器:清除计时器内未收到更新,路由清除,默认240秒
- 更新发送和全部路由表浪费网络资源,每隔30s向对方发送全部路由。
二 OSPF简介
- 定义
- OSPF,开放式最短路径优先
- OSPF是IETF开发的一种链路状态路由协议,基于带宽的度量值。
- OSPF采用SPF算法计算路由(最短路径优先算法),保证了无路由环路。
- OSPF通告邻居关系维护路由,避免了定期更新对带宽的消耗。
- OSPF路由更新效率高,网络收敛快,适用于大中型网络。
- OSPF封装于IP,协议号为89,组播地址224.0.0.5与224.0.0.6
三 OSPF的基本工作原理
1. OSPF基本协议模型
OSPF四张表
2. OSPF基本概念
(1) Router ID
- 一台路由器如果要运行OSPF协议,则必须存在Router ID(RID)
- RID是一个32位无符号整数,可以在一个自治系统中唯一标识一台路由器。
- RID可以手工配置,也可以自动生成(最好手动配置)
- 一个OSPF协议可以开多个进程
- 如果没有通过命令指定RID,将按照一下顺序生成RID
- 如果当前设备配置了Loopback接口,将选取所有Loopback接口上数值最大的IP地址作为RID。
- 如果当前设备没有配置Loopback接口,将选取它所有已经配置IP地址且链路UP的接口上数值最大的IP地址作为RID。
(2) LS
LS(链路状态):路由器周边的链路的状态
直连网段状态:通过接口网段和接口状态感知。
描述直连网段:网段、掩码、接口开销
直连拓扑状态:通过OSPF邻居和邻居状态感知。
描述直连拓扑:邻居Router ID、连接接口、接口开销
接口开销:OSPF参考带宽/接口带宽
OSPF参考带宽默认为100Mbps。
Loopback接口开销默认为1
(3) LSA
LSA(链路状态通告):按一定格式封装后的链路状态信息。
LSA 1:路由器链路状态通告
描述路由器所有直连链路或接口的状态、开销,以及该接口所属区域等信息。同时还会列出路由器的邻居路由器。
每台路由器都会发起自己的LSA 1(路由器LSA)
LSA 2:传送网络链路状态通告(网络LSA)
描述一个多路访问网络(如以太网)以及连接到该网络的所有路由器。具体包括该网络的网络掩码,以及连接到这个网络上的所有路由器的路由器 ID 等信息。
(4) LSDB
LSDB(链路状态数据库)
- 每台OSPF路由器都有一个LSDB,用于存储LSA
- 同一个区域中的OSPF路由器的LSDB一致
- LSA封装在LSU报文中,在区域内洪泛,最终达到区域内LSDB一致。
- LSA在洪泛过程中内容保持不变。
(5) SPF
SPF(最短路径算法)
- 以自己LSA 1为根,进行SPF计算。
- 各OSPF路由器单独进行SPF计算,互不影响。
SPF路由开销计算例子
3. OSPF网络类型
- Broadcast广播多路访问:以太网接口
- P2P(点到点):PPP HDLC接口
- NBMA(非广播多点访问网络):帧中继接口 (不常用)
- P2MP(点到多点) (不常用)
4. OSPF报文类型与封装
包含在各种报文中的LSA信息
LSA报文头部
OSPF报文直接封装在IP报文中,协议号为89.
OSPF报文的目的地址
点到点中,hello发送周期为30s,过期时间4个周期120s
广播多路中,hello发送周期为10s,过期时间4个周期40s
5 OSPF流程
建立邻居关系(点对点)
维持邻居关系(点对点)
- 邻居之间通告交换Hello报文,确认邻居是否工作正常。
- 如果在一定的时间间隔内,收不到邻居发来的Hello报文,就认为邻居已经失效,从邻居表删除。
DR/BDR的选举(广播多路访问)
采用DR/BDR建立邻接关系,可以降低需要维护的邻接关系数量。
DR/BDR的选举原则
- 首先比较Hello报文携带的优先级
- 优先级最高的被选举为DR,优先级次高的被选举为BDR
- 优先级为0的不参与选举
- 优先级一致的情况下,比较Router ID
- Router ID越大越优先
- 保持稳定原则
- 当DR/BDR已经选举完毕,就算一台具有更高优先级的路由器变为有效,也不会替换该网段中已经选举的DR/BDR成为新的DR/BDR。
- 当DR失效时,BDR成为DR
邻居关系无法建立的原因
邻居状态变换(邻居关系)
Attempt状态在帧中继接口,不用管。
邻居状态变换(邻接关系)
邻居关系建立的标志(2-Way)
邻居关系建立完成后开始选举DR
同步数据库完成的标志(Bull)
在同步之前,先选举Master主从关系
处于Loading状态表示需要更新LSA
超时重传机制
OSPF协议包具备超时重传机制。
OSPF协议包具备序列号,对重复包不做处理
6. LSA泛与老化
泛洪新LSA
当有新的LSA生成或收到时,这条新的LSA应当被泛洪
泛红新的LSA生成或收到时,只需要使用LS Update报文和Ls Ack
- 当RTA有新的LSA要泛洪时,RTA向RTB发送一个LS Update报文,在这个报文里包含这条LSA。
- 收到新的LSA之后,RTB向RTA泛洪一个LS Ack报文进行确认。
当在两个处于完全邻接状态(邻居状态为Full)的路由器之间泛洪一个LSA时,邻居状态不受影响。
广播网络中LSDB更新
在广播和NBMA网络中,链路状态发送变化时,主要是通过DR路由器发送更新报文。
OSPF LSA老化
- LSA不老化的缺点:当网络长时间中断,故障网络中的设备发起的LSA长时间无效,但仍然存储在LSDB中,浪费设备内存。
- OSPF LSA采用递增老化
- LSA自发起时,到达最大老化时间后,从LSDB中清除。
- OSPF最大老化时间3600秒,LSA头部的老化时间字段用于计时
OSPF LSA老化与全网刷新
正常OSPF网络的路由维护
- LSA老化时间到达最大老化时间的一半(30分钟),发起路由器随机等待一段时间后重新发起该LSA,然后洪泛,刷新所有路由器LSDB。
- 新发起的LSA序列号加1,老化时间为0.
LSA在整个洪泛过程中,除老化时间外,其余各字段都不变。
四 OSPF区域划分
1. OSPF协议分区域管理以及路由器角色
骨干路由器:只要有一个接口位于骨干区域就是骨干路由器
区域内部路由器、区域边界路由器ABR、骨干区域、自治系统边界路由器ASBR
OSPF区域号
OSPF路由域:运行OSPF路由协议的网络。
OSPF区域:OSPF是一种支持划分多区域的协议。
Area ID:32位,用数字或IP地址表示。
OSPF协议区域LSA发布