OSPF 就是路由器之间"开会讨论"网络地图,最后每个人手里都拿着同一张全网的导航图,自己算最短路径。开放式最短路径优先OSPF(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议。RIP是一种基于距离矢量算法的路由协议,存在着收敛慢、易产生路由环路、可扩展性差等问题,目前已逐渐被OSPF取代。本博客将总结华为HCIP中有关OSPF知识点。
文章目录
-
- [一、OSPF 是什么?------ 像全班一起画地图](#一、OSPF 是什么?—— 像全班一起画地图)
- [二、OSPF 的基本组件](#二、OSPF 的基本组件)
-
- [1、Router ID ------ 路由器的"身份证号"](#1、Router ID —— 路由器的“身份证号”)
- [2、链路开销 ------ 这条路"好不好走"](#2、链路开销 —— 这条路“好不好走”)
- [3、邻居与邻接 ------ 从认识到深交](#3、邻居与邻接 —— 从认识到深交)
-
- (1)Down:刚启动,谁都不认识。
- [(2)Init:收到别人的 Hello,但还没建立双向关系。](#(2)Init:收到别人的 Hello,但还没建立双向关系。)
- [(3)2-Way:双方互相在 Hello 里看到了对方,邻居关系建立。在广播网络中,这里会进行 DR/BDR 选举。](#(3)2-Way:双方互相在 Hello 里看到了对方,邻居关系建立。在广播网络中,这里会进行 DR/BDR 选举。)
- (4)Exstart:选主从,准备交换数据库。
- [(5)Exchange:交换 DD(数据库描述)报文,说"我这有哪些 LSA"。](#(5)Exchange:交换 DD(数据库描述)报文,说“我这有哪些 LSA”。)
- [(6)Loading:互相请求缺失的 LSA,完整同步。](#(6)Loading:互相请求缺失的 LSA,完整同步。)
- (7)Full:完全邻接,数据库一样了。
- [三、区域 ------ 分而治之,减少负担](#三、区域 —— 分而治之,减少负担)
-
-
- 1、为什么需要区域?
- [2、OSPF 的区域就像一个省](#2、OSPF 的区域就像一个省)
- 3、角色分类:
-
- [四、DR 和 BDR ------ 广播网络里的"班长和副班长"](#四、DR 和 BDR —— 广播网络里的“班长和副班长”)
-
- 1、DR
- 2、BDR
- 3、选举规则
-
- (1)优先级越高越优先(0-255,默认1。优先级为0表示不参与选举)。
- [(2)优先级相同,Router ID 越大越优先。](#(2)优先级相同,Router ID 越大越优先。)
- [(3)非抢占:已选出的 DR 即使后来加入更高优先级的设备,也不会被抢走(除非重启 OSPF 进程)。](#(3)非抢占:已选出的 DR 即使后来加入更高优先级的设备,也不会被抢走(除非重启 OSPF 进程)。)
- [五、LSA ------ 链路状态通告](#五、LSA —— 链路状态通告)
- [六、OSPF 特殊区域 ------ 定制你的"路由清单"](#六、OSPF 特殊区域 —— 定制你的“路由清单”)
- [七、OSPF 的工作流程](#七、OSPF 的工作流程)
- 八、华为设备配置要点
- [九、HCIP 常见考点](#九、HCIP 常见考点)
- 十、总结
一、OSPF 是什么?------ 像全班一起画地图
1、想象你们班要画一张全校的地图
- RIP 的做法:每个人只知道"隔壁邻居告诉你的一些路",然后传给下一个人,传来传去容易错,而且最多只能传 15 跳。
- OSPF 的做法:每个人把自己知道的所有路(比如我连着教学楼、我连着操场)广播给全班。最后每个人手里都有一张完整的全校地图,然后自己用计算器(SPF算法)算出到每个地方的最短路径。
2、核心特点
- 链路状态协议:每个路由器描述自己"连接了哪些邻居、链路开销是多少",而不是像 RIP 那样只说"我到某某有多远"。
- 无环路:因为每台路由器都有完整拓扑图,算出来的路径天然无环。
- 收敛快:网络变化时,只发送变化的部分,很快重新计算。
二、OSPF 的基本组件
1、Router ID ------ 路由器的"身份证号"
- 一个 32 位的数字,格式像 IP 地址(比如 1.1.1.1)。
- 选举规则:可以手动指定,否则选最大的 Loopback 地址,再否则选最大的物理接口 IP。
- 作用:在 OSPF 域里唯一标识一台路由器。
2、链路开销 ------ 这条路"好不好走"
- OSPF 用开销作为选路的度量值,开销越小,路径越优。
- 开销计算公式:开销 = 参考带宽 / 接口带宽(参考带宽默认 100Mbps)。
- 举个例子
百兆以太网(100Mbps)→ 开销 = 100/100 = 1;千兆(1000Mbps)→ 开销 = 100/1000 = 0.1,取整也得 1?实际上华为默认参考带宽是 100M,所以千兆开销也是 1。你可以手动改参考带宽让千兆比百兆更好。
3、邻居与邻接 ------ 从认识到深交
- 邻居:两台路由器互相发了 Hello 包,知道对方存在,但还没同步数据库。
- 邻接:互动更深,双方交换了链路状态数据库,完全同步了。
建立过程:
(1)Down:刚启动,谁都不认识。
(2)Init:收到别人的 Hello,但还没建立双向关系。
(3)2-Way:双方互相在 Hello 里看到了对方,邻居关系建立。在广播网络中,这里会进行 DR/BDR 选举。
(4)Exstart:选主从,准备交换数据库。
(5)Exchange:交换 DD(数据库描述)报文,说"我这有哪些 LSA"。
(6)Loading:互相请求缺失的 LSA,完整同步。
(7)Full:完全邻接,数据库一样了。

三、区域 ------ 分而治之,减少负担
1、为什么需要区域?
如果全网都在一个区域里,当网络很大时,每台路由器都要存成千上万条 LSA,计算也很慢。就像全国的地图如果细化到每一条小巷子,你的手机根本跑不动。
2、OSPF 的区域就像一个省
- 骨干区域(Area 0):中心区域,所有其他区域必须直连到 Area 0。
- 非骨干区域:比如 Area 1、Area 2,通过 ABR 连接到 Area 0。
3、角色分类:
| 角色 | 全称 | 大白话 |
|---|---|---|
| IR | 内部路由器 | 所有接口都在同一个区域内 |
| ABR | 区域边界路由器 | 连接多个区域,至少一个接口在 Area 0 |
| ASBR | 自治系统边界路由器 | 把外部路由(比如静态、RIP)引进来 |
规则:非骨干区域之间不能直接通信,必须经过 Area 0 转发。

四、DR 和 BDR ------ 广播网络里的"班长和副班长"
在以太网这种广播多路访问网络里,如果每台路由器两两建立邻接关系,n 台设备就要建 n(n-1)/2 个邻接,太浪费资源。
DR(指定路由器) 和 BDR(备份指定路由器) 就是来解决这个问题的:
1、DR
所有其他路由器(DR Other)只跟 DR 和 BDR 建立邻接,不互相建立。
2、BDR
DR 的备份,时刻准备接管。
3、选举规则
(1)优先级越高越优先(0-255,默认1。优先级为0表示不参与选举)。
(2)优先级相同,Router ID 越大越优先。
(3)非抢占:已选出的 DR 即使后来加入更高优先级的设备,也不会被抢走(除非重启 OSPF 进程)。


五、LSA ------ 链路状态通告
LSA 就是路由器向其他人描述自己连接的"一小块网络信息"。就像是拼图的一块,每个人发一块,最后大家拼出全图。
HCIP 考试中,常见的 LSA 类型有:
| 类型 | 名称 | 谁产生 | 传播范围 | 内容 |
|---|---|---|---|---|
| LSA 1 | Router LSA | 每个路由器 | 本区域 | 描述路由器的直连链路和接口 |
| LSA 2 | Network LSA | DR | 本区域 | 描述广播网络里的所有路由器 |
| LSA 3 | Network Summary LSA | ABR | 跨区域 | 描述其他区域的路由(汇总) |
| LSA 4 | ASBR Summary LSA | ABR | 除 ASBR 所在区域外 | 告诉其他区域如何找到 ASBR |
| LSA 5 | AS External LSA | ASBR | 整个 OSPF 域 | 描述外部网络(比如默认路由) |
| LSA 7 | NSSA External LSA | ASBR(在 NSSA 区域) | NSSA 区域 | 描述外部路由,但只在本区域传递 |
一般区域默认不允许 LSA 5(外部路由),但可以通过特殊区域类型来过滤。
六、OSPF 特殊区域 ------ 定制你的"路由清单"
当区域不想接收大量外部路由时,可以把它变成特殊区域:
| 区域类型 | 允许哪些 LSA | 优点 |
|---|---|---|
| 普通区域 | LSA1+LSA2+LSA3+LSA4+LSA5 | 啥都有,路由表大 |
| Stub 区域 | LSA1+LSA2+LSA3,缺省路由由 ABR 下发 | 阻止 LSA4/5,路由表变小 |
| Totally Stub | LSA1+LSA2,只有一条默认路由 LSA3 | 更小,性能更好 |
| NSSA | LSA1+LSA2+LSA3+LSA7 | 允许引入外部路由(LSA7),但不接收 LSA5 |
注意:特殊区域里不能有 ASBR(除非 NSSA),而且所有路由器必须配成同一类型。
七、OSPF 的工作流程
1、启动
路由器在接口上发送 Hello 包,发现邻居。
2、建邻接
在广播网络中选举 DR/BDR,然后同步数据库。
3、学习路由
每台路由器生成 LSA 1,DR 生成 LSA 2,ABR 生成 LSA 3,ASBR 生成 LSA 5/7。
4、计算路径
每个路由器用 SPF 算法算出最短路径树,放进路由表。
5、维护
网络变化时,只发送变化的 LSA,其他路由器重新计算受影响的部分。
八、华为设备配置要点
bash
# 基本配置
ospf 1 router-id 1.1.1.1 # 开启OSPF进程1,指定Router ID
area 0 # 进入区域0
network 192.168.1.0 0.0.0.255 # 宣告网段(反掩码)
# 设置接口开销
interface GigabitEthernet0/0/0
ospf cost 10
# 修改参考带宽(让千兆比百兆优先)
ospf 1
bandwidth-reference 1000 # 参考带宽改成1000M
# 配置特殊区域(Stub)
area 1
stub # 区域内所有路由器都要配
# 配置 Totally Stub(ABR上配置)
area 1
stub no-summary
# 配置 NSSA
area 2
nssa



九、HCIP 常见考点
1、OSPF 邻居状态机
Down → Init → 2-Way → Exstart → Exchange → Loading → Full。


2、DR/BDR 选举
过程、优先级的作用、非抢占特性。

3、LSA 类型
能区分 1/2/3/4/5/7 各自的作用和传播范围。
4、特殊区域
Stub、Totally Stub、NSSA 的区别和配置。
5、开销计算
默认参考带宽 100M,可修改;如何让千兆链路优先于百兆。
6、认证
支持接口认证和区域认证(简单密码或 MD5)。
7、虚连接
当非骨干区域无法直连 Area 0 时,用虚连接(virtual-link)穿透一个非骨干区域。

十、总结
1、口决
OSPF 动态路由,链路状态最靠谱。
区域 0 是核心,其他区域必须连。
DR 班长 BDR 副,广播网络省资源。
LSA 分七种,1/2传内部,3/4 跨区域,5 引外部,7 给 NSSA。
Stub 不给 5,Totally 连 3 都阻断。
收敛快,没环路,企业网里它为主。
2、备考建议:
- 在 ENSP 里搭建一个三路由器加一台交换机的拓扑,跑 OSPF,观察邻居状态和 LSA。
- 故意断开一条链路,验证收敛过程。
- 配置不同特殊区域,看路由表变化。