当前位置: 首页 > news >正文

IS-IS协议

IS-IS协议介绍

IS-IS(Intermediate System to Intermediate System)协议是一种链路状态的内部网关协议(IGP),用于在同一个自治系统(Autonomous System, AS)内部的路由器之间交换路由信息。IS-IS协议是ISO(国际标准化组织)为实现其OSI(开放系统互联)模型而设计的,但它也被广泛用于IP网络中。百度百科:中间系统到中间系统协议

概述

IGP协议:链路状态协议,优先级15,度量值cost(与带宽有关)默认是10,可以修改。

工作在数据链路层

level 1组播MAC:0180-C2000-0014

level2主播MAC:0180-C2000-0015

工作原理

IS-IS的工作原理是基于链路状态协议(Link-State Protocol)与OSPF相似。

1、路由器角色和链路状态数据库(LSDB)

每个路由器在IS-IS中称为“中间系统”(Intermediate System,简称IS)

每个路由器维护一个链路状态数据库(LSDB),其中存储该路由器与其他路由器之间的链路状态信息。LSDB的内容主要包括网络中各路由器的连接状态。

2、Hello协议与邻居发现

1、路由器发送Hello报文来发现邻居路由器。这些Hello报文通过网络中相邻的路由器进行交换,来建立邻居。

每个IS-IS路由器都会定期发送Hello报文,通过这些报文来确认自己与邻居的连接是否正常,以及交换相关的配置参数,比如网络类型,hello时间间隔等等。

3、链路状态信息的传播

1、一旦邻接关系建立,每个路由器与邻居之间的链路信息(包括链路状态、带宽、延迟等)通过链路状态通告(LSA)传递给邻居。LSA是一种包含链路状态的控制报文,路由器通过LSA来通告网络中的其他设备他的接口和状态。

2、LSA是通过网络传播的,一旦LSA到达网络中其他路由器,所有路由器都会更新各自的LSDB。

4、SPF算法(最短路径优先)

1、路由器利用SPF算法来根据LSDB计算到达各个目标的最短路径。每个路由器都会根据自己拥有的LSDB生成一张路由表。

2、SPF算法的基本思想是基于路由器之间的链路信息计算最短路径,计算结果会被用来更新路由表,确定转发数据包的路径。

5、路由更新

当网络拓扑发生变化时,相关的LSA将会传播更新,所有路由器的LSDB将会进行更新,SPF算法将会重新计算路由表。

IS-IS协议网络实体名

介绍

在IS-IS协议中,网络中各个设备的实体通常根据他们在协议中的角色和身份来区分。

Level 1 Intermediate System (L1 IS):

L1 IS仅在单个区域内运行,负责在该区域内传播路由信息。它们不参与区域间的路由计算。
Level 2 Intermediate System (L2 IS):

L2 IS负责在不同区域之间传播路由信息,它们可以跨越多个区域进行路由计算。
Level 1-2 Intermediate System (L1-2 IS):

L1-2 IS同时具备L1和L2的功能,它们在本区域内作为L1路由器,在区域间作为L2路由器。
End System (ES):

在IS-IS协议的上下文中,ES指的是最终设备或主机,它们不是路由器,但可以是路由信息的目的或源。
Area Border Router (ABR):

ABR是连接不同IS-IS区域的路由器。在IS-IS中,ABR可以是L1-2路由器,它们在连接的区域内作为L1路由器,在区域间作为L2路由器。

路由器分类

Level-1 :区域内部路由器,维护本区域的路由信息,建立邻接关系,要求区域号必须一致
Level-2 :骨干路由器,维护自己区域和所有区域的路由信息;建立邻接关系,区域号可以相同,也可以不相同
Level 1-2 :默认类型,与OSPF的ABR类似

邻接关系建立

同一层次:只有同一层次(L1/L1,L2/L2/L1-2)的相邻路由器才有可能成为邻接
同一区域:对于Level-1路由器来说,Area ID必须一致
同一网段:链路两端IS-IS接口的地址必须处于同一网段(默认情况下)
相同的网络类型:链路两端IS-IS接口的网络类型( P2P/broadcast)必须一致
相同的MTU值:默认为1500
认证相同:如果做了认证,则两端的认证必须相同
接口未设置为silent-interface
在 P2P网络中 ,system-id 长度(6个字节)要一致,最大区域地址数(Max Area = 3),要相同

报文类型

