【OSPF外部路由-4类LSA(sum-asbr)和5类LSA(external)以及7类LSA(Nssa)】(OSPF的特殊区域)(外部路由选路特性)

本文详细介绍了OSPF外部路由的产生背景,包括ASBR(自治边界路由器)的角色及其生成的5类LSA(AS-externalLSA)。内容涵盖了5类LSA的传播特性以及ASBR-summaryLSA(4类LSA)的作用。通过实例分析了外部路由通过骨干区域和非骨干区域引入时的选路规则,并对比了不同引入方式下LSA类型和cost开销的影响。此外,还总结了五种LSA的比较要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、ospf外部路由产生的背景

1、背景:

2.ASBR:自治边界路由器

1)ASBR:自治边界路由器。(只要有一天ospf设备引入了外部路由,那么他就是ASBR)

其产生的LSA类型叫做AS-external LSA(自制区域外部LSA)也就是5类LSA。

2)外部引入路由的配置​ 

 二、5类LSA

1)AS-external LSA(五类LSA):由ASBR产生,描述到达AS外部的路由,该LSA会被通告到所有ospf区域(除了stub和nass区域)

2)ASBR-summary LSA(4类LSA):有ABR产生,描述到大ASBR的路由,通告给除了ASBR所在的其他区域。

3)举例

1.在r4上能看到所有类型的LSA

sum-asbr为四类LSA:描述asbr的router-id。dis ospf lsdb asbr

external为五类LSA:描述外部路由信息。dis lsdb ase

2. 默认引入外部路由是type 2,沿途开销不累加

三、外部路由选路特性

总结:

1.外部路由通过骨干区域引入

2.外部路由通过非骨干区域引入

1)场景一:外部路由通过骨干区域引入

2) 场景二:外部路由通过非骨干区域引入

四、五种LSA的比较总结


一、ospf外部路由产生的背景

1、背景:

由于网络中,不是所有的网络站点都运用ospf这个网络协议,(有其他的静态路由,或者BGP协议,有的服务器甚至未开启ospf协议),所以需要一个新的LSA类型,来描述外部的路由。

2.ASBR:自治边界路由器

1)ASBR:自治边界路由器。(只要有一天ospf设备引入了外部路由,那么他就是ASBR)

其产生的LSA类型叫做AS-external LSA(自制区域外部LSA)也就是5类LSA。

 

2)外部引入路由的配置 

 二、5类LSA

1)AS-external LSA(五类LSA):由ASBR产生,描述到达AS外部的路由,该LSA会被通告到所有ospf区域(除了stub和nass区域)

通过link state id 和network mask可以计算出网段

2)ASBR-summary LSA(4类LSA):有ABR产生,描述到大ASBR的路由,通告给除了ASBR所在的其他区域。

描述ASBR在哪
与ASBR同区域内的路由器,可以通过SPF算法定位到ASBR(靠一类LSA寻找)
但是其他区域,由于1类LSA不能跨区域传递,
所以其他区域的ospf路由器无法靠一类LSA找到ABR,于是LSA 4类出现了
它描述了ASBR的路由,通告给除了ASBR所在区域的其他相关区域

 只是定位ASBR的router-id,没有掩码信息

3)举例

1.在r4上能看到所有类型的LSA

sum-asbr为四类LSA:描述asbr的router-id。dis ospf lsdb asbr

external为五类LSA:描述外部路由信息。dis lsdb ase

 

2. 默认引入外部路由是type 2,沿途开销不累加

整个ospf区域传递,默认引入外部路由是type 2,沿途开销不累加,从引入起cost一直为1

因为cost开销值沿途不累加,所以有时会出现不准确的现象,可以通过修改外部路由的类型为1,看到cost变了,由1变为3

三、外部路由选路特性

总结:

1.外部路由通过骨干区域引入

     从骨干区域学到的LSA 1,与从ABR学来的LSA 4,比较LSA 类型,LSA 1优于LSA 4

2.外部路由通过非骨干区域引入

    从非骨干区域学到的LSA 1,与从ABR学来的LSA 4,比较cost值的大小,cost越小越优(如果cost一致,那么LSA 1依然优于LSA 4)
按照路由器接口接受方向来计算cost

1)场景一:外部路由通过骨干区域引入

从骨干区域学到的LSA 1,与从ABR学来的LSA 4,比较LSA 类型,LSA 1优于LSA 4

r1为外部路由,R2和R3之间为area 0,R2和R4之间为area 0,R3和R4之间为area 1 

