

OSPF网络类型 vs 链路层协议
核心一句话 :链路层协议是物理线路本身的属性;OSPF 网络类型,是 OSPF 跑在这条线路上时,自己的运行模式 。 OSPF 会根据接口的链路层协议,自动选择对应的 OSPF 网络类型,也可以手工强制修改。
| OSPF 网络类型 | 对应链路层 | 本质场景 | 关键特点 |
|---|---|---|---|
| Point‑to‑Point(P2P,点到点) | PPP / HDLC | 链路只有 2 台路由器,一头接一头 | 没有 DR/BDR 选举;邻居自动发现; |
| Broadcast(广播型) | 以太网 | 多路访问,一条链路上可以有多台设备(交换机下面一堆路由器) | 要选举 DR、BDR;支持广播、组播; |
| NBMA(非广播多路访问) | 帧中继 | 多路访问(可以接多台路由器),但是不支持广播报文 | 需要手动指定邻居;也要选举 DR/BDR;广播包发不出去 |
| P2MP(点到多点) | 手工配置,没有默认链路对应 | 把 NBMA 环境改成点到多点模式 | 不选 DR/BDR;把多个远端节点看成一堆 P2P 分支 |


帧中继 (Frame Relay) & ATM 链路
这俩都是老式广域网二层链路协议(90 年代主流,现在基本淘汰,只在网工考试出现) ,OSPF 跑在这两种链路上,默认网络类型都是 NBMA(非广播多路访问)。







OSPF报文发送形式

可按需调整设备接口的OSPF网络类型

目前常用的网络类型是P2P,广播型这两种,P2MP,NBMA是早期为帧中继,或者ATM的链路设计开发出来的,目前已经淘汰,很少被使用了。
项目中,如下以太网结构建议修改为P2P的链路

两台路由器之间,通过以太网的接口连在一起来,这个时候按理来讲,是广播型的链路,是需要进行DR和BDR的选举的,但是实际上由于这种链路上就只有一个邻居,所以不存在LSA泛洪的问题,直接优化成点到点就不需要选举DR,BDR了。
OSPF路由计算(重点)




LSA的基本概念

一类LSA

现在把两个宣告的接口取消掉

现在有ospf的进程跟区域,只是没有把接口加进去

现在就没有一类的LSA,都没有把接口加入OSPF进程中,OSPF是不知道要描述什么的。
只要这台路由器本身的直连链路被加入到OSPF进程之后,才会对这条链路进行状态的描述。
Type1的LSA通过四种Link type描述直连链路状态








一类LSA的总结 一类 LSA(Router-LSA,路由器 LSA)
一句话作用:区域内每一台路由器,都会为自己所在的区域生成一条一类 LSA,只在本区域泛洪,不能跨区域。用来描述这台路由器所有直连链路、链路开销 Metric、链路拓扑 / 网段信息,是 OSPF 做 SPF 最短路径计算、画出区域拓扑图的基础素材华为
命令(华为):display ospf lsdb router 看一类 LSA 详细内容
重点区分:Link Type(链路类型)≠ OSPF 接口网络类型 。 一条一类 LSA 里面可以有多条 Link,每条 Link 用Link Type / Link ID / Link Data / Metric描述一条直连链路。一共就 4 种 Link Type。
4 种 Link Type 详解
| Link Type | 名称 | 用途 | Link ID | Link Data |
|---|---|---|---|---|
| 1 | Point-to-Point(P2P) | 拓扑信息:本路由器连到另一台 OSPF 路由器的点到点链路(PPP、HDLC、P2P 子接口) | 对端邻居的 Router-ID | 本端接口 IP 地址 |
| 2 | Transit Network(TransNet,传输网络) | 拓扑信息:本路由器接入 MA/NBMA 广播多路访问网段(以太网),该网段选举了 DR | DR 的接口 IP 地址 | 本端接口 IP 地址 |
| 3 | Stub Network(末梢网络) | 路由信息:末梢网段,没有其他 OSPF 路由器邻居。Loopback 环回口、passive-interface 被动接口、P2P 链路配套宣告的网段都属于 StubNet | 网段网络地址 | 子网掩码 |
| 4 | Virtual Link(虚链路) | 拓扑信息:虚链路,逻辑 P2P,用来修补不连续骨干 Area0 | 虚链路对端的 Router-ID | 本端接口 IP 地址 |






只看 P2P 场景,只讲这 2 条 Link(Type1 + Type3)






广播型链路的邻居该如何描述

R2,R3,R4都会产生一类的LSA,并且都会传到R1上。

一类LSA 2.2.2.2里面会多一个Link type -- TransNet



核心问题:为什么 MA 场景,一类 LSA 里面必须用 TransNet?


OSPF一类LSA是路由器对自己直连链路的完整自述。只要是这个路由器直连的OSPF链路,全部都要写进自己的Router-LSA(一类LSA)。
P2P链路:我直连另一台路由器 ---> 用type1描述MA广播链路(以太网Broadcast):我直连一个广播网段,不是直连某一台路由器 ---> 所以必须新增一种Link Type:TransNet(Type2),用来描述 "我这台路由器,直连了一个广播网段"









R1根据目前自己产生的一类LSA,顺着摸出了R2产生的一类,再跟着R2产生的一类,摸出了一个伪节点,但是现在摸到这里之后,接下来不清楚 -- (伪节点又连接哪些节点??)

我们知道R3跟R4也是连接到伪节点上的,但是R1怎么知道R3跟R4的存在呢?
这个时候就需要二类LSA来帮忙了。
二类LSA
TransNet必然对应二类LSA,P2P必然对应着一条一类的LSA



看到TransNet必然有一个二类的LSA。
1找到2, 2找到伪节点,伪节点可以找到3跟4
这看起来是5个,其实5个可以画出一个拓扑结构的。
DR产生二类LSA

二类LSA的结构

现在知道伪节点上还连接着3.3.3.3跟4.4.4.4。这都是实际的节点,那么都会产生一类的LSA。





LSA的数量及理解(拓扑+路由)
LSA的数量是可以被我们所预测的,在一个区域中,一类LSA的数量跟区域内路由器的数量是一样的。
二类LSA的数量跟区域的广播型链路的数量一致。


虚链路在项目中能不用就绝不用,在绝大多数的网络中,都不出现虚链路。
在一类LSA中,这四种LinkType,有规律,2,3,4这三种都是用来描述节点的(用来描述我跟哪些路由器连着的),而只有第一种(Stubnet)是描述网络号的。
所以2,3,4都是用来描述网络拓扑结构的--设备与设备之间的关系(通过点到点的链路连接邻居/通过广播型链路连到邻居/通过虚链路连到邻居 -- 帮我我们去绘制网络拓扑结构的--定于树的结构),1是表示树上的叶子(一个一个的路由信息)
拓扑结构画出来,再把叶子挂树上。
二类LSA

LSA的更新机制

每台路由器只对自己产生的LSA做周期性更新。
LSA的主动删除

LSA的删除必然带来路由的删除,但是路由的删除并不一定代表LSA的删除。