概述
上图为1类LSA的实际报文结构 , 在开始之前一定需要说明 , 1类LSA是OSPF中最复杂的LSA类型 , 在LSA头部的文章中详细介绍了 LS Type / Link State ID / Adv Router 3种头部字段 , 在1类LSA的主体内容中还存在类似的字段十分的相似 , 很多网络从业者难以理解的点就在于此 , 所以我在开头阐述清楚
1类LSA头部字段
LS Type : 代表1类LSA的类型
Link State ID : 代表产生此LSA设备的Router-ID
Adv Router : 代表产生此LSA设备的Router-ID
1类LSA主体中相似字段
Link Type : 路由器所接入的目标,其值取决于连接的类型 , 一共有4种 : P2P(拓扑信息) / Transit(拓扑信息) / Stub(网段信息) / Virtual Link(虚链路)
Link ID : 路由器连接的基本描述 , 数值的格式为x.x.x.x的IP地址格式 , 但是实际代表的含义和Link Type相关 , 下面具体说明
Link data : 具体数据 , 与Link ID类似 ,数值的格式为x.x.x.x的IP地址格式 , 具体含义和Link Type相关 , 主要是说明自身的信息
上图中Link Data的"路由器接口"是指LSA产生者 , 也就是本设备接口IP地址 , 我在Link Type中介绍P2P和Transit时用到了拓扑信息这个概念 , 如P2P的LinK ID为对端的设备名称 , Link Data是本端的接口IP , 这样其他设备收到这条1类LSA就可以得知LSA产生者的哪个接口链接了哪台OSPF设备 , 这种本端+对端信息的方式就是拓扑信息 ,
除了虚连接我们不关心以外 , 其余的三种都是经常看到的 , 后续的文章内容我们就以LSA的主体内容为例 , 不再体现LSA头部中的字段 , 避免出现理解困难
P2P网络下的Router-LSA
首先说明一下如何在现网环境中配置OSPF链路为P2P , 以及为什么需要配置
如今数据中心网络都是全三层互联组网 , 不会出现多台路由器连接在一个2层网络下(广播以太网络) , 所以这种情况下我们并不需要DR机制来优化 , 以及DR接口选举需要等待的40S影响了OSPF的建立速度 , 所以在这个背景下我们会在OSPF邻居的接口下配置
int g1/0/1 ospf network-type p2p (以太网环境下把OSPF接口类型改到P2P)
如图 , 组成一个最简洁的OSPF网络 , 2台设备Router-id 0.0.0.1和0.0.0.2 通过1.1.1.0/24的网段互联 , 且OSPF接口修改为P2P类型
通过命令
dis ospf lsdb router self-originate 来查看本设备产生的1类LSA
其中P2P类型的LSA是拓扑信息 , 包含了本端和对端的信息映射 , OSPF设备可以通过这个信息补全拓扑 , StubNet就是路由信息 , 这是P2P中特有的 , 在MA网络中路由信息通过2类LSA携带 , 注意所有的回环口路由在1类中也是以StubNet的方式传递 ,
MA网络下的Router-LSA
int g1/0/1 ospf network-type broadcast (以太网环境下把OSPF接口类型改到MA网络)
在现网环境的OSPF中我们只关注MA网络类型和P2P网络类型即可 , 且大多数场景下都可以配置成P2P模式 , 来加速OSPF邻居的建立 , nbma和p2mp类型可以忽略
通过观察MA网络下的1类LSA可以得知 , 正常情况下并不会携带路由信息(P2P下的1类LSA存在StubNet) , 只有TransNet是拓扑信息(没有掩码) , 在MA网络下的拓扑信息关键就是DR , OSPF会认为DR是一台真实存在的设备 , 可以把拓扑画成这样 . 每台设备是这样描述拓扑的 , 我的某个接口链接在了DR上 , 通过上图的接口1.1.1.1 链接到DR1.1.1.2 , 就可以获知DR一定是R2 ,
可以通过
dis ospf interface 来查看设备上开启OSPF的接口, 以及其接口类型
在R2上查看1类LSA 一定是1.1.1.2的接口接到了DR 1.1.1.2上
总结
至此1类LSA的3种重要类型都已经通过P2P和MA网络接口类型来体现 , 我们来做一个总结
1类LSA | 拓扑信息 | 路由信息 |
---|---|---|
P2P网络 | P2P | StubNet |
MA网络 | TransNet | DR产生的2类LSA (回环口还是使用的StubNet) |
P2P网络 : 默认存在P2P/StubNet , 这种情况下没有DR , 所以不需要2类LSA
MA2网络 : 默认只存在 TransNet , 1类LSA没有掩码信息, 需要通过2类LSA补充 , 由DR设备产生发送
为什么MA网络不能和P2P一样 , 直接使用1类LSA同时描述拓扑信息和路由信息?
关键点在于P2P网络和MA网络在拓扑结构上的差异。P2P网络是明确定义的,每条链路上两个对端设备,因此1类LSA可以有效地描述整个拓扑和路由信息。而MA(多访问)广播网络,多台路由器可以通过交换机接入到同一个二层以太网络。在这种情况下,每台设备需要知道其他路由器的存在和状态信息。
因此,MA网络采用指定路由器(DR)和备用指定路由器(BDR)的机制,统一发布和维护网络的拓扑信息。DR负责生成网络的2类LSA,描述该广播网络的所有路由器,并发布到整个OSPF区域。这种机制优化了OSPF在大规模广播网络中的配置。
概要:P2P设置由于链路简单,1类LSA即可描述完整的拓扑和路由信息;而MA设置由于存在多个设备,需要通过DR和2类LSA来统一发布拓扑信息,确保每个路由器都能获得网络信息。
OSPF MA接口类型和P2P接口类型能否组成邻居?
这个分场景讨论 , 不同设备厂商的实现不一致 , 华为设备的确可以MA和P2P网络接口建立OSPF邻居 , 但是他们的路由计算会出现问题 , 华三设备在这个场景下无法建立OSPF邻居.