IS-IS原理与配置

news2024/9/22 15:45:21

IS-IS原理与配置

• IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO (International Organization for Standardization,国际标准化组织)为它的CLNP (ConnectionLessNetwork Protocol,无连接网络协议)设计的一种动态路由协议。

• 随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF在RFC1195中对IS-IS进行了扩 充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnect,开放式系统 互联)环境中,我们将扩展后的IS-IS称为集成IS-IS。 • 本课程主要介绍集成IS-IS的基本概念、工作原理以及配置方法。

一.IS-IS的基本概念

IS-IS是ISO定义的OSI协议栈中的CLNS(ConnectionLess Network Service,无连接网络服务)的一部分。

在这里插入图片描述

• IS-IS是一种链路状态路由协议,IS-IS与OSPF在许多方面非常相似,例如运行IS-IS协议的直 连设备之间通过发送Hello报文发现彼此,然后建立邻接关系,并交互链路状态信息。

• CLNS由以下三个部分组成:

​ ▫ CLNP:类似于TCP/IP中的IP协议。

​ ▫ IS-IS:类似于TCP/IP中的OSPF。

​ ▫ ES-IS:类似于TCP/IP中的ARP,ICMP等。

• ES:End System,终端系统,类似于IP网络环境中的主机。

• ES-IS:End System to Intermediate System,终端系统到中间系统。

NSAP

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

在这里插入图片描述

• IDP(Initial Domian Part)相当于IP地址中的主网络号。它是由ISO规定,并由AFI(Authority and Format Identifier)与IDI(Initial Domain Identifier)两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识 域。

• DSP(Domian Specific Part)相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和 SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL(NSAP Selector)用来 指示服务类型。

NET

• NET(Network Entity Title,网络实体名称)是OSI协议栈中设备的网络层信息,主要用于路由 计算,由区域地址(Area ID)和System ID组成,可以看作是特殊的NSAP(SEL为00的NSAP)。

• NET的长度与NSAP的相同,最长为20Byte,最短为8Byte。

• 在IP网络中运行IS-IS时,只需配置NET,根据NET地址设备可以获取到Area ID以及System ID。

在这里插入图片描述

• Area ID由IDP和DSP中的High Order DSP组成,既能够标识路由域,也能够标识路由域中 的区域。因此,它们一起被称为区域地址,相当于OSPF中的区域编号。

​ ▫ 一般情况下,一个路由器只需要配置一个区域地址,且同一区域中所有节点的区域地 址都要相同。为了支持区域的平滑合并、分割及转换,缺省情况下,一个IS-IS进程下 最多可配置3个区域地址。

• System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为6Byte。

NET的配置举例

• 每台运行IS-IS的网络设备至少需拥有一个NET,当然,一台设备也可以同时配置多个NET,但是 这些NET的System ID必须相同。

• 在华为的网络设备上,System ID的长度总是固定的6Byte。在一个IS-IS路由域中,设备的System ID必须唯一,为了便于管理,一般根据Router ID配置System ID。

在这里插入图片描述

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

在这里插入图片描述

​ 注: L1: Level-1 L1/2: Level-1-2 L2: Level-2

• IS-IS在自治系统内采用骨干区域与非 骨干区域两级的分层结构: ▫ Level-1路由器部署在非骨干区 域。 ▫ Level-2路由器和Level-1-2路由 器部署在骨干区域。

• 每一个非骨干区域都通过Level-1-2路 由器与骨干区域相连。 如图上图所示,整个骨干区域不仅包括 Area49.0002中的所有路由器,还包括其 它区域的Level2和Level-1-2路由器。

• 在学习OSPF过程中,我们已经体会到了多区域、层次化网络设计的好处。对于链路状态路 由协议而言,运行了该协议的设备会向网络中通告链路状态信息,同时也收集网络中所泛 洪的链路状态信息后加以存储,并最终以这些信息为基础进行计算,从而得到路由信息。 如果不采用多区域部署的方式,那么随着网络的规模逐渐增大,网络中泛洪的链路状态信 息势必会越来越多,所有设备都将承受更重的负担,路由计算机收敛将逐渐变得更加缓慢, 这也使得网络的扩展性变差。

• 以上拓扑结构图可以体现IS-IS与OSPF的不同点: ▫ 在IS-IS中,每个路由器都只属于一个区域;而在OSPF中,一个路由器的不同接口可 以属于不同的区域。

