应用最广泛的动态路由协议:OSPF

你好,这里是网络技术联盟站。
上节给大家介绍了动态路由中 RIP,今天给大家带来的是 OSPF。
让我们直接开始!
[TOC]
什么是 OSPF?
OSPF,英文全称:Open Shortest Path First
,中文名称:开放最短路径优先。
OSPF 是 IP 路由协议系列之一,是 Internet 的内部网关协议 (IGP),用于在 IP 网络中的单个自治系统 (AS) 中分发 IP 路由信息。
OSPF 是一种网络层协议,适用于协议号为 89,AD 值为 110。
OSPF 使用多播地址 224.0.0.5
进行正常通信,使用 224.0.0.6
更新到指定路由器(DR)/备份指定路由器(BDR)。
OSPF 术语
邻居:运行 OSPF 的连接(相邻)路由器,相邻接口分配给同一区域,邻居是通过 Hello 数据包找到的(除非手动配置)。
邻接:路由器与其对应的 DR 和 BDR 之间的逻辑连接,除非形成邻接关系,否则不会交换路由信息。
LSA: 链路状态通告,数据包包含链路状态和路由信息,在 OSPF 邻居之间共享。
DR:指定路由器,
BDR:BDR 是广播网络中 DR 的备份。当 DR 宕机时,BDR 变为 DR 并执行其功能。
区域:区域用于建立分层网络。
ABR:区域边界路由器。
ASBR:自治系统边界路由器。
NBMA:非广播多路访问。
Router-ID:用于识别 OSPF 路由器的 IP 地址。
链路状态:两个路由器之间的链路状态。
成本:链路状态协议为每个链路分配一个称为成本的值。
OSPF 特点
无类路由协议
支持 VLSM、CIDR、手动路由汇总、等价负载均衡
支持增量更新
仅使用一个参数作为度量标准:接口成本。
OSPF 路由的管理距离默认为 110。
使用多播地址
224.0.0.5
和224.0.0.6
进行路由更新。
OSPF 报文类型
OSPF 一共有 5 种报文类型:

Hello 报文
也称为 Type-1 数据包,有两个用途:
邻居发现
Keep Alive
在 224.0.0.5 上进行多播。
DD 报文
DD,英文全称:Database Description
,中文意思:数据库描述。
用于在两个路由器之间同步 LSDB (链路状态数据库).
LSR 报文
LSR,英文全称:Link State Request
,中文意思:链路状态请求。
用于从 OSPF 邻居路由器请求特定的链路状态记录.
LSU 报文
LSU,英文全称:Link State Update
,中文意思:链路状态更新。
对 LSR(链路状态请求)的回复.
LSAck 报文
LSAck,英文全称:Link State Acknowledgement
,中文意思:链路状态确认。
用于确认目的 LSR,可以检查接收端 OSPF 路由器是否成功接收 LSU。
LSA 类型
OSPF 一共有 7 种 LSA 类型:

Router-LSA
LSA 1 类是最基本的 LSA,由所有 OSPF 路由器生成,生成的 LSA 1 在该区域内全部泛洪,LSA 1 包含所有 OSPF 路由器链路信息,包括邻居的链路类型、开销、IP 地址和路由器 ID。

如图,Type 1 LSA 只在 Area 0 即同一个区域内进行通信,不同区域的 Type 1 LSA 是不同的。
Network-LSA
LSA 2 类 网络 LSA 由 DR 在每个多路访问网络上生成,DR 是代表多路访问网络的路由器,网络 LSA 显示了多路访问网络上 OSPF 路由器的连接,包含 DR 的 IP 地址、连接到多路访问网络的路由器列表和多路访问网络的子网掩码,DR 生成的网络 LSA 会泛洪到区域内的所有网络。

如图,在区域 Area0 中,有多路,此时 Type 2 LSA 由 DR 发出。
Network-summary-LSA
LSA 3 类由 ABR(区域边界路由器)生成,用于将一个区域的网络通告给其他区域。

如图,R2 是 ABR,ABR 生成 Type 3 LSA,将区域 1 的 Type 1 LSA 通告给 area 0 和 area 2.
ASBR-summary-LSA
LSA 4 类由 ABR(区域边界路由器)生成,用于通知其区域如何到达 ASBR(自治系统边界路由器)。

如图,R1 连接了其他协议 RIP 的网络,因此 R1 为 ASBR,R1 通过 Type 1 LSA 将自己的路由信息传递给 R2,R2 是 ABR,会生成 Type 4 LSA,通告给其他区域如何到达 ASBR 即 R1。
AS-external-LSA
LSA 5 类由 ASBR 生成,是非 OSPF 设备的路由信息,一般来说,在大型网络中,路由器的数据库中存在大量此类 LSA.

