IS-IS的原理

news2024/12/27 7:37:19

IS-IS的基本概念:

概述:

IS-IS,中间系统到中间系统,是ISO国际标准化组织为它的无连接网络协议设计的一种动态路由协议

IS-IS支持CLNP网络和IP网络,采用数据链路层封装,区别于ospf只支持IP网络,采用IP报文封装

NSAP:

网络服务访问点,是用于定位资源的地址,提供网络层和上层应用之间的接口,包括IDP和DSP

IDP:由两部分组成,AFI表示地址分配机构和地址格式, ISI用来表示域,有点像Ip地址中的主网络号

DSP:它由三部分组成,High Order DSP用来分割区域,System ID用来区分主机,SEL(NSAP Selector)用来指示服务类型

NET:

网络实体名称,是OSI协议栈中设备的网络层信息,用于路由计算,由区域地址(Area ID)和System ID组成,可以看作是特殊的NSAP

长度与NSAP相同,8~208

配置:

每台运行IS-IS的设备至少需要一个NET,一个设备也可以有多个NET,system ID必须相同

华为网络设备上,System ID的长度是固定的6比特,在一个IS-IS路由域中设备的system ID必须唯一

IS-IS和OSPF区域划分的区别:

IS-IS中每个路由器都只属于一个区域;OSPF中一个路由器的不同接口可以属于不同的区域

IS-IS中单个区域没有骨干和非骨干区域的概念;在OSPF中,区域0属于骨干区域

IS-IS中,level-1和level-2级别的路由都采用SPF算法,分别生成最短路径树SPT;OSPF中,同一区域才使用SPF算法,路由需要通过骨干区域来转发

IS-IS路由器的分类:

level-1路由器,属于IS-IS的内部路由器,只与属于同一区域的level-1-2路由器形成邻接关系,并且需要通过它去访问那其他区域

Level-1路由器无法与Level-2路由器建立邻接关系

Level-1路由器只负责维护Level-1的链路状态数据库LSDB,该LSDB只包含本区域的路由信息

Level-2路由器是IS-IS的骨干路由器,可以与同一或不同一的level-2和level-1-2路由器形成邻接关系

Level-2路由器维护一个Level-2的LSDB,该LSDB包含整个IS-IS域的所有路由信息

所有level-2级别的路由器组成路由域的骨干网,负责不同区域的通信

路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性

Level-1-2路由器属于骨干网络的组成部分,维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由

可以与同一区域的level-1和1-2形成level-1的邻接关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻接关系

IS-IS开销值:

IS-IS使用Cost开销作为路由度量值,Cost越小,路由越优

一条IS-IS路径的Cost等于本路由器到达目标网段沿途的所有链路的Cost总和

IS-IS有三种方式来确定接口的开销,按照优先级由高到低:

1. 接口开销:为单个接口设置开销
2. 全局开销:为所有接口设置开销
3. 自动计算开销:根据接口带宽,自动计算开销

IS-IS报文格式

报文是封装在数据链路层的帧结构中的

PDU协议数据单元可以分为两个部分,报文头和变长字段部分

其中IS-IS Header又可分为通用头部(PDU Common Header)和专用头部(PDU Specific Header)。对于所有PDU来说,通用报头 都是相同的,但专用报头根据PDU类型不同而有所差别

IS-IS通用头部详解:1Byte

IS-IS的四种报文类型:

IIH:Hello报文,用于建立和维持邻接关系, level-1使用level-1 LAN IIH, level-2使用level-2 LAN IIH

LSP:链路状态报文,交换链路状态信息,分为level-1 LSP和level-2 LSP两种

PSNP:部分序列号报文,同步LSDB链路信息数据库,维护,也分两种

CSPN:全序列号报文,同步LSDB链路信息数据库,维护,也分两种

IS-IS常见的TLV

T :类型type ; L:长度length ; V:值value

使用TLV结构构建报文的好处是灵活性和扩展性好

采用TLV使得报文的整体结构固定,增加新特性只需要增加新TLV即可,不需要改变整个报文的整体结构

