OSPF-1类Router LSA学习

news2024/9/19 10:30:42

前面我们又复习了一遍OSPF概述,在OSPF建立关系后有几种交互报文,通过LSU类型报文包含LSA信息实现路由信息传递,常见了1、2、3、4、5、7类LSA,分别对应不同功能使用。这里先看下1类LSA-Router LSA。

一、LSA概述

LSA,全称为Link State Advertisement,即链路状态通告,是OSPF(Open Shortest Path First)路由协议中的一个关键组成部分。

LSA记录了OSPF路由器所了解到的网络拓扑信息,包括连接的网络设备、路由器之间的连接信息、链路状态、度量值等。在OSPF协议中,网络被划分成了不同的区域,每个区域内部的路由器会收集各自所连接的网络的信息,并将这些信息记录在LSA中。当一个OSPF路由器收到其他路由器发送的LSA时,会通过比较这些LSA来计算最短路径,从而确定数据包的传输路径。

LSA类似于一条数据记录或者说原材料,然后路由器将这些LSA存放在LSDB数据库里面,正常情况下区域内的LSDB保持一致,然后路由器根据这些LSA通过SPF算法计算到达各个目的网络的路径,这样子保证区域内无环路。

LSDB
LSDB

LSA是OSPF进行路由计算的关键依据。OSPF的LSU报文可以携带多种不同类型的LSA。各种类型的LSA拥有相同的报文头部。

LSA 相关字段说明:

  1. LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,单位是秒。
  2. Options(可选项):每一个bit都对应了OSPF所支持的某种特性。
  3. LS Type(链路状态类型):指示本LSA的类型。
  4. Link State ID(链路状态ID):不同的LSA,对该字段的定义不同。
  5. Advertising Router(通告路由器):产生该LSA的路由器的Router ID。
  6. LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加。LS Checksum(校验和):用于保证数据的完整性和准确性。判断新旧,越大越新。
  7. Length:是一个包含LSA头部在内的LSA的总长度值。

链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。

链路状态老化时间 、链路状态序列号 、校验和用于判断LSA的新旧。

二、Router LSA(1类LSA)详解

2.1 报文结构

Router LSA(1类LSA):每台OSPF路由器都会产生。它描述了该路由器直连接口的信息。Router LSA只能在所属的区域内泛洪。

1类LSA
1类LSA
  • Router LSA使用Link来承载路由器直连接口的信息。
  • 每条Link均包含“链路类型”、“链路ID”、“链路数据”以及“度量值”这几个关键信息。
  • 路由器可能会采用一个或者多个Link来描述某个接口。
Link描述
Link描述
Link TypeLink IDLink Data
Point-to-Point(P2P):描述一个从本路由器到邻居路由器之间的点到点链路,属于拓扑信息邻居路由器的Router ID宣告该Router LSA的路由器接口的IP地址
TransNet:描述一个从本路由器到一个Transit网段(例如MA或者NBMA网段)的连接,属于拓扑信息DR的接口IP地址宣告该Router LSA的路由器接口的IP地址
StubNet:描述一个从本路由器到一个Stub网段(例如Loopback接口)的连接,属于网段信息宣告该Router LSA的路由器接口的网络IP地址该Stub网络的网络掩码

报文抓包:

报文示例
报文示例
区域内LSDB同步
区域内LSDB同步

2.2 LSA描述的链路类型

关系说明:OSPF LSU报文-->LSA(1、2、3、5、7)-->一条LSA可以多条链路的描述-->描述的类型有(P2P、TransNet、StubNet)

Router LSA描述P2P网络: PTP类型 如图所示:这是一条Router LSA,LS id 为10.0.1.1,发布者是10.0.1.1;里面包含两条link描述,第一条的Link Type类型为P2P,因此这里的Link ID是对端的路由器ID,data就是自身的接口IP;第二个link类似为stubnet,描述一个从本路由器到一个Stub网段(例如Loopback接口)的连接,属于网段信息,因此这里link id 是接口的网段,data是掩码,说明这个接口的所属网段为10.0.13.0/24。

Router LSA描述TransNet:

TransNet 描述一个从本路由器到一个Transit网段(例如MA或者NBMA网段)的连接,属于拓扑信息。这里link id 表示DR地址,data表示DR发送接口的IP地址。

正常情况下OSPF描述网络需要拓扑信息和网段信息,能够知道对端是什么地址?DR是谁?连接网段和掩码是多少?

2.3 LSA的产生形成

OSPF是有自己产生LSA进行通告和学习其它邻居发布的LSA组成LSDB,然后进行计算最优路径的。

以下图为例: 图例

# 检查OSPF状态
[AR1]dis ospf peer brief 

	 OSPF Process 1 with Router ID 10.0.0.1
		  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/0             10.0.0.2         Full        
 ----------------------------------------------------------------------------
