网络协议——IS-IS协议详解

1. IS-IS是什么

        IS-IS是一种基于链路状态并使用最短路径优先算法进行路由计算的一种IGP协议。IS-IS属于内部网关协议,用于自治系统内部。IS-IS是一种链路状态协议,使用最短路径优先算法进行路由计算。

2. 应用场景(园区网和骨干网)

        园区网特点:区域多样、策略多变、调度精细。

        骨干网特点:区域扁平、收敛极快、承载庞大。

3. 基本原理

        邻居关系建立:邻居关系建立主要是通过HELLO包交互并协商各种参数,包括电路类型(level-1/level-2),Hold time,网络类型,支持协议,区域号,系统ID,PDU长度,接口IP等。

        链路信息交换:与OSPF不同,ISIS交互链路状态的基本载体不是LSA(link state advertisement),而是LSP(link state PDU);交互的过程没有OSPF协议那样经历了多个阶段,主要是通过CSNP和PSNP两种协议报文来同步,请求以及确认链路状态信息(承载的是链路状态信息摘要),而链路状态信息的详细拓扑和路由信息是由LSP报文传递。

        路由计算:SPF计算和OSPF基本一样的,但ISIS算法分离了拓扑结构和IP网段,加快了网络收敛速度。

4. P2P ISIS邻居建立机制

        两次握手机制:两次握手只要路由器收到对端发来的Hello报文,就单方面宣布邻居为up状态,建立邻居关系,不过容易存在单通风险。

        三次握手机制:通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,与广播链路邻居关系的建立情况相同。

5. NSAP地址

NSAP:是一种用于唯一标识网络中设备的地址格式。40字节的标准地址格式来表示一个网络节点

  1. AFI:占1个字节,用于标识地址的家族类型,例如IPv4或IPv6。
  2. IDI:占1个字节,用于标识地址的区域性域(区域ID)。
  3. ADI:占1个字节,用于标识地址的区域(区域ID)。
  4. DFI:占1个字节,用于标识地址的域特定部分(如子网或接口)。
  5. AA:占13个字节,用于标识地域内的特定范围。
  6. SEL:占6个字节,用于标识特定系统内的实体。
6. IS-IS路由器分类:

Level-1路由器:Level-1只能和level-1建立邻接关系,相同区域只能使用level-1建立邻接关系

Level-2路由器:Level-2只能和level-2建立邻接关系,不同区域只能使用level-2建立邻接关系

Level-1-2路由器:level1-2既可以和level-1建立邻接关系也可以和level-2建立邻接关系,

7. IS-IS报文包

                hello报文:邻居发现,协商对等体参数,邻居建立,邻居保持。

                广播网中的Level-1 IS-IS使用Level-1 LAN IIH,目的组播MAC为:0180-c200-0014。

                广播网中的Level-2 IS-IS使用Level-2 LAN IIH,目的组播MAC为:0180-c200-0015。

                非广播网络中则使用P2P IIH。但是其没有表示DIS(虚节点)的相关字段。

8. IS-IS支持的网络类型

                点对点网络类型(P2P)。

                广播多路访问网络类型(Broadcast Multiple Access)。

                在帧中继等特殊环境下,可以通过创建子接口支持P2P的网络类型。

9. DIS和伪节点

        DIS:是指指定中间系统(Designated IS)。

        伪节点:是指在广播网络中由DIS创建的虚拟路由器

        DIS特点:

          在广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。Hello报文中包含Priority 字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。IS-IS中DIS发送Hello时间间隔默认为10/3秒,而其他非DIS路由器发送Hello间隔为10秒

10. DISDR不同
  1. DIS中优先级为0也可以参与选举。OSPF中优先级为0不参与选举DR
  2. OSPF选举DR/BDR需要waiting time达40秒,过程也较为复杂,而ISIS选举DIS等待两个Hello报文间隔就可以,简单快捷。
  3. 选举结果ISIS只有一个DIS,但是OSPF除了有DR,还有一个BDR用做备份。
  4. 选举结束后,后期有新的Router加入到链路进来,如果优先级比DIS高是可抢占的,但是DR是不可抢占的。
  5. 选举完成后,ISIS网络链路内所有的路由器之间都建立的是邻接关系。OSPF中DRothers只与DR/BDR形成full邻接关系, DRothers之间只有2-way的关系。
11. DISDR作用
  1. 进行SPF计算时,都把它当成虚节点,简化MA网络的逻辑拓扑(相同点)。
  2. 都是为了减少LSP/LSA的泛洪(相同点)。
  3. 在ISIS中还可以由DIS发送CSNP来同步链路的LSDB(ISIS扩展作用)
  4. 链路状态信息载体:

        LSP PDU:用于交换链路状态信息。实节点LSP;伪节点LSP(只在广播链路存在)

        SNP PDU:用于维护LSDB 的完整与同步,且为摘要信息。CSNP(用于同步LSP);PSNP(用于请求和确认LSP)