IS-IS工作原理

邻接关系建立:

建立原则:

只有同一层次的相邻路由器才由可能成为邻接

对于level-1路由,区域ID要一致

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

链路两端IS-IS接口的地址必须处于同一网段

使用IIH报文建立和维持邻接关系

广播网络中邻接关系的建立过程:

1. 两个路由器A, B的邻接标识状态均处于Down状态

2. A首先发起IIH报文,B收到后回复给A

3. A收到后将邻接标识状态变为Up, 再向B发送IIH报文
4. B收到报文后,也改变为Up状态,两个路由器成功建立邻接关系
5. 广播网络中需要选举DIS,在邻接关系建立后,路由器会等待两个Hello报文间隔,再进行DIS的选举

抽象来说:有点像打电话,A给B打电话说 ”喂“ , B回应说 ”欸喂,你哪位“, A又说”我是某某“ , B说 ”我知道了,我是某某某“ , 接下来就可以进行会话了

DIS和伪节点

在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS

DIS用来创造伪节点,并生成伪结点的LSP,用来描述网络上的网络设备

伪结点是用来模拟广播网络的一个虚拟节点,并非真实的路由器

IS-IS中的DIS与OSPF中的DR

DIS优先级数值最大的被选为DIS,如果DIS优先级数值相同,就选MAC地址最大的路由器作为DIS

DIS发送Hello PDU的时间间隔是普通路由器的1/3,这样可以确保DIS出现故障时能够被更快速地被发现

DIS与DR的区别:

1,在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举

2, 在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除

而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR

3,在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中,路由器只与DR和BDR建立邻接关系

点到点网络中邻接关系的建立过程:

使用两次握手方式:只要路由器收到对端发来的Hello报文,就单方面宣布邻接为Up状态,建立邻接关系使用两次握手方式:只要路由 器收到对端发来的Hello报文,就单方面宣布邻接为Up状态,建立邻接关系

链路状态数据库同步:

LSP:链路状态报文,用于交换链路状态的信息

LSP ID:由三部分组成,System ID、伪节点ID和LSP分片后的编号

display isis lsdb查看链路状态数据库

广播网络中新加入路由器与DIS同步LSDB数据库的过程:

新加入的路由器R3首先发送IIH报文,与该广播域中的路由器建立邻接关系。建立邻接关系之后,R3等待LSP刷新定时器超时,然后将 自己的LSP发往组播地址

网段中的DIS会把收到的R3的LSP加入到LSDB中,并等待CSDN报文定时器超时并发送CSNP报文

新加入的R3收到DIS发来的报文后,对比自己的数据库,像DIS发送PSNP报文请自己没有的LSP

DIS收到后,发送回应的报文进行LSDB同步

点到点网络中LSP的同步过程:

二次握手,建立邻接关系后,发送方发给CSNP给接收方

接收方核对数据库, 缺少信息的话就像发送方索取相应的LSP

LSP的处理机制

路由器收到LSP后的处理原则

1, 如果收到的LSP比本地的LSP更优,或者收到本地没有的LSP

在广播域中,会将其加入数据库,组播发送新的LSP

在点到点的网络中,将其加入数据库,并发送 PSNP报文来确认收到,并发送给他邻居

2,如果收到的LSP比本地的LSP更劣,则不做处理

LSP产生的原因,IS-IS路由域内的所有路由器都会产生LSP,以下事件会触发一个新的LSP:

邻接Up或Down

IS-IS相关接口Up或Down

引入的IP路由发生变化

区域间的IP路由发生变化

接口被赋了新的metric值

周期性更新(刷新间隔15min)

路由计算

level- 1 的路由计算:

目前R1是level- 1 路由器,R2,R3是level-1-2路由器

R1只维护level-LSDB,该LSDB中包含同属于一个区域的设备所产生的Level-1 LSP

R1根据LSDB中的Level-1 LSP计算出本区域内的拓扑,以及到达区域内各个网段的路由信息

