路由协议对比
距离矢量和链路状态工作过程对比
距离矢量路由协议工作过程概要

链路状态路由协议工作过程概要
| 步骤 | 说明 | 图示 |
|---|---|---|
| LSAs泛洪(LSA称为链路状态通告) | 每一台路由器将其直连网络以及链路状态通告给相邻路由器,其中链路状态包含两个部分: 链路:路由器接口带宽 状态:描述接口以及其邻居路由器之间的关系 |
![]() |
| 构建LSDB(链路状态数据库) | 每台路由器将搜集到的LSAs放入自己的LSDB(链路状态数据库)存储起来。有了LSDB路由器相当于掌握了全网的拓扑。——类似于把全国地图下载到本地手机 | ![]() |
| SPF计算 | 根据LSDB数据库,用SPF算法计算最佳路径 | ![]() |
| 维护路由表 | 计算出最佳路径之后,将该计算结果放入路由表中 | ![]() |
距离矢量和链路状态对比
| 特性 | 距离矢量路由 (如RIP) | 链路状态路由 (如OSPF) |
|---|---|---|
| 基本原理 | 每个路由器询问相邻路由器关于到达网络中其他节点的最佳路径,然后基于这些信息构建自己的路由表。类似于问路。 | 每个路由器收集并传播其链接的状态信息到全网,所有路由器基于完整的网络拓扑构造出一个统一的网络视图,然后独立计算最优路径。 |
| 路由表内容 | 包含到各个目标的下一跳及代价(如跳数),但不包含全网结构信息。 | 包含整个网络的链路状态信息,每个路由器据此独立计算出到所有目的地的最短路径树。 |
| 路由决策 | 基于邻居提供的信息做出决策,不一定是最优路径。 | 基于完整的链路状态数据库,采用最短路径优先算法(如Dijkstra算法)计算出全局最优路径。 |
| 收敛速度 | 较慢,因为依赖周期性更新和可能的计数到无穷问题。 | 较快,因为能快速传播拓扑变化,并且每个路由器独立计算路由,减少了收敛时间。 |
| 防环机制 | 需要特殊机制如水平分割、毒性逆转、保持定时器等防止路由环路。 | 自然避免环路,因为每个路由器都有网络的完整视图,在计算路径时能直接排除形成环路的可能性。 |
| 报文量与带宽 | 更新报文量大,尤其是网络规模大时,可能占用较多带宽。 | 初始配置时信息交换量大,但后续仅在拓扑变化时发送增量更新,较为节省带宽。 |
| 复杂度与资源消耗 | 实现相对简单,对硬件资源要求较低。 | 实现复杂,计算和存储需求较高,对硬件资源要求相对较高。 |
| 代表性协议 | RIP (Routing Information Protocol), IGRP (Interior Gateway Routing Protocol) 等。 | OSPF (Open Shortest Path First), IS-IS (Intermediate System to Intermediate System) 等。 |
内部网关协议(IGP)和外部网关协议(EGP)对比
| 特性 | IGP(内部网关协议) | EGP(外部网关协议) |
|---|---|---|
| 定义 | 在单一自治系统(AS)内部工作的路由协议,负责决定数据包在AS内的传输路径。 | 运行于不同自治系统之间的路由协议,负责在AS之间传递可达性信息,确定跨AS的数据包传输路径。 |
| 典型协议 | - RIP (Routing Information Protocol) - OSPF (Open Shortest Path First) - IS-IS (Intermediate System to Intermediate System) - EIGRP (Enhanced Interior Gateway Routing Protocol) |
- BGP (Border Gateway Protocol),几乎是唯一广泛使用的EGP协议。 |
| 主要关注点 | - 优化内部网络路径 - 快速收敛 - 负载均衡 - 网络稳定性与效率 |
- 支持大规模网络互联 - 策略控制(如路径选择、属性传递) - 可靠性与稳定性 - 安全性 |
| 运作机制 | - IGP可采用距离矢量或链路状态算法 - 基于全网或局部视图计算最优路径 |
- BGP基于TCP,提供可靠传输,使用路径向量路由选择算法,考虑AS路径等属性来做决策 |
| 路由更新 | - 周期性或触发更新 - 可能包括整个路由表或增量更新 |
- 触发更新为主,减少不必要的网络流量 - 传播网络可达性变更而非完整路由表 |
| 防环策略 | - 水平分割、毒性逆转、保持计时器等 | - AS路径属性防止环路,确保路由信息不会返回到起源AS |
| 应用场景 | - 企业内部网络 - 校园网 - 数据中心内部互联 |
- Internet服务提供商(ISP)之间的互联 - 大型企业跨地域网络互联 - Content Delivery Networks (CDNs) |
RIP原理
RIP简介
使用距离矢量路由协议的路由器并不了解全网的拓扑。该路由器只知道距离和矢量
| 术语 | 说明 | 解释 |
|---|---|---|
| 距离 | 自身与目的网络之间的距离 | 即间隔几跳或几个路由器,即为距离 |
| 矢量 | 应该往哪个方向或哪个接口转发数据包 | 方向即为矢量 |
初始状态下,每台路由器只知道自己直连的网络;
各路由器周期性地更新(广播)整张路由表:每台路由器定期的交互路由信息

