35+ 个最常问的 OSPF 面试问题和答案

2025年3月17日 | 阅读11分钟

1) 您对 OSPF 有什么了解?/ OSPF 路由协议是什么?

OSPF 是开放最短路径优先(Open Shortest Path First)的缩写。它是一种开放的平均链路状态路由协议,使用 Dijkstra 的 SPF 算法,用于查找直观且最短的路径。通过用计算出的最佳路径填充路由表来实现此目的。


2) OSPF 使用什么算法?

OSPF 使用 SPF(Shortest Path First,最短路径优先)算法,也称为 Dijkstra 算法。它用于计算最佳路径并准备 OSPF 数据库。


3) 为什么需要将自治系统划分为 OSPF 的各个区域?

在 OSPF 算法中,将自治系统划分为各个区域可以最大限度地减少路由更新。它减少了网络中的路由更新数量,节省了资源,并防止问题在整个网络中传播。


4) OSPF 的关键属性是什么?

以下是一些 OSPF 的关键属性列表:

  • 等成本路由管理:CEF 负载对应
  • OSPF 协议类型:链路状态
  • 传输:IP(端口 89)提交到网络漫步网站
  • OSPF 度量值:成本(带宽)
  • 标准:RFC2328 (OSPFv2),RFC2740 (OSPFv3/IPv6)

5) OSPF 的不同功能和工作原理是什么?

以下是 OSPF 不同功能和工作原理的列表:

  • OSPF 使用 Dijkstra 最短路径优先算法来确定最短路径。
  • OSPF 使用区域(Areas)遵循分层网络设计。
  • OSPF 与同一区域内的相邻路由器建立邻居关系。
  • OSPF 是一个无类别路由协议,支持 VLSM。
  • OSPF 不通告连接网络的距离,而是通过链路状态通告(LSA)通告直接连接链路的状态。
  • 当其链路发生变化时,OSPF 会发送更新(LSA),并且仅在更新期间发送更改。LSA 也会每 30 分钟刷新一次。

6) 将整个网络划分为区域有什么好处?

以下是将整个网络划分为区域的优点:

  • 它减少了路由开销。
  • 它可以加快收敛速度。
  • 它还可以将网络不稳定限制在网络的单个区域。

7) OSPF 的关键特征是什么?

以下是 OSPF 关键特征的列表:

  • OSPF 是一个无类别路由协议,支持 VLSM 和 CIDR。
  • OSPF 允许创建区域和自治系统。
  • OSPF 同时支持 IPv4 和 IPv6。
  • OSPF 以成本作为其度量值,该成本基于链路的带宽计算。
  • OSPF 没有跳数限制。它支持无限跳数。
  • OSPF 路由的管理距离为 110。

8) OSPF 路由器 ID 是什么?它是如何选举的?

OSPF 路由器 ID 是一个 32 位数字,类似于普通的 IP 地址。如果存在回环接口,则选举的路由器 ID 是回环接口的最高 IP 地址;如果不存在回环接口,则选举的路由器 ID 是活动物理接口的最高 IP 地址。我们可以手动设置它,但当 OSPF 进程完全重置或设备重新加载后,它才会生效。为避免数据库问题,每个设备上应只运行一个路由器 ID。


9) OSPF 中的拓扑表和路由表的作用是什么?

OSPF 进程用于构建和维护三个独立的表:

  • 邻居表:此表包含所有邻居路由器的列表。
  • 拓扑表:此表包含区域内所有已知网络的可能路由列表。
  • 路由表:此表包含每个已知网络的最佳路由。

10) OSPF 如何工作?/解释 OSPF 的工作原理。

OSPF 协议用于路由器发送路由信息和表中相关的更改。OSPF 不发送整个表,而只发送已更改的部分。此配置信息存储在链路状态数据库中,并使用此数据确定将数据包发送到目的地的最佳且最快的路径。


11) 使用 OSPF 汇总的关键好处是什么?

