IS-IS链路状态数据库

原理概述

一个OSPF链路状态数据库是若干条LSA的集合。与此相似,一个IS-IS链路状态数据库是由若干条LSP的集合。与OSPF链路状态数据库不同,IS-IS链路状态数据库有Level-1和Level-2之分。

在IS-IS协议中,每一条LSA都有一条剩余生存时间、一个序列号和一个校验和。LSP的剩余生存时间是由最大生存时间(默认1200s)开始逐渐递减的。当一条LSP的剩余生存时间递减至0时,仍然会在链路状态数据库中继续保留60s(称为ZeroAgeLifetime),然后才会被删除。LSP的始发路由器会周期性地刷新LSP,刷新时间间隔为900s减去不超过25%的随机量。

LSP的序列号是一个32bit的整数,初始值为1,每次刷新时都会递增1。与OSPF中的LSA一样,同一条LSP,其序列号越大,表示该LSP越新,路由器总是将最新的LSP放入其链路状态数据库中。如果序列号递增至最大值时,则无法被继续刷新,但其剩余生存时间会递减至0,然后会被从链路状态数据库中删除。

LSP的校验和用于检验LSP是否在传输过程中受到损坏。当路由器收到一条包含错误的校验和的LSP时,会将其直接丢弃。

实验目的

理解IS-IS链路状态数据库的内容

掌握查看IS-IS链路状态数据库的方法

实验内容

实验拓扑如图所示。本实验模拟了一个简单的企业网络场景,Level-1路由器R1和Level-1-2路由器R2为公司部门A的网络设备,Level-2路由器R3为公司的骨干路由器。整个网络都运行IS-IS协议,R1和R2属于IS-IS区域10,R3属于IS-IS区域20,R1的Loopback 0接口模拟了部门A的内部网络,R3的Loopback 0接口模拟了公司服务器所在的网络。实验内容的重点是观察和分析R1、R2、R3上的IS-IS链路状态数据库。

实验拓扑

1.基本配置

根据拓扑图进行相应的基本配置,并使用Ping命令检测R1与R2之间的连通性。 

 R2和R3的连通性测试过程在此省略。

2.配置IS-IS路由协议

在R1、R2、R3上配置IS-IS路由协议,其中R1为Level-1路由器,R2为Level-1-2路由器,R3为Level-2路由器。

[r1]isis
[r1-isis-1]is-level level-1
[r1-isis-1]is-name r1
[r1-isis-1]network-entity 10.0000.0000.0001.00
[r1-isis-1]interface loopback 0
[r1-LoopBack0]isis enable
[r1-LoopBack0]int g0/0/0
[r1-GigabitEthernet0/0/0]isis enable


 

[r2]isis
[r2-isis-1]is-level level-1-2
[r2-isis-1]is-name r2
[r2-isis-1]network-entity 10.0000.0000.0002.00
[r2-isis-1]int g0/0/0
[r2-GigabitEthernet0/0/0]isis enable
[r2-GigabitEthernet0/0/0]isis circuit-level level-1
[r2-GigabitEthernet0/0/0]int g0/0/1
[r2-GigabitEthernet0/0/1]isis enable
[r2-GigabitEthernet0/0/1]isis circuit-level level-2

[r3]isis
[r3-isis-1]is-name r3
[r3-isis-1]is-level level-2
[r3-isis-1]network-entity 20.0000.0000.0003.00
[r3-isis-1]int g0/0/1
[r3-GigabitEthernet0/0/1]isis enable
[r3-GigabitEthernet0/0/1]int loopback 0
[r3-LoopBack0]isis enable

 配置完成后,在R2上查看IS-IS邻居信息。

可以看到,R2与R1建立了Level-1邻接关系,与R3建立了Level-2邻接关系。

在R1上以10.0.1.1为源,使用ping命令测试10.0.3.3之间的连通性。

 可以看到,部门A的内部网络与服务器所在网络之间的通信是正常的,全网实现了互通。