RIP基本特点
- RIP(Routing Information Protocols,路由信息协议)
- 应用较早、使用较为普遍的内部网关协议(现在基本不用了)
- 适用于小型网络,是典型的距离矢量路由协议
- 常常使用环回口作为路由器RouterID,因为环回口一旦配置,一直是up状态不会挂,便于使用
- RIP基于UDP,端口520
- 华为设备上路由优先级为100
RIPv2 vs RIPv1
现在大多使用RIPv2,相比与RIPv1,v2具有以下改进:
| 对比项 | RIPv1 | RIPv2 |
|---|---|---|
| 更新方式 | 广播更新 | 组播更新 |
| 认证 | 不支持认证 | 支持认证 |
| 网络地址支持 | 只支持主类网络,不支持VLSM变长子网掩码、CIDR网络聚合 | 支持VLSM变长子网掩码、CIDR网络聚合 |
RIP工作过程
| 步骤 | 说明 | 解释 |
|---|---|---|
| 最初的网络发现 | 直连路由写入路由表,直连网络的路由条目度量值为0 | ![]() |
| 初次路由信息交换 | 广播交换路由表 | - A发现B直连了2个网段,其中一个10.1.2.0/24网段A自己已经直连,优先级更高,不做更新 - A发现B直连了2个网段,另一个10.1.3.0/24网段A没有,因此更新至自身的路由表里面,度量值+1 - B、C路由器类似 ![]() |
| 再次路由信息交换 | 直到各个路由器到达域内所有网络的路由条目都有了,完成收敛 | - 通过上述初次路由信息交换,我们拓扑所示的4个网段的信息,路由器B都已经学习到了 - B再次广播路由时,A、C就能够将路由信息学习完整,此时各个路由器完成收敛 ![]() |
| 拓扑发生变化后RIP工作过程 | - 网络拓扑变化首先影响直连路由器 - 直连路由器更新本地路由表 - 直连路由器发送更新后的路由信息,其他路由器逐跳更新各自的本地路由表 |
![]() |
RIP使用的度量值/开销
RIP以**跳数(Hops)**作为度量值,虽然简单,但事实上不科学,如下图所示

RIP三个计时器
| 计时器名称 | 默认时间 | 功能描述 |
|---|---|---|
| 更新计时器 (Update Timer) | 30秒 | 决定路由器发送路由更新信息的频率。路由器每隔此时间会广播自己的整个路由表给邻居路由器,保持网络中的路由信息最新。 |
| 无效计时器 (Invalid Timer) / 老化计时器 (Age Timer) | 180秒 | 如果一条路由信息在经过这个时间段内没有被更新,则标记为无效,但不立即从路由表中删除,进入 holddown 状态。 |
| 刷新计时器 (Flush Timer) / 垃圾回收计时器 (Garbage Timer) | 120秒 | 在路由被标记为无效之后,如果经过此时间段仍未收到更新,则将该无效路由从路由表中彻底删除。 |
RIP环路与防环机制
RIP环路的产生
如上节所述内容,经过路由信息的交换,目前各个路由器的路由表已达到路由收敛状态
某一刻,路由器C的直连网络发生故障,10.1.4.0/24网段无法到达

