IS-IS路由原理详解

news2024/12/26 23:58:59

目录

一.

协议介绍:

优点:

二.

1) 协议基本概念:

2) 协议网络类型与网络链路关系

3) IS-IS的报文类型

4) P2P链路邻居关系的建立

​编辑三.

综上所述


一.

协议介绍:

IS-IS最初是国际标准化组织ISO(the International Organization for Standardization)为它的无连接网络协议CLNP(ConnectionLess Network Protocol)设计的一种动态路由协议。随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF在相关标准中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,称为集成IS-IS(Integrated IS-IS或Dual IS-IS)。IS-IS使用最短路径优先SPF(Shortest Path First)算法进行路由计算,收敛速度快,拓展性强,运行在数据链路层,抗攻击能力强,可以实现大规模网络的互通。

优点:

  • IS-IS报文中采用TLV格式,扩展性很高;
  • 一个路由器最多可配置多个区域地址,可以实现多区域的平滑合并;
  • 报文结构简单,邻居交互效率高;
  • 由于IS-IS工作在数据链路层,因此不依赖IP地址;
  • 采用最短路径SPF算法,收敛速度快。
  • 可应用于规模较大的网络中。如大型ISP(Internet Service Provider)中  

二.

1) 协议基本概念:

为了支持大规模的路由网络,IS-IS在路由域内采用两级的分层结构,即一个大的Domain(域)可以被分为多个Areas(区域)。IS-IS网络中三种不同级别的路由设备:一般来说,将Level-1路由设备部署在区域内,Level-2路由设备部署在区域间,Level-1-2路由设备部署在Level-1和Level-2路由设备的中间。如下图所示,一个运行IS-IS协议的网络,整个骨干区域(backbone)不仅包括Area1中的所有Level-2路由设备,还包括其他区域的Level-1-2路由设备

  • Level-1路由器

    Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系。一个Level-1路由器只负责维护本区域内的LSDB(Link State Database,链路状态数据库),对于目的地不在本区域内的路由,Level-1路由器会将该路由的目的地标识为最近的Level-1-2路由器。

  • Level-2路由器

    Level-2路由器负责区域间的路由,可以与Level-2或其它区域的Level-1-2路由器形成邻居关系,维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。

    所有Level-2级别的路由器组成路由域的骨干网,负责在不同区域间通信,路由域中Level-2级别的路由器必须是连续的,以保证骨干网的连续性。只有Level-2级别的路由器才能直接与区域外的路由器交换数据报文或路由信息。

  • Level-1-2路由器

    同时属于Level-1和Level-2的路由器称为Level-1-2路由器,可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻居关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻居关系。Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。

    Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。

2) 协议网络类型与网络链路关系

 1) IS-IS可以运行在广播链路和点到点链路上,广播链路包括Ethernet、Token-Ring等;点到点链路如PPP。

 2) IS-IS包括两种网络类型:广播网络类型和P2P网络类型(如下图所示)。广播链路可以配置成广播网络类型也可以配置成P2P网络类型,点到点链路仅支持P2P网络类型。

3) IS-IS的报文类型

IS-IS报文有以下几种类型:Hello PDU(Protocol Data Unit)、LSP和SNP。

Hello PDU

Hello报文用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs)。其中,广播网中的Level-1 IS-IS使用Level-1 LAN IIH;广播网中的Level-2 IS-IS使用Level-2 LAN IIH;非广播网络中则使用P2P IIH。它们的报文格式有所不同。P2P IIH中相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段以及表示DIS和伪节点System ID的LAN ID字段。

在所有的IS-IS PDU中,前八个字节都是公用的,Hello PDU各个主要字段的含义及作用如下:

  • Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,用来标识网络层协议数据单元。在IS-IS中,该字段的值固定为0x83。
  • Length Indicator:长度标识符,用来标识该固定头部的长度。
  • ID Length:用来标识该路由选择域内SystemID的长度。
  • PDU Type:用来标识PDU的类型。
  • Maximum Area Address:最大区域地址数,表示该IS-IS区域所允许的最大区域地址数量。目前,该字段固定为0,表示最多支持3个区域地址。
  • TLV:即Type/Length/Value(类型/长度/值),不同PDU类型所包含的TLV是不同的。

LSP

链路状态报文LSP(Link State PDUs)用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP。Level-1 LSP由Level-1 IS-IS传送,Level-2 LSP由Level-2 IS-IS传送,Level-1-2 IS-IS则可传送以上两种LSP。

主要字段的解释如下:

  • ATT(Attached):区域关联位。

    由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。当L1区域中的路由器收到Level-1-2路由器发送的ATT位被置位的L1 LSP后,它将创建一条指向Level-1-2路由器的缺省路由,以便数据可以被路由到其他区域。

    虽然ATT位同时在L1 LSP和L2 LSP中进行了定义,但是它只会在L1 LSP中被置位,并且只有L1/2路由器会设置这个字段。

  • OL(LSDB Overload):过载标志位。

    设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过过载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会使用这台路由器做转发,只计算该节点上的直连路由。

  • IS Type:生成LSP的IS-IS类型。

    用来指明是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)。   