如图,RIP 协议是非 OSPF 协议,现在 RIP 网络是 192.168.1.0/24,这个时候为了将 192.168.1.0/24 发布在 OSPF 区域内,ASBR R1 就会生成 Type 5 LSA,然后通告给其他区域。
NSSA LSA
LSA 7 类由 NSSA 中的 ASBR 生成,NSSA 中的 ASBR 将非 OSPF 域的网络地址信息洪泛到 NSSA 中,由于 NSSA 外部 LSA 仅在 NSSA 内泛洪,因此 NSSA ABR 将 LSA 类型 7 转换为 LSA 类型 5 并将其通告到骨干区域。
Opaque LSA
9 类 LSA 只在发布 LSA 的接口所在的网段发布。
10 类 LSA 在 OSPF 区域内发布。
11 类 LSA 在 AS 内发布
路由器类型
OSPF 一共有 4 种路由器类型:

IA
IA 英文全称:Internal Router,中文意思就是:区域内路由器。
区域内路由器所有接口都在同一个区域,一个区域中的所有区域内路由器都具有相同的 LSDB。

如图,R1、R2、R6、R7 都是 IA。
BR
BR 英文全称:Backbone Router,中文意思就是:骨干路由器。
骨干路由器就是骨干区域的路由器,骨干区域都为区域 0。

如图,R3、R4、R5 都是 BR。
ABR
ABR 英文全称:Area Border Router,中文意思就是:区域边界路由器。
位于一个或多个 OSPF 区域边界并将这些区域连接到骨干网的路由器称为 ABR。
ABR 连接到多个 OSPF 区域,因此一个网络内可以有多个 ABR,因此,ABR 有多个链路状态数据库实例,ABR 对每个区域都有一个数据库,该数据库经过汇总,然后提交给主干,以便分发到其他区域。

如图,R3 和 R5 就是 ABR。
ASBR
ASBR 英文全称:AS Boundary Router,中文意思就是:自治系统边界路由器。
ASBR 是位于使用 OSPF 执行路由的网络(OSPF 域)和执行非 OSPF 路由的网络(例如静态路由、RIP/EIGRP/BGP(非 OSPF 域))之间的边界的路由器。
ASBR 是配置为从非 OSPF 路由进程重新分配到 OSPF 的路由器,由于通信是双向的,因此 ASBR 还需要将 OSPF 路由重新分发到非 OSPF 域。

如图,R5 就是 ASBR。
路由类型
OSPF 一共有 4 种路由类型:

Intra Area
Intra Area,就是区域内路由,如下图所示:

R2 将 192.168.1.0/24 宣告为区域内路由,它是同一个区域内的路由。
Inter Area
Inter Area 就是区域间路由,如下图所示:

R3 在 area1 宣告 192.168.2.0/24,使其成为区域间路由。
Type1 External
Type1 External,就是第一类外部路由,等效于链路状态度量,其中成本等于内部成本加上外部成本的总和,高可靠性。
Type2 External
Type2 External,就是第二类外部路由,大于 AS 内部任何路径的成本,成本等于从 ASBR 到目的地的路由成本,低可靠性。
区域类型
OSPF 一共有 5 种区域类型:

普通区域
普通区域包括标准区域和骨干区域。
area0 是骨干区域,是 OSPF 网络的中心,如图所示,所有其他区域都连接到这些骨干区域
连接到 area0 的区域都是标准区域,如下图,area1 和 area2 都是标准区域。

STUB 区域
STUB 区域是第一个特定区域,不接受属于外部自治系统(AS)的路由,它们通常用于减少 LSA 泛洪、LSDB 和路由表大小。因此,这种类型的区域用于对高流量有点敏感的地方。
Totally STUB 区域
Totally STUB 区域不允许区域内以外的路由和默认路由在区域内传播,ABR 将默认路由注入该区域,属于该区域的所有路由器都使用默认路由将任何流量发送到该区域之外。
NSSA 区域
NSSA 代表 not-so-stubby area,允许 OSPF Stub 区域携带外部路由,这些路由是从 RIP、EIGRP 或 BGP 等其他协议中学习到的路由,然后重新分配到 NSSA 区域会创建一种特殊类型的链路状态通告 (LSA),称为类型 7,它只能存在于 NSSA 区域。
Totally NSSA 区域
Totally NSSA 区域与 NSSA 区域类似,但外部和区域间的路由在从区域 0 到它时会被过滤,而会向它发布一条默认路由。
网络类型
OSPF 支持以下网络类型:

广播类型
广播类型是 OSPF 的默认网络类型
要求链路支持第 2 层广播功能
需要使用 DR/BDR
为广播网络完成 DR 和 BDR 选择。

NBMA 类型
OSPF 帧中继默认网络类型
每个邻居都以单播方式相互连接,并且所有 OSPF 数据包都是单播的
需要使用 DR/BDR

点到点 P2P 类型
不维护 DR/BDR 关系
用于两台路由器之间

点到多点 P2MP 类型
不保持 DR/BDR 关系
通过组播地址 224.0.0.5 发送 hello 包
用于强制来自多个站点的流量通过总部或中心位置

总结
OSPF 是数通技术中最为重要的技术之一,今天瑞哥花了大篇幅讲解了一下,这篇文章花费了 3 天时间,每天零碎时间写的,希望能够对您有帮助!
评论