OSPF LSA 五类常见报文
# 简介
在OSPF中,最常出现的报文除了Hello报文用于维护和发现邻居外,就是LS Update报文了。
LSA Update报文包含了几类LSA类型
- Router LSA
- Network LSA
- Network summary LSA
- ASBR summary LSA
- w
# Router LSA 1
该类型的LSA报文会由路由器生成,任何路由器都会生产此类LSA报文,该通告列举出了该路由器所有的链路与接口,并说明它们的状态、每条链路的代价以及该链路上已知的OSPF邻居。
此类报文只会在路由器接口所属区域内传播,无法跨区域传播。
# Network LSA 2
该类型的LSA报文由广播域内的DR发出,用于告知其他非DR路由设备该广播域下的设备情况,该报文在所属区域内传播,这意味着可以跨广播域但不能跨域。
# Network Summary LSA 3
由ABR产生,该报文允许向其他域通告该域内的路由信息,但仅限与相邻的域进行泛洪。
# ASBR Summary LSA 5
# 重分布
将其他路由协议产生的路由信息注入至OSPF中,在华为设备中,我们可以通过在ASBR设备上的接口上输入import-route ospf/rip/others
来将该路由器掌握的指定协议写入到路由表中
# LSA 4
该报文需要配合LSA 5一起使用,LSA5将外部路由协议的路由注入到OSPF中,因此生成了外部路由数据库,五类的报文会广播至整个OSPF中。
倘若我们有上述关系图,3.3.3.3/32
不属于OSPF,我们通过import-route direct
将直连路由导入至OSPF中,那么新增的外部关系就会记录在外部路由数据库中,Area 1中的AR2和AR3在同一区域内,因此知道如果要找3.3.3.3/32
该往哪走,但AR1并不知道,因为AR1是属于Area 0的,因此此时我们就需要依赖AR2在转发五类关系广播报文的同时发送四类关系报文,四类报文会告知AR1,如果你想访问3.3.3.3/32
,你将包传递给AR2即可。
# LSA 7
路由:网段信息 为了让NSSA区域内的外部路由能够传递,产生了LSA 7 穿透ABR 设备时进行LSA7 转换为LSA5同时加入FA地址(产生LSA7的ASBR router id)
不可跨区域进行传递(不能穿透ABR设备) 如果需要跨区域,需要在ABR设备中配置
# 特殊区域
# STUB
在实际网络环境下,从发送路由到接收路由中有一千条各式各样的中间路由,但如果把这些都记录在接收路由未免负担太大,因此提出了STUB类型,该类型过滤掉了四类和五类LSA,并且ABR设备产生默认路由LSA3
在配置STUB时,需要为区域内所有设备都配置为STUB,包括边缘路由设备。
然后可以通过dis ip routing
查看到路由表中多了一条指向0.0.0.0网段的路由
# No-summary-stub
在STUB基础上进一步过滤掉三类路由
# NSSA
在STUB和No-summary-stub区域中,只允许有一、二、三类LSA,但有时我们会遇到一种情况
如上图所示,RTD想去外部网络明明可以走最优路径,但为了遵循OSPF的规则,末端区域的路由器仅保留区域内设备的LSA信息以及一个前往ABR的默认路由,因此RTD只能通过RTB才能访问外部网络,很明显在这幅图中,绕了一条远路。
因此设计师为了弥补这项缺陷,只能玩起了“文字游戏”,STUB区域不收LSA 4、5类信息,那我新增一个七类信息不就行了?
可以看到,NSSA区域在准许引入外部路由ASBR的同时,当七类LSA到达ABR时,会从七类转换为五类并进而广播至其他区域,而其他区域收到的是RTB生产的五类LSA而不是七类LSA