🧑💻2 OSPF基础
type
status
date
slug
summary
tags
category
icon
password
1.动态路由协议按照工作区域如何分类,按照工作机制和算法如何分类。
2.基于距离矢量的路由协议基于链路状态的路由协议有什么区别?
1. 信息通告方式:
- 距离矢量路由协议:
- 路由器周期性地向其邻居通告自己的整个路由表。每个路由器通过这些通告来更新自己的路由表,知道到达每个目的地的下一跳和距离。
- 这种方式的核心思想是“告诉邻居我能到达哪些网络,以及到达这些网络的距离有多远”。
- 链路状态路由协议:
- 路由器不通告整个路由表,而是通告链路状态信息(例如每个接口的开销、连接对象等)。这些信息被称为链路状态通告(LSA)。
- 通过泛洪的方式将这些LSA传递给网络中的所有路由器,使得每台路由器都可以构建完整的网络拓扑图。
2. 网络拓扑感知:
- 距离矢量路由协议:
- 路由器没有全局的网络拓扑图,只知道到达某个目的地的下一跳和距离,并不知道整个网络的具体布局。
- 链路状态路由协议:
- 每台路由器都通过收集LSA,构建出整个网络的拓扑图,基于这个全局拓扑图来计算出最短路径。
3. 路径计算方式:
- 距离矢量路由协议:
- 使用简单的算法,如Bellman-Ford算法,来根据邻居的通告更新路由表。每次更新仅基于与直接相邻路由器的信息。
- 链路状态路由协议:
- 使用Dijkstra的最短路径优先(SPF)算法来计算从自己出发到达每个目的地的最短路径。每次计算都是基于全局的网络拓扑图。
4. 收敛速度与稳定性:
- 距离矢量路由协议:
- 由于信息传播的方式较为简单,可能会导致收敛速度较慢,且容易产生路由环路问题(如计数到无穷大问题)。
- 链路状态路由协议:
- 由于每个路由器都有全局视图,收敛速度通常更快,且较少发生环路问题。
总的来说,链路状态路由协议(如OSPF)通常被认为更适合大型、复杂的网络,而距离矢量路由协议(如RIP)则更适合小型、简单的网络。
3.OSPF的中文全称是什么,其基于的协议类型和协议号分别是多少?
开放式最短路径优先
它基于内部网关路由协议类型。
在IP协议栈中,OSPF使用的协议号是89。
4.什么是Router-id,如何产生?
路由器标识符,用于在一个OSPF域中唯一地标识一台路由器。
可以通过手工配置的方式,或使用系统自动配置的方式。
5.OSPF协议的五种协议报文分别是什么,大致作用是什么?
报文类型 | 大致作用 |
Hello | 周期性发送,用来发现和维护OSPF邻居关系。 |
Database Description | 描述本地LSDB(链路状态数据库)的摘要信息,用于两台设备进行数据库同步。 |
Link State Request | 用于向对方请求所需要的LSA。设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。 |
Link State Update | 用于向对方发送其所需要的LSA。 |
Link State ACK | 用于对收到的LSA进行确认。 |
这些报文各自承担着建立和维护OSPF网络结构的重要任务。
6.OSPF协议中的三张表是什么?
OSPF邻居表、LSDB表和OSPF路由表
7.OSPF接口的Cost值如何计算,一条OSPF路由的cost值如何计算?
Cost值的计算方法:参考带宽的默认值为100 Mbit/s。
一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加。
8.OSPF协议的状态机有几种,分别是什么?
七种,分别是Down、Init、Two-Way、ExStart、Exchange、Loading、Full
- Down:初始状态,此时OSPF没有与任何邻居建立连接。
- Init:收到邻居的Hello报文,但邻居未确认双方的通信。
- Two-way:双向通信建立,双方可以相互通信,并确认邻居关系。
- Exstart:协商主从关系(Master/Slave)以准备交换数据库描述(DBD)报文。
- Exchange:交换LSA的摘要信息,以同步链路状态数据库(LSDB)。
- Loading:请求缺少的LSA信息,进一步同步LSDB。
- 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
- Broadcast Multiple Access(广播式多路访问, BMA)
- 这种类型的网络允许多台设备接入,并且支持广播。典型的例子是Ethernet(以太网)。
- 需要选举DR和BDR,因为多个路由器共享一个广播域。
- Non-Broadcast Multiple Access (非广播式多路访问, NBMA)
- 这种网络类型允许多台设备接入,但不支持广播。典型的例子是Frame Relay(帧中继)。
- 需要选举DR和BDR,因为它也是一种多路访问网络,尽管不支持广播。
- Point-to-Point (点对点, P2P)
- 在这种网络类型下,只有两台设备能够直接相连。典型的例子是PPP链路。
- 不需要选举DR和BDR,因为只有两个路由器互联,没有其他设备共享链路。
- Point-to-Multipoint (点到多点, P2MP)
- 这种网络类型相当于将多条点对点链路的一端进行捆绑。该类型必须手动配置,一般用于非全连通的NBMA网络。
- 不需要选举DR和BDR,因为每个点对点链接都是独立的 。
11.DR和BDR如何选举?
- 优先级比较:首先比较路由器接口的OSPF优先级(使用
ospf dr-priority
命令设置)。优先级越高,路由器越有可能被选为DR。如果接口的优先级为0,则该接口不参与DR/BDR的选举。
- Router ID比较:如果优先级相同,则比较路由器的Router ID。Router ID较大的路由器被选为DR,次大的被选为BDR。
- 重新选举的条件:当现有的DR离线时,BDR会自动成为新的DR,然后在剩余的路由器中选举新的BDR。
该选举过程主要在多路访问(MA)网络类型中进行,如广播型多路访问网络(BMA)和非广播型多路访问网络(NBMA)。
12.为什么要划分区域?
- 减小LSA泛洪范围:通过将一个OSPF域划分为多个区域,OSPF可以限制链路状态广告(LSA)的传播范围,从而减少网络带宽的浪费和设备资源的消耗。这意味着拓扑变化时,LSA泛洪只会影响该区域内的路由器,不会波及整个网络。
- 减少路由计算复杂度:每个区域内的LSDB(链路状态数据库)同步在该区域内进行,避免了全网范围内的LSDB同步和计算,从而降低了路由计算的复杂度。
- 路由汇总与表规模缩减:在区域边界路由器(ABR)处可以进行路由汇总,这减少了路由表的规模,有助于优化网络性能和设备资源利用。
- 提高网络扩展性:通过区域划分,OSPF支持更大规模的网络部署,这对于大型企业或服务提供商的网络尤为重要。
13.OSPF路由器的角色有哪几种?
- 区域内路由器(Internal Router,IR):这是位于同一OSPF区域内部的路由器。所有接口都在同一个区域中,负责维护区域内的链路状态数据库(LSDB)。
- 区域边界路由器(Area Border Router,ABR):此类路由器连接两个或多个OSPF区域,通常包括连接骨干区域(Area 0)和其他区域的路由器。ABR会维护多个LSDB,并在区域之间汇总和传播路由信息。
- 骨干路由器(Backbone Router,BR):这类路由器至少有一个接口连接到骨干区域(Area 0),负责在骨干区域中转发路由信息。
- 自治系统边界路由器(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...