这时直连路由器C已经更新了自己的路由表,将到达10.1.4.0/24网络的度量值设置为16(这是RIP定义的度量值的最大值,意为无法到达);A、B暂未更新路由表
假设这时,B的路由更新广播请求先到达了C,C就需要按照B的路由表来更新自身路由表,C错误地将到达10.1.4.0/24网络的路由更新,度量值置为2,表示可以通过B到达10.1.4.0/24网络,但这本身是一条错误的路由信息(这时C的度量值为16的故障路由条目已经被新的更佳的路由条目掩盖掉了)

在C更新了B发来的路由表之后,C才开始广播自己的路由表,陆续地,这条错误的路由信息更新至其他路由器

这时关于10.1.4.0/24的路由条目形成了环路,直到3台路由器的路由表的该条目都更新增加至最大值MAX

距离矢量路由协议的防环机制
- 定义最大度量以防止计数至无穷大:定义最大跳数(最多经过15个路由器,16跳为不可达),当环路中路由表的度量值都更新到16时,该条路由条目失效,环路解除

- 水平分割:路由器从一个接口收到的路由更新,不会从同一个接口再发出去,即从哪里学习到的不会从该接口发送回去,如上面例子中从C学习到的路由更新,不会再发回给C(笔者注:可以理解为同样的路由信息只会单向传递学习)

- 路由中毒:定义最大跳数,同时一旦出现故障,直连路由器立即将度量值更新为16,并且不必等待路由更新周期时间,立即广播发送路由更新

- 毒性逆转:(跟水平分割有异曲同工之妙),当路由器从一个接口收到的路由更新,会以度量值16从该接收接口发送出去(笔者注:效果同水平分割一样)

抑制计时器:略
触发更新:略
RIP配置实验
配置华为路由器使用RIP协议的过程大致可以分为以下几个步骤:
登录路由器管理界面:
- 使用终端或网络管理软件,通过telnet、SSH或者直接的console接口连接到华为路由器。
- 输入用户名和密码登录到设备。
进入系统视图:
- 登录成功后,输入命令
system-view或者sys进入系统视图。这一步通常会有提示符变化,比如从<Huawei>变为[Huawei]。
- 登录成功后,输入命令
接口配置:
- 配置路由器的接口IP地址,确保接口所在的网络能够与其它网络通信。例如:
1
2[Huawei]interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0
- 配置路由器的接口IP地址,确保接口所在的网络能够与其它网络通信。例如:
启用RIP协议:
- 在系统视图下,使用命令开启RIP协议并进入RIP配置模式:
1
[Huawei]rip
- 在系统视图下,使用命令开启RIP协议并进入RIP配置模式:
配置RIP版本和参数:
- 选择RIP的版本,通常是RIP-1或RIP-2(RIPng用于IPv6),并进行其他参数配置,例如:
1
2
3[Huawei-rip-1]version 2
[Huawei-rip-1]undo summary // 可选,关闭自动汇总
[Huawei-rip-1]network 192.168.1.0network命令用来声明参与RIP路由更新的直连网络。
- 选择RIP的版本,通常是RIP-1或RIP-2(RIPng用于IPv6),并进行其他参数配置,例如:
保存配置:
- 完成配置后,使用命令
save或commit保存配置,使其在重启后仍然有效。
- 完成配置后,使用命令
验证配置:
- 可以通过查看路由表来验证RIP是否正常工作:
1
[Huawei]display ip routing-table protocol rip
- 此外,也可以通过ping或其他方式检查网络连通性。
- 可以通过查看路由表来验证RIP是否正常工作:
请注意,具体配置细节可能会根据华为设备的具体型号和软件版本有所不同,上述步骤提供了一个通用的配置流程。在实际操作中,应参照设备的官方文档或使用display this、help等命令获取详细的配置指导。
OSPF原理
OSPF简介
Open Shortest Path First,开放式最短路径优先协议
OSPF是一种链路状态路由协议,在RFC2328中描述
Open意味着公有,任何厂商都能支撑OSPF,OSPF是目前业内使用最广泛的IGP
在华为设备上,OSPF协议优先级
- 内部网络域 Internal10,
- 外部网络域 External150;
路由器之间交互的是链路状态信息,而不是直接交互路由
每台OSPF路由器都知晓网络拓扑结构,采用SPF算法计算达到目的地的最短路径
OSPF支持VLSM,支持手工路由汇总
OSPF基本特点
| 特点 | 说明 |
|---|---|
| 适应范围广 | 支持各种规模的网络(超大型网络如运营商使用的是IS-IS协议) |
| 快速收敛 | 在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。 |
| 无自环 | 使用SPF最短路径树算法进行路由计算,不会产生环路 |
| 区域划分 | 允许网络被划分成区域来管理,链路状态数据库仅需和区域内其他路由器保持一致。减小对路由器内存和CPU的消耗。同时区域间传送的路由信息减小,降低网络带宽占用 |
OSPF基本概念
RouterID
OSPF使用RouterID作为路由器的标识,通常使用环回接口作为RouterID

