深入剖析 IS - IS 路由协议的原理、配置及与 OSPF 的对比

目录

ISIS概述

NSAP(类似于IP地址)

NET

NET配置举例 

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

区域和区域的分界点

IS-IS路由器的分类

Level-1路由器

Level-2路由器

Level-1-2路由器

ISIS支持的网络类型 

ISIS开销值 

IS-IS报文格式

IS-IS报文类型概述 

IS-IS常见的TLV

IS-IS工作原理

邻接关系建立

邻接关系建立原则

IS-IS按如下原则建立邻接关系:

IHH

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

DIS与伪节点 (DIS相当于OSPF 的DR)

 点到点中邻接关系建立过程

链路状态数据库同步(Csnp Psnp Lsp)

LSP(相当于OSPF中的LSA)

IS-IS 的LSDB

​编辑 查看非伪节点的LSP 

查看伪节点LSP 

CSNP(相当于OSPF的DD)

PSNP(相当于OSPF的Lsr 和Lsack )

广播网络中LSP的同步过程 

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

LSP处理机制

路由计算 

Level - 1路由器的路由计算

Level - 1 路由器的次优路径的问题

路由渗透(解决次优路径问题) 


ISIS概述

  • ISISISO提出的开始为CLNP服务后来CLNP淘汰了就支持IP了
  • OSPFTCP/IP提出的为IP服务
  • 以前是纯isis  他不支持IP
  • 后来扩展变成了集成isis 支持IP了
  • IS-lS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO(International Organization for Standardization,国际标准化组织)为它的CLNP(ConnectionLessNetworkProtocol,无连接网络协议)设计的一种动态路由协议。
  • 随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSl(Open System Interconnect,开放式系统互联)环境中,我们将扩展后的IS-IS称为集成IS-IS

  • 集成ISIS特点:
    • 支持CLNP网络、IP网络
    • 采用数据链路层封装
  • OSPF特点:
    • 只支持IP网络
    • 采用IP报文封装

NSAP(类似于IP地址)

  • NSAP(Network Service Access Point,网络服务访问点)是OSI协议栈中用于定位资源的地址,主要用于提供NSAP网络层和上层应用之间的接口。NSAP包括IDP及DSP,如下图所示

  • IDP(Initial Domian Part)相当于IP地址中的主网络号。它是由ISO规定,并由AFI(Authority and formatIdentifier)与IDl(Initial Domain ldentifier)两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域.
  • DSP(Domian specific Part)相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,SystemID用来区分主机,SEL(NSAP Selector)用来指示服务类型

192.168.1.1

IDP   192.168.1

DSP  .1

NET

  • NET(Network Entity Title,网络实体名称)是OSI协议栈中设备的网络层信息,主要用于路由计算由区域地址(AreaID)和SystemID组成,可以看作是特殊的NSAP(SEL为00的NSAP)
  • NET的长度与NSAP的相同,最长为20Byte,最短为8Byte
  • 在IP网络中运行IS-IS时,只需配置NET,根据NET地址设备可以获取到AreaID以及SystemID.

NET配置举例 

  • 每台运行IS-IS的网络设备至少需拥有一个NET,当然,一台设备也可以同时配置多个NET,但是这些NET的SystemID必须相同。
  • 在华为的网络设备上,System ID的长度总是固定的6Byte。在一个-IS-IS路由域中,设备的System ID必须唯一,为了便于管理,一般根据RouterID配置SystemID。

Area ID 相当于OSPF里面的区域ID

System ID  相当于OSPF里面的Router ID 

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

区域和区域的分界点

  • OSPF :路由器
  • IS-IS  :链路
  • OSPF里面 路由器分为主干路由器/常规路由器/ABR/ASBR
  • IS-IS  路由器分为L1 L2 L1/2
  • 相同的区域 L1 - L1 = L1  L2 - L2 = L2   L1/2 - L1/2 = L1  / L2    L1 - L1/2 = L1
  • 不同的区域 只能形成L2 L1/2 - L2 = L2

IS-IS路由器的分类