现象是:r4走了r2去访问外部路由,有两种可能(一是:lsa1优先,二是:r2里r4最近)

 修改r4个g0/0/0cost值改大之后,依旧走r2,说明与cost无关

 

验证了:抵达ASBR的路径LSA 1优于LSA 4

2) 场景二:外部路由通过非骨干区域引入

从非骨干区域学到的LSA 1,与从ABR学来的LSA 4,比较cost值的大小,cost越小越优(如果cost一致,那么LSA 1依然优于LSA 4)
按照路由器接口接受方向来计算cost

r1为外部路由,R2和R3之间为area 1,R2和R4之间为area 1,R3和R4之间为area 0

现象:r4走的r2

 

把r4的g0/0/0cost改大,r4走r3了

验证了:对于抵达ASBR的路径:LSA 1与LSA 4比较开销,走开销小的

四、五种LSA的比较总结

### OSPF LSA 详解 #### LSA 的定义与作用 链状态通告 (Link State Advertisement, LSA)OSPF 协议的核心组件之一,用于在网络中传递路由信息拓扑信息[^1]。每条 LSA 包含两部分内容:LSA 头部信息(即 LSA 摘要)以及链状态描述信息。需要注意的是,并非所有的 LSA 都包含完整的链状态描述信息,某些型的 LSA 可能仅包含头部信息。 为了唯一标识一条 LSA,在 OSPF 中通过三个关键要素来区分它们: - **ADV Router**: 表示该 LSA 的产生者路由器。 - **Link-ID**: 表示该 LSA 所关联的特定网络或节点的标识符。 - **LSA 型**: 定义了该 LSA 的具体别及其用途。 #### LSA 的头部信息 LSA 的头部信息是一个固定长度的数据结构,包含了多个字段以描述该 LSA 的基本信息。这些字段通常包括但不限于以下内容: - Age: 记录 LSA 已经存在的时间,单位为秒。 - Options: 描述支持的功能项。 - Type: 标识 LSA型。 - Link-State ID: 唯一识别此 LSA 关联的具体对象。 - Advertising Router: 创建这条 LSA路由器的 Router ID。 - Sequence Number: 序列号用来判断新旧版本。 - Checksum: 提供数据完整性验证机制。 #### 不同型的 LSA 其功能 以下是常见的几种 LSA 型及其对应的特性: ##### Type-1 LSA (Router LSA) Type-1 LSA 主要由单个路由器生成并泛洪至整个区域内。它描述了本路由器与其直连邻居之间的关系,同时也列举了本地接口的状态及成本值[^3]。这种型的 LSA 对于构建区域内的 SPF 图非常重要。 ##### Type-2 LSA (Network LSA) 当某个 DR 路由器检测到多播组成员变化或者新的邻接建立时会发送 Network LSA。这消息主要用于广播或多址访问环境中,报告哪些设备属于同一个子网下。 ##### Type-3 LSA (Summary LSA) ABR 使用 Summary LSAs 向其他区域宣告来自不同区域汇总后的前缀列表。这有助于减少跨区间的通信量,同时保持必要的可达性信息。 ##### Type-4 LSA (ASBR-Summary LSA) 似于 Type-3,但是专门指向 AS 边界路由(ASBR),告知如何到达外部引入径的目的地址范围。 ##### Type-5 LSA (External LSA) 这是最重要的外部路由传播形式之一,由 ABR 或 ASBR 发布出去,向所有区域宣布关于自治系统外的目标网络的信息。 ##### Type-7 LSA (NSSA External LSA)NSSA (Not-so-stubby area)特殊场景里使用的替代方案,允许将外部路由注入而不违反 stubby rules。 --- ### 示例代码展示 LSA 结构解析逻辑 下面提供了一个简单的 Python 函数作为例子演示如何读取 JSON 文件中的模拟 LSA 数据并打印相关信息: ```python import json def parse_lsa(json_file): with open(json_file, 'r') as file: data = json.load(file) adv_router = data.get('adv_router', None) link_id = data.get('link_id', None) lsa_type = data.get('lsa_type', None) if not all([adv_router, link_id, lsa_type]): raise ValueError("Missing critical fields in the provided LSA.") print(f"Advertising Router: {adv_router}") print(f"Link Identifier: {link_id}") print(f"LSA Type: {lsa_type}") # Example usage parse_lsa('./example-lsa.json') ``` 上述脚本假设有一个名为 `example-lsa.json` 的文件存储着具体的 LSA 属性值。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值