HCIP笔记4--OSPF域内路由计算

embedded/2025/1/22 18:13:51/

1. 域内LSA

1.1 一类LSA

一类LSA: 路由器直连状态,Router LSA。

串口需要两端配置好IP,才会产生一类LSA; 以太网口只需要一端配置了IP就会直接产生一类LSA。

在这里插入图片描述

LSA通用头部

  • Type: Router 直连路由
  • LS id: 12.1.1.1 路由器router id
  • Adv rtr: 12.1.1.1 通告的路由器,就是产生这条LSA的路由器的router id

上面这三条构成了一条LSA的唯一标识信息。
通用头部的其他部分不再赘述。

直连网络的一类LSA

  • Link Type: stubnet 叶子区域
  • Link ID: 12.1.1.0 直连的网络
  • Data: 255.255.255.0 子网掩码
  • Metric: 1 开销值

P2P邻居的一类LSA

  • Link Type: P2P
  • Link ID: 2.2.2.2 邻居路由器的router-id
  • Data: 12.1.1.1 与邻居路由器连接的接口IP
  • Metric: 1562 本路由器到达邻居的开销值

广播邻居的一类LSA

  • Link Type: Transnet
  • Link ID: 192.168.1.4 用于描述伪节点信息,使用DR的接口IP
  • Data: 192.168.1.2 自身连接伪节点的接口IP
  • Metric 1 本路由器到达伪节点开销

在这里插入图片描述
OSPF中P2P的域内路由计算:
(1)以自身为中心划出连接的树干信息
(2)再对非自身的树干划其他的树干信息
(3)补充各个树干的叶子信息
(4)对重复的叶子计算它的路径开销

查看路由器上的LSA信息

dis ospf lsdb

在这里插入图片描述
查看一类LSA

dis ospf lsdb router 1.1.1.1
dis ospf lsdb router 2.2.2.2

在这里插入图片描述
在这里插入图片描述
根据上面两条LSA就可以画出网络拓扑图了
在这里插入图片描述
路由器1形成三条ospf的拓扑
在这里插入图片描述
最终加表的只有2.2.2.2/32 48这条路由。
在这里插入图片描述

1.2 二类LSA

在这里插入图片描述

  • Attacheced Router: 伪节点直连的(树干)网络
  • LS id: 192.168.1.2 # DR接口的IP地址
  • Network mask: 255.255.255.0 #子网掩码

二类LSA不仅描述树干信息(Attached Router),还描述叶子信息(LS id + NetMask)。

在这里插入图片描述

在广播网络中,会产生一个伪节点来计算SPF;伪节点使用DR的接口IP。

根据上面的图就可以划出相应的拓扑信息。

在这里插入图片描述
最终添加到路由表项中的路由为
在这里插入图片描述

3. 总结

ospf路由器计算路由的流程

(1) 把根节点 R R R放入堆中
(2) 每次从堆中取出离树根最近的节点 n e a r near near,取出 n e a r near near的所有直连树干节点 m i m_i mi,将它的权值更新为 n e a r . w e i g h + w e i g h [ n e a r ] [ m i ] near.weigh+weigh[near][m_i] near.weigh+weigh[near][mi]; 将这个新生成的节点 M i M_i Mi放入堆中;最后丢弃节点 n e a r near near
(3) 重复过程2直到堆中没有节点
(4) 添加上相关的叶子,删除更远的。

其实就是Dijstra算法。

例子:
在这里插入图片描述
最终划出来的拓扑图:
在这里插入图片描述
对应的osfp路由表项:
在这里插入图片描述


http://www.ppmy.cn/embedded/156118.html

相关文章

Java高频面试之SE-15

hello啊,各位观众姥爷们!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶 String 怎么转成 Integer 的?它的原理是? 在 Java 中,要将 String 转换为 Integer 类型,可…

centos9编译安装opensips 二【进阶篇-定制目录+模块】推荐

环境:centos9 last opensips -V version: opensips 3.6.0-dev (x86_64/linux) flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, CC_O0, FAST_LOCK-ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS1024, MAX_RE…

Linux使用SSH连接GitHub指南

基础配置流程 步骤1:生成SSH密钥 打开终端:首先,打开你的Linux终端。 生成SSH密钥对:输入以下命令来生成一个新的SSH密钥对: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"-t rsa:使用RSA加密算法生成密钥。-b 4096:密钥长度为4096位,增加安全性。…

Chrome 132 版本新特性

Chrome 132 版本新特性 一、Chrome 132 版本浏览器更新 1. 在 iOS 上使用 Google Lens 搜索 在 Chrome 132 版本中,开始在所有平台上推出这一功能。 1.1. 更新版本: Chrome 126 在 ChromeOS、Linux、Mac、Windows 上:在 1% 的稳定版用户…

View Shadcn UI 2025.1.2 发布公告:全新跑马灯组件与多项优化更新

亲爱的开发者们: 我们很高兴地宣布 View Shadcn UI 2025.1.2 版本正式发布!本次更新带来了全新的跑马灯组件,并对多个现有组件进行了功能增强和问题修复。 🚀 重要链接 GitHub 仓库:https://github.com/devlive-comm…

连接 OpenAI 模型:基础操作

在这一部分中,我们将介绍如何连接 OpenAI 模型,设置 API 密钥,并使用 Spring AI 的 ChatClient 与 OpenAI 模型进行简单的对话。Spring AI 为集成 OpenAI 模型提供了方便的工具,使得开发者能够更轻松地与 GPT 系列模型进行交互。 …

常见Arthas命令与实践

Arthas 官网:https://arthas.aliyun.com/doc/,官方文档对 Arthas 的每个命令都做出了介绍和解释,并且还有在线教程,方便学习和熟悉命令。 Arthas Idea 的 IDEA 插件。 这是一款能快速生成 Arthas命令的插件,可快速生成…

kotlin的协程的基础概念

Kotlin的协程是一种用于简化异步编程的强大工具。 理解协程的基础概念可以帮助开发者有效地利用其能力。 以下是Kotlin协程的一些关键基础概念: 协程(Coroutines) : 协程是一种用于处理并发任务的编程模型,它可以在单…