数据通信——网络层(IS-IS)

news2025/3/16 6:02:16

引言

    其实按道理讲,应该开始传输层了,后续的话网络层再补充就好了。不过网络层还有几种协议——IS-IS、EIGRP、BGP。所以还是一边准备整理传输层的知识,顺带把路由协议补充完了吧!

    这个“破协议”之前在网上重新复习和查资料,搜IS-IS全是什么恐怖组织,给我整蚌埠住了。IS-IS全称是Inside System—Inside System,那它为什么叫做中间系统到中间系统呢?

中间系统到中间系统指的是路由器到路由器,它是一个系统,IS-IS在一定程度上也算是一个协议簇(它制定了路由器数据传输中不同的方法和策略)。

    IS-IS曾是为OSI设计的,中间系统指的是网络设备。它是路由选择协议。RIP,EIGRP与OSPF都是固化协议。

    固化协议:指的是我在设计IPV4等报文的时候,固定你的报文格式,如果我用IPV6则无法承载一些报文。在IPV6中协议就要升级,比如RIPNG,EIGRPV6,OSPFV3(固化就意味着我要开发新的协议去适应新的报文格式)它们就是随着报文格式的变动衍生出来的新版本。

    但是ISIS不同,它通过TLV(Type Length Value)实现报文承载,IS-IS可同时支持IPV4和IPV6报文。通过向路由器添加TLV可以支持任何路由协议。(TCP/IP中闲在叫做双栈/集成 IS-IS

    IS-IS可以DIY各种想承载的环境,这要设置TLV。IS-IS整合度很高,IS-IS和OSPF使用相同的算法(SPF)但OSPF用ISPF+PRC计算,但IS-IS虽然也用ISPF+PRC算法,但IS-IS与OSPF有些许的不同。

    IS-IS属于链路状态协议(无类的),IS-IS适用于大型网络,(相应的载荷也很大)也适合运营商内网,但是比起OSPF稍逊略色,不过稳定性比OSPF好。IS-IS封装简单:LAYER 2|IS-IS|FCS(Layer2的意思是二层)。

IS-IS的术语

ES(End System):终端系统,其实就是(具有路由选择功能)主机 ( 双网卡主机)

IS(Intermediate System):中间系统,其实就是路由器

Area:一组路由器和主机,以及连接这些路由器和主机之间的链路构成ISIS网络的一个区域

Domain:一组连续的area就构成了domain

IS-IS构造

先看OSPF来理解IS-IS的构造,IS-IS处于网络层,它在网络层中有

(1)CONS:面向连接服务

(2)CLNS:无连接服务——它里面含有3个协议(CLNP,IS-IS,ES-IS)

(3)CLNP:无连接网络协议——类似于IPV4/IPV6,它定义了三层地址

(4)NSAP:网络服务接入点,它是CLNP定义的OSI中使用的地址。在OSI中一定要划分区域,网络设备与PC机都要指定区域,NSAP中会有字段表示你所属的地址。(OSI认为一个设备就是一个节点,当你用了NSAP,那无论用几个接口都是这个地址。那如何标识接口呢?用Circuit-ID也就是电路ID,每个接口都有电路ID,而且每个设备接口不一致的)

(5)SNPA:描述二层所对应的地址(接口的二层介质对应的地址)它叫子网接入点

IS-IS:对应的是TCP/IP中各种路由协议。比如:OSPF对应IS-IS

ES-IS:在IPV6中对应NDP它类似于NDP。PC通过发HELLO和路由器建立邻居并了解网关。路由器也下放Hello给PC,让路由器知道PC的三层与二层的映射,并传输数据。

IS-IS路由器ID用的NSAP格式,NSAP末尾有个NSEL是一个NET地址,它为00时叫做网络实体标题,但现在没有路由有NSAP地址的NET,因此要手工指定(你最少配1个最多3个)

IS-IS区域

    IS-IS区域:分为骨干与非骨干,但IS-IS骨干区域可无Area0,而且不需要挂靠,它其实准确来说是骨干链路,而非骨干区域。当路由启用的时候,所有东西被分为2级:level-1和level-2

Level-1相当于区域内路由(非骨干路由)

Level-2相当于属于Area0的路由器(骨干路由)

Level-1-2相当于OSPF的ABR路由(通过该链路将所有非骨干与骨干连接起来)

    IS-IS因为NSAP它只能属于一个区域!而且IS-IS的路由器仅属于一个区域但其链路可属于不同区域(与OSPF相反)OSPF的路由器可属于多个区域,但其链路仅属于一个区域。

IS-IS骨干链路是由一组连续的LSLevel-1-2组成的逻辑骨干

    LSDB:Level-1有Level-1的LSDB,它只包含区域内信息。Level-1-2帮助Level-1与其它区域传递。发送的叫LSP(相当于OSPF为LSA)叫链路状态PDU。它有一个位叫ATT位在LSP的字段里面。通常设置为0。当路由器是level-1-2时且在连入其他区域时,向内部发送一类LSP的时候会置位为1,随后level-1收到置位为1的LSP后,它会自动产生默认路由进行访问。当它想访问外部时就通过这个默认路由访问。但当有多个Level-1-2存在时,可能导致非对称路由(去的路由和回来的路径不一致)若有防火墙,一台设备的数据发出,如果回来的数据发送端不一致时会被拦截丢弃。

    这时就要采用路由泄露来处理。在Level-1-2上面部署后,它可让Level-1-2把Level-2学到的其他区域的骨干路由转化为Level-1的LSP在区域内发送,通过明细路由进行交互。

    总的来说,Level-1负责区域内的路由器,它只与同一区域的Level-1和Level-2路由形成邻居关系,不同区域的Level-1不能形成邻居关系。Level-1只负责维护Level-1的LSDB。该LSDB有本区域所有路由器信息。

    Level-2负责区域间路由器,它可以和同一个或不同区域的Level-2路由器或其他区域的Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含其他区域的IS-IS区域所有的路由信息。所有Level-2级别的路由器组成骨干网负责不同区域间通信,Level-2必须是物理连续的,保持骨干区稳定。

    Level-1-2区域同属于Level-1和level-2路由器,它可与同区域的level-1和level-2形成Level-1邻居关系,也可与Level-1和level-2形成level-2的邻居关系。Level-1必须通过Level-1-2连入其他区域,Level-1-2维护两个LSDB,Level-1为区域内区域,Level-2区域为区域间区域。

到本区域外的报文转给最近的Level-1-2路由器。Level-1必须通过Level-1-2才能连到其他区域。

    IS-IS路由逻辑是Level-1-2的路由器会把区域内学到的LSP复制一份放到Level-2的LSDB中去。但是Level-2的LSDB不会复制到Level-1,如果想这样做,那就利用路由泄漏在Level-1-2上处理。

IS-IS网络类型(点到点和广播)

重点看广播类型!!!

    在IS-IS中也要选择一个DIS叫做指定中间系统,它在建好邻居后进行。他的邻居只有down和up,down无邻居,up有邻居。

    DIS会比较大小,数值为0-127,最大优先级为DIS其次为SNPA也就是Mac地址,谁大选谁。DIS其实是一个优化,并不是依赖。可以高效同步LSDB(注:DIS为0,表示最小优先级)

    Level-1和Level-1建立邻居可选一个Level-1,Level-2和Level-2建立邻居可选一个Level-2。DIS可存在两个甚至是同一个路由器的同一个接口。你可以修改Level-1或者Level-2的优先级或者都进行修改也可以。

    DIS的优化是为了让大家知道LSDB是否同步,CSNP每10s发送一次LSP报头信息,告诉大家我所拥有的LSP。如果我没有这个LSP,发送PSNP请求,你收到后不需要答复,因为每10s会进行一次发送。

    DIS的表示形式是DIS中的System ID和一个字节的Circuit ID(非0值)标识来告诉网络中谁是DIS(路由器的接口标识就是System ID+Circuit ID)

以上是广播中,那点到点呢?

    我需要PSNP确认但CSNP仅发一次且可能会丢包。因此点到点中PSNP常用来回复ACK。我反复收到确认就一直等待(等待开启计时器)若没回复,重发。

IS-IS报文

Hello——建邻居

LSP——它是类似于LSA的拓扑信息,它里面含有:普通LSP(非DIS的LSP)和伪节点LSP(DIS LSP)

SNP——序列号PDU,分为CSNP(完整序列号)和PSNP(部分序列号)

CSNP——DD报文本路由器的LSDB中所有的LSP报头信息

PSNP——相当于LSR和LSAck

IS-IS地址结构

IS-IS地址结构分为:IDP(初始域部分)DSP(域指定部分)

    IDP分为AFI(组织格式标识符)用来描述网络位(类似于网络位);IDI(初始域ID)AFI的子域用来描述组织部门。

    DSP分为HODSP(高位预指定部分)描述路由器或者节点的所属区域;System ID类似主机位,标识一个节点,它在该区域是唯一的;SEL(网络服务协议号)当它为00时为本身的地址。

    NSAP为OSI中定位资源的地址。相当于OSI网络层协议CLNP的地址(类似IP地址的概念)Net为一类特殊NSAP(SEL=00)在配置is-is时,只要考虑NET即可。

    Hello PDU(IIH)用于建立和维持邻居关系:Level-1 LAN IIH,Level-2 LAN IIH,P2P IIH。

    IIH是中间系统的Hello(IS-IS的Hello叫做IIH)在广播网络上,使用LAN IIH报文来建立邻接关系,有两种类型的LAN IIH(LAN IIH 1和LAN IIH 2)。

一种类型是:[组播MAC:01-80-C2-00-00-14]=LAN IIH 1

另一种类型是:[组播MAC:01-80-C2-00-00-15]=LAN IIH 2

    Level-1路由器通过交互Level-1 LAN IIH报文来建立邻接关系;Level-2路由器通过交互Level-2 LAN IIH报文来建立邻接关系;Level-1-2会同时交互Level-1 LAN IIH和Level-2 LAN IIH报文来建立邻接关系。

LSP PDU用于交换链路状态信息

一个区域内,Level-1 LSP(在一个区域内传递,路由信息域拓扑信息)。

Level-2 LSP(在整个骨干链路中传递,不过不会传递给非骨干区域)它形成整个网络拓扑信息

Level-1被拷贝到Level-2发送给骨干,这是Level-1-2的逻辑。如果你想反过来,就要执行路由泄露。

LSP包含几个字段:ATT,OL,Ls type(用来描述是Level-1还是Level-2)。

Level-1和Level-2发送LSP时候,ATT位为0只有Level-1-2发送时ATT位LSP为1.前提为我是Level-1-2,也要有Level-2的邻居且LSDB中有Level-2的路由。这时我发送的1类LSP时,ATT置位为1。

SNP PDU用于维护LSDB的完整和同步,且为摘要信息。

IS-IS形成邻居关系条件

    IS-IS形成邻居条件的简单描述为:要满足在同一层次;同一个区域;同一个网段;相同的网络类型中。

    IS-IS度量值在计算时有两个分类(Narrow Metric)和(Wide Metric)

    Narrow Metric:默认为10,每传一跳+1(范围为0-63)但最大取值可为(0-1023)

OSPF有11种LSA ,但是IS-IS只有一种LSP,如果你想插入报头,那么就在其中添加TLV。

    Jumbo LSP:当LSDB中承载了太多LSP时,这时候每台路由器会赋予一个功能——LSP切片,我会把Jumbo LSP切成256片,但切片太多时要通过虚拟系统扩展技术,通过该技术,你就可以把路由器虚拟成50台虚拟机,每台虚拟机产生一个Jumbo然后循环上述步骤。因此这样不仅方便,而且一个LSP就能表达我所表达的内容。

    Wide Metric:它很大,建议使用。他的接口路径cost为24bit(0-1700w);完整路径cost为32bit(0-42亿)(前面两个都是可改的范围)但默认还是10,想改就去一个个改。wide兼容Narrow,虽然可以建邻居,但是传不了LSP。

IS-IS高级特性

    IS-IS建立广播邻居时,路由器R1先发送路由器R1的System ID和未知邻居字段。当路由器R2收到后会回复路由器R2自身的System ID和R1的neighbor字段。R1收到后会发送R1的System ID和R2邻居字段。

IS-IS点到点时,双方互发L2 LAN IIH即可

P2P网络时,LSDB同步如下:

    建立邻居后,R1和R2先发送CSNP给对端,若对端的LSDB和CSNP无同步,则发送PSNP请求索取相应的LSP;假定R2向R1索取相应的LSP,那么R1向R2发送请求LSP的同时启动LSP重传定时器,并等待R2发送PSNP作为收到的LSP确认;若在接口LSP重传定时器超时后,R1没接收到R2发送的PSNP报文作为应答,则重发送LSP直到收到PSNP报文。

OSI定义路由的层级

Level-0 PC到路由器之间 (Es-is,NDP)

Level-1 区域到路由 IS-IS(IS-IS)

Level-2 区域到路由 IS-IS(IS-IS)

Level-3 AS间路由 IDRP域间路由选择协议 (BGP)

TLV类型及作用

IS-IS有丰富的TLV,根据TLV完成报文承载。其内容如下:

(1)Area address TLV(始发者路由器的区域地址)

(2)IP interface address TLV(用来发送PDU数据包的接口地址或IP地址)

(3)Protocol Supported TLV(是指表示始发路由器支持的协议类型,如IP/CLNP/IPV6)

(4)ReStart Option TLV(用于优雅重启动)

(5)Point-to-Point adjacency State TLV(支持三次握手功能)

(6)multi topology TLV(支持多拓扑功能)

(7)Padding TLV(支持IHH填充)

(8)IS reachability TLV(用来列出始发路由器邻居)

(9)IP interface address TLV(是指发送PDU数据包的接口地址/IP地址)

(10)IP internal reachability TLV(IP内部可达,用于通告该LSP的路由器直连的路由选择域内的IP地址和相关掩码信息。该TLV不会出现在伪节点的LSP中)

    什么?你想让我细致的讲一讲这些东西,算了吧!以后有机会慢慢探讨这个东西吧!不过这些TLV的作用都写出来了,应该也都不难理解。

更多特性:

IS-IS还具备多种特性,这些特性很像OSPF的特性,毕竟都是基于SPF算法完成的协议么。

    快速收敛:增量最短路径优先算法ISPF,只对受影响的节点进行路由计算,只一次计算全部节点。

    部分路由计算PRC:只对发生某些变化的路由进行重新计算,根据ISPF算出SPT来更新路由。IS-IS中仅把路由器之间的链路定义为节点,不会把PC当作节点,比起OSPF在PC端连接时候因FLAP(翻动)导致的ISPF大量计算,IS-IS仅需PRC计算,CPU的消耗较少。

    智能定时器:分为SPF计算智能定时器和LSP生成智能定时器,当网络变化频繁的时候,智能定时器间隔时间全自动延长。当网络不停变化的时候,LSP要通告时可以根据网络情况改变LSP的发送频率。它也可以延迟ISPF和PRC的计算。根据网络情况决定收敛效率还是资源节约。

    LSP快速扩散/按优先级收敛:LSP支持切片,但每次发送规律是先发送10个,随后等待一段时间后再发送10个,若我想 一次性发送完毕,用LSP可快速扩散。它是根据链路带宽发送最大切片数,适用于紧急收敛,你也可以先收敛某些路由。

IS-IS认证:

当然了,该有的验证IS-IS也一应俱全,分别是接口认证;区域认证;路由认证三种。

接口认证:只对Level-1和Level-2的Hello报文认证

区域认证:对Level-1的SNP和LSP认证

路由认证:对Level-2的SNP和LSP认证

认证可以是:Null(无认证),明文认证,MD5认证。不过OSPF的认证再报头里面,而IS-IS的认证在TLV中。

IS-IS还有LSP的分片扩展能力(这个与mode-1和mode-2有关,这是另外的知识了)

IS-IS管理标记:IS-IS的Level-1和Level-2都支持标记但OSPF只有5类和7类LSA支持

IS-IS不支持NET宣告,只能在接口启用。

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

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

相关文章

Maven - 统一构建规范:Maven 插件管理最佳实践

文章目录 Available Plugins开源项目中的使用插件介绍maven-jar-pluginmaven-assembly-pluginmaven-shade-pluginShade 插件 - 标签artifactSetrelocationsfilters 完整配置 Available Plugins https://maven.apache.org/plugins/index.html Maven 是一个开源的软件构建工具&…

运维监控学习笔记9

2、画出拓扑图的小案例: 3、在连接的线上显示网络流量,使用了一个简单的公式: {nginx-server:net.if.out[ens33].last(0)} 4、在screens中显示nginx的状态页面: 5、zabbix报警: 发送邮件的选项。Email可以使用&#xf…

win系统部署Apollo-quick-start-2.1.0

win系统部署Apollo-quick-start-2.1.0 携程Apollo配置中心,官方部署包里提供了2个sql文件,需要刷入数据库。之后修改demo.sh里的数据库配置,最后使用git bash启动demo.sh刷sql脚本 官方部署包里提供了2个sql文件 修改demo.sh文件 使用git bash启动demo…

HotSpot虚拟机之字节码执行引擎

目录 一、栈帧 1. 栈帧结构 2. 基于栈的解释执行过程 二、方法调用 1. 方法调用指令 2. 分派 三、动态类型语言 四、参考资料 一、栈帧 1. 栈帧结构 栈帧是Java虚拟机栈进行方法调用和执行的数据结构,是方法最基本的执行单元,是栈的元素。一个栈…

文件操作 和 IO

目录 ​编辑一、认识文件 1、文件路径 2、其它知识 二、Java 中操作文件 三、文件内容的读写 1、Reader 2、InputStream 3、输出 一、认识文件 文件是在硬盘上存储数据的一种方式,操作系统帮我们把硬盘的一些细节都封装起来了 我们只需要了解文件相关的一些…

stack+queue

适配器 介绍 在C的标准模板库(STL)中,有几种适配器,它们是一些容器或函数对象的包装,提供了不同的接口和功能,用于适应特定的需求 分类 STL中的适配器可以分为两类:容器适配器和迭代器适配器 容…

PHP自己的框架实现function引入和dump函数(完善篇一)

1、实现效果 2、创建三个function.php 3、文件加载(KJ.php) 定义目录 define("FILE_PATH",KJ_CORE./file); //定义框架文件路径define("COMMON_PATH",ROOT_PATH./common); //定义公共目录 加载文件 public static function run(){…

一种多策略下RabbitMQ的延时队列实现

1.为什么会用到延时队列? 场景: 最近在开发一款系统中遇到这样一个场景,A系统开通套餐需要把套餐信息以邮件的形式发送给相关工作人员,经过人工审核通过后,在B系统里面开通,A系统会调B系统套餐列表接口查询套餐是否开通成功,开通成功则从A系统去完成订单,假如超过设定时间未开…

vue 发现页面找不到3秒后跳转到本页面

这个路由跳转用到的是编程式跳转this.$router.push 两种写法&#xff1a; 第一种可以通过path来跳转 goto(/find) find是路由里边的路径 <span click"goto(/find)">发现音乐</span> <span click"goto(/my)">我的音乐</span> <…

Virtualbox设置访问外网以及主机和虚拟机互通

参考链接 1、设置使虚拟机访问外网。选中虚拟机&#xff0c;右击选择“设置”。 2、在设置中选择“网络”&#xff0c;然后点击“网卡1”&#xff0c;选择“网络地址转换&#xff08;NAT&#xff09;”模式&#xff0c;点击“确定”。 4.此时你的虚拟机就可以访问外网了 5…

NRF24L01+数据手册_关于几种工作模式

使用的是官方数据手册的章节编号&#xff0c;原文截图方便对照&#xff0c;部分翻译&#xff08;标蓝&#xff09;、个人理解&#xff08;标紫&#xff09;&#xff0c;关键信息&#xff08;标红&#xff09;。 6.1 Operational Modes操作模式 6.1.1 State diagram状态机图 6…

sqlloader学习笔记

INFILE的用法 1&#xff09;模糊导入多个数据的文件。 可以在文件名中使用通配符。 星号 &#xff08;*&#xff09; 表示复数字符&#xff0c;问号 &#xff08;&#xff1f;&#xff09; 表示单个字符。 INFILE emp*.dat INFILE m?emp.dat 2&#xff09;如果不需要导入数据…

麒麟arm架构 编译安装qt5.14.2

1、先在官网下载qt源码&#xff1a; https://download.qt.io/archive/qt/5.14/5.14.2/single/[qt源码下载地址] 2、解压编译 使用tar -xvf qt-everywhere-src-5.14.2.tar.xz 解压压缩包 cd qt-everywhere-src-5.14.2 执行 ./configure --prefix/usr/local/qt.5.14.2 make -…

【Nginx17】Nginx学习:目录索引、字符集与浏览器判断模块

Nginx学习&#xff1a;目录索引、字符集与浏览器判断模块 今天要学习的内容有几个还是大家比较常见的&#xff0c;所以学习起来也不会特别费劲。对于目录的默认页设置大家都不会陌生&#xff0c;字符集的设置也比较常见&#xff0c;而浏览器的判断这一块&#xff0c;可能有同学…

大模型基础:GPT家族与提示学习

大模型基础:GPT 家族与提示学习 从 GPT-1 到 GPT-3.5 GPT(Generative Pre-trained Transformer)是 Google 于2018年提出的一种基于 Transformer 的预训练语言模型。它标志着自然语言处理领域从 RNN 时代进入 Transformer 时代。GPT 的发展历史和技术特点如下: GPT-12018年6月…

OpenSSH 远程升级到 9.4p1

OpenSSH 远程升级到 9.4p1 文章目录 OpenSSH 远程升级到 9.4p1背景升级前提1. 升级 OpenSSL2. 安装并启用Telnet 升级OpenSSH 背景 最近的护网行动&#xff0c;被查出来了好几个关于OpenSSH 的漏洞。这是因为服务器系统安装后&#xff0c;直接使用了系统自带版本的OpenSSH &am…

lib调试报LNK2038 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

最近用cef&#xff0c;要debug调试&#xff0c;引用库时&#xff0c;提示&#xff1a; LNK2038 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2” 研究后的结论&#xff1a;这是因为&#xff0c;这个库的实现方式太老&#xff1a; #if _HAS_ITERATOR_DEBUG…

【C++笔记】C++之类与对象(上)

【C笔记】C之类与对象&#xff08;上&#xff09; 1、类是结构体的升级2、类中可以定义的东西3、类访问限定符4、类的声明5、类的实例化(定义)6、类的大小的计算7、this指针 1、类是结构体的升级 C的一个显著特征就是兼容C语言&#xff0c;所以C把结构体“升级”成了“类”&am…

高等数学 | 微分方程解决单中值问题、高阶导数的莱布尼兹公式

单中值问题都可以用通过求解微分方程的特解构造辅助函数&#xff0c;再用罗尔定理即可。 高阶导数的莱布尼兹公式推导以及应用&#xff0c;先求导至能够发现某次求导开始为0的时候&#xff0c;对其使用莱布尼兹公式。

Photoshop制作漂亮光泽感3D按钮

原文链接(https://img-blog.csdnimg.cn/45472c07f29944458570b59fe1f9a0e0.png)