12. P2P网络LSDB同步过程

        建立邻居关系之后,RTA与RTB会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。

        假定RTB向RTA索取相应的LSP,此时向RTA发送PSNP。RTA发送RTB请求的LSP的同时启动LSP重传定时器,并等待RTB发送PSNP作为收到LSP的确认。

        如果在接口LSP重传定时器超时后,RTA还没有收到RTB发送的PSNP报文作为应答,则重新发送该LSP直至收到RTB的PSNP报文作为确认。

13. MA网络中新加入的路由器与DIS 的LSDB同步交互过程

        假设新加入的路由器RTC已经与RTB(DIS)和RTA建立了邻居关系。

        建立邻居关系之后,RTC将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP。

        该网段中的DIS会把收到RTC的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP 报文,进行该网络内的LSDB同步。

        RTC收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP(如RTA和RTB的LSP就没有)。

        RTB作为DIS收到该PSNP报文请求后向RTC发送对应的LSP进行LSDB 的同步。

13. 路由算法

        路由计算的开销方式:

        Narrow模式(设备默认模式开销都是10,手工配置接口开销取值范围为1~63)。

        Wide模式(设备默认模式开销都是10,手工配置接口开销取值范围是1~16777215)。

14. IS-ISOSPF的差异

15. 配置命令

        基础命令:

创建IS-IS进程:IS-IS 1
配置网络实体名称:network-entity  49.0001.0000.0000.0001.00 (49.0001:代表区域;0000.0000.0001:systemID,每个路由器的唯一标识)
进入接口:interface GigabitEthernet0/0/1
接口开启IS-IS:IS-IS enable

        其他命令:

配置全局level级别:is-level ( level-1 | level-1-2 | level-2 )
配置接口Level级别:isis circuit-level ( level-1 | level-1-2 | level-2 )
设置接口类型为P2P:isis circuit-type p2p
修改接口DIS优先级:isis dis-priority  20
路由渗透:默认level1没有level2的路由,要想有路由,需要在level1-2中配置:Import-route isis level-2 into level-1

        查询命令:

查看IS-IS邻接关系:display is-is peer
查看IS-IS路由表:display is-is route

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

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

相关文章

Xamarin.Android中“ADB0020: Android ABI 不匹配。你正将应用支持的“armeabi-v7a;arm64-v8a”异常处理

这里写自定义目录标题 1、问题2、解决 1、问题 在Xamarin.Android中出现ADB0020: Android ABI 不匹配。你正将应用支持的“armeabi-v7a;arm64-v8a”ABI 部署到 ABI“x86_64;x86”的不兼容设备。应创建匹配其中一个应用 ABI 的仿真程序,或将“x86_64”添加到应用生成…

手撸词法分析器(C/C++)

手撸词法分析器(C/C) 一.背景二.什么是词法分析器?三.代码四.思考 一.背景 这学期开设了编译原理,要求写个基本的词法分析器。所以博主就自己写了一份代码,也比较简单基础。 二.什么是词法分析器? 简单来…

Postman之接口测试

接口测试的必要条件 :请求方式、请求协议、请求地址、请求头、请求参数 常用请求方式 :Get请求(get请求一般是获取数据)、Post请求(post请求一般是提交数据) 传参格式 :表单提交、请求体提交 注…

什么是神经网络和机器学习?【云驻共创】

什么是神经网络和机器学习? 一.背景 在当今数字化浪潮中,神经网络和机器学习已成为科技领域的中流砥柱。它们作为人工智能的支柱,推动了自动化、智能化和数据驱动决策的进步。然而,对于初学者和专业人士来说,理解神经…

设计模式-构建者模式

作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS二次开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 目录 定义 特点 使用场景 优缺点 (1) 优点 …

Jmeter BeanShell调用Java方法加密

1、添加BeanShell前置处理器 由于请求接口时,会传加密参数。加密过程会在请求之前完成,所以需要使用前置处理器中beanshell preprocessor 2、编写BeanShell脚本 ①定义一个beashell变量:phoneNum,在Beanshell中可以直接调用Jmete…

EFK环境搭建(基于K8S环境部署)

目录 一.环境信息二.安装nfs供应商三.安装elasticsearch四.安装kibana组件五.安装fluentd 一.环境信息 1.服务器及k8s版本 IP地址主机名称角色版本192.168.40.180master1master节点1.27192.168.40.181node1node1节点1.27192.168.40.182node2node2节点1.27 2.部署组件版本 序…