SNP

序列号报文SNP(Sequence Number PDUs)通过描述全部或部分LSP的摘要信息来同步各LSDB(Link-State DataBase),它包括CSNP(Complete Sequence Number Protocol Data Unit,全序列号协议数据单元)和PSNP(Partial Sequence Number Protocol Data Unit,部分序列号协议数据单元)。CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由设备间保持LSDB的同步。

在广播网链路和点到点链路中,SNP运行机制略有不同:

  • 在广播网链路上,CSNP由DIS设备周期性的发送。当邻居发现LSDB不同步时,发送PSNP报文来请求缺失的LSP报文。
  • 在点到点链路上,CSNP只在第一次建立邻居关系时发送,邻居发送PSNP报文来做应答。当邻居发现LSDB不同步时,同样发送PSNP报文来请求缺失的LSP报文

4) P2P链路邻居关系的建立

在P2P链路上,邻居关系的建立不同于广播链路。分为两次握手机制和三次握手机制。

  • 两次握手机制:只要路由设备收到对端发来的Hello报文,就单方面宣布邻居为Up状态,建立邻居关系。
  • 三次握手机制:此方式通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,类似广播邻居关系的建立。

两次握手机制存在明显的缺陷。当路由设备间存在两条及以上的链路时,如果某条链路上到达对端的单向状态为Down,而另一条链路同方向的状态为Up,路由设备之间还是能建立起邻居关系。SPF在计算时会使用状态为UP的链路上的参数,这就导致没有检测到故障的路由设备在转发报文时仍然试图通过状态为Down的链路。三次握手机制解决了上述不可靠点到点链路中存在的问题。这种方式下,路由设备只有在知道邻居路由设备也接收到它的报文时,才宣布邻居路由设备处于Up状态,从而建立邻居关系。

IS-IS建立邻居关系的原则

  • 只有同一层次的相邻路由设备才有可能成为邻居。

  • 对于Level-1路由设备来说,区域号必须一致。

  • 链路两端IS-IS接口的网络类型必须一致。



三.

综上所述

2 种网络类型,3 种路由器类型,3张表,4种报文类型
IS-IS和OSPF的最大区别

有兴趣的可以研究

IS-IS基本原理 华为 (huawei.com)

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

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

相关文章

2024年适合初创企业的10款项目管理软件

身为初创企业的掌舵人或联合创始人,您深深了解兼顾多项事务的艰辛。适合初创企业的项目管理软件能够对团队运营效率产生明显影响。 您需要精准把握产品研发、营销推广以及团队协作,同时要严格控制预算和时间。项目管理的失策极易导致延期、超支&#xff…

Spring不是引入了三级缓存,解决了循环依赖的问题吗?

上面是典型的循环依赖问题,在很多人认识中spring引入了三级缓存,不会发生循环依赖报错,但是结果是会启动报错: 其实,在 Spring 2.6 开始,默认已经不开启对循环依赖的支持了,如果想要开启对循环依…

【学术会议征稿】第三届地理信息与遥感技术国际学术会议(GIRST 2024)

第三届地理信息与遥感技术国际学术会议(GIRST 2024) 2024 3rd International Conference on Geographic Information and Remote Sensing Technology 第三届地理信息与遥感技术国际学术会议(GIRST 2024)将在2024年11月29日-12…

IO进程线程 0827作业

作业 作业一&#xff1a;创建3个线程&#xff0c;一个子线程拷贝文件的前一半&#xff0c;一个子线程拷贝后一半文件&#xff0c;主线程回收子线程资源。 将1.txt内容拷贝到2.txt中 #include <myhead.h> /* 创建3个线程&#xff0c;一个子线程拷贝文件的前一半&#xf…

[数据集][目标检测]直肠息肉病变检测数据集VOC+YOLO格式10725张6类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;10725 标注数量(xml文件个数)&#xff1a;10725 标注数量(txt文件个数)&#xff1a;10725 标…

IDEA 编译项目时卡在Parsing java,最终报out of memory

今天在项目运行的时候莫名其妙报错&#xff1a; 报错内容&#xff1a; java.lang.OutOfMemoryError: GC overhead limit exceeded原因&#xff1a; 通常是因为堆内存太小&#xff0c;无法有效管理正在创建和销毁的对象。 解决方法&#xff1a; 在 IDEA 的安装目录下找到 bi…

Git下载安装配置

Git的下载与安装 Git是一种分布式版本控制系统&#xff0c;用于跟踪文件和文件夹的变化。它最初由Linus Torvalds开发&#xff0c;用于管理Linux内核的源代码。Git的设计目标是&#xff1a;速度快、开发效率高、数据完整性和可靠性强。 Git通过创建一个存储库&#xff08;rep…

FineBI制作可视化大屏-气泡图(7)

本篇会继续使用FineBI根据景点热度筛选出热度最高的20个景点&#xff0c;并绘制气泡图。 新建组件&#xff0c;选择气泡图。 将景点名字段直接拖动到绘图区域或细粒度处&#xff0c;将热度字段拖动到大小。 选择过滤&#xff0c;只保留热度前20的景点。 添加且条件。 将景点名…