R2及R3作为该区域内的Level-1-2路由器,会在它们向该区域下发的Level-1 LSP中设置ATT标志位,用于向区域内的Level-1路由器宣布 可以通过自己到达其他区域

level-1-2路由器的路由计算

R2,R3维护level-1 LSDB,计算本区域的路由,维护level-2 LSDB,计算其他区域的路由

将本区域的路由通过LSP的形式发送给其他区域

level-2路由器的路由计算

R4及R5作为Level-2路由器,只会维护Level-2 LSDB,它们能够根据该LSDB计算出到达全网各个网段的路由

以上为个人学习笔记,总结于华为资料和网络资源

下一次再来说一说IS-IS的配置

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

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

相关文章

华为ACL应用笔记

1、基本ACL 2000-2999 基本ACL(Access Control List,访问控制列表)是一种网络安全技术,它根据源IP地址、分片信息和生效时间段等信息来定义规则,对报文进行过滤。 规则: ACL由一系列规则组成,每…

点云标注软件SUSTechPOINTS的安装和使用,自测win10和ubuntu20.04下都可以用

点云标注软件SUSTechPOINTS的安装和使用 github项目源码:https://github.com/naurril/SUSTechPOINTS gitee源码以及使用教程:https://gitee.com/cuge1995/SUSTechPOINTS 首先拉取源码 git clone https://github.com/naurril/SUSTechPOINTS最好是在cond…

大模型评测中的基础指标都包括哪些

大语言模型(LLM)评测是LLM开发和应用中的关键环节。目前评测方法可以分为人工评测和自动评测,其中,自动评测技术相比人工评测来讲,具有效率高、一致性好、可复现、鲁棒性好等特点,逐渐成为业界研究的重点。…

SystemUI修改状态栏电池图标样式为横屏显示(以Android V为例)

SystemUI修改状态栏电池图标样式为横屏显示(以Android V为例) 1、概述 在15.0的系统rom产品定制化开发中,对于原生系统中SystemUId 状态栏的电池图标是竖着显示的,一般手机的电池图标都是横屏显示的 可以觉得样式挺不错的,所以由于产品开发…

最长最短单词

最长最短单词 C语言实现C实现Java实现Python实现 💐The Begin💐点点关注,收藏不迷路💐 输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一…

C++【PCL】点云数据平移 旋转,对点云进行刚体变化

//头文件 #include <iostream>#include <pcl/point_cloud.h>#include<pcl/io/pcd_io.h>#include <pcl/common/transforms.h> #include <pcl/io/ply_io.h>//主函数int main() {pcl::PointCloud<pcl::PointXYZ>::Ptr source_cloud(new pcl::…

2024第六届金盾信安杯Web 详细题解

比赛一共4道Web题,比赛时只做出三道,那道文件上传没有做出来,所以这里是另外三道题的WP 分别是 fillllll_put hoverfly ssrf fillllll_put 涉及: 绕过exit() 死亡函数 php://filter 伪协议配合base64加解密 一句话木马 题目源码&#xff1a; $content参数在开头被…

006 MATLAB编程基础

01 M文件 MATLAB输入命令有两种方法&#xff1a; 一是在MATLAB主窗口逐行输入命令&#xff0c;每个命令之间用分号或逗号分隔&#xff0c;每行可包含多个命令。 二是将命令组织成一个命令语句文集&#xff0c;使用扩展名“.m”&#xff0c;称为M文件。它由一系列的命令和语句…

Delphi Web前端开发教程(9):基于TMS WEB Core框架

3、REST Servers服务端(后端)框架 REST服务端特点&#xff1a; – 为远程资源提供一个REST API接口。也可以为其他网络内容提供服务&#xff1b; – 包括在Delphi Enterprise & Architect企业版和架构师版中的RAD服务器、DataSnap、WebBroker&#xff1b; – 开源框架&a…

SPC三种判定准则的算法

1.连续6个点递增或递减 //传入数据列表 //返回连续X个及以上递增或递减的数组下标int n = array.Length; int X = X_in; List<int> regions_start = new List<int>(); List<int> regions_end = new List<int>();if(Open){for (int i = 0; i < n - (…