使用 OSPF 汇总的关键好处是:

  • 它最大限度地减少了更新消息,并将 OSPF 网络扩展到大规模。
  • 它还用于限制路由表中存储的信息量。
  • 它减轻了路由器处理器的负担,并减少了带宽使用。

12) LSA、LSU 和 LSR 在 OSPF 中的完整形式是什么?

在 OSPF 中,LSA 的完整形式是链路状态通告(Link State Advertisement)。它用于链路状态数据库,用于将基本的路由拓扑信息共享给其他本地路由器。OSPF 使用 LSA 信息填充链路状态数据库。这些 LSA 在路由器之间交换,直到它们都拥有相同的拓扑数据数据库。

  • LSA = 链路状态通告(Link State Advertisement)
  • LSU = 链路状态更新(Link State Update)
  • LSR = 链路状态请求(Link State Request)

当两个邻居尝试交换路由时,它们必须相互发送各自拓扑数据库中所有 LSA 的列表。然后,每个路由器会检查其拓扑数据库,并发送 LSR 消息,请求其拓扑表中未找到的所有 LSA。其他路由器会通过包含邻居请求的所有 LSA 的 LSU 进行响应。


13) OSPF 中有哪些不同类型的 LSA?

以下是 OSPF 中不同类型的 LSA:

  • LSA 类型 1:路由器 LSA
  • LSA 类型 2:网络 LSA
  • LSA 类型 3:汇总 LSA
  • LSA 类型 4:汇总 ASBR LSA
  • LSA 类型 5:自治系统外部 LSA
  • LSA 类型 6:多播 OSPF LSA
  • LSA 类型 7:非存根区域 LSA(Not-so-stubby area LSA)
  • LSA 类型 8:BGP 的外部属性 LSA
  • LSA 类型 9:链路范围不透明 LSA(Link Scope Opaque LSA (OSPFv2))/ 区域内前缀 LSA(Intra Area Prefix LSA (OSPFv3))
  • LSA 类型 10:区域范围不透明 LSA(Area Scope Opaque LSA)
  • LSA 类型 11:AS(自治系统)范围不透明 LSA(AS (Autonomous System) Scope Opaque LSA)

14) OSPF 中有哪些不同的网络类型?

以下是 OSPF 中可用的不同网络类型:

  • 点对点网络类型:在此网络类型中,数据包在两个路由器之间发送。
  • 广播网络类型:在此网络类型中,数据包从一个路由器发送到多个路由器。
  • 非广播网络类型:在此网络类型中,网络支持访问多个设备,但不允许广播功能。

15) 如何将邻居关系转换为相邻关系?

我们需要按照以下步骤将邻居关系转换为相邻关系:

  • 首先,我们需要发送状态请求来创建链接。此链接将告知 LSU 数据包。
  • 现在,两个路由器将交换数据库描述数据包,以确保数据库同步。
  • 一旦建立数据库同步,就可以认为这两个路由器是相邻的。

16) OSPF 协议的主要用途是什么?

OSPF 协议主要用于邻居路由器之间交换路由信息。LSA(链路状态通告)帮助路由器确保所有路由器在其数据库中拥有相同的拓扑信息,并通过使用 SPF 算法帮助确定最近的下一跳地址。


17) OSPF 有哪些不同的路由器类型?

以下是四种 OSPF 路由器类型的列表:

  • 内部路由器 (IR):内部路由器是所有接口都属于同一区域的 OSPF 路由器。
  • 骨干路由器 (BR):骨干路由器是在区域 0 中作为内部路由器的 OSPF 路由器。
  • 区域边界路由器 (ABR):区域边界路由器是具有多个区域接口的 OSPF 路由器类型。
  • 自治系统边界路由器 (ASBR):自治系统边界路由器是将外部路由通告到 OSPF 域的 OSPF 路由器类型。

18) DR 和 BDR 解决了 OSPF 中的哪些问题?

DR 和 BDR 解决了 OSPF 中的以下两个问题:

  • 过度的 LSA 泛洪
  • 大量相邻关系