​ ▫ 在IS-IS中,单个区域没有骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨 干区域。

​ ▫ 在IS-IS中,Level-1和Level-2级别的路由都采用SPF算法,分别生成最短路径树SPT (Shortest Path Tree);而在OSPF中,只有在同一个区域内才使用SPF算法,区域 之间的路由需要通过骨干区域来转发。

IS-IS路由器的分类 (1)
Level-1路由器

▫ Level-1路由器(例如图中的R1)是一种IS-IS区域内部路由器,它只与属于同一区域的Level-1和Level-1-2路由器形成 邻接关系,这种邻接关系称为Level-1邻接关系。Level-1路由器无法与Level-2路由器建立邻接关系。

▫ Level-1路由器只负责维护Level-1的链路状态数据库LSDB,该LSDB只包含本区域的路由信息。值得一提的是,Level1路由器必须通过Level-1-2路由器接入IS-IS骨干区域从而访问其他区域。

在这里插入图片描述

IS-IS路由器的分类 (2)
Level-2路由器

▫ Level-2路由器(例如图中的R4、R5、R6、R7)是IS-IS骨干路由器,它可以与同一或者不同区域的Level-2路由器或者 Level-1-2路由器形成邻接关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含整个IS-IS域的所有路由信息。

▫ 所有Level-2级别(即形成Level-2邻接关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中Level2级别的路由器必须是物理连续的,以保证骨干网的连续性。

在这里插入图片描述

IS-IS路由器的分类 (3)
Level-1-2路由器

▫ Level-1-2路由器与OSPF中的ABR非常相似,它也是IS-IS骨干网络的组成部分。 ▫ Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。

▫ 同时属于Level-1和Level-2的路由器称为Level-1-2路由器(例如图中的R2和R3),它可以与同一区域的Level-1和 Level-1-2路由器形成Level-1邻接关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻接关系。

在这里插入图片描述

在华为路由器上配置IS-IS时,缺省时,路由器全局Level为Level-1-2,当然,可以通过命令 修改该设备的类型。

IS-IS支持的网络类型

IS-IS会自动根据接口的数据链路层封装决定该接口的缺省网络类型, IS-IS支持两种类型的网络:

​ ▫ 广播(Broadcast): 如Ethernet。

​ ▫ 点到点(P2P): 如PPP、 HDLC等。

在这里插入图片描述

对于NBMA网络,需对其配置子接口,并注意子接口类型应配置为P2P。

IS-IS开销值

• IS-IS使用Cost(开销)作为路由度量值,Cost值越小,则路径越优。IS-IS链路的Cost与设备的接口有关,与 OSPF类似,每一个激活了IS-IS的接口都会维护接口Cost。然而与OSPF不同的是,IS-IS接口的Cost在缺省情 况下并不与接口带宽相关(在实际部署时,IS-IS也支持根据带宽调整Cost值),无论接口带宽多大,缺省时 Cost为10。

• 一条IS-IS路径的Cost等于本路由器到达目标网段沿途的所有链路的Cost总和。

• IS-IS有三种方式来确定接口的开销,按照优先级由高到低分别是:

​ ▫ 接口开销:为单个接口设置开销。

​ ▫ 全局开销:为所有接口设置开销。

​ ▫ 自动计算开销:根据接口带宽自动计算开销。

在这里插入图片描述

• 在早期的ISO10589中,使能IS-IS的接口下最大只能配置值为63的开销值,此时IS-IS的开销 类型为narrow。但是在大型网络设计中,较小的度量范围不能满足实际需求。RFC3784中 规定,使能IS-IS的接口开销值可以扩展到16777215,此时IS-IS的开销类型为wide。

• 缺省时,华为路由器采用的开销类型是narrow。

• narrow类型下使用的TLV:

​ ▫ 128号TLV(IP Internal Reachability TLV):用来携带路由域内的IS-IS路由信息。

​ ▫ 130号TLV(IP External Reachability TLV):用来携带路由域外的IS-IS路由信息。

​ ▫ 2号TLV(IS Neighbors TLV):用来携带邻居信息。

• wide类型下使用的TLV:

​ ▫ 135号TLV(Extended IP Reachability TLV):用来替换原有的IP reachability TLV,携 带IS-IS路由信息,它扩展了路由开销值的范围,并可以携带sub TLV。

​ ▫ 22号TLV(IS Extended Neighbors TLV):用来携带邻居信息。

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通用头部详解

在这里插入图片描述

重要字段解释:

• Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符, 固定为0x83。 • Length Indicator:IS-IS头部的长度(包括通用头部和专用头部),以Byte为 单位。

• Version/Protocol ID Extension:版本/协议标识扩展,固定为0x01。

• System ID Length:NSAP地址或NET中System ID区域的长度。值为0时,表 示System ID区域的长度为6Byte。

• R(Reserved):保留,固定为0。

• Version:固定为0x01。

• Max.Areas:支持的最大区域个数。设置为1~254的整数,表示该IS-IS进程 实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区 域地址数。

IS-IS报文类型概述

• IS-IS的PDU有4种类型:IIH(IS-IS Hello),LSP( Link State PDU,链路 状态报文),CSNP(Complete Sequence Number PDU,全序列号报 文),PSNP(Partial Sequence Number PDU,部分序列号报文)。

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

• LSP:用于交换链路状态信息。LSP分为两种,Level-1 LSP、Level-2 LSP。

• SNP:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护 LSDB的完整与同步。SNP包括CSNP和PSNP,进一步又可分为Level-1 CSNP、 Level-2 CSNP、 Level-1 PSNP和Level-2 PSNP。
在这里插入图片描述

IS-IS常见的TLV

• TLV的含义是:类型(TYPE),长度(LENGTH),值(VALUE)。实际上是一个数据结构,这个结构包含了这三个字段。

• 使用TLV结构构建报文的好处是灵活性和扩展性好。采用TLV使得报文的整体结构固定,增加新特性只需要增加新TLV即可, 不需要改变整个报文的整体结构。

在这里插入图片描述

• TLV也称为CLV(Code-Length-Value)。

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

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

相关文章

MySQL——库,表基础操作

目录 一.库的操作 1.显示当前的数据库列表 2.创建数据库 3.字符集和校验规则 4.操纵数据库 5.删除数据库 6.数据库备份与还原 7.查看连接情况 二.表的操作 1.创建表 2.查看表结构 3.修改表 4.删除表 一.库的操作 1.显示当前的数据库列表 show databases; 2.创建数…

PyQt6 QSpacerItem弹簧控件

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

QT案例 使用WMI获取win_32类的属性值,包括Win32提供程序类中的属性

最近涉及到读取WINDOWS 系统电脑设备的各种信息,在一些特殊的PE或者简化系统中是没有WMI查询工具的,所以就自己写了个查询大部分WMI属性值的工具,免去了查网站的功夫。涉及到的方法内容就汇总做个总结。 PS:因为工作中软件基本都是我一个人开…

关于react native项目中使用react-native-wechat-lib@3.0.4

关于react native项目中使用react-native-wechat-lib3.0.4 插件官网安装依赖包(Android和iOS下载插件完成后记得更新依赖,)Android中配置1.在项目文件夹下面创建文件夹wxapi(如上图)2.在文件MainApplication.java中如下…

软件设计师——法律法规(三)

📑前言 本文主要是【法律法规】——软件设计师——法律法规的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…

JAVA代码审计之深入XXE漏洞挖掘与防御

文章目录 前言WebGoat1.1 Docker环境搭建1.2 Leve1-XXE回显1.3 代码审计与溯源1.4 Jaxb的反序列化1.5 Level2-格式校验1.6 Level3-XXE盲注 挖掘与防御2.1 XMLReader2.2 SAXBuilder2.3 SAXReader2.4 SAXParserFactory2.5 Digester2.6 DocumentBuilderFactory2.7 XXE挖掘技巧小结…

strlen的三种模拟实现方法

首先&#xff0c;我们要了解strlen函数的参数以及返回值&#xff0c;还有使用方法。 1. 计数器方法 #include <stdio.h>size_t my_strlen(const char* str) {int count 0;while (*str) {count;}return count; } int main() {char arr[] "abcdef";int len …

Angular+Nginx区域HIS医院信息管理系统源码

医院管理信息系统&#xff08;HIS&#xff09;是医院基本、重要的管理系统&#xff0c;是医院大数据的基础。“云”指系统采用云计算的技术和建设模式&#xff0c;具有可扩展、易共享、区域化、易协同、低成本、易维护、体验好的优势。“H”是医疗卫生&#xff0c;由原来医院 (…

Flask学习四:补充

插件 flask-caching 简介 Flask-Caching 是一个 Flask 扩展&#xff0c;旨在为 Flask 应用程序添加缓存功能。缓存是一种提高应用性能的技术&#xff0c;通过将常用数据暂时存储在一个快速访问的位置&#xff08;如内存或磁盘&#xff09;&#xff0c;从而减少对较慢资源&…

ssm基于MVC的舞蹈网站的设计与实现论文

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;舞蹈网站当然也不能排除在外。舞蹈网站是以实际运用为开发背景&#xff0c;运用软件工程开发方法&#xff0c;采用Java技…

自动化测试(终章)webdriver的常用api(2)以及新的开始

目录 多层框架/窗口定位 多层框架的定位 frame是什么&#xff1f; 多层窗口定位 层级定位 使用 XPath 进行层级定位&#xff1a; 使用 CSS 选择器进行层级定位&#xff1a; 下拉框处理 alert、confirm、prompt 的处理 Alert 弹窗&#xff1a; Confirm 弹窗&#xff…

万兆网络之屏蔽线序接法(上)

可以经常听到用RJ45指代网线&#xff0c;用RJ11指代电话线的&#xff0c;RJ&#xff08;Registered Jack&#xff09;即已注册插口&#xff0c;可以简单理解为一种约定就行&#xff08;参见参考链接&#xff09; 前一篇已经讲到&#xff0c;网线线对互相缠绕是为了电流方向相反…

Redis List类型

列表类型是用来存储多个有序的字符串&#xff0c;如图所示&#xff0c;a、b、c、d、e 五个元素从左到右组成了一个有序的列表&#xff0c;列表中的每个字符串称为元素 (element)&#xff0c;一个列表最多可以存储2的32次方 -1个元素。在 Redis 中&#xff0c;可以对列表两端插入…

spring面试:一、面试题分类总览+bean线程安全问题+AOP相关问题(定义、使用步骤、编程式事务管理和声明式事务管理和声明式事务管理失效)

面试题分类总览 bean线程安全问题 单例/多例 单例&#xff08;singleton&#xff09;&#xff1a;在每个spring ioc容器中都只有一个实例。 多例&#xff08;prototype&#xff09;&#xff1a;在每个spring ioc容器中有多个实例。 默认情况下spring中的bean都是单例的。但是…

【星环云课堂大数据实验】kafka消息发布与订阅

文章目录 一、Kafka概述二、实验环境三、实验准备四、实验目的五、实验步骤5.1、创建Kafka Topic5.2、Kafka消息发布5.3、Kafka消息订阅 六、实验感悟 一、Kafka概述 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。该项目的目标是为处理实…

算法Day33 不会算数的小明

不会算数的小明 Description 现在有一个数字startValue&#xff0c;小明不会算数&#xff0c;只会以下两种操作&#xff1a; 双倍&#xff08;Double&#xff09;&#xff1a;将数字乘2&#xff1b; 递减&#xff08;Decrement&#xff09;&#xff1a;将数字减1。 给定两个整…

Python3开发笔记(简洁版)

一、开发编辑器 1. pycharm 2. IDLE&#xff08;Python自带软件&#xff09; 方法&#xff1a;Microsoft Store搜索 Python 安装 二、数据类型 Python中有以下几种主要的数据类型&#xff1a; 数字&#xff08;Numbers&#xff09;、 字符串&#xff08;Strings&#xff09…

linux(centos7)mysql8.0主从集群搭建(两台机器)

docker安装:&#xff08;转载&#xff09;centos7安装Docker详细步骤&#xff08;无坑版教程&#xff09;-CSDN博客 环境信息 主数据库服务器&#xff1a;192.168.1.10 从数据库服务器&#xff1a;192.168.1.11 1. mysql8.0镜像下载 docker pull mysql:8.0.23 2.创建docke…

CMS—评论功能设计

一、需求分析 1.1、常见行为 1.敏感词过滤 2.新增评论&#xff08;作品下、评论下&#xff09; 3.删除评论&#xff08;作品作者、上级评论者、本级作者&#xff09; 4.上级评论删除关联下级评论 5.逻辑状态变更&#xff08;上线、下线、废弃...&#xff09; 6.上逻辑状态变更…

图片的批量建码怎么做?一图一码的制作方法

在使用图片展示内容时&#xff0c;经常会有同一类型的图片信息是有区别的&#xff0c;如果需要将每张图片批量生成二维码图片&#xff0c;那么出了一张一张去制作之外&#xff0c;有没有能够一键批量建码的功能可以解决这个问题呢&#xff1f;下面来给大家分享一下图片批量建码…