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

ops/2025/1/15 23:27:35/
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-ISIS-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.ppmy.cn/ops/5738.html

相关文章

Docker - 安装

原文地址,使用效果更佳! Docker - 安装 | CoderMast编程桅杆https://www.codermast.com/dev-tools/docker/docker-install.html MacOS安装 1.使用 Homebrew 安装 brew install docker安装成功 如果你的电脑没有安装Docker,则会自动进行安…

双向链表(带头双向循环链表)的实现

前言:前面实现的单向链表,全称是不带头单向不循环链表。这里实现带头双向不循环链表,比单向链表好实现一点。 目录 链表的分类 单向链表与双向链表的比较: 双向链表的节点的定义: 多文件实现: List.h来…

[阅读笔记16][Orca-2]Teaching Small Language Models How to Reason

接下来是Orca-2,这篇是微软在23年11月发表的论文,在Orca-1的基础上又进行了一些改进。 作者希望教会Orca-2各种推理策略,例如逐步思考、回忆然后回答、先回忆再推理再回答、直接生成回答等等策略。并且Orca-2应该能针对不同任务应该使用最合适…

js生成pdf

js生成pdf html->img->pdf 下载依赖 npm install html2canvas npm install jspdf引入依赖 import html2canvas from "html2canvas" import jsPDF from jspdf;代码 const A4_WIDTH 595.28 const A4_HEIGHT 841.89 //参数 html(dom) imgsrc(封面可不加&am…

从0到1实现RPC | 接入Apollo配置中心

一、代码实现 添加依赖 添加apollo客户端的依赖和spring配置相关依赖 添加监听器 通过实现ApplicationContextAware接口,获取Spring上下文。 使用ApolloConfigChangeListener注解监听命名空间rpc-demo-provider.yaml和默认的application.properties。 监听逻辑…

用户的流失预测分析

项目背景 随着电信行业的持续发展,运营商们开始更加关注如何扩大他们的客户群体。研究表明,获取新客户所需的成本要远高于保留现有客户的成本。因此,在激烈的竞争中,保留现有客户成为了一个巨大的挑战。在电信行业中,…

UE 录屏自动化上传阿里云OSS

前言 最近在做一个功能,然后就发现了一个很有趣的东西,虽然在一定程度上属于偷懒,但是在一些短频快的应用中还是很适用的,下面我就针对于这个测试做一些简单的分享,希望帮助到大家,在实际的开发中获得一些灵…

数据仓库作业五:第8章 关联规则挖掘

目录 第8章 关联规则挖掘作业题 第8章 关联规则挖掘 作业题 1、设4-项集 X { a , b , c , d } X\{a,b,c,d\} X{a,b,c,d},试求出由 X X X 导出的所有关联规则。 解: 首先生成项集的所有非空真子集。这包括: { a } , { b } , { c } , {…