🧑‍💻2 OSPF基础

type
status
date
slug
summary
tags
category
icon
password
notion image

1.动态路由协议按照工作区域如何分类,按照工作机制和算法如何分类。

notion image

2.基于距离矢量的路由协议基于链路状态的路由协议有什么区别?

1. 信息通告方式

  • 距离矢量路由协议
    • 路由器周期性地向其邻居通告自己的整个路由表。每个路由器通过这些通告来更新自己的路由表,知道到达每个目的地的下一跳和距离。
    • 这种方式的核心思想是“告诉邻居我能到达哪些网络,以及到达这些网络的距离有多远”。
  • 链路状态路由协议
    • 路由器不通告整个路由表,而是通告链路状态信息(例如每个接口的开销、连接对象等)。这些信息被称为链路状态通告(LSA)。
    • 通过泛洪的方式将这些LSA传递给网络中的所有路由器,使得每台路由器都可以构建完整的网络拓扑图。

2. 网络拓扑感知

  • 距离矢量路由协议
    • 路由器没有全局的网络拓扑图,只知道到达某个目的地的下一跳和距离,并不知道整个网络的具体布局。
  • 链路状态路由协议
    • 每台路由器都通过收集LSA,构建出整个网络的拓扑图,基于这个全局拓扑图来计算出最短路径。

3. 路径计算方式

  • 距离矢量路由协议
    • 使用简单的算法,如Bellman-Ford算法,来根据邻居的通告更新路由表。每次更新仅基于与直接相邻路由器的信息。
  • 链路状态路由协议
    • 使用Dijkstra的最短路径优先(SPF)算法来计算从自己出发到达每个目的地的最短路径。每次计算都是基于全局的网络拓扑图。

4. 收敛速度与稳定性

  • 距离矢量路由协议
    • 由于信息传播的方式较为简单,可能会导致收敛速度较慢,且容易产生路由环路问题(如计数到无穷大问题)。
  • 链路状态路由协议
    • 由于每个路由器都有全局视图,收敛速度通常更快,且较少发生环路问题。
总的来说,链路状态路由协议(如OSPF)通常被认为更适合大型、复杂的网络,而距离矢量路由协议(如RIP)则更适合小型、简单的网络。

3.OSPF的中文全称是什么,其基于的协议类型和协议号分别是多少?

开放式最短路径优先
它基于内部网关路由协议类型。
在IP协议栈中,OSPF使用的协议号是89

4.什么是Router-id,如何产生?

路由器标识符,用于在一个OSPF域中唯一地标识一台路由器。
可以通过手工配置的方式,或使用系统自动配置的方式。
notion image

5.OSPF协议的五种协议报文分别是什么,大致作用是什么?

报文类型
大致作用
Hello
周期性发送,用来发现和维护OSPF邻居关系。
Database Description
描述本地LSDB(链路状态数据库)的摘要信息,用于两台设备进行数据库同步。
Link State Request
用于向对方请求所需要的LSA。设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。
Link State Update
用于向对方发送其所需要的LSA。
Link State ACK
用于对收到的LSA进行确认。
这些报文各自承担着建立和维护OSPF网络结构的重要任务。
notion image

6.OSPF协议中的三张表是什么?

OSPF邻居表、LSDB表和OSPF路由表
notion image
notion image
notion image

7.OSPF接口的Cost值如何计算,一条OSPF路由的cost值如何计算?

Cost值的计算方法:
notion image
参考带宽的默认值为100 Mbit/s。
一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加。
notion image

8.OSPF协议的状态机有几种,分别是什么?

七种,分别是Down、Init、Two-Way、ExStart、Exchange、Loading、Full
  1. Down:初始状态,此时OSPF没有与任何邻居建立连接。
  1. Init:收到邻居的Hello报文,但邻居未确认双方的通信。
  1. Two-way:双向通信建立,双方可以相互通信,并确认邻居关系。
  1. Exstart:协商主从关系(Master/Slave)以准备交换数据库描述(DBD)报文。
  1. Exchange:交换LSA的摘要信息,以同步链路状态数据库(LSDB)。
  1. Loading:请求缺少的LSA信息,进一步同步LSDB。
  1. Full:OSPF邻居关系达到最高状态,路由器的LSDB完全同步。
