不得不看的OSPF的LSA类型汇总
不得不看的OSPF的LSA类型汇总
LSA(Link-State Advertisement,链路状态广播)是链接状态协议使用的一个分组,它包括有关邻居和通道成本的信息。LSAs 被路由器接收用于维护它们的 RIB(路由表)。
OSPF 路由协议是链路状态型路由协议,这里的链路即设备上的接口。链路状态型路由协议基于连接源和目标设备的链路状态作出路由的决定。
链路状态是接口及其与邻接网络设备的的关系的描述,接口的信息即链路的信息,也就是链路的状态(信息)。这些信息包括接口的 IPv6 前缀(prefix)、网络掩码、接口连接的网络(链路)类型、与该接口在同一网络(链路)上的路由器等信息。这些链路状态信息由不同类型的 LSA 携带,在网络上传播。
路由器把收集到的 LSA 存储在链路状态数据库中,然后运行 SPF 算法计算出路由表。链路状态数据库和路由表的本质不同在于:数据库中包含的是完整的链路状态原始数据,而路由表中列出的是到达所有已知目标网络的最短路径的列表。
OSPF 协议是为 IP 协议提供路由功能的路由协议。OSPFv2(OSPF 版本 2)是支持 IPv4 的路由协议,为了让 OSPF 协议支持 IPv6,技术人员开发了 OSPFv3(OSPF 版本 3),OSPFv3 由 RFC2740 定义。
LSA 类型 | LSA类型编号 |
Router LSA | 1 |
Network LSA | 2 |
Network summary LSA | 3 |
ASBR summary LSA | 4 |
Autonomous system external LSA | 5 |
Group membership LSA | 6 |
NSSA External LSA | 7 |
External attributes LSA for BGP | 8 |
Opaque LSA(链路本地范围) | 9 |
Opaque LSA(本地区域范围) | 10 |
Opaque LSA(AS 范围) | 11 |
(1)路由器 LSA(Router LSA)
每一台路由器都会产生 1 类 LSA 通告。这个最基本的 LSA 通告列出了路由器所有的链路或接口,并指明了它们的状态和沿每条链路方向出站的代价,以及该链路上所有已知的 OSPF 邻居;另外,1 类 LSA 同时也指出了路由器是不是 ABR 或 ASBR。
这些 LSA 通告只会在始发它们的区域内部进行泛洪扩散(如下图所示)。通过命令 show ip ospf database router 可以查看数据库中列出的所有路由器 LSA 通告。
1 类 LSA:路由器 LSA
在链路状态 ID 字段中,使用通告路由器的路由器 ID 来标识 1 类 LSA。路由器的每条链路(接口)都被定义为 4 种类型之一:1、2、3 或 4 类。LSA 包含一个链路 ID 字段,用于标识链路的另一端;链路 ID 字段的含义随链路类型而异,下表描述了 1 类 LSA 链路类型及其链路 ID 字段的含义:
链路类型 | 描述 | 链路 ID 字段的内容 |
1 | 到另一台路由器的点到点连接 | 邻居路由器的 ID |
2 | 到中转网络的连接 | DR 的接口地址 |
3 | 到末节网络的连接 | IP 网络 / 子网号 |
4 | 虚链路 | 邻居路由器的 ID |
还有一个链路数据字段,它提供了 32 位的额外信息。对于大多数链路类型来说,这是相关路由器接口的 IP 地址;对于连接到末节网络的链路来说,这是该末节网络的子网掩码。
(2)网络 LSA(Network LSA)
2 类 LSA 是 DR 为区域中每个中转的广播网络或 NBMA 网络生成的。中转网络至少与两台 OSPF 路由器直接相连,诸如以太网等多路访问网络就属于中转网络。
2 类 LSA 列出了构成中转网络的所有路由器(包括 DR 本身)和链路的子网掩码。中转链路的 DR 负责通告 2 类 LSA,2 类 LSA 随后被扩散到区域内所有的路由器,2 类 LSA 不会跨越区域边界进行传播(如下图所示)。其链路状态 ID 为通告它的 DR 的 IP 接口地址。使用命令 show ip ospf database network 可以查看网络 LSA 通告的信息。
请注意,和路由器 LSA 不同,网络 LSA 中没有度量字段。
关于网络 LSA 的其他解释:DR 路由器可以看作一个“伪”节点,或是一个虚拟路由器,用来描绘一个多路访问网络和与之相连的所有路由器。从这个角度来看,一条网络 LSA 通告也可以描绘一个逻辑上的“伪”节点,就像一条路由器 LSA 通告描绘一个物理上的单台路由器一样。网络 LSA 通告列出了所有与之相连的路由器,包括 DR 路由器本身。就像路由器 LSA 一样,网络 LSA 也仅仅在产生这条网络 LSA 的区域内部进行泛洪扩散。 |
2 类 LSA:网络 LSA
(3)网络汇总 LSA(Network summary LSA)
3 类 LSA 由 ABR 生成,它将一个区域内的网络通告给 OSPF 自治系统中的其他区域(1 类和 2 类 LSA 是被限制在区域内的)。
如下图所示,ABR 从区域内的其他路由器那里收到 1 类 LSA 后,向外发送 3 类 LSA,以便将通过 1 类 LSA 获悉的网络通告给其他区域。3 类 LSA 只在一个区域内扩散,但 ABR 重新生成 3 类 LSA 以便将其扩散到其他区域。使用命令 show ip ospf database summary 可以显示链路状态数据库中的网络汇总 LSA 信息。
3 类 LSA:网络汇总 LSA
当一台 ABR 始发一条网络汇总 LSA 时,将包括从它本身到正在通告的这条 LSA 的目的地所耗费的代价。ABR 即使知道它有多条路由可以到达目的地,它也只会为这个目的地始发单条网络汇总 LSA 通告,因此:
如果一台 ABR 在与它本身相连的区域内有多条路由可以到达目的地,那么它将只会始发单一的一条网络汇总 LSA 到骨干区域,而且这条网络汇总 LSA 是上述多条路由中代价最低的;
同样地,如果一台 ABR 经过骨干区域从其他的 ABR 收到多条网络汇总 LSA,那么这台始发的 ABR 将会选择这些 LSA 通告中代价最低的 LSA,并且将把这个 LSA 的最低代价通告给与它相连的非骨干区域。
默认情况下:
OSPF 不会自动对一组连续的子网进行汇总,更不会将网络汇总成分类网络;
ABR 总是将汇总 LSA 扩散到其他区域,而不管其中的路由是否是汇总路由;
ABR 网络管理员必须使用配置命令来指定如何进行汇总;
对于区域中的每个子网,都将一个 3 类 LSA 扩散到骨干区域;
汇总 LSA 并不包含汇总路由,因此默认情况下,将通告区域内的所有子网,这可能导致严重的扩散问题,所以应考虑在 ABR 上手工配置路由汇总。
注意:收到 3 类 LSA 时,并不会导致路由器运行 SPF 算法。路由器将 3 类 LSA 通告的路由加入路由表或将其从路由表中删除时,并不一定执行完整的 SPF 计算。调试输出表明,这将导致执行部分 SPF 计算,但表示 SPF 算法执行次数的计数器并不会加 1。有些 Cisco 文档暗示 3 类 LSA 被注入区域时将运行 SPF 算法,但情况并非如此。
扩展:当其他的路由器从一台 ABR 收到一条网络汇总 LSA 通告时,它并不运行 SPF 算法。相反地,它只是简单地加上从它到那台 ABR 之间路由的代价,并将这个代价包含在这个 LSA 通告当中。通过 ABR 路由器,到达所通告的目的地的路由连同所计算的代价一起被记录进了路由表。这个行为 ―― 依赖中间路由器代替确定到达目的地的全程路由(Full route)的做法 ―― 其实是距离矢量协议的行为。因此,虽然在一个区域内部 OSPF 协议是一个链路状态协议,但是它却使用了距离矢量的算法来查找域间路由。 |
(4)ASBR 汇总 LSA(ASBR summary LSA)
仅当区域中有 ASBR 时,ABR 才会生成 4 类 LSA。4 类 LSA 标识 ASBR,并提供一条前往该 ASBR 的路由。前往外部自治系统的数据流要求路由表包含有关通告外部路由的 ASBR 的信息。链路状态 ID 被设置为 ASBR 的路由器 ID。使用命令show ip ospf database asbr-summary可以查看 ASBR 汇总 LSA 的信息。这里要注意的是,其中目的地是一个主机地址,并且掩码是 0(通过 ASBR 汇总 LSA 通告的目的地将总是一个主机地址,因为它是一条到达一台路由器的路由)。
如下图所示,ASBR 发送一个 1 类 LSA,并设置 E 位(外部位),指出发送方为 ASBR。1 类 LSA 被限定在区域内。然而,当 ABR(在路由器 LSA 中用边界[B]位标识)收到该 LSA 后,它会创建一个 4 类 LSA,并将其扩散到骨干区域(Area 0)。其他 ABR 将重新生成一个 4 类 LSA,并将其扩散到自己的区域中。
4 类:ASBR 汇总 LSA
(5)自治系统外部LSA(Autonomous system external LSA)
5 类 LSA 描述了前往 OSPF 自治系统外的网络的路由(也包括 OSPF 自治系统外部的缺省路由),它由 ASBR 发送并被扩散到整个 AS(如下图所示)。
5 类 LSA 是链路状态数据库中唯一不与具体的区域相关联的 LSA 通告(即 O E1 和 O E2 路由不属于某个 Area,是独立的)。5 类 LSA 通告将在整个自治系统中进行泛洪扩散。其链路状态 ID 为外部网络的网络号。使用命令show ip ospf database external可以查看 5 类 LSA 的信息。
5 类:自治系统外部 LSA
鉴于其扩散范围,如果采用默认设置,即不进行路由汇总,外部 LSA 也可能导致问题,这取决于外部网络数。网络管理员应在ASBR上对外部网络块进行汇总,以缓解扩散问题。
关于 E1 和 E2 外部路由:
E1:对于 O E1 外部路由,开销为外部开销加上分组经过的每条链路的内部开销。多个 ASBR 将同一条外部路由通告到同一个自治系统中时,应使用这种类型,以避免次优路由;
E2(默认):O E2 路由的开销总是只包含外部开销。只有一台 ASBR 将外部路由通告到自治系统中时,使用这种类型。
如下图所示,前往外部自治系统 AS1 的路由的 E2 开销总是 1785。而 E1 开销每经过一条链路,就加了这条链路的 metric(图中链路的 metric 都是 10)。如果有多条前往外部 AS 的路径,且使用 E2 开销,则这些路径之间将没有差别。
计算 E1 和 E2 路由的开销
(6)组成员LSA(Group membership LSA)
是用在 OSPF 协议的一个增强版本――组播 OSPF 协议(MOSPF协议)中的。MOSPF 协议将数据包从一个单一的源地址转发到多个目的地,或者是一组共享 D 类组播地址的成员。
(7)NSSA 外部 LSA(NSSA External LSA)
是指在非纯末梢区域(Not-So-Stubby Area, NSSA)内始发于 ASBR 路由器的 LSA 通告。NSSA 外部 LSA 通告几乎和 5 类 LSA 通告是相同的。只是不像 5 类 LSA 通告那样在整个 OSPF 自治系统内进行泛洪扩散,NSSA 外部 LSA 通告仅仅在始发这个 NSSA 外部 LSA 通告的非纯末梢区域内部进行泛洪扩散。可以通过命令show ip ospf database nssa-external来显示 NSSA 外部 LSA 通告的信息。
(8) BGP 的外部属性 LSA(External attributes LSA for BGP)
是被提议作为运行内部 BGP 协议(iBGP 协议)的另一种选择,以便用来传送 BGP 协议的信息穿过一个 OSPF 域。这个 LSA 从来没有在大范围部署过,IOS 也不支持该 LSA。
(9 ~ 11)不透明 LSA(Opaque LSA)
是由标准的 LSA 头部后面跟随专用信息组成的一类 LSA。这个信息字段可以直接由 OSPF 协议使用,或者由其他应用分发信息到整个 OSPF 域间接使用。Opaque LSA 类型用于对 OSPF 增加可变的扩展特性,例如在 MPLS 网络中应用流量工程参数。
(9)Opaque LSA(链路本地范围):只在链路间泛洪。
(10)Opaque LSA(本地区域范围):只在本区域内泛洪。
(11)Opaque LSA(AS 范围):在整个 OSPF 域内泛洪。
(未完待续)
推荐阅读
>>>【必备干货】网工入门必会桥接教程,外网+GNS3+Vmware
网工界市场认可度极高的华为认证,你考了吗?
拿下华为HCIE认证之后,你可以:
跨越90%企业的招聘硬门槛
增加70%就业机会
拿下BAT全国TOP100大厂敲门砖
体系化得到网络技术硬实力
技术大佬年薪可达30w+