IS-IS报文是直接封装在数据链路层的帧结构中的。PDU可以分为两个部分,报文头和变长字段部分。其中头部又可分为通用头部和专用头部。对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别。

  • Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,设置为0x83。
  • Length Indicator:PDU头部的长度(包括通用头部和专用头部),以字节为单位。
  • Version/Protocol ID Extension:版本/协议标识扩展,设置为1(0x01)。
  • ID Length:NSAP地址或NET中System ID区域的长度。值为0时,表示System ID区域的长度为6字节。值为255时,表示System ID区域为空(即长度为0)。
  • R(Reserved):保留,设置为0。
  • PDU Type:PDU的类型。IS-IS PDU共有9种类型,详细信息请参考下表。
  • Version:设置为1(0x01)。
  • Maximum Area Address:支持的最大区域个数。设置为1~254的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区域地址数。

IS-IS命令介绍

启用IS-IS协议
router isis [process-id]  process-id是IS-IS进程的标识符设置路由器ID
net [ISIS-NET]    其中【ISIS-NET】是一个点分十进制的地址,用于定义路由器的网络实体设置密码认证
ip anthentication mode [mode]    其中[mode]可以是md5或者simple
isis password [password] [process-id] 其中【password】是设置的密码设置hello参数
isis hello [muliplier] [interval] [process-id]    其中[multiplier]和[interval]分别为设置hello包的时间间隔和乘数设置metric值
metric [value]    其中[value]是设置的metric值,用于影响路由选择在接口启用IS-IS
ip router isis [process-id]    该命令需要在接口妹子模式下执行设置优先级
priority [value] [process-id]    其中[value]是设置的优先级值,用于决定是否成为区域的DIS

---------------------------------------------------------------------------------------------------------------------------------亲爱的读者朋友们,我在发布的博客中可能存在一些不足之处,如果您发现了任何错误或有改进建议,恳请不吝赐教,您的反馈对我非常重要。谢谢!

相关文章:

IS-IS协议

IS-IS协议介绍 IS-IS(Intermediate System to Intermediate System)协议是一种链路状态的内部网关协议(IGP),用于在同一个自治系统(Autonomous System, AS)内部的路由器之间交换路由信息。IS-I…...

使用C++实现RSA加密解密

一,RSA简介。 RSA,一种非对称加密方式。是目前为止最有影响力的加密算法之一,而且是第一个同时应用于加密和数字签名的算法。 其原理为:两个大素数相乘容易,但是若想将两个大素数相乘的积再分解为两个原始的素数很难…...

C++归并与快速

快排 #include<bits/stdc.h> #include<algorithm> using namespace std; void f(int,int); void cl(int,int,int); void q(int,int); int a[211]; int n; int main(){cin>>n;for(int i0;i<n;i){cin>>a[i];}q(0,n-1);for(int i0;i<n;i){cout<…...

金蝶云苍穹踩过的坑(慢慢更新)

IDEA不能用最新版&#xff0c;不然搜不到金蝶的插件。 我用的是2024.1.7/2023.1.7 IDEA里增加金蝶插件库的地址也变了&#xff0c;现在是 https://tool.kingdee.com/kddt/idea-updatePlugins.xml 金蝶云苍穹部署在服务器 MAC本地IDEA调试的时候&#xff0c;登录N次能成功一次…...

AndroidStudio——安卓项目结构与文件介绍

一、AndroidStudio界面 一个安卓项目界面主要由以下几部分组成&#xff1a; 1.菜单栏&#xff1a;位于顶部&#xff0c;基本的各项菜单操作 2.项目结构&#xff1a;通常位于左侧&#xff0c;展示当前项目的目录结构 3.编辑窗口&#xff1a;通常位于中间&#xff0c;可以用于编…...

华为自反ACL实验

一、实验背景 做这个实验的原因是最近公司里上了三台小程序服务器&#xff0c;由于三台服务器的端口都映射出去了&#xff0c;领导要求A网段的三台服务器不能访问内网B&#xff0c;C网段&#xff0c;同时B、C网段内网用户可以访问A段的94、95、96服务器&#xff1b; 也就是PC4\…...

yml和xml分别代表什么

YML 和 XML 是两种不同的数据序列化格式&#xff0c;它们在软件开发和数据交换中有着广泛的应用&#xff1a; YAML (YAML Ain’t Markup Language): YAML 是一种用于数据序列化的人类可读语言。它被设计为易于阅读和编写&#xff0c;特别适合于配置文件。YAML 使用缩进来表示数…...

Qt多线程编程

在Qt中&#xff0c;多线程编程是一个常见的需求&#xff0c;特别是当你需要执行耗时的后台任务而不希望阻塞用户界面时。多线程编程它允许应用程序同时执行多个任务&#xff0c;从而提高性能和响应速度。Qt提供了一套完善的多线程支持&#xff0c;包括线程类&#xff08;QThrea…...