其中,Attempt状态仅适用于NBMA网络类型。

详细解释:

1. Down(初始状态)

  • 描述:在此状态下,路由器没有收到任何邻居的Hello报文,也没有与任何邻居建立连接。
  • 作用:等待接收来自邻居的Hello报文以开始邻居发现过程。

2. Init(初始化状态)

  • 描述:路由器已经收到来自某个邻居的Hello报文,但尚未在该邻居的Hello报文中看到自己的Router ID。
  • 作用:表明路由器已开始与邻居通信,但还未完全建立双向通信。

3. Two-Way(双向通信状态)

  • 描述:路由器在收到邻居的Hello报文中看到了自己的Router ID,表明双方已经建立了双向通信。
  • 作用
    • 这是OSPF的稳定状态之一。
    • 在广播、多播网络中(如以太网),此时会选举DR(Designated Router,指定路由器)和BDR(Backup Designated Router,备份指定路由器)。

4. ExStart(交换开始状态)

  • 描述:路由器开始与邻居交换数据库描述报文(DBD)。此状态用于协商主从关系,以决定谁先发送DBD报文。
  • 作用:确定主从关系(Master/Slave),以便开始正式的数据库同步。

5. Exchange(交换状态)

  • 描述:在此状态下,路由器与邻居开始交换完整的DBD报文,包含LSA的摘要信息。
  • 作用:双方交换DBD报文,并标记需要进一步请求详细信息的LSA。

6. Loading(加载状态)

  • 描述:路由器根据收到的DBD报文中的摘要信息,发送链路状态请求报文(LSR),请求尚未掌握的或较新的LSA,并等待对方发送链路状态更新报文(LSU)。
  • 作用:完成LSA的获取和LSDB的同步,确保路由器获得最新的链路状态信息。

7. Full(完全邻居状态)

  • 描述:这是OSPF邻居关系的最终状态,表明两台路由器的LSDB已经完全同步。
  • 作用:路由器之间达成完全同步,进入稳定状态,可以正常交换路由信息。

总结

OSPF协议的状态机从Down状态开始,逐步通过Init、Two-Way、ExStart、Exchange、Loading,最终进入Full状态。每个状态都对应着邻居关系建立过程中不同的阶段,从最初的发现邻居到最终的数据库同步完成。Full状态是邻居关系的最终状态,表示路由器之间的链路状态数据库已完全同步。

9.请简单描述OSPF协议临接关系建立的大致过程及交互的报文

1. 建立双向邻居关系
💡
过程
  • Down到Init状态的转变OSPF 路由器启动后,路由器最初处于 Down 状态。当路由器接收到邻居的 Hello 报文,但报文中没有包含自己的 Router ID 时,状态从 Down 变为 Init,并且在邻居表中记录邻居的状态为init。此时,路由器开始与邻居通信,但由于报文中没有自己的信息,双向通信尚未建立。
  • 建立邻居关系当路由器接收到包含自己 Router ID 的 Hello 报文时,表明邻居已经识别出它。这时,路由器的状态从 Init 转变为 Two-Way,并且在邻居表中记录邻居的状态为 Two-Way。表示双方都认可了彼此的存在,建立了双向邻居关系。
💡
状态变化:
  • 从 Down 状态进入 Init 状态当路由器接收到邻居的 Hello 报文且报文中没有自己的信息时发生。
  • 从 Init 状态进入 Two-Way 状态当路由器在接收到的 Hello 报文中看到自己的 Router ID 时发生。
2. 协商主/从(Master/Slave)关系
💡
过程
  • 进入ExStart状态在建立了双向邻居关系(Two-Way状态)后,路由器如果决定与对方建立更深入的邻接关系,它们会进入ExStart状态。在此阶段,路由器通过交换初步的DD(Database Description)报文来协商主从关系。路由器会协商决定哪一方是主设备(Master),通常是Router ID较大的路由器为Master。
  • ExStart到Exchange状态的转变主从关系一旦确定,路由器正式开始交换DD报文的内容,进入Exchange状态。在Exchange状态下,路由器开始详细描述各自的LSDB摘要信息。