Level-1路由器

  • Level-1路由器(例如图中的R1)是一种IS-IS区域内部路由器,它只与属于同一区域的Level-1和Level-1-2路由器形成邻接关系,这种邻接关系称为Level-1邻接关系。Level-1路由器无法与Level-2路由器建立邻接关系。
  • Level-1路由器只负责维护Level-1的链路状态数据库LSDB,该LSDB只包含本区域的路由信息。值得一提的是,Level-1路由器必须通过Level-1-2路由器接入IS-IS骨干区域从而访问其他区域。

Level-2路由器

  • Leve1-2路由器(例如图中的R4、R5、R6、R7)是IS-IS骨干路由器它可以与同一或者不同区域的Level-2路由器或者Level-1-2路由器形成邻接关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含整个15-s域的所有路由信息。
  • 所有Level-2级别(即形成Leve1-2邻接关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中Leve1-2级别的路由器必须是物理连续的,以保证骨干网的连续性。 

Level-1-2路由器

  • Level-1-2路由器与OSPF中的ABR非常相似,它也是IS-IS骨干网络的组成部分。
  • Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Leve1-2的LSDB用于区域间路由
  • 同时属于Level-1和Level-2的路由器称为Level-1-2路由器(例如图中的R2和R3),它可以与同一区域的Leve1-1和Level-1-2路由器形成Level-1邻接关系,也可以与其他区域的Leve1-2和Level-1-2路由器形成Level-2的邻接关系。 

ISIS支持的网络类型 

  • IS-IS会自动根据接口的数据链路层封装决定该接口的缺省网络类型,IS-IS支持两种类型的网络
    • 广播(Broadcast):如Ethernet(以太网)。
    • 点到点(P2P):如PPP、HDLC等。

ISIS开销值 

  • IS-IS使用cost(开销)作为路由度量值,Cost值越小,则路径越优。IS-IS链路的Cost与设备的接口有关,与OSPF类似,每一个激活了IS-IS的接口都会维护接口cost。然而与OSPF不同的是,IS-IS接口的cost在缺省情况下并不与接口带宽相关(在实际部署时,IS-IS也支持根据带宽调整Cost值),无论接口带宽多大,缺省时cost10
  • 一条IS-IS路径的Cost等于本路由器到达目标网段沿途的所有链路的Cost总和。
  • ospf开销 100/带宽
  • IS-IS有三种方式来确定接口的开销,按照优先级由高到低分别是:
    • 接口开销:为单个接口设置开销。
    • 全局开销:为所有接口设置开销。
    • 自动计算开销:根据接口带宽自动计算开销。

IS-IS报文格式

  • IS-IS报文是直接封装在数据链路层的帧结构中的。
  • PDU(Protocol Data Unit,协议数据单元)可以分为两个部分,报文头(IS-IS Header)和变长字段部分(Variable Length Fields )
  • 其中IS-IS Header又可分为通用头部(PDU Common Header)和专用头部(PDU Specific Header)。对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别。

IS-IS报文类型概述 

  • IS-IS的PDU有4种类型:IIH(IS-IS Hello),LSP(Link State PDU,链路状态报文),CSNP(Complete Sequence NumberPDU,全序列号报文),PSNP(Partial Sequence Number PDU,部分序列号报文)
  • IIH:用于建立和维持邻接关系,广播网络中的Level-1 IS-1S路由器使用LeveI-1 LAN IIH;广播网络中的Level-2 1S-IS路由器使用LeveI-2 LAN IIH;点到点网络中则使用P2P IIH。
  • LSP:用于交换链路状态信息。LSP分为两种,Level-1LSP、Level-2 LSP。
  • SNP:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步。SNP包括CSNP和PSNP,进一步又可分为LeveI-1 CSNP,Level-2 CSNP、Level-1 PSNP和Level-2 PSNP.

OSPFIS-IS
HelloIS-IS Hello
DDCSNP  完全序列号PDU
LSRPSNP 部分序列号PDU
LSULSP   链路状态PDU
LSackPSNP

PSNP  2个作用  请求和确认 

IS-IS常见的TLV

  • TLV的含义是:类型(TYPE),长度(LENGTH),值(VALUE)。实际上是一个数据结构,这个结构包含了这三个字段。
  • 使用TLV结构构建报文的好处是灵活性和扩展性好。采用TLV使得报文的整体结构固定,增加新特性只需要增加新TLV即可,不需要改变整个报文的整体结构。 

IS-IS工作原理

邻接关系建立

邻接关系建立原则

  • IS-IS按如下原则建立邻接关系:
    • 只有同一层次的相邻路由器才有可能成为邻接。
    • 对于Level-1路由器来说,AreaID必须一致。
    • 链路两端IS-IS接口的网络类型必须一致。
    • 链路两端IS-IS接口的地址必须处于同一网段(默认情况下)
  • 由于IS-1S是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻接关系的形成与IP地址无关。但在实际的部署中,在IP网络上运行IS-1S时,需要检查对方的IP地址的。如果接口配置了从IP,那么只要双方有某个IP(主IP或者从IP)在同一网段,就能建立邻接,不一定要主IP相同。
IHH
  • ospf  每10秒发一个hello报文  到40秒还没收到就down
  • ISIS   每10秒发一个IIH  到30秒没收到就down

IIH报文用于建立和维持邻接关系,广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH;广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH;点到点网络中则使用P2P IIH。

  • Holding time 默认30s
  • IS-IS 里面Priority 默认64  范围0-127 OSPF 默认1   范围0-255 

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

两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻接关系。在不同类型的网络上,IS-IS的邻接建立方式并不相同。在广播网络中,使用三次握手建立邻接关系。

DIS与伪节点 (DIS相当于OSPF 的DR)

  • 在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DlS(Designated Intermediate System)
  • DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIs的system ID和Circuit ID(非0值)标识.

 OSPF  DR/BDR

  1. 40 S
  2. 比较优先级  0-255
  3. Router ID
  • 选举出来的
  • 终生制度(有一个优先级更高的路由器过来  也不会成为DR)
  • 世袭制  DR -  BDR

IS-IS  DIS

  1. 20 S
  2. 比较优先级  0-127   
  3. MAC地址

 点到点中邻接关系建立过程

  • 点到点网络中,邻接关系的建立使用两次握手方式:只要路由器收到对端发来的Hello报文,就单方面宣布邻接为Up状态,建立邻接关系
  • 两次握手机制存在明显的缺陷,华为设备在点到点网络中使用IS-IS时,默认使用三次握手建立邻接关系。此方式通过三次发送P2P IIH最终建立起邻接关系

链路状态数据库同步(Csnp Psnp Lsp)

LSP(相当于OSPF中的LSA)

  • IS-IS链路状态报文LSP用于交换链路状态信息。LSP分为两种:Level-1 LSP 和 Level-2 LSP。LSP由Level-1 Level-1路由器传送,Level-2LSP由Level-2路由器传送,Level-1-2路由器则可传送以上两种LSP。
  • 两类LSP有相同的报文格式。(最大生存时间1200s、周期900s)  (OSPF  3600 1800)

IS-IS 的LSDB

 查看非伪节点的LSP 

查看伪节点LSP 

CSNP(相当于OSPF的DD)

  • CSNP包含该设备LSDB中所有的LSP摘要,路由器通过交互CSNP来判断是否需要同步LSDB
    • 在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒)
    • 在点到点网络上,CSNP只在第一次建立邻接关系时发送。

