IS-IS:单区域集成配置与多区域集成配置
一、IS-IS概述
IS-IS(Intermediate System to Intermediate System) 是一种链路状态内部网关协议(IGP),设计用于自治系统(AS)内部的路由选择。最初由ISO为OSI模型的无连接网络服务(CLNS)开发,后通过扩展支持IPv4和IPv6,成为现代IP网络中的重要路由协议。
二、IS-IS特征
-
链路状态算法:每个节点维护全网拓扑数据库,通过SPF(Dijkstra算法)计算最短路径树。
-
分层设计:
-
Level 1(L1):处理区域内路由,类似OSPF的非骨干区域。
-
Level 2(L2):处理区域间路由,形成骨干区域,类似OSPF Area 0。
-
L1/L2路由器:作为区域边界,转发L1和L2路由信息。
-
-
地址结构(NSAP):
- IS-IS使用NSAP地址标识节点,结构为[Area ID] [System ID] [NSEL]
-
Area ID:可变长,标识区域(如49.0001)。
-
System ID:固定6字节(常用MAC地址或IPv4转换,如1921.6800.1001)。
-
NSEL:1字节,服务选择符(IP网络中常为00)。
-
IS-IS支持VLSM(可变长子网掩码)和CIDR(无类别域间路由),支持明文和MD5验证
三、报文类型
-
Hello报文:发现和维护邻居关系,区分层级(L1/L2)。
-
LSP(Link-State PDU):携带链路状态信息,泛洪至全网。
-
SNP(Sequence Number PDU 序列号报文):
-
CSNP(全序列号数据包):同步数据库摘要(类似OSPF的DD报文)。
-
PSNP(部分序列号数据包):请求或确认单个LSP(类似OSPF的LSR/LSAck)。
-
四、工作流程
-
邻居发现:通过Hello报文建立邻接关系。
-
数据库同步:交换LSP和SNP,确保拓扑一致。
-
SPF计算:基于拓扑数据库生成最短路径树,更新路由表。
-
快速收敛:LSP泛洪机制确保拓扑变化快速传播。
五、与OSPF对比
| 特性 | IS-IS | OSPF |
|---|---|---|
| 协议起源 | ISO/CLNS扩展支持IP | 专为IP设计(RFC 2328) |
| 分层结构 | 灵活两级(L1/L2) | 严格骨干区域(Area 0) |
| 地址依赖 | 基于NSAP,与IP无关 | 依赖IP地址 |
| 扩展性 | 更适合超大规模网络 | 企业网常见 |
| 认证 | 支持MD5、明文等 | 支持多种认证方式 |
六、优缺点
-
优点:
-
无类路由,支持VLSM/CIDR。
-
分层设计减少泛洪范围。
-
收敛速度快,适合高动态网络。
-
-
缺点:
-
NSAP地址配置较复杂。
-
排错工具和文档相对OSPF较少。
-
七、单区域集成IS-IS

R1的配置
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1]isis //启用ISIS进程,进程默认为1
[R1-isis-1]network-entity 49.0123.0000.0000.0001.00 //配置NET地址
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]isis enable //在接口启用IS-IS
[R1]int LoopBack 0
[R1-LoopBack0]isis enable
R2 配置
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 12.1.1.2 24
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 23.1.1.2 24
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2]isis
[R2-isis-1]network-entity 49.0123.0000.0000.0002.00
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]isis enable
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]isis enable
[R2]int LoopBack 0
[R2-LoopBack0]isis enable
R3的配置
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 23.1.1.3 24
[R3]int LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3]isis
[R3-isis-1]network-entity 49.0123.0000.0000.0003.00
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]isis enable
[R3]int LoopBack 0
[R3-LoopBack0]isis enable
测试
查看R1的邻接表