[AR1]dis ospf peer 

	 OSPF Process 1 with Router ID 10.0.0.1
		 Neighbors 

 Area 0.0.0.0 interface 10.0.0.1(GigabitEthernet0/0/0)'s neighbors
 Router ID: 10.0.0.2         Address: 10.0.0.2        
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 10.0.0.1  BDR: 10.0.0.2  MTU: 0    
   Dead timer due in 40  sec 
   Retrans timer interval: 5 
   Neighbor is up for 05:15:57     
   Authentication Sequence: [ 0 ] 

# AR2
[AR2]DIS OSPF PEER brief 

	 OSPF Process 1 with Router ID 10.0.0.2
		  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/0             10.0.0.1         Full        
 ----------------------------------------------------------------------------
[AR2]DIS OSPF PEER 

	 OSPF Process 1 with Router ID 10.0.0.2
		 Neighbors 

 Area 0.0.0.0 interface 10.0.0.2(GigabitEthernet0/0/0)'s neighbors
 Router ID: 10.0.0.1         Address: 10.0.0.1        
   State: Full  Mode:Nbr is  Slave  Priority: 1
   DR: 10.0.0.1  BDR: 10.0.0.2  MTU: 0    
   Dead timer due in 35  sec 
   Retrans timer interval: 5 
   Neighbor is up for 05:17:18     
   Authentication Sequence: [ 0 ] 

# 从上面知道邻居已经建立,DR是10.0.0.1,BDR是10.0.0.2

AR1的LSA信息:

# 查看LSDB数据库
[AR1]dis ospf lsdb 

	 OSPF Process 1 with Router ID 10.0.0.1
		 Link State Database 

		         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    10.0.0.2        10.0.0.2          1281  48    8000000E       1
 Router    10.0.0.1        10.0.0.1          1278  48    80000010       1
 Network   10.0.0.1        10.0.0.1          1278  32    8000000C       0

# 先看一类LSA,能够发现有两条一类LSA,然后通告者分别是10.0.0.1和10.0.0.2。
Router LSA信息
Router LSA信息

AR2的LSA信息:

[AR2]dis ospf lsdb router 

	 OSPF Process 1 with Router ID 10.0.0.2
		         Area: 0.0.0.0
		 Link State Database 


  Type      : Router
  Ls id     : 10.0.0.2
  Adv rtr   : 10.0.0.2  
  Ls age    : 1698 
  Len       : 48 
  Options   :  E  
  seq#      : 8000000e 
  chksum    : 0x2920
  Link count: 2
   * Link ID: 10.0.0.1     
     Data   : 10.0.0.2     
     Link Type: TransNet     
     Metric : 1
   * Link ID: 172.16.0.1   
     Data   : 255.255.255.255 
     Link Type: StubNet      
     Metric : 0 
     Priority : Medium

  Type      : Router
  Ls id     : 10.0.0.1
  Adv rtr   : 10.0.0.1  
  Ls age    : 1697 
  Len       : 48 
  Options   :  E  
  seq#      : 80000010 
  chksum    : 0xa5f6
  Link count: 2
   * Link ID: 10.0.0.1     
     Data   : 10.0.0.1     
     Link Type: TransNet     
     Metric : 1
   * Link ID: 192.168.1.1  
     Data   : 255.255.255.255 
     Link Type: StubNet      
     Metric : 0 
     Priority : Medium

从上面信息我们能够知道有AR1和AR2两个路由器,AR1是DR,连接了一个192.168.1.0网段,AR2与AR1相连,角色是BDR,连接了一个172.16.0.0网段,简单说就是transnet和p2p描述了网络拓扑,然后stubnet描述连接的网段信息构成整个完整网络。当然这里我们只学习了Router LSA,只能在区域内Area0内通告泛洪。

总结:OSPF邻接关系完成后通过LSU请求报文和学习路由信息,每个路由器会通告自己的拓扑信息和网段信息保存在区域内的LSDB,一般区域内的LSDB数据库是一致的,然后路由器根据这个LSDB进行路由计算保证区域内无环路,Router LSA头部相同,可以携带多条link链路信息,只能在区域内进行泛洪通告。

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1533436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode中断无法识别npm的命令解决方案