- Router Identifier,路由器标示符,,用于在一个OSPF域中唯一地标识一台路由器,每台运行OSPF的路由器具备Router-ID。
- 相同OSPF域内,禁止出现两台路由器有相同RouterID。
- OSPF Router-ID可以通过手工配置的方式,或使用自动获取的方式。自动选取的机制是:
- 若路由器存在loopback接口,则选最大的loopback接口IP地址
- 若无loopback接口,则选活跃的物理接口中IP地址最大的作为RouterD(实际项目手工配置)。
- Router-ID值遵循稳定第一的原则,不会抢占。如果需要更新RouterID:
- 重配地址:Undo ip address
- 重启进程:Reset ospf process
OSPF Cost开销
- OSPF使用Cost“开销”作为路由度量值,依据是接口的带宽。
- OSPF接口cost = 100M÷接口带宽,如10M接口的cost = 10。其中100M为OSPF参考带宽(reference-bandwidth),可修改
- 每一个激活OSPF的接口都有一个cost值。
- 一条OSPF路由的cost由该路由从起点一路到达本地的所有入接口cost值的总和。如下图所示,假设1.1.1.0/24网络中有一个IP向R3右侧直连网络中某个IP发送数据,则这条OSPF路由的开销为所有入接口开销值之和即1 + 50 + 1 = 52。下图黄色标签即
- 1.1.1.0/24网络中IP到达路由器R1的右侧直连网络,其OSPF路由开销为1
- 1.1.1.0/24网络中IP到达路由器R2的右侧直连网络,其OSPF路由开销为51
- 1.1.1.0/24网络中IP到达路由器R3的右侧直连网络,其OSPF路由开销为52

OSPF的3张表
| 表名 | 说明 | 注解 |
|---|---|---|
| 邻居表(Peertable) | OSPF是一种可靠的路由协议,要求在路由器之间传递链路状态通告之前,需先建立OSPF邻居关系,hello报文用于发现直连链路上的其他OSPF路由器再经过一系列的OSPF消息交互最终建立起全毗邻的邻居关系,OSPF路由器的邻居信息显示在邻居表中。 | OSPF邻居表中保存了本路由器的邻居路由器信息 当两台路由器建立起OSPF邻居关系之后,可使用 display ospf peer查看邻居关系 |
| 链路状态数据库(Link-state database,简称LSDB) | OSPF用LSA(link state Advertisement 链路状态通告)来描述网络拓扑信息,然后OSPF路由器用链路状态数据库来存储网络的这些LSA。OSPF将自已产生的以及邻居通告的LSA搜集并存储在链路状态数据库LSDB中。掌握LSDB的查看以及对LSA的深入分析才能够深入理解OSPF。 | OSPF链路状态数据库收集了全网的链路状态信息 |
| OSPF路由表(Routingtable) | 基于LSDB进行SPF(Dikstra算法)计算,而得出的OSPF路由表 | 查路由表消耗CPU,实际上现在路由器的转发依靠FIB转发表,该表是根据路由表和ARP表生成的,查找FIB表再通过硬件转发,效率更高。 |
OSPF的报文类型
| 报文类型 | 功能描述 | 备注 |
|---|---|---|
| Hello | 建立和维护OSPF邻居关系 | 打招呼以建立邻居关系 |
| DBD | 链路状态数据库描述信息(描述LSDB中的LSA头部信息) | 类似一个目录索引 |
| LSR | 链路状态请求,向OSPF邻居请求链路状态信息 | 根据上面的目录索引,确定我需要索引中哪条的详细信息 |
| LSU | 链路状态更新(包含一条或多条LSA) | 上述请求的返回信息 |
| LSAck | 对收到的LSU中的每一条LSA进行确认 | 通知对方,确认已收到 |
OSPF工作过程
邻居关系
建立
建立:相邻路由器之间通过交互问候(Hello)分组来建立和维护邻居关系。