从上面可以看出路由表维护两个邻接关系,分为L1和L2
System ld:描述邻居的系统ID。
Interface:描述通过该路由器的哪个端口与邻居建立邻接关系。
Circuit ld:电路ID。
State:状态为 Up。
HoldTime:保持时间为30s,Hello包的间隔时间为 10s。
Type:邻居类型。
PRI:邻居选举 DIS时的优先级,默认为64。
查看R1的链路状态数据库

从上面可以看出R1维护两个链路状态数据库,分别为L1和L2
LSPID:链路状态报文ID,由三部分组成:系统ID、伪节点ID、分片号。
Seq Num:LSP序列号。
Checksum:LSP校验和。
Holdtime :LSP 保持时间。
Length:LSP 长度。
ATT/P/OL:连接位、分区位、过载位。
查看IS-IS的路由表

可以看到R1有两张路由表,分别为L1和L2
Flags路由信息标记如下
(1)D-Direct:表示直连路由,
(2)A-Added to URT:表示此路由被加入单播路由表。
(3)L-AdvertisedinLSPs:表示此路由通过LSP发布。
(4)S-IGPShortcut:表示到达该前缀的路径上存在IGP-Shortcut。
(5)U-Up/Down Bit Set:表示Up/Down比特位。
八、多区域集成IS-IS

R1 的配置
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 13.1.1.1 24
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1]isis
[R1-isis-1]network-entity 49.0123.0000.0000.0001.00 //配置NET地址
[R1-isis-1]is-level level-1 //路由器的类型为Level-1
[R1-isis-1]cost-style wide //设置宽度量值
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]isis enable
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]isis enable
[R1]int LoopBack 0
[R1-LoopBack0]isis enable
R2的配置
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 12.1.1.2 24
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 24.1.1.2 24
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2]isis
[R2-isis-1]network-entity 49.0123.0000.0000.0002.00
[R2-isis-1]cost-style wide
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]isis enable
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]isis enable
[R2]int LoopBack 0
[R2-LoopBack0]isis enable
R3的配置
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 13.1.1.3 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 35.1.1.3 24
[R3]int LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3]isis
[R3-isis-1]network-entity 49.0123.0000.0000.0003.00
[R3-isis-1]cost-style wide
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]isis enable
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]isis enable
[R3]int LoopBack 0
[R3-LoopBack0]isis enable
R4的配置
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 24.1.1.4 24
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 45.1.1.4 24
[R4]int LoopBack 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4]isis
[R4-isis-1]network-entity 49.0045.0000.0000.0004.00
[R4-isis-1]is-level level-2
[R4-isis-1]cost-s
[R4-isis-1]cost-style wide
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]isis enable
[R4-GigabitEthernet0/0/1]int g0/0/0
[R4-GigabitEthernet0/0/0]isis enable
[R4]int LoopBack 0
[R4-LoopBack0]isis enable
R5的配置
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip add 35.1.1.5 24
[R5]int g0/0/1
[R5-GigabitEthernet0/0/1]ip add 45.1.1.5 24
[R5]int Logic-Channel
[R5]int LoopBack 0
[R5-LoopBack0]ip add 5.5.5.5 32
[R5]isis
[R5-isis-1]network-en
[R5-isis-1]network-entity 49.0045.0000.0000.0005.00
[R5-isis-1]cost-style wide
[R5-isis-1]is-level level-2
[R5]int g0/0/1
[R5-GigabitEthernet0/0/1]isis enable
[R5-GigabitEthernet0/0/1]int g0/0/0
[R5-GigabitEthernet0/0/0]isis enable
[R5]int LoopBack 0
[R5-LoopBack0]isis enable
在R1上查看邻接表

可以看到R1和R2、R3是Level-1的邻居关系
在R1上查看路由表