AI一键生成原创圣诞印花图案

一、引言 随着科技的飞速发展&#xff0c;AI 已经深入到我们生活和工作的各个角落&#xff0c;为创意设计领域带来了前所未有的变革。在圣诞即将来临之际&#xff0c;想要设计独特的圣诞印花图案却又担心缺乏灵感或专业技能&#xff1f;别担心&#xff0c;千鹿 AI 为我们提供了…

Ubuntu的pip怎么用

第一步&#xff1a;查看python3版本 第二步&#xff1a;安装pip 第三步&#xff1a;可以尝试使用pip list查看 也可以尝试安装 下面这条命令可以设置永久源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

基于Matlab三点雨流计数法的载荷时间历程分析与循环疲劳评估

随着工程领域中机械设备和结构系统的复杂性不断增加&#xff0c;疲劳分析成为评估其可靠性与使用寿命的关键环节。载荷时间历程数据在疲劳分析中扮演着重要角色&#xff0c;而雨流计数法作为经典的循环计数方法&#xff0c;能够有效地从载荷时间历程中提取疲劳载荷循环信息。本…

帝可得-策略管理

策略管理 需求说明 策略管理主要涉及到二个功能模块&#xff0c;业务流程如下&#xff1a; 新增策略: 允许管理员定义新的策略&#xff0c;包括策略的具体内容和参数&#xff08;如折扣率&#xff09;策略分配: 将策略分配给一个或多个售货机。 #mermaid-svg-PSQOJMLJqVGn3W…

【数据结构】手搓链表

一、定义 typedef struct node_s {int _data;struct node_s *_next; } node_t;typedef struct list_s {node_t *_head;node_t *_tail; } list_t;节点结构体&#xff08;node_s&#xff09;&#xff1a; int _data;存储节点中的数据struct node_s *_next;&#xff1a;指向 node…

嵌入式 C 编程必备(7):const 关键字 —— 打造稳定的常量空间

目录 一、const关键字的基本含义与用法 1.1. 修饰基本数据类型 1.2. 修饰指针 1.3. 修饰数组 1.4. 修饰结构体 二、const关键字在嵌入式编程中的优势 2.1. 提升代码可读性 2.2. 增强代码安全性 2.3. 优化内存使用 2.4. 促进模块化设计 2.5. 支持静态分析和测试 三、…

Day28 买卖股票的最佳时机 跳跃游戏 跳跃游戏 II K 次取反后最大化的数组和

贪心算法 part02 122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 求最大利润 将每天的正利润加和 public int maxProfit(int[] prices) {int totalPrices 0;for(int i0;i<prices.length;i){if(i<prices.length-1&&prices[i1]>prices[…

【专题】计算机网络之运输层(传输层)

1. 运输层协议概述 1.1 进程之间的通信 (1) 运输层的作用 运输层提供进程间的逻辑通信。 运输层的屏蔽作用&#xff1a; 运输层向高层用户屏蔽了下面网络核心的细节&#xff08;如网络拓扑、所采用的路由选择协议等&#xff09;&#xff0c;使应用进程看见的就是好像在两个运…

Ansible 运维工具

安装 apt install ansible /etc/ansible/hosts , 指定密码或密钥访问分组机器 [k8s_masters] master0.c0.k8s.sb[k8s_nodes] node0.c0.k8s.sb node1.c0.k8s.sb[k8s:children] k8s_masters k8s_nodes[k8s_masters:vars] ansible_ssh_usersbadmin ansible_ssh_pass"***&q…

matlab 中的 bug

在matlab中绘图&#xff0c;设置 axe 的背景颜色 axes_in3.Color #00235B ;打印的时候 print(figure_handle1,-dpng,-r300,"merge_yt_ey") ;此时保存的图片无法识别背景颜色 原因在于 matlab 中的 InverseHardcopy 将 InvertHardcopy 设置成 off 则可以解决这个问…