💡
状态变化
  • 路由器从Two-Way状态进入ExStart状态:在开始协商主从关系时发生。
  • 路由器从ExStart状态进入Exchange状态:在主从关系确定后,并且开始正式交换DD报文时发生。
3. 相互描述各自的LSDB(摘要信息)
💡
过程
  • 交换LSDB摘要信息Exchange状态中,路由器交换包含LSDB摘要信息的DD报文,这些信息用于让双方了解对方网络中已有的LSA。
  • 进入Loading状态在DD报文交换完成后,如果路由器发现自己缺少某些LSA,它将发送LSR(Link State Request)报文请求这些LSA,此时路由器进入Loading状态。收到请求的邻居路由器会通过LSU(Link State Update)报文发送所缺的LSA。
💡
状态变化
  • 路由器从Exchange状态进入Loading状态:在完成DD报文的交换,并且某一方需要请求LSA时发生。
4. 更新LSA,同步双方LSDB
💡
过程
  • LSA更新和确认在Loading状态中,路由器根据接收到的LSU报文更新自己的LSDB,并通过LSAck报文确认接收的LSA。通过这个过程,双方的LSDB逐步达到一致。
  • 完成同步当所有LSA都已成功交换并确认后,路由器进入Full状态,表示邻接关系的建立已完成,LSDB完全同步。
💡
状态变化
  • 路由器从Loading状态进入Full状态:在所有LSA同步完成并确认后发生。

10.OSPF协议支持的网络类型有哪些,哪些需要选举DR和BDR

  1. Broadcast Multiple Access(广播式多路访问, BMA)
      • 这种类型的网络允许多台设备接入,并且支持广播。典型的例子是Ethernet(以太网)。
      • 需要选举DR和BDR,因为多个路由器共享一个广播域。
  1. Non-Broadcast Multiple Access (非广播式多路访问, NBMA)
      • 这种网络类型允许多台设备接入,但不支持广播。典型的例子是Frame Relay(帧中继)。
      • 需要选举DR和BDR,因为它也是一种多路访问网络,尽管不支持广播。
  1. Point-to-Point (点对点, P2P)
      • 在这种网络类型下,只有两台设备能够直接相连。典型的例子是PPP链路。
      • 不需要选举DR和BDR,因为只有两个路由器互联,没有其他设备共享链路。
  1. Point-to-Multipoint (点到多点, P2MP)
      • 这种网络类型相当于将多条点对点链路的一端进行捆绑。该类型必须手动配置,一般用于非全连通的NBMA网络。
      • 不需要选举DR和BDR,因为每个点对点链接都是独立的 。
notion image
notion image

11.DR和BDR如何选举?

  1. 优先级比较首先比较路由器接口的OSPF优先级(使用ospf dr-priority命令设置)。优先级越高,路由器越有可能被选为DR。如果接口的优先级为0,则该接口不参与DR/BDR的选举。
  1. Router ID比较如果优先级相同,则比较路由器的Router ID。Router ID较大的路由器被选为DR,次大的被选为BDR。
  1. 重新选举的条件当现有的DR离线时,BDR会自动成为新的DR,然后在剩余的路由器中选举新的BDR。
该选举过程主要在多路访问(MA)网络类型中进行,如广播型多路访问网络(BMA)和非广播型多路访问网络(NBMA)。

12.为什么要划分区域?

  1. 减小LSA泛洪范围通过将一个OSPF域划分为多个区域,OSPF可以限制链路状态广告(LSA)的传播范围,从而减少网络带宽的浪费和设备资源的消耗。这意味着拓扑变化时,LSA泛洪只会影响该区域内的路由器,不会波及整个网络。
  1. 减少路由计算复杂度每个区域内的LSDB(链路状态数据库)同步在该区域内进行,避免了全网范围内的LSDB同步和计算,从而降低了路由计算的复杂度。
  1. 路由汇总与表规模缩减在区域边界路由器(ABR)处可以进行路由汇总,这减少了路由表的规模,有助于优化网络性能和设备资源利用。
  1. 提高网络扩展性通过区域划分,OSPF支持更大规模的网络部署,这对于大型企业或服务提供商的网络尤为重要。