在cmd中可以正常执行npm -v等指令,但是在vs code终端中,无法执行npm -v,node -v等指令 出现报错: 解决办法: 方法一:【右键单击Vscode】以【管理员身份运行】,【重启Vscode】(这种办法每次打开都用管理员身份比较麻烦…

【实例】React 组件传值方法: Props、回调函数、Context、路由传参

React原始传值方法 借用状态管理库的传值见下篇文:MobX 和 Redux 【实例】React 状态管理库 MobX Redux 入门及对比 文章目录 React原始传值方法父组件->子组件 props子组件->父组件 回调函数Context路由传值 父组件->子组件 props 父组件可以通过属性&a…

字符串筛选排序 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 输入一个由n个大小写字母组成的字符串, 按照 ASCII 码值从小到大的排序规则,查找字符串中第 k 个最小ASCII 码值的字母(k>=1) , 输出该字母所在字符串的位置索引(字符串的第一个字符位置索引为0) 。…

电源配小了,是不是容易烧?是的!

电源小的话会不会容易烧毁? 是的。 功率电压*电流。 随着功率增大,电压不变,电流增大,发热量增大,可能会烧毁。 今天给大家推荐一款650w的电脑电源,不过在推荐之前,首先要确认自己的电脑功耗…

OpenCV4.9.0在Android 开发简介

查看:OpenCV系列文章目录(持续更新中......) 上一篇:使用 Clojure 进行 OpenCV 开发简介 下一篇:暂无 引言: OpenCV是一个跨平台计算机视觉库,广泛用于图像处理、计算机视觉和机器学习等领域…

【翻译】Attentive Pooling Networks

摘要: 在这项工作中,我们提出了注意力池化(AP),一种用于判别模型训练的双向注意力机制。在使用神经网络进行成对排序或分类的背景下,AP使得池化层能够意识到当前的输入对,使得两个输入项的信息…

AI系统性学习03—ChatGPT开发教程

文章目录 1、OpenAI关键概念⭐️2、OpenAI SDK介绍3、OpenAI API KEY&API 认证3.1 REST API安全认证 4、OpenAI模型⭐️4.1 模型分类4.2 GPT44.3 GPT-3.54.4 Embeddings 5、OpenAI快速入门6、Function calling(函数调用)⭐️⭐️⭐️6.1 应用场景6.2 支持function calling的…

稀碎从零算法笔记Day23-LeetCode:相同的树

题型:二叉树的遍历、链表 链接:100. 相同的树 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,…

ERP系统在企业管理中的重要作用

效率和盈利能力是企业在商业领域取得成功的两大关键要素。企业希望以尽可能高效的方式执行必要的、有利可图的业务流程,但又需要在保持最低运营成本的同时最大化企业的底线利润。要实现这种高效和高盈利的水平,企业需要扩展其业务流程管理策略&#xff0…

python网络爬虫实战教学——urllib的使用(3)

文章目录 专栏导读1、urlsplit2、urlunsplit3、urljoin4、urlencode 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》,本专栏针对大学生、…

三级数据库技术考点(详解!!)

1、 答疑:【解析】分布式数据库系统按不同层次提供的分布透明性有:分片透明性;②位置透明性;③局部映像透明性,位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需 要考虑数据分片情况,不需要了解各分片在各个场地的分配情…

CMake学习(上)

1. CMake概述 CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt …

关于Rust的项目结构的笔记

层级 PackageCrateModulePath Package cargo的特性, 构建、测试、共享Crate 组成: 一个 Cargo.toml 文件, 描述了如何构建这些 Crates至少包含一个 crate最多只能包含一个 library crate可以包含任意个 binary crate cargo new demo-pro 会产生一个名为 demo-pro 的 Packa…

蓝桥杯-礼物-二分查找

题目 思路 --刚开始想到暴力尝试的方法,但是N太大了,第一个测试点都超时。题目中说前k个石头的和还有后k个石头的和要小于s,在这里要能想到开一个数组来求前n个石头的总重,然后求前k个的直接将sum[i]-sum[i-k-1]就行了&#xff0…

Vue+SpringBoot打造快乐贩卖馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 搞笑视频模块2.3 视频收藏模块2.4 视频评分模块2.5 视频交易模块2.6 视频好友模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 搞笑视频表3.2.2 视频收藏表3.2.3 视频评分表3.2.4 视频交易表 四、系…

蓝桥杯-python-递归

递归&#xff1a;通过自我调用解决问题的函数 注意&#xff1a; #1.递归出口 #2.当前问题如何变成子问题 例子&#xff1a;利用递归写一个阶乘函数&#xff0c;F(n),求n的阶乘 def f(n):if n < 1:return 1ans n * f(n-1)return ans print(f(5)) 例子&#xff1a;汉诺塔…

大数据Doris(六十九):项目线上表现

文章目录 项目线上表现 一、查询响应时间

【Linux第三课-基础开发工具的使用】yum、vim、gcc/g++编译器、gdb、Make/Makefile编写、进度条程序、git命令行简单操作

目录 yum - 软件包管理器快速认识yum快速使用yumyum搜索yum安装yum卸载 yum的周边 - yum的整个生态问题 vim快速介绍vimvim的模式命令模式插入模式低行模式 常见模式 -- 命令、低行命令模式 -- 光标的移动命令模式 -- 复制粘贴、剪贴、删除命令模式 -- 小写/大写替换模式命令模…

个人开发App成功上架手机应用市场的关键步骤

目录 1. 苹果审核和APP备案 2. APP上架操作步骤 3. 审核和发布 4. 上线工作 总结 参考资料 在当前移动应用市场竞争激烈的背景下&#xff0c;个人开发App如何成功上架成为开发者们必须面对的重要任务。本文将重点介绍自建App上架至手机应用市场的流程&#xff0c;包括苹果…

Linux离线安装Docker-Oracle_11g

拉取oracle11g镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g创建11g容器 docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g查看容器是否创建成功 docker ps -a导出oracle容器&#xff0c;查看…