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

IS-IS的原理

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的配置

相关文章:

IS-IS的原理

IS-IS的基本概念: 概述: IS-IS,中间系统到中间系统,是ISO国际标准化组织为它的无连接网络协议设计的一种动态路由协议 IS-IS支持CLNP网络和IP网络,采用数据链路层封装,区别于ospf只支持IP网络&#xff0…...

C++(4个类型转换)

1. C语言中的类型转换 1. 隐式 类型转换: 具有相近的类型才能进行互相转换,如:int,char,double都表示数值。 2. 强制类型转换:能隐式类型转换就能强制类型转换,隐式类型之间的转换类型强相关,强制类型转换…...

Ubuntu20.04安装NVIDIA显卡驱动

Ubuntu20.04安装NVIDIA显卡驱动 参考资料:https://blog.csdn.net/weixin_39244242/article/details/136282614?fromshareblogdetail&sharetypeblogdetail&sharerId136282614&sharereferPC&sharesourceqq_37397652&sharefromfrom_link 成功配置…...

速盾:介绍一下高防cdn的缓存响应事什么功能?

高防CDN(Content Delivery Network)是一种基于分布式缓存技术的网络加速服务,能够提供强大的缓存响应功能。它的缓存响应功能主要包括缓存加速和智能缓存两个方面。 首先,高防CDN的缓存加速功能是指通过在全球范围内部署大量的缓…...

Nuclei-快速漏洞扫描器

Nuclei-快速漏洞扫描器 声明 学习内容来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 ✍&#x1f3f…...

linux网络抓包工具

linux网络抓包工具 一、tcpdump1.1 基本用法1.2 龙芯平台实例操作 二、wireshark2.1 主要功能2.2 龙芯平台实例操作 一、tcpdump tcpdump 指令可列出经过指定网络界面的数据包文件头,可以将网络中传送的数据包的 “头” 完全截获下来提供分析。它支持针对网络层、协…...

详解桥接模式

引言 在开发过程中,可能会遇到系统设计有多种维度变化的情况,比如我们想画一幅五彩斑斓的画,需要用到12个颜色,但是需要粗细不同的线条(粗、中、细),如果用蜡笔,就需要粗中细三种蜡笔…...

探索AI新世界!热门工具与学习资源免费获取

​抖知书老师推荐: 人工智能技术的迅速发展让人们既充满期待又有些迷茫。有人担忧被AI技术取代,有人却积极拥抱这场科技浪潮。无论你处于哪种心态,人工智能已经深入到我们生活的方方面面。如果你希望轻松掌握最新的AI工具与动态,…...

vue3项目搭建-6-axios 基础配置

axios 基础配置 安装 axios npm install axios 创建 axios 实例,配置基地址,配置拦截器,目录:utils/http.js 基地址:在每次访问时,自动作为相对路径的根 // axios 基础封装 import axios from "axios";…...

Django 视图层

from django.shortcuts import render, HttpResponse, redirectfrom django.http import JsonResponse1. render: 渲染模板 def index(request):print(reverse(index))return render(request, "index.html")return render(request, index.html, context{name: lisi})…...

代理IP与百度在信息时代的交互

目录 一、代理IP的基本概念和工作原理 二、代理IP在百度搜索中的多重作用 解决网络延时问题,提高搜索速度 提高网络安全 隐藏用户的真实IP地址,保护个人隐私 突破访问限制,拓宽网络视野 三、代理IP在百度关键词排名优化中的应用 模拟…...

1、Three.js开端准备环境

准备工作 从 CDN 导入 1.安装 VSCode 2.安装 Node.js 3.查看Three.js最新版本 4.如何cdn引入: https://cdn.jsdelivr.net/npm/threev版本号/build/three.module.js 例如:https://cdn.jsdelivr.net/npm/threev0.170.0/build/three.module.js 我们需要…...

什么是Batch Normalization?

一、概念 Batch Normalization是在2015年提出的数据归一化方法,主要用在深度神经网络中激活层之前。它的主要作用是加快模型训练时的收敛速度,使模型训练过程更加稳定,避免梯度爆炸或消失,并起到一定的正则化作用,有时…...

十四(AJAX)、AJAX、axios、常用请求方法(GET POST...)、HTTP协议、接口文档、form-serialize

1. AJAX介绍及axios基本使用 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content&q…...

vue2怎么写computed属性

在Vue 2中&#xff0c;computed属性是基于它们的响应式依赖进行缓存的计算属性。只有当计算属性依赖的响应式数据发生变化时&#xff0c;计算属性才会重新计算。以下是如何在Vue 2中定义computed属性的步骤&#xff1a; 定义响应式数据&#xff1a;首先&#xff0c;你需要在组件…...

【从零开始的LeetCode-算法】35. 搜索插入位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入: …...

vscode + conda + qt联合开发

安装vscode 安装conda 清华大学开源软件镜像(Anaconda下载)_清华大学镜像-CSDN博客 conda create新建一个环境&#xff0c;激活这个环境&#xff0c;然后安装pyside6 pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simple 安装成功后输入 pip list查看是否安装…...

技术总结(四十三)

1 索引介绍 1.1 什么时MySQL的索引 MySQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。 ​MySQL在存储数据之外&#xff0c;数据库系统中还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种引用(指向)表中的数据&#xff0c;这样我们就可以通…...

mac终端自定义命令打开vscode

1.打开终端配置文件 open -e ~/.bash_profile终端安装了zsh&#xff0c;那么配置文件是.zshrc&#xff08;打开zsh配置&#xff0c;这里举&#x1f330;使用zsh&#xff09; sudo open -e ~/.zshrc 2.在zshrc配置文件中添加新的脚本&#xff08;这里的code就是快捷命令可以进…...

代码设计:设计模式:应对变化

文章目录 概述1.拆分代码2.解耦3.扩展总结概述 代码的设计模式主要为了应对变化 三种代码设计中应对变化的方式 1.拆分代码 2.解耦 3.扩展 1.拆分代码 减小变化对代码的影响 需要拆分代码的几种情况 1.类或方法的代码量巨大,导致代码可读性降低 2.存在复杂的代码,如…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...