3.查看Level-1路由器的链路状态数据库

 在Level-1路由器R1上查看IS-IS链路状态数据库。

可以观察到,链路状态数据库中包含了3条LSP,以及相应的LSP ID、序列号(Seq Num)、校验和(Checksum)、生存时间(Holdtime)、长度(Length)等属性。因为R1是Level-1路由器,所以它只为Level-1维护了一个链路状态数据库。第一条LSP的LSP是Level-1路由器,所以它只为Level-1维护了一个链路状态数据库。第一条LSP的LSP ID为R1.00-00*,R1.00-00*中的R1为动态主机名。如果没有配置动态主机名时,相应的位置就是系统ID。R1.00-00*中前面的00是伪节点标识,00表示此LSP是由真实节点而非伪节点生成的。R1.00-00*中后面的00为分片号,当LSP的长度太长时,LSP会被分片,分片号的作用是为了重组被分片的LSP。R1.00-00*中的“*”表示此LSP是于本地生成的

在R1上使用display isis lsdb verbose命令查看IS-IS链路状态数据库的详细信息。

可以看到,第一条LSP是本地生成的,LSP ID中包含了系统ID,系统是一个真实节点而非伪节点。Source为动态主机名附伪节点标识,Host Name为动态主机名,NLP ID为该LSP所支持的网络协议,此处为IPv4,表明此LSP工作在Ipv4网络中,Area Address为该LSP的区域地址(即区域ID),此处为10。INTF Addr为接口地址,描述了生成此LSP的路由器所拥有的接口的IP地址,此处为10.0.1.1和10.0.12.1。NBR ID为邻居的系统ID附伪节点标识,Cost为去往邻居的开销值。IP-Internal为区域内IP路由信息,描述网络前缀和掩码,以及Cost信息。需要注意的是,第三条LSP是伪节点产生的。

4.查看Level-1-2路由器的链路状态数据库

在Level-1-1路由器R2上查看IS-IS链路状态数据库。

可以看到,R2为 Level-1和 Level-2分别维护了一份链路状态数据库,另外,其中的 Level-1链路状态数据库中的 LSP 条目与 Level-1路由器R1的链路状态数据库中的 LSP 条目完全相同,这表明 Level-1链路状态数据库在R1和R2上完成了同步。
在R2上使用命令 display isis lsdb level-1 verbose 查看 Level-1链路状态数据库的详细信息。

观察发现,在R2的 Level-1链路状态数据库中,除了用于标识本地生成的 LSP 的"*"之外,内容上与R1的 Level-1链路状态数据库完全相同。
在R2上使用命令 display isis lsdb level-2 verbose 查看 Level-2链路状态数据库的详细信息。  

观察发现,在 Level-2链路状态数据库中, LSP 的格式与在 Level-1链路状态数据库中并没有区别。 Level-1链路状态数据库与 Level-2链路状态数据库的最主要区别在于:Level-1链路状态数据库中的 LSP 的区域 ID 彼此都相同,而 Level-2链路状态数据库中的 LSP 的区域 ID 彼此可以不同。


5.查看 Level-2路由器的链路状态数据库

在 Level-2路由器R3上查看 IS-IS 链路状态数据库。 

可以看到,Level-2路由器R3为Level-2维护了一份链路状态数据库,其中的LSP条目与R2中的Level-2链路状态数据库中的LSP条目相同。

在R3上查看IS-IS链路状态数据库的详细信息。

可以看到,R3的Level-2链路状态数据库与R2的Level-2链路状态数据库完全相同。

 

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

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

相关文章

safetensors介绍

1 介绍 safetensors 是 Huggingface 推出的一种可靠、易移植的机器学习模型存储格式,用于安全地存储 Tensor,而且速度很快(零拷贝)。 safetensors 格式结构: 8 bytes:一个无符号的整数,表示…

Dubbo源码及总结