springboot438校园志愿者管理系统(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统校园志愿者管理系统信息管理难度大&#xff0c;容错率低&…...

PostgreSQL 常用运维SQL整理

一、查询并杀会话 -- 查询会话 select pid,usename,client_addr,client_port,query_start,query,wait_event from pg_stat_activity; -- 杀会话 select pg_terminate_backend(pid号); -- 使用如下命令自动生成杀会话语句 select datid,datname,pid,usesysid,usename,applicat…...

Debezium Oracle CTAS 解析器实现:基于 ANTLR 的 CREATE TABLE AS SELECT 语句解析

Debezium Oracle CTAS 解析器实现:基于 ANTLR 的 CREATE TABLE AS SELECT 语句解析 本文详细介绍了 Debezium Oracle 连接器中如何解析 CREATE TABLE AS SELECT (CTAS) 语句,通过具体的实现代码帮助读者理解 ANTLR 监听器在复杂 SQL 解析中的应用。 文章目录 Debezium Oracle…...

从零开始学docker(五)-可用的docker镜像

最近docker镜像都不能访问&#xff0c;目前亲测可用的docker镜像可用&#xff0c;并拉取mysql测试完成。 [缺点] docker search 查不到镜像的索引列表&#xff0c;只能手动查询索引目录&#xff08;解决方案在最后&#xff09;。 linux服务器vim打开镜像文件daemon.json vim /e…...

力扣——322. 零钱兑换

给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c;返回 -1 。 你可以认为每种硬币的数量是无限的。 示…...

.Net_比对Json文件是否一致

简介 该方法用于比较两个Json文件是否完全一致&#xff0c;仅考虑内容若两个文件中的内容只是顺序不一致&#xff0c;内容是一样的&#xff0c;那么也代表这两个文件是相等的 实现代码 调用 using CompareJsonFiles;Console.WriteLine(" 输入信息 ");Console.WriteL…...

科研笔记:ARR 与 ACL rolling

1 ARR 介绍 ARR 提供 评审服务 —— 仅限评审 —— 对于提交的论文。评审不会针对特定会议/场所&#xff0c;但评审标准与传统会议的主会场长文或短文提交要求相同&#xff08;如 ACL 或其他由 ACL 主办的重要会议&#xff09; 2 提交论文进行 ARR 评审 提交截止日期 每两个…...

【2024】Camunda常用功能基本详细介绍和使用-上 (1)

这里写目录标题 前言一、 介绍基本概念介绍1.BPMN2.Form3.DMN 二、Camunda使用1、下载安装1.1、camunda-modeler&#xff1a;BPMN绘画工具1.2、camunda-bpm-run&#xff1a;web端控制页面 2、创建流程2.1、部署一个基础流程2.2、添加用户任务2.2.1、绑定表单2.2.1.1、Generated…...

用人话讲计算机:Python篇!(十二)正则运算+re模块

目录 一、正则表达式 &#xff08;1&#xff09;什么是正则表达式 &#xff08;2&#xff09;它的结构及使用 示例&#xff1a; 1.字符 . &#xff08;←这里有个小点哦&#xff09; 2.字符 | 3.字符 [ ] 4.字符^ 5.字符\d &#xff08;3&#xff09;补充&#xff…...

使用create-react-app创建工程时报错处理

1&#xff1a;全局安装create-react-app npm install -g create-react-app 2&#xff1a;切换到项目要创建的目录下 cd /d G:\vsCode_project\react 3&#xff1a;使用脚手架命令创建工程 create-react-app 项目名 项目名命名要遵循npm包命名规范&#xff1a;数字、小写字…...

C# 探险之旅:第三十五节 - 类型class之抽象类 (Abstract Class) 和 抽象方法 (Abstract Method)

&#x1f44b; 嗨&#xff0c;勇敢的探险家们&#xff01;欢迎再次踏上C#的神秘之旅。今天&#xff0c;我们要进入一片既神秘又充满无限可能的领域——抽象类与抽象函数的奇幻森林。想象一下&#xff0c;你是一名勇敢的骑士&#xff0c;要在这片森林里寻找传说中的“编程之宝”…...

qt-C++笔记之父类窗口、父类控件、对象树的关系

qt-C笔记之父类窗口、父类控件、对象树的关系 code review! 参考笔记 1.qt-C笔记之父类窗口、父类控件、对象树的关系 2.qt-C笔记之继承自 QWidget和继承自QObject 并通过 getWidget() 显示窗口或控件时的区别和原理 3.qt-C笔记之自定义类继承自 QObject 与 QWidget 及开发方式…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...