线上剧本杀小程序,线上游戏新体验

剧本杀作为当下热门的社交型游戏方式&#xff0c;成为了大众社交娱乐的选择&#xff0c;为大众带来新的游戏体验。在数字化发展时期&#xff0c;线上剧本杀为大众带来了新鲜的游戏体验&#xff0c;它打破了时间空间限制&#xff0c;让玩家在手机上体验虚拟游戏&#xff0c;通过…

面试常问! transformer中dk的大小,以及为什么设成这样,维度,原文分析。

目录&#xff1a; 原文 &#xff1a;翻译&#xff1a;流程&#xff1a;原因&#xff1a; 原文(多头注意力部分) &#xff1a; 李沐b站论文精读 论文网盘下载&#xff1a;链接 提取码: vm3d 翻译&#xff1a; 在这项工作中&#xff0c;我们采用了 h8 个并行注意力层&#xff…

【数组分三段快排】分而治之的快排算法

目录 1.前言2.题目简介3.求解思路4.示例代码 1.前言 算法中的快排 2.题目简介 题目链接&#xff1a;LINK 3.求解思路 这个题很简单写一个快排就行。 数组分三段(分而治之)&#xff1a;但是相对于我们之前写的霍尔版、挖坑法、交换法快排&#xff0c;这个题目可能有很多重…

VastBase——全局性能调优

目录 一、系统资源调优 1.内存和CPU 2.网络 3.I/O 二、查询最耗性能的SQL 三、分析作业是否被阻塞 背景&#xff1a;影响性能的因素 系统资源 数据库性能在很大程度上依赖于磁盘的I/O和内存使用情况。为了准确设置性能指标&#xff0c;用户需要了解Vastbase部署硬件的基本…

玉米病害-目标检测数据集(包括VOC格式、YOLO格式)

玉米病害-目标检测数据集&#xff08;包括VOC格式、YOLO格式&#xff09; 数据集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1gNanETxflJwb1SaKut_rQw?pwddio2 提取码&#xff1a;dio2 数据集信息介绍&#xff1a; 共有 5046 张图像和一一对应的标注文件 标注文…

年轻人喝不起蜜雪冰城了

文&#xff5c;琥珀食酒社 作者 | 璇子 告诉你一个残酷的消息 年轻人连卖1块钱冰杯的雪王 都快喝不起了 最近3个月 蜜雪冰城关店3808家 差不多每天要关店43家 Coco奶茶呢 90天关店的数量 比开店的数量多2倍还不止 表面看这是行业太卷 奶茶品牌们在垂死挣扎 但其实…

二、编辑器拓展

一、实现Scene窗口弹出菜单 一、InitializeOnLoadMethod 完成事件监听 设置自定义菜单

嵌入式Qt移植之编译Qt项目-思维导图-学习笔记-基于正点原子阿尔法开发板

嵌入式Qt移植之编译Qt项目 交叉编译器的安装可以参考 http://t.csdnimg.cn/UeHtq 使用交叉编译好的qmake编译Qt项目 将交叉编译工具链的路径添加到环境变量PATH中 !export 交叉编译器位置 查找qmake位置 find -name qmake 进入一个Qt项目&#xff0c;使用qmake生成Make…

反射机制简单基础

前序 在我们没有学习框架之前我们都是通给new来创建对象&#xff0c;如&#xff1a;创建一个我们已知的对象 Car carnew Car(); 调用类中的成员变量和成员方法都是对象直接调用。 在学习了mybatis框架后&#xff0c;我们了解到可以通过类名&#xff0c;能动态得到类中定义的…

【AI学习】在魔塔社区玩Ollama:部署GLM4和CodeGeeX4

看到文章《Ollama可以玩GLM4和CodeGeeX4了&#xff0c;快来魔搭玩起来》&#xff0c;参考的运行了一遍&#xff0c;折腾了一个晚上加一个上午&#xff0c;终于搞定了。本来很简单的事情&#xff0c;对这个代码小白&#xff0c;还是有点坑。。 GPU要明显快很多&#xff0c;CPU的…

谷歌chrome浏览器显示“版本太旧”又无法更新情况下,如何关闭“Chrome版本太旧”提示,包括直接启动Google浏览器,或者通过其他应用启动

问题描述 由于在无互联网环境使用Google浏览器&#xff0c;所以无法进行升级&#xff0c;但每次启动都会有如下提示&#xff0c;作为有强迫症的我实在无法接受。 解决方案 1、修改属性(通过快捷方式启动有效) 通过右键在快捷方式后添加启动参数 右键“Google Chrome”图标…

C的温故而知新:位操作(C Primer Plus第十五章)

第十五章&#xff1a;位操作 这一章的篇幅不是很长&#xff0c;但既然能单独作为一章来讲的话&#xff0c;应该蛮重要的&#xff0c;但是我貌似没有总结出多少需要注意、加强记忆的东西&#xff0c;可见在JAVA的日常开发过程中基本不太遇见有关位操作的内容&#xff0c;所以我…