go语言并发实战——日志收集系统(三) 利用sarama包连接KafKa实现消息的生产与消费

环境的搭建 Kafka以及相关组件的下载 我们要实现今天的内容,不可避免的要进行对开发环境的配置,Kafka环境的配置比较繁琐,需要配置JDK,Scala,ZoopKeeper和Kafka,这里我们不做赘述,如果大家不知道如何配置环境&#x…

元宇宙-虚拟世界的安全风险如何应对

元宇宙(Metaverse)是一个虚拟时空间的集合,由一系列的增强现实(AR)、虚拟现实(VR)和互联网(Internet)所组成。这个虚拟时空间是一个持续存在的、由众多虚拟世界互相连接而…

redis与etcd的对比

1.redis是一种高级的key:value存储系统,其中value支持五种数据类型: 1.1 字符串(strings) 1.2 字符串列表(lists) 1.3 字符串集合(sets) 1.4 有序字符串集合(…

STM32 HAL库F103系列之ADC实验(1)

ADC工作原理: 1、输入通道: 2、转换序列: A/D转换被组织为两组:规则组(常规转换组)和注入组(注入转换组) 规则组最多可以有16个转换,注入组最多有4个转换 规则组和注入…

Hudi-IDEA编程

项目 一、HudiSparkKafka(Scala) 配置详见【1.Scala配置】 依赖详见【1.HudiSparkKafka依赖】 1-1 构建SparkSession对象 def main(args: Array[String]): Unit {//1.构建SparkSession对象val spark: SparkSession SparkUtils.createSparkSession(…

中科亿海微-CL1656功能验证开发板

I. 引言 A. 研究背景与意义 CL1656是一款精度高、功耗低、成本低的5V单片低功耗运放,由核心互联公司研发制造,CL1656 是一个 16-bit、快速、低功耗逐次逼近型 ADC,吞吐速率高达 250 kSPS,并且内置低噪声、宽 带宽采样保持放大器。…

HarmonyOS开发实例:【分布式新闻客户端】

介绍 本篇Codelab基于栅格布局、设备管理和多端协同,实现一次开发,多端部署的分布式新闻客户端页面。主要包含以下功能: 展示新闻列表以及左右滑动切换新闻Tab。点击新闻展示新闻详情页。点击新闻详情页底部的分享按钮,发现周边…

Elasticsearch:如何将 MongoDB 数据引入 Elastic Cloud

作者:Hemendra Singh Lodhi Elastic Cloud 是由 Elastic 提供的基于云的托管服务。Elastic Cloud 允许客户在亚马逊网络服务 (AWS)、谷歌云平台 (GCP) 和微软 Azure 上部署、管理和扩展他们的 Elasticsearch 集群。 MongoDB 是一种流行的 NoSQL 文档导向数据库&am…

web安全学习笔记(10)

记一下第十四节课的内容。 一、MySQL学习 数据库基本结构:库——表——列——值 在本地打开navicat,连接数据库,新建一个liuyan库、liuyan库下新建一个member表: 在表里随意添加一些数据: 下面我们学习MySQL查询。新…

【Web】NewStarCTF 2022 题解(全)

目录 Week1 HTTP Head?Header! 我真的会谢 NotPHP Word-For-You Week2 Word-For-You(2 Gen) IncludeOne UnserializeOne ezAPI Week3 BabySSTI_One multiSQL IncludeTwo Maybe You Have To think More Week4 So Baby RCE BabySSTI_Two UnserializeT…

C++修炼之路之STL_stack,queue和容器适配器

目录 前言 一:SLT中stack和queue的基本使用 1.在官网中对stack和queue的简单介绍 2.数据结构中栈和队列的基本知识和操作 3. STL中stack的接口函数及使用 4.STL中queue的接口函数及使用 二:容器适配器Container 三:使用容器适配器…

springboot Logback 不同环境,配置不同的日志输出路径

1.背景: mac 笔记本开发,日志文件写到/data/logs/下,控制台报出:Failed to create parent directories for [/data/logs/........... 再去手动在命令窗口创建文件夹data,报Read-only file system 2.修改logback-spri…

Linux安装和使用Android Debug Bridge(ADB)

目录 1、开发环境和工具 2、ADB是什么? 3、安装ADB 3.1、使用包管理器安装 ADB 3.2、手动安装 ADB 4、使用ADB 4.1、连接设备 4.2、执行shell命令 4.3、安装应用程序 4.4、截取屏幕截图 4.5、模拟按键和手势 4.6、上传文件到Android设备 4.7、从Android设备下载文件…