13.OSPF路由器的角色有哪几种?

  1. 区域内路由器(Internal Router,IR)这是位于同一OSPF区域内部的路由器。所有接口都在同一个区域中,负责维护区域内的链路状态数据库(LSDB)。
  1. 区域边界路由器(Area Border Router,ABR)此类路由器连接两个或多个OSPF区域,通常包括连接骨干区域(Area 0)和其他区域的路由器。ABR会维护多个LSDB,并在区域之间汇总和传播路由信息。
  1. 骨干路由器(Backbone Router,BR)这类路由器至少有一个接口连接到骨干区域(Area 0),负责在骨干区域中转发路由信息。
  1. 自治系统边界路由器(Autonomous System Boundary Router,ASBR)此类路由器位于OSPF网络的边界,负责与外部自治系统(AS)交换路由信息,并将外部路由引入OSPF域内。
 
 
 

补充:

多区域的设计使得OSPF能够支持更大规模的网络

1. 降低路由表规模:
  • 在单一区域的 OSPF 网络中,所有路由器都必须维护整个网络的路由信息,这会导致路由表变得非常庞大,尤其是在大型网络中。
  • 多区域设计将网络划分为多个区域,每个区域只维护其内部的路由信息,而区域之间只交换必要的路由信息。
  • 这样,每个路由器只需要维护其所在区域的路由信息,以及连接到其他区域的路由信息,从而显著降低了路由表的规模。
2. 减少路由更新的开销:
  • 在单一区域的 OSPF 网络中,任何路由更新都会广播到整个网络,这会导致大量的网络流量。
  • 多区域设计将路由更新限制在区域内部,只有区域边界路由器才会将路由更新传播到其他区域。
  • 这样,路由更新的开销大大降低,提高了网络性能。
3. 提高网络安全性:
  • 多区域设计可以将网络划分为不同的安全区域,例如,将敏感的内部网络与外部网络隔离开来。
  • 这可以提高网络安全性,防止攻击者从一个区域传播到另一个区域。
4. 提高网络可扩展性:
  • 多区域设计可以方便地扩展网络,而不会影响其他区域的运行。
  • 当网络规模扩大时,可以添加新的区域,而不会影响现有区域的路由信息。
总结:
多区域设计通过将网络划分为多个区域,降低了路由表的规模,减少了路由更新的开销,提高了网络安全性,并提高了网络可扩展性,从而使得 OSPF 能够支持更大规模的网络。
举个例子:
假设一个大型企业网络,包含多个分支机构和数据中心。使用多区域设计,可以将每个分支机构和数据中心划分为一个区域,区域之间通过区域边界路由器连接。这样,每个区域只维护其内部的路由信息,而区域之间只交换必要的路由信息,从而降低了路由表的规模,减少了路由更新的开销,并提高了网络安全性。

LSA的基本信息

1. Type (类型):
  • LSA 的类型,用于标识 LSA 的内容。
  • 常见的 LSA 类型包括:
    • Router LSA (类型 1): 用于描述路由器自身和连接到它的网络。
    • Network LSA (类型 2): 用于描述广播网络。
    • Summary LSA (类型 3、4、5): 用于汇总区域内的路由信息,用于区域边界路由器之间的路由。
    • External LSA (类型 5): 用于描述连接到其他区域的路由信息。
    • NSSA LSA (类型 7): 用于描述 NSSA 区域(Not So Stubby Area,非完全存根区域)的路由信息。
    • Link LSA (类型 10): 用于描述点到点链路。
2. LinkState ID (链路状态标识符):
  • LSA 的唯一标识符,用于区分不同的 LSA。
  • 对于 Router LSA,LinkState ID 通常是路由器的 Router ID。
  • 对于 Network LSA,LinkState ID 通常是网络的网络号。
3. AdvRouter (通告路由器):
  • 发送 LSA 的路由器的 Router ID。
4. Age (年龄):
  • LSA 的年龄,以秒为单位。
  • 当 LSA 被发送到网络时,Age 字段被设置为 0。
  • 每隔一段时间,路由器会更新 LSA 的 Age 字段,直到 Age 字段达到最大值(默认 3600 秒)。
  • 当 Age 字段达到最大值时,LSA 将被删除。