问候分组
OSPF相邻路由器之间通过交互问候(Hello)分组来建立和维护邻居关系。问候分组的发送周期为 10 秒,若 40 秒仍未收到来自邻居路由器的问候分组,则认为该邻居路由器不可达。

问候分组封装在IP数据报中,其各个字段如下
| 字段 | 说明 | 注解 |
|---|---|---|
| 源IP | 路由器接口IP | - |
| 目的IP | 固定组播地址 | 224.0.0.5 |
| 协议号 | 89 | 表明 IP 数据报的数据载和为 OSPF 分组 |
邻居表
每个路由器都会建立一张邻居表,例如,这是路由器 R1 的邻居表,其中的每一个条目对应记录其各邻居路由器的相关信息,包括邻居ID、接口以及死亡倒计时。例如:

R2 是 R1 的一个邻居路由器,为简单起见,邻居 ID 就记为R2。实践中应填写相应的路由器ID。
该邻居路由器与自己的接口 1 相连,将接口号记为1
死亡倒计时还剩 36 秒。若在死亡倒计时到达 0 之前再次收到了来自 R2 的问候,分组则重新启动针对该邻居条目的 40 秒死亡倒计时。否则,当死亡倒计时为 0 时,则判定该邻居路由器不可达。
邻居关系建立的详细过程

根据您提供的图片内容,OSPF(开放最短路径优先)协议的工作过程可以整理成以下表格:
| 步骤 | 描述 | 路由器A的行动 | 路由器B的行动 |
|---|---|---|---|
| 1 | 初始化邻接关系 | 发送Hello包,声明自己的RID(Router ID) | 监听Hello包,识别邻居 |
| 2 | 把对方放入邻居表 | 把B放入邻居表 | 把A放入邻居表 |
| 3 | 双向通信确认 | 确认在Hello包中看到自己的RID,建立双向通信 | 确认在Hello包中看到自己的RID,建立双向通信 |
| 4 | 确定主从关系(Master-Slave) | RID较高的路由器A开始协商主从关系 | RID较低的路由器B响应主从关系协商 |
| 5 | 交换数据库描述(Database Description, DBD) | 发送Exstart消息,开始协商主从关系 | 响应Exstart消息 |
| 6 | 大量交换DBD信息 | 发送DBD信息,描述自己的链路状态数据库(LSDB) | 接收DBD信息,描述自己的LSDB |
| 7 | 确认DBD信息 | 确认收到的DBD信息 | 确认收到的DBD信息 |
| 8 | Link State Request (LSR):请求缺失的链路状态信息 | 请求缺失的网络信息,例如网络172.1.1.0 | 接收LSR消息 |
| 9 | Link State Update (LSU):更新缺失的链路状态信息 | 发送LSU消息,包含缺失的链路状态信息 | 响应LSU消息 |
| 10 | 链路状态数据库(LSDB)完全同步,建立邻接关系 | 确认LSDB已完全同步,邻接关系建立 | 确认LSDB已完全同步,邻接关系建立 |
这个表格展示了OSPF协议在建立两个路由器之间邻接关系时所经历的步骤,包括每个步骤的描述以及两个路由器在该步骤中的具体行动。
链路状态通告LSA
LSA的产生
使用OSPF的每个路由器都会产生链路状态通告LSA(Link State Advertisement)
链路状态通告的内容如下:
使用OSPF的每个路由器都会产生链路状态通告,其中包含以下两类内容
- 一类是直连网络的链路状态信息
- 一类是邻居路由器的链路状态信息
假设 N1 是路由器 R4 的直连网络,则 R4 的链路状态通告应包含
- R4 与该直连网络的链路状态信息
- 其邻居路由器 R1 的链路状态信息
- 其邻居路由器 R3 的链路状态信息。

LSA的发送
LSA被封装在链路状态更新分组LSU中,采用洪泛法发送
链路状态通告被封装在链路状态更新分组LSU中,采用洪泛法发送。收到链路状态更新分组的路由器将从自己其他所有接口转发该分组,也就是进行洪泛转发,如图所示。

这样自治系统中每个路由器所发送的封装有链路状态通告的链路状态更新分组会传递给系统中其他所有路由器。
LSA的存储
使用 OSPF的每个路由器都有一个链路状态数据库,用于存储链路状态通告
- 使用 OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储链路状态通告LSA。
- 通过各路由器洪泛发送封装有自己链路状态通告的链路状态更新分组。各路由器的链路状态数据库最终将达到一致。
例如,这是路由器 R2 的链路状态数据库,其中记录有系统中各路由器的链路状态通告。