PSNP(相当于OSPF的Lsr 和Lsack )

  • PSNP只包含部分LSP的摘要信息(与CSNP不同)
    • 当发现LSDB不同步时,PSNP来请求邻居发送新的LSP。
    • 在点到的网络中,当收到LSP时,使用PSNP对收到的LSP进行确认。

广播网络中LSP的同步过程 

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

 

LSP处理机制

 

路由计算 

Level - 1路由器的路由计算

  • R1是Leve1-1路由器,只维护Level-1 LSDB,该LSDB中包含同属一个区域的R2及R3以及R1自己产生的Leve1-1 LSP。
  • R1根据LSDB中的Level-1LSP计算出Area 49.0001内的拓扑,以及到达区域内各个网段的路由信息。
  • R2及R3作为Area 49.0001内的Level-1-2路由器,会在它们向该区域下发的Level LSP中设置ATT标志位,用于向区域内的Level-1路由器宣布可以通过自己到达其他区域。R1作为Leve1-1路由器,会根据该ATT标志位,计算出指向R2或R3的默认路由

左边黄色区域相当于OSPF 里面的 totally stub

Level - 1 路由器的次优路径的问题

缺省时, R1只能通过指向R2或R3的默认路由到达区域外部,但是R1距离R2和R3路由器的cost值相等,那么当R1发送数据包到192.168.20.0/24时,就有可能选择路径2,导致出现次优路径