5. Len (长度):
  • LSA 的长度,以字节为单位。
6. Sequence (序列号):
  • LSA 的序列号,用于跟踪 LSA 的更新。
  • 当 LSA 被更新时,序列号会增加。
7. Metric (度量值):
  • LSA 的度量值,用于计算路由路径的成本。
  • OSPF 使用成本来确定最短路径。
  • 常见的度量值包括:
    • 带宽: 较高的带宽对应较低的成本。
    • 延迟: 较低的延迟对应较低的成本。
    • 负载: 较低的负载对应较低的成本。

Router-ID用于在一个OSPF域中唯一地标识一台路由器

 
1. 手动配置:
  • 您可以在路由器的配置中手动指定 Router-ID。
  • 这通常是最佳实践,因为它可以让您完全控制 Router-ID 的值,确保其唯一性,避免与其他路由器冲突。
  • 手动配置 Router-ID 的方法通常是使用 router ospf <process-id> 命令,然后使用 router-id <router-id> 命令指定 Router-ID。
2. 系统自动配置:
  • 如果未手动配置 Router-ID,OSPF 路由器会尝试自动配置 Router-ID。
  • 自动配置的 Router-ID 通常基于路由器的接口 IP 地址,具体算法取决于路由器厂商。
  • 例如,一些路由器会选择最高优先级的接口 IP 地址作为 Router-ID;而另一些路由器则会选择第一个配置的接口 IP 地址作为 Router-ID。
两种方式的优缺点:
  • 手动配置:
    • 优点: 可以确保 Router-ID 的唯一性,避免冲突,并可以根据需要选择合适的 Router-ID。
    • 缺点: 需要手动配置,可能需要额外的维护工作。
  • 系统自动配置:
    • 优点: 方便快捷,无需手动配置。
    • 缺点: 可能导致 Router-ID 冲突,因为自动配置的 Router-ID 可能与其他路由器重复。

OSPF路由表和路由器路由表的区别:

1. OSPF 路由表:
  • 作用: OSPF 路由表存储了 OSPF 协议根据链路状态数据库计算出的路由信息。它包含了所有已知网络的路由信息,包括到达这些网络的最佳路径、成本和下一跳路由器等信息。
  • 内容: OSPF 路由表包含了 OSPF 协议计算出的路由信息,它主要用于 OSPF 协议内部的路由计算和决策。
  • 范围: OSPF 路由表是 OSPF 协议内部的路由表,它只包含 OSPF 协议所了解的网络信息。
2. 路由器路由表:
  • 作用: 路由器路由表存储了路由器用于转发数据包的路由信息。它包含了所有已知网络的路由信息,包括到达这些网络的下一跳路由器等信息。
  • 内容: 路由器路由表包含了所有路由协议(包括 OSPF、RIP、BGP 等)计算出的路由信息,以及静态路由信息。
  • 范围: 路由器路由表是路由器用于转发数据包的路由表,它包含了所有路由协议所了解的网络信息。
区别总结:
特征
OSPF 路由表
路由器路由表
作用
用于 OSPF 协议内部的路由计算和决策
用于路由器转发数据包
内容
OSPF 协议计算出的路由信息
所有路由协议计算出的路由信息,以及静态路由信息
范围
OSPF 协议所了解的网络信息
所有路由协议所了解的网络信息
简单来说:
  • OSPF 路由表是 OSPF 协议内部使用的路由表,它只包含 OSPF 协议所了解的网络信息。
  • 路由器路由表是路由器用于转发数据包的路由表,它包含了所有路由协议所了解的网络信息。

OSPF路由表项:

1. Destination (目的网络):
  • 表示路由表条目中所描述的目的地网络。
  • 例如,192.168.1.0/24 表示到达 192.168.1.0 网络的路由信息。
2. Cost (成本):
  • 表示到达目的网络的成本,用于 OSPF 协议计算最短路径。
  • 成本通常基于链路的带宽、延迟、负载等因素。
3. Type (类型):
  • 表示路由表条目中所描述的路由类型的标识符。
  • 常见的路由类型包括:
    • Intra-area (区域内): 表示到达同一区域内网络的路由。
    • Inter-area (区域间): 表示到达不同区域内网络的路由。
    • External (外部): 表示到达其他 AS(自治系统)的路由。