19) 您对链路状态重传间隔(Link State Retransmit Interval)有什么了解?

OSPF 发送对每个新接收到的 LSA 的确认。LSA 会被重传,直到它们被确认。

链路状态重传间隔定义了重传之间的时间。我们可以使用命令 IP OSPF retransmit-interval 来设置重传间隔。


20) 最常见的 OSPF 邻居状态有哪些?

以下是最常见的 OSPF 邻居状态列表:

Down 状态:在此 Down 状态过程中,没有收到接口上的 Hello 数据包。Hello 数据包要么被删除,要么未能通过死计时器。在此状态下,通常可以找到手动配置的邻居。

Init 状态:Init 状态是初始阶段,涉及路由器响应来自 OSPF 邻居的“Hello 消息”。路由器在此状态下接收消息,但尚未与邻居建立真正的双向通信。

2-way 状态:在此状态下,当路由器在其邻居的 Hello 数据包字段中看到自己的 ID 时,就建立了双向通信。当从另一个邻居的 Init 状态接收到数据库描述数据包时,也可以建立双向状态。

Exstart 和 Exchange 状态:此状态是 OSPF 邻居交换 DBD 数据包的节点。在此状态下,还建立了网络中 DR 和 BDR 之间的相邻关系。此状态还便于在此状态下使用链路状态请求(Link State Requests)传输路由信息。

Loading 状态:此状态跟在 Exchange 状态之后,负责路由器向邻居转发 LSR(链路状态请求)。作为回报,邻居会发送包含所请求网络信息的 LSU(链路状态更新)。


21) OSPF 是否可以允许一端已编号而另一端未编号?

不可以。OSPF 不允许一端已编号而另一端未编号。如果尝试这样做,将导致 OSPF 数据库不一致,从而阻止路由安装到路由表中。


22) E1 和 E2 在 OSPF 中有什么区别?

E1 和 E2 在 OSPF 中的区别:

  • E1:在 OSPF 中,E1 是外部类型路由,它定义了从 ASBR(自治系统边界路由器)到目的地的成本。在此类型中,内部成本和外部度量值都会被考虑。
  • E2:E2 也是外部类型路由,但在此类型中不考虑内部成本。在 E2 中,仅计算到达特定目的地的外部度量值。如果您有两个用于到达目的地的 E2 路由,则会考虑从 ASBR 出发具有最低度量值的路径来发送数据。

23) 您对 OSPF 相邻关系(OSPF adjacency)有什么了解?

OSPF 相邻关系是一个理论上的链接,我们可以在此链接上发送链路状态通告(LSA)。


24) OSPF 的 Hello 和 Dead Interval 是什么?

OSPF 实现了两个计时器和 Hello 数据包来分析邻居路由器是否存活。

  • Hello Interval:Hello Interval 用于描述 OSPF 路由器发送 Hello 数据包的时间间隔。对于点对点链路和共享网络,默认的间隔值为 10 秒。
  • Dead Interval:Dead Interval 用于定义路由器在声明邻居路由器死亡之前等待的时间间隔。Hello 和 Dead Interval 的值可能因网络类型而异。

25) OSPF 有哪些五种数据包类型?

以下是五种主要 OSPF 数据包类型的列表:

  • DBD
  • HELLO
  • LSU
  • LSR
  • LSack

26) 您对 OSPF 路由器 ID(OSPF Router ID)有什么了解?

OSPF 路由器 ID 是用于识别路由器的标识符,它是一个 32 位数字。


27) OSPF 是否可以运行在 GRE 隧道上?

是的,OSPF 可以运行在 GRE 隧道上。


28) OSPF 维护有哪些不同的表?

参与 OSPF 路由协议的路由器需要维护三个 OSPF 表。以下是这些表的列表:

  • 邻居表:此表用于存储有关 OSPF 邻居的信息。
  • 拓扑表:此表用于存储网络的拓扑结构。
  • 路由表:此表用于存储到所有已知网络的最佳路由。

29) OSPF 有哪些不同的计时器?

