目录
第一节、Ospf 协议基础
1、RIP 与 OSPF 之间的区别:
距离矢量路由协议(Rip):只适合小型网络,最大有效跳数 15 跳,收敛慢(网络波动到平稳
的过程),传递路由容易造成环路、可扩展性差(传闻路由)
计算路由的方式:收到更新->计算路由->发送更新
OSPF 的优点:无环路、收敛快、扩展性好、支持认证、所有厂商都支持(传信)
计算路由的方式:收到更新->发送更新->计算路由
传信:ospf 传信可靠
传闻:RIP(收敛速度慢、度量值不科学、可扩展性差,最大 15 跳)传闻机制不可靠,缺少
对全局网络拓扑的了解
OSPF 报文头部:
Version :对于当前所使用的 OSPFv2,该字段的值为 2
Type:OSPF 报文类型
Packet length:表示整个 OSPF 报文的长度,单位是字节
Router ID:表示生成此报文的路由器的 Router ID。在 OSPF 当中,通过 route ID 来标识一
台设备
Route ID(点分十进制表示)获取方式:
手工:可以在协议视图中直接设置,在系统视图中直接设备(只要任何协议需要配置route ID,如果没有配置则使用系统视图的 route ID 作为自己的 route ID)在 OSPF 中协议大于系统
自动获取:如果有 loopback 接口,会选举 loopback 接口上最大的 IP 地址作为 route
ID ,如果没有 loopback 接口,则使用物理接口的最大 IP 地址作为 route ID
Area ID:表示此报文需要被通告到的区域
Checksum:校验字段,其校验的范围是整个 OSPF 报文,包括 OSPF 报文头部
Auth Type:为 0 时表示不认证;为 1 时表示简单的明文密码认证;为 2 时表示加密(MD5)
认证
Authentication:认证所需的信息。该字段的内容随 Auth Type 的值不同而不同
2、ospf 的工作过程:
先建立邻居、交互 LSDB、计算路由(最优)、加入路由表
3、OSPF 建立邻居关系的过程:
Down:初始状态
Attempt:发送了 Hello 报文,但没有收到邻居的 Hello 报文 120s(只会在 NBMA 网络中
会出现)
Init:发送了 Hello,也收到了 Hello 报文,但是收到的 Hello 报文里邻居列表没有自己
2-WAY:发送了 Hello 报文,也收到了 Hello 报文,并且邻居列表有自己,邻居关系最高状态
4、OSPF 邻接建立的过程
Exstrat:通过 DD 报文协商主从(route ID 越大为主)
注释:这时候的 DD 报文只有头部信息(空),只用于协商主从
协商主从的原因:因为 IP 数据包是面向无连接的传输,每个数据包都是独立的传输,数据的传
输得不到保障,这时候选举主从,从设备以主设备的序列号为主,保障了数据包传输的有序性和
可靠性
Exchange:描述本地的 LSDB 摘要信息(同步 LSDB 摘要)
注释:最后一个 DD 报文也为空,用于确认,由于 DD 报文使用序列号作为的确认也叫隐式确
认。
Loading:交互详细的 LSA 通过 LSR(请求)、LSU 报文(回应)
如果在 Exchange 状态协商完成,且没有缺失的 LSA 的情况下会直接到 FULLFull:发送 LSACK 确认收到 LSA,LSDB 已经同步完成 邻接关系最高状态(显示确认)
5、OSPF 报文:
HELLO 报文:用来发现、建立、维护邻居关系,选举 DR/BDR 选举 DR/BDR 在 2-way 状态就
会选举完,运行 OSPF 协议开始 40s 选举完
DR/BDR 作用:减少邻接关系、减少 LSA 的重复泛洪、减少占用的链路带宽、提高可靠性。
DR/BDR 选举机制:通过接口优先级进行选举(0~255),越大越优先,缺省情况为 1,0
不参与选举,如果优先级相同,则用 route ID 进行选举,越大越优先
DR/BDR 不可以抢占,如果 DR 故障,BDR 成为新的 DR,其他路由器进行比较,最高的成为
新的 BDR,设备在初始化的阶段选举过程为:先选举 BDR,然后将 BDR 变成 DR 再选举 BDR。
由于 OSPF 的不可抢占机制,所以一般谁先启动 OSPF 的功能,谁将成为 DR
所有路由器与 DR 和 BDR 建立邻接关系,DR 与 BDR 也是邻接关系,DR other 之间为邻居
关系
DR 与 BDR 在每条链路上都需要选举,前提条件‘本链路的接口为同一区域’
Network Mask(子网掩码):发送 Hello 报文的接口的网络掩码
Hello Interval(间隔时间):发送 Hello 报文的时间间隔,单位为秒
Options(可选项):标识发送此报文的 OSPF 路由器所支持的可选功能。具体的可选功能已超出这里的讨论范围
Router Priority(接口优先级):发送 Hello 报文的接口的 Router Priority,用于选
举 DR 和 BDR
Router Dead Interval(死亡时间(间隔时间乘以 4)):失效时间。如果在此时间内未收
到邻居发来的 Hello 报文,则认为邻居失效;单位为秒,通常为四倍 Hello Interval
Designated Router(DR 接口 IP 地址):发送 Hello 报文的路由器所选举出的 DR 的 IP
地址。如果设置为 0.0.0.0,表示未选举 DR 路由器
Backup Designated Router(BDR 接口 IP 地址):发送 Hello 报文的路由器所选举出的
BDR 的 IP 地址。如果设置为 0.0.0.0,表示未选举 BDR。
Neighbor(邻居):邻居的 Router ID 列表,表示本路由器已经从这些邻居收到了合法的
Hello 报文。
DD 报文:
DD(Database Description)报文:交互 LSA 摘要(唯一确定一条 LSA)信息/描
述本地 LSDB,协商主从(确定谁先向谁发)从带上主的序列号发送 作用:提高 DD 报
文的有序交互且带有确认机制,提高可靠性。(协商主从 DD 报文为空,,最后隐式确认
为空)
I:置位为 1,表示为第一个 DD 报文
M:置位为 1,表示后面还有 DD 报文(后面的 DD 报文中有 LSA 摘要吗)
MS:置位为 1,表示为主(第一个 DD 报文认为自己就是主)
支持重传机制,5s 一次
LSR(Link State Request)报文:请求对方自己所缺失的 LSA,携带 LSA 摘要信息。
LSU(Link State Update)报文:回应对方请求的完整 LSA,周期更新 1800s,3600s 老
化(含有隐式确认)支持重传,当没有收到确认会进行重传,每 5s 发一次
注释:某些情况下 LSU 也作为确认机制,为隐式确认。将收到对方的详细 LSA 放入自己发给对
方的 LSU 中作为确认,减少 LSACK 的发送次数
LSACK(Link State Acknowledgment)报文:对收到的 LSA 进行确认,LSA 摘要信息。
(显示确认,通过三元组 LS ID、ADV ROUTER(通告者路由)、LS TYPE 类型)
注释:224.0.0.5 所有运行 OSPF 的路由器接收 224.0.0.6 只有 DR/BDR 接收
LS age:此字段表示 LSA 已经生存的时间,单位是秒
LS type:此字段标识了 LSA 的格式和功能。常用的 LSA 类型有五种
Link State ID:此字段是该 LSA 所描述的那部分链路的标识,例如 Router ID 等
Advertising Router:此字段是产生此 LSA 的路由器的 Router ID
LS sequence number:此字段用于检测旧的和重复的 LSA
通过 LS type、Link State ID、Advertising Router 唯一标识一条 LSA
LSA 的新旧比较:先比序列号(越大越优)、校验值(越大越优)、老化时间(如果老化时
间相差 900s 以内则一样新,先者为优&#