4. NextHop (下一跳路由器):
  • 表示到达目的网络的下一跳路由器的 IP 地址。
  • 路由器会将数据包转发到下一跳路由器,以最终到达目的地网络。
5. AdvRouter (通告路由器):
  • 表示通告该路由信息的路由器的 Router ID。
  • 当一个路由器学习到一个新的路由信息时,它会将该路由信息通告给其他路由器。
6. Area (区域):
  • 表示该路由信息所属的 OSPF 区域。
  • OSPF 协议将网络划分为不同的区域,以简化路由计算和管理。

邻居关系和邻接关系

1. 邻居关系 (Neighbor Relationship):
  • 定义: 邻居关系是指两个 OSPF 路由器之间建立的一种连接状态,它们能够互相交换 OSPF 数据包,例如 Hello 包和 LSA(链路状态通告)包。
  • 建立条件: 两个 OSPF 路由器必须满足以下条件才能建立邻居关系:
    • 它们必须在同一个 OSPF 区域内。
    • 它们必须使用相同的 OSPF 协议版本。
    • 它们必须在相同的网络段上,并且能够互相发送和接收 OSPF 数据包。
  • 作用: 邻居关系是 OSPF 协议建立邻接关系的基础。通过邻居关系,两个路由器可以互相交换链路状态信息,并最终建立邻接关系。
2. 邻接关系 (Adjacency Relationship):
  • 定义: 邻接关系是指两个 OSPF 路由器之间建立的一种更紧密的连接状态,它们能够互相交换所有 OSPF 数据包,包括 LSA 包和数据库描述包。
  • 建立条件: 两个 OSPF 路由器必须满足以下条件才能建立邻接关系:
    • 它们必须已经建立邻居关系。
    • 它们必须具有相同的邻居 ID。
    • 它们必须具有相同的链路状态数据库。
  • 作用: 邻接关系是 OSPF 协议正常运行的关键。通过邻接关系,两个路由器可以互相交换所有 OSPF 数据包,并最终构建完整的链路状态数据库,从而计算出最佳路由路径。
区别总结:
特征
邻居关系
邻接关系
连接状态
能够互相交换 OSPF 数据包
能够互相交换所有 OSPF 数据包
建立条件
在同一个 OSPF 区域内,使用相同的 OSPF 协议版本,能够互相发送和接收 OSPF 数据包
已经建立邻居关系,具有相同的邻居 ID,具有相同的链路状态数据库
作用
建立邻接关系的基础
OSPF 协议正常运行的关键
简单来说:
  • 邻居关系是 OSPF 路由器之间的一种基本连接状态,它们能够互相交换一些 OSPF 数据包。
  • 邻接关系是 OSPF 路由器之间的一种更紧密的连接状态,它们能够互相交换所有 OSPF 数据包,并最终构建完整的链路状态数据库。

BR和ABR的关系

  • ABR 是连接不同 OSPF 区域的路由器,负责在区域之间传递路由信息。
  • BR 是连接到骨干区域 (Area 0) 的 ABR,它负责将来自其他区域的链路状态信息传递到骨干区域,并确保骨干区域的完整性。
所以,BR 是一个连接到骨干区域的特殊 ABR。它承担了 ABR 的所有功能,并额外负责维护骨干区域的完整性。

OSPF协议适用场景

网络规模
网络中的路由器在10台以上
中等或者大规模的网络
网络拓扑结构
网络的拓扑结构为网状,并且任意两台路由器之间都有互通的需求
其他特殊需求
要求路由变化时能够快速收敛,要求路由协议自身的网络开销尽量降低
路由器的要求
性能很低的路由器不建议使用OSPF协议
 
 
 
 
DR、BDR是通过hello报文选举的。
上一篇
1 TCP/IP协议详解
下一篇
3 OSPF路由计算
Loading...
文章列表
👉文档
★终端安全防护
★VPN技术
★上网行为管理
★下一代防火墙
下一代防火墙配置
★操作系统基础
操作系统基础实验
★数通技术高级
数通高级实验
数通高级命令操作
★数通技术基础
数通基础实验
数通基础命令操作