OSPF 主要有两种计时器:

  • Dead Interval Timer:Dead Interval Timer 用于定义路由器等待 Hello 数据包多长时间后才声明邻居死亡。
  • Hello Interval Timer:Hello Interval Timer 用于定义 OSPF 路由器向另一台 OSPF 路由器发送 Hello 数据包的频率。

30) OSPF 中的 DR 和 BDR 是什么?

在 OSPF 中,DR 代表指定路由器(Designated Router),BDR 代表备份指定路由器(Backup Designated Router)。两者都用于在不同路由器之间交换信息。这取决于网络,其中一台路由器被选为 DR,另一台被选为 BDR。

默认情况下,在每个广播网络中,DR 是网络段的连接点。所有路由器在处理网络的所有 LSA 时都会与 DR 建立相邻关系。DR 的信息通过组播地址 224.0.0.6 由路由器发送。

如果 DR 出现问题,为了避免 DR 故障时出现问题,将为网络选择 BDR。当 DR 失败时,BDR 将激活并监听组播地址 224.0.0.6。


31) 区域 0 在 OSPF 中的重要性是什么?

在 OSPF 中,区域 0 是骨干区域,这一点很重要,因为所有其他区域都必须通过骨干区域进行区域间传输。


32) OSPF 中的虚拟链路概念是什么?能否通过存根区域形成虚拟链路?

根据 OSPF 规则,区域间通信发生时,至少有一个区域应该是区域 0 或骨干区域。如果无法实现这一点,则必须使用虚拟链路来形成逻辑关联。虚拟链路无法通过存根区域形成。


33) OSPF 使用哪些组播 IP?DR/BDR 路由器和非 DR 使用哪个组播 IP?

OSPF 路由器使用 224.0.0.5 和 224.0.0.6 组播 IP 地址。DR/BDR 使用 224.0.0.5 和 224.0.0.6。在广播多路访问网络中,DR/BDR 使用 224.0.0.6 回复 OSPF 路由器。


34) OSPF 是否可以在没有骨干区域的情况下使用?

是的,OSPF 可以在没有骨干区域的情况下使用,但只能实现区域内通信。对于区域间通信,我们必须使用骨干区域,没有骨干区域则无法实现区域间通信。


35) 为什么 OSPF 被称为无环路协议?

OSPF 被称为无环路协议是因为存在链路状态数据库。在 OSPF 中,数据库提供了对网络的完整视图,并防止了在距离矢量协议中常见的路由环路。OSPF 通过应用区域间无环路拓扑来避免环路。这就是为什么它被称为无环路协议。


36) Hello Interval 和 Dead Interval 的默认值是多少?

OSPF 的 Hello Interval 默认值为 10 秒,Dead Interval 默认值为 Hello Interval 的四倍。默认情况下为 40 秒。


37) EIGRP 与 OSPF 有何区别?

以下是 EIGRP 和 OSPF 之间的主要区别列表:

EIGRPOSPF
EIGRP 是增强型内部网关路由协议(Enhanced Interior Gateway Protocol)的缩写。它是一种混合型协议。OSPF 是开放最短路径优先(Open Shortest Path First)的缩写。它是一种链路状态协议。
EIGRP 需要非常低的 CPU 功耗和内存。OSPF 始终需要高处理能力和内存。
EIGRP 基于 Cisco 专有标准。OSPF 协议基于 IETF 开放标准。
在 EIGRP 中,路由度量值包括负载、可靠性、带宽和延迟。在 OSPF 中,路由度量值包括接口带宽。
EIGRP 支持汇总和过滤,并且可以在网络中的任何位置进行。OSPF 仅在 ABR 或 ASBR 上可用。

38) 邻居路由器可以在 OSPF 中执行哪些不同的活动?

在 OSPF 中,邻居表可以包含以下信息:

  • 每个邻居路由器的路由器 ID。
  • 每个邻居的当前“状态”。
  • 直接连接到每个邻居的接口。
  • 每个邻居的远程接口的 IP 地址。