基于LSDB计算最短路径
使用 OSPF的各路由器基于链路状态数据库进行最短路径优先SPF计算使用 OSPF的各路由器基于链路状态数据库进行最短路径优先计算,就可构建出各自到达其他各路由器的最短路径,即构建出各自的路由表。
例如,有这样一个网络拓扑,各链路旁的数字表示代价。通过各路由器洪泛发送封装有自己链路状态通告的链路状态更新分组,各路由器最终会得出相同的链路状态数据库。有链路状态数据库可以得出带权有向图。

对该图进行基于Dijkstra的最短路径优先算法,就可以得出以各路由器为根的最短路径。如图所示。

对于这样一个比较简单的网络拓扑,即使不懂得最短路径优先算法,也可以很快找出每个路由器到达其他各路由器的最短路径。但是如果网络拓扑比较复杂,该项工作对人类而言就比较复杂了。因此可以按照Dijkstra提出的最短路径优先算法编制程序,让路由器执行该程序。如果对该算法感兴趣,可以自行查阅相关资料,我们就不再赘述了。对于一般的网络工程师,即便不熟悉该算法,也不影响对 OSPF 协议的配置和使用。
OSPF基本工作过程
举例说明 OSPF协议的基本工作过程。

建立邻居关系
相邻路由器之间周期性发送问候分组,以便建立和维护邻居关系。
交换数据库描述分组
建立邻居关系后,给邻居路由器发送数据库描述分组,也就是将自己的链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器。
交互链路状态请求分组及链路状态确认分组
例如
- R1 收到 R2 的数据库描述分组后,发现自己缺少其中的某些链路状态项目,于是就给 R2 发送链路状态请求分组。
- R2 收到后,将 R1 所缺少的链路状态项目的详细信息封装在链路状态更新分组LSU中发送给R1,R1收到后,将这些所缺少的链路状态项目的详细信息添加到自己的链路状态数据库中,并给 R2 发送链路状态确认分组。
同理, R2 也可以向 R1 请求自己所缺少的链路状态项目的详细信息。
链路状态数据库达到同步
最终, R1 和 R2 的链路状态数据库将达到一致,也就是链路状态数据库达到同步。
之后,每 30 分钟或链路状态发生变化时,路由器都会发送链路状态更新分组。收到该分组的其他路由器将洪泛转发该分组,并给该路由器发回链路状态确认分组。(注意这里才用洪泛)这又称为新情况下的链路状态数据库同步。

OSPF网络类型
OSPF支持的网络类型
- 点到点网络
- 广播型多路访问网络
- 非广播型多路访问(NBMA)网络
- P2MP网络
常见网络类型对应的链路层协议
| 网络类型 | 常见链路层协议 |
|---|---|
| Point-to-Point | PPP链路,HDLC链路 |
| Broadcast | 以太网链路 |
| NBMA | 帧中继链路,ATM链路 |
| P2MP | 需手工指定 |
OSPF在多点接入网络中路由器邻居关系的建立

上述网络拓扑是一个多点接入网络,图1相当于将这些路由器连接至同一个交换机上去,交换机在拓扑中表现为一条总线了

在广播多路访问网络中,所有路由器接口都在相同网段,这些接口都将两两将来OSPF邻居关系这就意味着,网络中共有:
$$
M=N(N-1)/2
$$
这么多OSPF邻居关系,维护如此多邻居关系不仅耗费设备资源,也增加了网络中LSA泛洪数量,如图2所示。
为解决上述的问题,我们需在广播多路访问网络中选举一个指定路由器和一个备用指定路由器

为减小多路访问网络中的OSPF流量,OSPF会在每一个多点接入网络中选举一个指定路由器(DR)和一个备用指定路由器(BDR)。
DR选举规则:最高OSPF接口优先级拥有者被选坐DR,如果优先级相等(默认为1),具有最高OSPF RouterID的路由器被选举为DR,并且DR具有非抢占性。
指定路由器(DR):负责使用变化新消息更新其他OSPF路由器(DRother)
备用指定路由器(BDR):监控DR状态,并在当前DR发生故障后接替其角色
注意OSPF为“接口敏感协议”,DR及BDR的身份状态是基于OSPF接口的
Ma网络中(多路访问网络),所有其他路由器均只与DR和BDR建立邻居关系,其他路由器之间不建立邻接关系
如此一来,Ma网络中OSPF需要维护的邻居关系大幅减少至
$$
M=(n-2)*2+1
$$
因此,LSA泛洪问题得到缓解,如下图所示