Springboot整合Dubbo启动解析Bean定义 根据springboot启动原理,会先把启动类下的所有类先进行解析bean定义,所以要先EnableDubbo这个注解,再根据这个注解里面的注解,可以知道import的两个类DubboComponentScanRegistrar和DubboCo…

输入一串字符,输入想要字符串前*的个数n,判断字符串前*的个数是大于n还是小于n,如果大于n则删除多余的*其它保持不变,如果小于n,则字符串也保持不变

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void fun(char* a, int n) {int i 0, j 0, m 0,b0,c0;char* p;p a;//第一步&#xff0c;判断字母前面有多少个*while (p[i] *){j;}printf("字母前*的个数%d\n",j);//求总的字符串长度while (a[m] !…

【全开源】沃德商协会管理系统源码(FastAdmin+ThinkPHP+Uniapp)

一款基于FastAdminThinkPHPUniapp开发的商协会系统&#xff0c;新一代数字化商协会运营管理系统&#xff0c;以“智慧化会员体系、智敏化内容运营、智能化活动构建”三大板块为基点&#xff0c;实施功能全场景覆盖&#xff0c;一站式解决商协会需求壁垒&#xff0c;有效快速建立…

护眼小贴士:学生如何正确使用台灯?

随着电子设备的普及和长时间的用眼&#xff0c;长时间盯着屏幕或学习&#xff0c;眼睛需要不断调节焦距&#xff0c;导致眼睛肌肉疲劳&#xff0c;进而引发视力下降。这种现象在年轻一代甚至青少年中尤为普遍&#xff0c;这种疲劳状态不仅影响眼睛的舒适度&#xff0c;还会导致…

从《红楼梦》的视角看大模型知识库 RAG 服务的 Rerank 调优

背景介绍 在之前的文章 有道 QAnything 源码解读 中介绍了有道 RAG 的一个主要亮点在于对 Rerank 机制的重视。 从目前来看&#xff0c;Rerank 确实逐渐成为 RAG 的一个重要模块&#xff0c;在这篇文章中就希望能讲清楚为什么 RAG 服务需要 Rerank 机制&#xff0c;以及如何选…

Redisson-分布式锁单Redis节点模式

Redisson-分布式锁单Redis节点模式 为什么要用分布式锁&#xff1f; 使用分布式锁的主要目的是为了解决多线程或多进程并发访问共享资源时可能出现的竞争条件和数据一致性问题。举一些实际场㬌&#xff1a; 数据库并发控制&#xff1a;在分布式系统中&#xff0c;多个节点同…

从0开始实现一个博客系统 (SSM 实现)

相关技术 Spring Spring Boot Spring MVC MyBatis Html Css JS 实现功能 用户注册 - 密码加盐加密 (md5 加密)前后端用户信息存储 - 令牌技术用户登录 - (使用 拦截器 做登录校验)博客的增删改查后端数据返回前端, 采用 SpringBoot 做统一功能处理和统一异常处理 数据…

软考-程序员 知识点与部分真题梳理

软考-程序员 知识点与部分真题梳理 参照《程序员教程》第五版划分类别&#xff1b; 持续更新中… 计算机系统基础知识 如何理解和处理浮点数的加减法运算 在计算机科学中&#xff0c;处理浮点数的表示和运算是基础且关键的&#xff0c;尤其是在进行科学计算、图形处理和数据分…

【网络】为什么udp协议报头有长度字段,而tcp没有

引言&#xff1a; 在网络通信中&#xff0c;UDP&#xff08;用户数据报协议&#xff09;和TCP&#xff08;传输控制协议&#xff09;是两种常用的传输层协议。它们在设计和功能上有一些不同之处&#xff0c;其中之一就是报头中的长度字段。本文将深入探讨UDP和TCP协议中长度字…

SpringCloud Alibaba详解:打造高可用的分布式系统

SpringCloud Alibaba是一个基于Spring Cloud的微服务开发框架&#xff0c;它集成了阿里巴巴的一系列中间件和工具&#xff0c;能够快速构建高可用的分布式系统。在本文中&#xff0c;将详细介绍如何使用SpringCloud Alibaba来打造高可用的分布式系统&#xff0c;并通过代码案例…

第十一课,end关键字、简单while循环嵌套、初识for循环

一&#xff0c;end关键字 end关键字用于在print输出的内容后面声明结束的字符&#xff0c;我们之前学过并且十分了解print是默认输出内容之后跟着换行的&#xff0c;如果我们不希望换行而希望使用其它字符来代替换行&#xff0c;就可以用end关键字来实现 特殊的&#xff0c;en…

Redis机制-Redis缓存穿透,击穿,雪崩理解等问题的理解和学习

目录 一 缓存穿透问题 二 缓存击穿问题 三 缓存雪崩问题&#xff1a; 图1 正常的Redis缓存流程 一 缓存穿透问题 我们都知道Redis是一个存储键值对的非关系型数据库&#xff0c;那么当用户进行查询的时候&#xff0c;势必会从前端发起请求&#xff0c;从而数据从Redis缓存…

内网穿透--Frp-简易型(速成)-上线

免责声明:本文仅做技术交流与学习... 目录 frp项目介绍: 一图通解: ​编辑 1-下载frp 2-服务端(server)开启frp口 3-kali客户端(client)连接frp服务器 4-kali生成马子 5-kali监听 6-马子执行-->成功上线 frp项目介绍: GitHub - fatedier/frp: A fast reverse proxy…

论文精读-SwinIR Image Restoration Using Swin Transformer

论文精读-SwinIR: Image Restoration Using Swin Transformer SwinIR:使用 Swin Transformer进行图像恢复 参数量&#xff1a;SR 11.8M、JPEG压缩伪影 11.5M、去噪 12.0M 优点&#xff1a;1、提出了新的网络结构。它采用分块设计。包括浅层特征提取&#xff1a;cnn提取&#…

Verilog实战学习到RiscV - 1 : Yosys 综合

Yosys 综合 实例 一般 FPGA IDE 的第一步都是RTL 综合&#xff08;Synthesis&#xff09;。之后就能看到数字电路图了。然后可以做RTL 级的仿真模拟。 直接上代码&#xff0c;这里我们看一个简单的加法器来学习。 module adder(input [7:0] a,input [7:0] b, input …

Java延时队列取消未支付的订单 之 重启服务任务丢失

一、定义延迟任务类 package com.activity.domain;import java.util.concurrent.Delayed; import java.util.concurrent.TimeUnit;/*** 延迟任务类*/ public class DelayedCancellation implements Delayed {private String order;private final long delayTime; // 延迟时间p…

智能体之斯坦福AI小镇(Generative Agents: Interactive Simulacra of Human Behavior)

相关代码地址见文末 论文地址&#xff1a;Generative Agents: Interactive Simulacra of Human Behavior | Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology 1.概述 论文提出了一种多个智能体进行协同&#xff0c;进而模拟可信的人…

Linux系统下Mysql忘记密码怎么解决

一、对Mysql配置文件进行设置 1、找到/etc/mysql/my.cnf路径下&#xff0c;用Vi命令编辑my.cnf配置文件&#xff0c;命令如下&#xff1a; # 以管理员身份登录 sudo su # 输入管理员密码 # 登录成功后&#xff0c;找到Mysql的配置文件-->Mysql配置文件默认在此 cd /etc/my…

善用KEGG数据库挖掘目的基因

有关KEGG的分析在很多已发表的论文中都十分常见&#xff0c;涉及到的方向也很广泛&#xff0c;比如&#xff1a;代谢组、表观组、转录组等等。通常得到相关的基因集或者代谢物后&#xff0c;我们都希望能够快速了解它们的蛋白功能和涉及的调控机制&#xff0c;从而进一步锁定接…