路由渗透(解决次优路径问题) 
  • 缺省情况下,Leve1-1-2路由器不会将到达其他区域的路由通告本Leve1-1区域中。
  • 通过路由渗透,可以将区域间路由通过Leve-1-2路由器传递到Leve1-1区域,此时Leve-1路由器可以学习到其他区域的详细路由,从而计算出最优路径。

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

  • R2及R3都维护Level-1LSDB,它们能够通过这些LSDB中的LSP计算出Area49.0001的路由。
  • R2及R3都维护Level-2LSDB,它们能够通过这些LSDB中的LSP计算出Area49.0002的路由。
  • R2及R3将到达Area49.0001的路由以Level-2LSP的形式发送到Area 49.0002.

 

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

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

相关文章

【deepseek 学c++】weakptr引用场景

std::weak_ptr 是 C 中与 std::shared_ptr 配合使用的智能指针,它本身不拥有资源的所有权,仅观察资源的状态,主要用于解决 shared_ptr 的循环引用问题和临时访问共享资源的需求。以下是 weak_ptr 的典型应用场景和核心价值:![ 为…

23种设计模式-适配器(Adapter)设计模式

适配器设计模式 🚩什么是适配器设计模式?🚩适配器设计模式的特点🚩适配器设计模式的结构🚩适配器设计模式的优缺点🚩适配器设计模式的Java实现🚩代码总结🚩总结 🚩什么是…

R语言对偏态换数据进行转换(对数、平方根、立方根)

我们进行研究的时候经常会遇见偏态数据,数据转换是统计分析和数据预处理中的一项基本技术。使用 R 时,了解如何正确转换数据有助于满足统计假设、标准化分布并提高分析的准确性。在 R 中实现和可视化最常见的数据转换:对数、平方根和立方根转…

REC一些操作解法

一.Linux命令长度突破 1.源码如下 <?php $param $_REQUEST[param];if ( strlen($param) < 8 ) {echo shell_exec($param); } 2.源码分析 echo执行函数&#xff0c;$_REQUEST可以接post、get、cookie传参 3.破题思路 源码中对参数长度做了限制&#xff0c;小于8位&a…

16个气象数据可视化网站整理分享

好的&#xff01;以下是关于“16个气象数据可视化网站整理分享”的软文&#xff1a; 16个气象数据可视化网站整理分享 气象数据可视化已成为现代气象研究、决策支持以及公众天气服务的重要组成部分。从天气预报到气候变化监测&#xff0c;全球许多气象数据可视化平台为专业人士…

Stereolabs ZED Box Mini:机器人与自动化领域的人工智能视觉新选择

在人工智能视觉技术快速发展的今天&#xff0c;其应用场景正在持续拓宽&#xff0c;从智能安防到工业自动化&#xff0c;从机器人技术到智能交通&#xff0c;各领域都在积极探索如何利用这一先进技术。而 Stereolabs 推出的ZED Box Mini&#xff0c;正是一款专为满足这些多样化…

LeetCode热题100|128.最长连续序列,283.移动零

128.最长连续序列 题目链接&#xff1a;128. 最长连续序列 - 力扣&#xff08;LeetCode&#xff09; 这里要求的一个乱序的数组里连续数字的个数&#xff0c;比如【100 &#xff0c;4&#xff0c;200&#xff0c;1&#xff0c;3&#xff0c;2】 里面连续的数字就是【1&#…

Unity-RectTransform设置UI width

不知道有没人需要这样的代码&#xff0c;就是.sizeDelta //不确定是不是英文翻译的原因&#xff0c;基本很难理解&#xff0c;sizeDeltaSize&#xff0c;//未必完全正确&#xff0c;但这么写好像总没错过 //image 在一个UnityEngine.UI.Image 的数组内foreach (var image in l…

GZCTF平台搭建及题目上传

前言 我用手里的Ubuntu虚拟机搭建的&#xff0c;大家根据自己的实际情况来吧 安装及部署 首先&#xff0c;你的虚拟机需要有Docker和Docker-Compose&#xff0c;前者可以看我之前的文章&#xff0c;另外一个可以输入下面的命令安装&#xff0c;注意先获取管理员权限&#xff…

记录Jmeter 利用BeanShell 脚本解析JSON字符串

下载org.json包(文档说明) #下载地址 https://www.json.org/ # github 地址 https://github.com/stleary/JSON-java # api 文档说明 https://resources.arcgis.com/en/help/arcobjects-java/api/arcobjects/com/esri/arcgis/server/json/JSONObject.htmlBeanShell脚本 import…

在Centos 7环境下安装MySQL

前言&#xff1a;在安装与卸载MySQL时&#xff0c;用户需切换为root&#xff0c;这样安装之后&#xff0c;普通用户也能够使用。 Tips:我们在刚开始学习时&#xff0c;尽量全部使用root进行&#xff0c;适应mysql语句&#xff0c;后面学了用户管理&#xff0c;就可以考虑新建普…

使用HTML5和CSS3实现3D旋转相册效果

使用HTML5和CSS3实现3D旋转相册效果 这里写目录标题 使用HTML5和CSS3实现3D旋转相册效果项目介绍技术栈核心功能实现思路1. HTML结构2. CSS样式解析2.1 基础样式设置2.2 3D效果核心样式2.3 卡片样式 3. JavaScript交互实现3.1 旋转控制3.2 自动播放功能 技术要点总结项目亮点总…

CentOS 7下安装PostgreSQL 15

一、简介 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统&#xff08;ORDBMS&#xff09;&#xff0c;是以加州大学计算机系开发的POSTGRES&#xff0c;4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业…

pytorch构建线性回归模型

仅仅用于自己记录pytorch学习记录 线性回归模型 &#xff08;1&#xff09;准备数据集 数据&#xff1a;三个数据x[x1,x2,x3] y[y1,y2,y3] import torch #线性回归&#xff0c;我们使用三组数据&#xff0c;分别是&#xff08;1,2&#xff09;&#xff0c;&#xff08;2,4&a…

Pytorch学习笔记(十二)Learning PyTorch - NLP from Scratch

这篇博客瞄准的是 pytorch 官方教程中 Learning PyTorch 章节的 NLP from Scratch 部分。 官网链接&#xff1a;https://pytorch.org/tutorials/intermediate/nlp_from_scratch_index.html 完整网盘链接: https://pan.baidu.com/s/1L9PVZ-KRDGVER-AJnXOvlQ?pwdaa2m 提取码: …

mysql--socket报错

错误原因分析 MySQL 服务未运行&#xff08;最常见原因&#xff09; 错误中的 (2) 表示 “No such file or directory”&#xff0c;即 /tmp/mysql.sock 不存在这通常意味着 MySQL 服务器根本没有启动 socket 文件路径不匹配 客户端尝试连接 /tmp/mysql.sock但 MySQL 服务器可…

进军场景智能体,云迹机器人又快了一步

&#xff08;图片来源&#xff1a;Pixels&#xff09; 2025年&#xff0c;AI和机器人行业都发生了巨大改变。 数科星球原创 作者丨苑晶 编辑丨大兔 2025年&#xff0c;酒店行业正掀起一股批量采购具备AI功能的软硬一体解决方案的热潮。 在DeepSeek、Manus等国产AI软件的推动…

WPS宏开发手册——JSA语法练习

目录 系列文章3、JSA语法练习3.1、运算练习3.2、比较练习3.3、if else练习3.4、for 练习3.5、字符串、数组方法练习3.6、语义转编程练习题 系列文章 使用、工程、模块介绍 JSA语法 JSA语法练习题 第四篇EXCEL常用API&#xff0c;持续更新中… 3、JSA语法练习 3.1…

ENSP学习day11

NAT地址转换&#xff08;二&#xff09;NAPT与easy ip 一&#xff1a;NAPT是Network Address Port Translation的缩写&#xff0c;也称为PAT&#xff08;Port Address Translation&#xff09;。NAPT是一种网络转换技术&#xff0c;用于在私有网络和公共网络之间进行地址转换以…

当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系

《当Kafka化身抽水马桶&#xff1a;论组件并发提升与系统可用性的量子纠缠关系》 引言&#xff1a;一场OOM引发的血案 某个月黑风高的夜晚&#xff0c;监控系统突然发出刺耳的警报——我们的数据发现流水线集体扑街。事后复盘发现&#xff1a;Kafka集群、Gateway、Discovery服…