- 假设R3下方网络链路状态发生变化,路由器R3用224.0.0.6通知DR及BDR;DR、BDR监听224.0.0.6这一组播地址
- DR向组播地址224.0.0.5发送更新以通知其他路由器,所有的OSPF路由器监听224.0.0.5
- 路由器收到链路变化后的LSU后,更新自己的LSDB,进行SPF重新计算,更新路由表
OSPF配置实验
配置华为路由器的OSPF(Open Shortest Path First)协议通常涉及以下几个关键步骤。以下是一个基本的配置流程:
实验环境准备
- 设置Router ID:首先,确保每台路由器都有一个唯一的Router ID,这通常是通过配置环回接口(如loopback0)的IP地址来实现的。例如,可以将R1的Router ID设为10.1.0.1/32,R2设为10.1.0.2/32,R3设为10.1.0.3/32。
进入系统视图
- 登录到华为路由器的CLI界面,输入
system-view命令以进入系统视图。
- 登录到华为路由器的CLI界面,输入
启动OSPF进程
- 在系统视图下,使用命令
ospf process-id来启动OSPF进程,其中process-id是一个本地标识符,用于区分不同的OSPF进程,通常默认为1。例如,输入ospf 1。
- 在系统视图下,使用命令
配置Router ID(可选)
- 如果未使用环回接口自动确定Router ID,可以在启动OSPF时指定,如
ospf 1 router-id 10.1.0.x。
- 如果未使用环回接口自动确定Router ID,可以在启动OSPF时指定,如
配置OSPF区域
进入OSPF视图后,使用命令
area area-id进入特定区域的配置视图,其中area-id通常对于单区域配置是0(表示骨干区域)。例如,
[R1-ospf-1]area 0。
宣告网络
- 在相应的OSPF区域视图下,使用
network ip-address wildcard-mask area area-id命令宣告直连网络到OSPF区域。这里的ip-address和wildcard-mask用于指定要宣告的网络范围,而area-id指定了区域ID。例如,宣告直连网络10.0.0.0/24到区域0,命令可能为network 10.0.0.0 0.0.0.255 area 0。
- 在相应的OSPF区域视图下,使用
配置认证(可选)
- 如果需要,可以在区域级别配置认证。例如,使用命令
authentication-mode simple plain password来设置简单明文认证,其中password是预先约定的密码字符串。
- 如果需要,可以在区域级别配置认证。例如,使用命令
修改Hello和Dead间隔(可选)
- 若要修改OSPF接口的Hello和Dead间隔,需要进入接口视图,如
interface GigabitEthernet 0/0/1,然后使用命令ospf timer hello interval和ospf timer dead interval来调整。
- 若要修改OSPF接口的Hello和Dead间隔,需要进入接口视图,如
验证配置
使用命令
display ospf peer检查OSPF邻居状态,确保邻居关系建立成功。使用
display ip routing-table protocol ospf查看OSPF协议生成的路由条目。
发布缺省路由(可选)
- 如果需要在某路由器上发布缺省路由到OSPF域内,可以配置默认路由重分发或使用
default-route-advertise命令(具体取决于OSPF版本和配置需求)。
- 如果需要在某路由器上发布缺省路由到OSPF域内,可以配置默认路由重分发或使用
完成以上步骤后,OSPF协议应该已经在华为路由器上配置完毕并正常工作,实现了网络的动态路由选择。记得在每台参与OSPF的路由器上重复类似配置过程。
华为设备常见路由协议优先级
数值越小越优先,记住以下优先级
| 路由类型 | 优先级数值 | 优先级高低 |
|---|---|---|
| 直连路由 | 0 | 最高 |
| OSPF路由 | 10 | |
| 静态路由 | 60 | |
| RIP协议路由 | 100 | 最低 |
注意:在路由选择中,优先级数值越低表示优先级越高,因此直连路由具有最高优先级,而RIP协议路由的优先级最低。OSPF路由优先级次于直连但高于静态和RIP,静态路由的优先级则在这四种类型中居中。