默认情况Level-1区域的路由会传给Level-2区域, 但是Level-2区域的路由却不会Level-1区域,Level-1-2的路由器会自动下发默认路由给Level-1区域的路由器
分别在R4和R5上引入一条外部路由
R4配置:
[R4]int LoopBack 100
[R4-LoopBack100]ip add 100.1.1.1 32
[R4]isis
[R4-isis-1]import-route directR5配置:
[R5]int LoopBack 200
[R5-LoopBack200]ip add 200.1.1.1 32
[R5]isis
[R5-isis-1]import-route direct
再次去查看R1的路由表

并没有变化,所以R1没有收到外部路由
分别在R2和R3上把路由泄露给R1
R2配置:
[R2]isis
[R2-isis-1]import-route isis level-2 into level-1 //将Level-2的路由泄露给R1R3配置:
[R3]isis
[R3-isis-1]import-route isis level-2 into level-1
然后去查看R1的路由表

可以看到Level-2的路由传递给了Level-1
九、总结:如何选择?
IS-IS是一种高性能、高扩展的链路状态协议,凭借分层架构和协议无关性,成为运营商及复杂网络的首选IGP,尤其在超大规模、多协议混合场景中表现卓越。
-
选择IS-IS:
-
网络规模极大(如ISP骨干网、超大型数据中心)。
-
需要多协议支持(IP + CLNS)或原生IPv6多拓扑路由。
-
对收敛速度和扩展性要求苛刻。
-
-
选择OSPF:
-
中小型企业网络或园区网。
-
需要丰富的区域类型(如Stub、NSSA)和精细路由控制。
-
依赖IP地址且希望配置简单、社区支持完善。
-
相关文章:
IS-IS:单区域集成配置与多区域集成配置
一、IS-IS概述 IS-IS(Intermediate System to Intermediate System) 是一种链路状态内部网关协议(IGP),设计用于自治系统(AS)内部的路由选择。最初由ISO为OSI模型的无连接网络服务(…...
Open GL ES ->GLSurfaceView正交投影与透视投影方法中近远平面取值参考
坐标系 OpenGL ES使用右手坐标系,相机默认朝向负z方向 相机位置|vz轴<----- 0 -----> -near -----> -far -----不可见 可见区域 不可见裁剪规则 far>near>0,只有z值在[-far, -near]范围内的物体可见, 当z > -near…...
API 安全之认证鉴权
作者:半天 前言 API 作为企业的重要数字资源,在给企业带来巨大便利的同时也带来了新的安全问题,一旦被攻击可能导致数据泄漏重大安全问题,从而给企业的业务发展带来极大的安全风险。正是在这样的背景下,OpenAPI 规范…...
Gateway实战入门(四)、断言-请求头以及请求权重分流等
spring cloud-Gateway:断言-请求头以及请求权重分流等 一、断言Header信息要求项目前置环境要求案例一、断言-请求头信息-匹配X-Request-Id1、配置文件及代码2、测试案例二、断言-请求头信息-匹配API版本场景主要配置信息案例三、断言-请求头信息:匹配请求来源场景主要配置信…...
【人工智能】从 Llama 到 DeepSeek:开源大模型的演进与技术对比
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着人工智能的迅猛发展,开源大语言模型(LLM)在自然语言处理领域扮演着越来越重要的角色。本文从 Meta 的 Llama 系列开始,追溯开源大模…...
[测试] Google Test | 主流的 C 测试框架
目录 GoogleTest 2. 准备工作 3. 测试 4.怎么用 Attention is All You Need 写项目代码的时候 边写边测试 非常重要,这样可以帮助我们减少很多的问题。 这篇文章后面 主要以 GoogleTest 为例,进行介绍最近找了些 gtest 相关的资料,学习了下.后面主要…...
OpenCV 图形API(3)高层次设计概览
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 描述 G-API 是一个异构框架,提供了统一的 API 来使用多个支持的后端编程图像处理流水线。 关键的设计理念是在指定使用哪些内核和设备时保持流…...
51单片机的五类指令(五)——位操作类指令
目录 一、位传送指令 1、MOV C, bit 2、MOV bit, C 3、位传送指令的应用场景 二、位变量修改指令 1、CLR(清 0 指令) 2、SETB(置 1 指令) 3、位变量修改指令的应用场景 三、位变量逻辑操作指令 1、位变量逻辑与指令 ANL…...
用python编写poc的流程
目录 一、POC 编写核心流程 二、常用 Python 库与工具 三、POC 框架推荐 四、高级优化技巧 五、安全规范与注意事项 六、实战案例:命令注入漏洞验证 一、POC 编写核心流程 漏洞分析 确定漏洞类型:根据目标特征判断漏洞类型(如 SQL 注入、…...
碰一碰发视频网页版本开发的源码搭建指南
引言 在数字化信息快速传播的时代,近场通信(NFC)技术为信息交互带来了新的便捷方式。通过网页版本实现碰一碰发视频功能,能够让用户在浏览器环境中轻松实现视频分享,拓展了视频传播的途径。本文将详细介绍碰一碰发视频…...
【含文档+PPT+源码】基于Python爬虫二手房价格预测与可视化系统的设计与实现
项目介绍 本课程演示的是一款基于Python爬虫二手房价格预测与可视化系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 带你从零开始部署运行本套系统 该项…...
多台服务器上docker部署 Redis 集群
规划集群节点 确保你的服务器有固定 IP,比如: 172.16.17.100 172.16.17.101 172.16.17.102 每台服务器运行 2 个 Redis 节点,总共 6 个节点,满足 Redis Cluster 最小节点数要求。 2. 在每台服务器上运行 Redis 在每台服务器上执行…...
Redis-16.在Java中操作Redis-Spring Data Redis使用方式-操作有序集合类型的数据
一. 操作有序集合类型的数据 package com.sky.test;import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.*;imp…...
针对单台浪潮服务器运行Windows Server 2019和SQL Server的MES系统场景、高效能监控策略(兼顾软硬件健康)
--- ### **一、监控架构设计原则** - **轻量化**:优先使用Windows原生工具和免费方案,避免额外资源消耗 - **关键性聚焦**:仅监控直接影响MES运行的核心指标 - **自动化告警**:异常发生时主动触发通知,无需人工巡检 -…...
Vue Transition组件类名+TailwindCSS
#本文教学结合TailwindCSS实现一个Transition动画的例子# 举例代码: <transition enter-active-class"transition-all duration-300 ease-out"enter-from-class"opacity-0 translate-y-[-10px]"enter-to-class"opacity-100 translate-…...
Anaconda和Pycharm的区别,以及如何选择两者
目录 主要区别详细说明如何选择?Anaconda的使用步骤 主要区别 Anaconda 和 PyCharm 是 Python 开发中常用的两个工具,但它们的定位和功能完全不同。以下是它们的主要区别: 对比项AnacondaPyCharm类型Python 发行版 包管理工具Python 集成开…...
STM32智能手表——任务线程部分
RTOS和LVGL我没学过,但是应该能硬啃这个项目例程 ├─Application/User/Tasks # 用于存放任务线程的函数 │ ├─user_TaskInit.c # 初始化任务 │ ├─user_HardwareInitTask.c # 硬件初始化任务 │ ├─user_RunModeTasks.c…...
SQL命令
一、表的创建 SQL MS Access、MySQL 和 SQL Server 数据类型 | 菜鸟教程 SQL Server 和 MySQL 中的 Date 函数 | 菜鸟教程 1.1、创建表 CREATE TABLE Citys (CityID int PRIMARY KEY,CityName varchar(255) );CREATE TABLE Per (PersonID int PRIMARY KEY, …...
DRM_CLIENT_CAP_UNIVERSAL_PLANES和DRM_CLIENT_CAP_ATOMIC
drmSetClientCap(fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1); drmSetClientCap(fd, DRM_CLIENT_CAP_ATOMIC, 1); 这两行代码用于启用 Linux DRM(Direct Rendering Manager)客户端的两个关键特性,具体作用如下: 1. drmSetClientCap…...
anaconda安装 创建虚拟环境+pycharm中conda环境配置
miniconda下载安装参考以下链接: https://blog.csdn.net/2301_76831056/article/details/143165738?fromshareblogdetail&sharetypeblogdetail&sharerId143165738&sharereferPC&sharesourceweixin_63339973&sharefromfrom_link (注…...
EasyExcel导出导入excel工具类
接上一篇EasyExcel导出导入excel的文章,附上一份完整的工具类代码。对于字体颜色名称,请参考这篇文章。 POI字体颜色 小技巧 类转换用属性拷贝不同类如果有相同属性,则使用反射验证,减少代码量 private List<Person> vali…...
终端SSH连接工具SecureCRT安装和连接Linux
SecureCRT 9.5是一款集终端仿真与加密功能于一身的专业软件,其坚如磐石的安全性、高效的信息传输能力以及高度可定制的会话管理,使得它成为众多用户的首选。该软件不仅支持SSH2、SSH1、Telnet等多种协议,还提供了Relogin、Serial、TAPI、RAW等…...
赛逸展2025“创新引擎”启动:限量席位,点亮科技绿色新征程
当今时代,科技革新与绿色发展已然成为推动社会进步的双引擎。2025第七届亚洲消费电子技术贸易展(赛逸展)敏锐捕捉这一趋势,重磅打造“科技创新专区”,并面向科技、绿色企业吹响限量招募号角。 这个独具特色的专区紧扣…...
Spring的 init-method, @PostConstruct, InitializingBean 对比
Spring的 init-method, PostConstruct, InitializingBean 对比 在Spring框架中,init-method、PostConstruct和InitializingBean都是用于定义Bean初始化后执行逻辑的机制,但它们在实现方式、耦合度、执行顺序及适用场景上有所不同。以下是它们的对比总结…...
Gogs 精简备份与恢复方案(仅SQLite数据库和配置)
一、备份方案设计 1. 备份内容 SQLite数据库文件:/home/git/gogs/data/gogs.db 配置和附件:/home/git/gogs/custom 整个目录 2. 备份策略 每周日凌晨2点执行完整备份 保留最近4周的备份文件 备份存储在独立分区 /backup(使用永久化挂载…...
FPGA实现数码管显示分秒时间
目录 一. verilog实现 二. 烧录验证 三. 结果验证 使用开发板:DE2-115开发板 一. verilog实现 要实现分和秒,需要知道定时器的频率,通过查手册可知,我使用的开发板时钟为50hz,也就是时钟一个周期是2微秒。 5000000…...
读书记录九之《在峡江的转弯处-陈行甲人生笔记》
距离上本读完的书,写读后感有很长一段时间了,中间读了几本书,但都没写点文字,没错,是懒病又犯了。陈行甲这本书,一开始从网络上推荐看到,看之前介绍是一本人物自传的回忆录。我个人对这类贴近的…...
可视化开发:用Qt实现Excel级动态柱状图
Qt柱状图 QtChart 首先我们介绍一下 图表建立的基础:Qt Charts QtChart 是Qt框架的一个模块,专注与提供交互式数据可视化功能 俗话就是 用于用户轻松创建各种类型的图表和图形界面 它包含的图表类型有很多:折线图,饼图&#x…...
从零实现Json-Rpc框架】- 项目实现 - 基于Dispatcher模块的RPC框架
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
kubekey -实现懒人一键部署K8S集群
kubekey -实现懒人一键部署K8S集群 操作步骤 官网: https://kubesphere.io/zh/ 一、执行以下命令快速创建一个 Kubernetes 集群。 Master节点 如果您访问 GitHub/Googleapis 受限,请登录 Linux 主机,执行以下命令设置下载区域。 [roottest ~]…...
