网络基础:IS-IS协议
IS-IS(Intermediate System to Intermediate System)是一种链路状态路由协议,最初由 ISO(International Organization for Standardization)为 CLNS(Connectionless Network Service)网络设计。IS-IS 后来被应用于 IP 网络,并在许多大型服务提供商和企业网络中得到广泛使用。与 OSPF 类似,IS-IS 是一个内部网关协议(IGP),适用于大型路由域。学习 IS-IS(Intermediate System to Intermediate System)协议需要了解其多个方面,包括基本概念、工作原理、层次结构、配置方法、路由计算和优化策略等。
IS-IS 的基本概念
IS(Intermediate System):指路由器,在 IS-IS 中称为中间系统。 ES(End System):指终端设备,如计算机、服务器等。 LSP(Link State PDU):链路状态 PDU,用于携带路由信息。 LSDB(Link State Database):链路状态数据库,存储网络拓扑的完整信息。 NSAP(Network Service Access Point):网络服务访问点地址,标识网络设备在网络层的地址,由于在不同协议中可能使用不同的NSAP形式,因此在不同系统中可以配置不同形式的NSAP地址,但是最多只能配置3个。 TLV(Type-Length-Value):一种数据编码格式,用于携带不同类型的路由信息。
IS-IS 的工作原理
①邻居发现:IS-IS 路由器通过发送 Hello PDU 来发现并与直接相连的其他 IS-IS 路由器建立邻居关系。
1)Hello PDU:Hello PDU 在每个 IS-IS 接口上周期性发送,用于发现和维护邻居关系。 2)邻居关系建立:当一个路由器接收到来自邻居的 Hello PDU,并且 Hello PDU 中包含的配置信息(如区域 ID、接口类型等)匹配时,邻居关系就建立起来。
②链路状态广告(LSPs):路由器生成 LSPs,描述其链路状态,并通过洪泛机制在整个路由域中传播。
1)LSP 内容:LSP 包含路由器的标识符、直接相连的邻居、链路成本等信息。 2)LSP 洪泛:LSP 通过洪泛机制传播到网络中的每一个路由器。每个路由器在接收到新的 LSP 后,会将其转发给所有其他邻居。
③数据库同步:路由器接收并存储所有 LSPs,形成链路状态数据库(LSDB)。
1)数据库同步:通过交换 LSPs,确保所有路由器的 LSDB 保持一致。当路由器发现其 LSDB 中缺少某些 LSP 时,会向其他路由器请求这些 LSP。 2)LSDB 更新:当网络拓扑发生变化时(例如,新增或移除链路、路由器),对应的 LSP 会被更新,并再次通过洪泛机制传播。
④路径计算:使用 SPF(Shortest Path First)算法,根据 LSDB 计算到达每个目的地的最短路径。
1)SPF 算法:SPF 算法使用 LSDB 中的信息计算出到达每个网络节点的最短路径。这个过程通常称为 Dijkstra 算法。 2)路径树:每个路由器根据 SPF 算法生成一个最短路径树,描述到达所有其他路由器的最优路径。
⑤路由更新:根据计算结果更新路由表,并将最佳路径信息应用于数据转发。
1)路由表:路由表中记录了每个目的网络的下一跳信息和路径成本。 2)数据转发:路由器根据路由表中的信息,将数据包转发到合适的下一跳,最终到达目的地。
IS-IS 的层次结构
IS-IS(Intermediate System to Intermediate System)协议是一个链路状态路由协议,设计时考虑了支持大规模网络的需求。为此,IS-IS 使用了一个分层架构,将网络分为多个级别(Levels)。这种分层方法有助于简化路由计算,减少路由表大小,并提高网络的可扩展性。
IS-IS 支持两级路由,用于更好地管理大型网络:
①Level-1 路由:在局部区域内进行路由,类似于 OSPF 的非骨干区域。Level-1 路由器只与同一区域内的其他 Level-1 路由器交换信息。
②Level-2 路由:在不同区域之间进行路由,类似于 OSPF 的骨干区域。Level-2 路由器负责跨区域路由信息的交换。
③Level-1-2 路由器:同时参与 Level-1 和 Level-2 路由,用于连接不同区域。
IS-IS配置方法
面是一个详细的 IS-IS 协议配置示例。假设我们有一个简单的网络拓扑,由两个路由器 R1 和 R2 组成,它们通过一个以太网网络(192.168.1.0/24)互连,每个路由器还有一个内部网络(R1的内部网路为10.0.0.1/24;R2的内部网络为20.0.0.1/24),我们将配置 IS-IS 来实现 R1 和 R2 之间的路由。
1.思科
在 R1 上配置 IS-IS
①先配置接口IP
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip address 192.168.1.1 255.255.255.0
R1(config-if)# no shutdown
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip address 10.0.0.1 255.255.255.0
R1(config-if)# no shutdown
②启用 IS-IS 进程
R1(config)# router isis 1
R1(config-router)# net 49.0001.0000.0000.0001.00
R1(config-router)# exit
router isis 1:这一行命令用来启动 IS-IS 路由协议,并为其指定一个进程 ID 1。这个进程 ID 是本地标识,不会在 IS-IS 报文中传输。可以是任何整数,通常用来区分同一台路由器上的多个 IS-IS 进程。
net 49.0001.0000.0000.0001.00:这一行命令用来配置路由器的网络实体标题(NET,Network Entity Title)。NET 是 IS-IS 路由器的唯一标识,类似于 OSPF 中的 Router ID。NET 是一个 NSAP(Network Service Access Point)地址的一种形式,包含以下部分:
IDP:AFI+IDI IDP相当于IP地址中的主网络号(网段) 1)AFI(Authority and Format Identifier):第一个字节,49 表示这是一个私有地址。AFI(Authority and Format Identifier)是 NSAP(Network Service Access Point)地址的一部分,用于标识地址的格式和分配权威。AFI 是 NSAP 地址的第一个字节(8 位)其值范围为 00 到 FF(十六进制),在 IS-IS 协议中有特定的作用和含义。 2)IDI(Initial Domain Identifier):0001,标识域,用于标识地址分配的初始域。NSAP 地址结构中的 IDI 部分可以帮助区分不同的地址分配机构和域。(IDI 的值可以标识不同的国家、组织或标准机构) DSP:HO-DSP+ System ID + N-Selector DSP相当于IP地址中的子网号和主机地址 3)HO-DSP(High Order Domain Specific Part):标识高阶域部分;域特定部分中的高阶部分,用于进一步细化地址分配。(其实就是区域的扩展部分) 4)System ID:0000.0000.0001,标识路由器,通常是 6 字节长,确保每个路由器在 IS-IS 网络中具有唯一的标识,从而避免路由器之间的冲突。为了方便管理一般来说会根据RouterID来配置SystemID(如现有RouterID 192.168.10.01 ==转化==> 192.168.010.001 ==转换为SID==>1921.6801.0001) 5)N-Selector(NSAP Selector):00,通常是 00,用于标识网络层的服务访问点,区分同一网络节点上的不同服务或协议实例。
AreaID = AFI+IDI+HO-DSP
这个时候有一个net我们该如何区分其AreaID+SystemID+ N-Selector?
49.0001.1720.1600.0001.00
从后往前:00 - N-Selector ;接着从后往前数12位:1720.1600.0001-SystemID;剩下的一部分就是AreaID。
③ 配置接口以参与 IS-IS
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip router isis 1
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip router isis 1
在 R2 上配置 IS-IS
-
配置接口 IP 地址
R2(config)# interface GigabitEthernet0/0 R2(config-if)# ip address 192.168.1.2 255.255.255.0 R2(config-if)# no shutdown R2(config)# interface GigabitEthernet0/1 R2(config-if)# ip address 20.0.0.1 255.255.255.0 R2(config-if)# no shutdown
-
启用 IS-IS 进程
R2(config)# router isis 1 R2(config-router)# net 49.0001.0000.0000.0002.00 R2(config-router)# exit
-
配置接口以参与 IS-IS
R2(config)# interface GigabitEthernet0/0 R2(config-if)# ip router isis 1 R2(config)# interface GigabitEthernet0/1 R2(config-if)# ip router isis 1
配置验证
完成上述配置后,可以使用以下命令验证 IS-IS 配置和邻居关系的建立。
查看 IS-IS 邻居:
R1# show isis neighbors
2.华为
①首先,为 R1 的接口分配 IP 地址并启用接口:
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.1 255.255.255.0
[R1-GigabitEthernet0/0/0] undo shutdown
[R1-GigabitEthernet0/0/0] quit
接下来,启用 IS-IS 进程并配置 NET 地址。NET 地址在 IS-IS 中唯一标识路由器。
[R1] isis 1
[R1-isis-1] network-entity 49.0001.1921.6800.1001.00
[R1-isis-1] quit
为接口启用 IS-IS
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] isis enable 1
[R1-GigabitEthernet0/0/0] quit
②为 R2 的接口分配 IP 地址并启用接口:
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.1.2 255.255.255.0
[R2-GigabitEthernet0/0/0] undo shutdown
[R2-GigabitEthernet0/0/0] quit
启用 IS-IS 进程并配置 NET 地址:
[R2] isis 1
[R2-isis-1] network-entity 49.0001.1921.6800.1002.00
[R2-isis-1] quit
为特定接口启用 IS-IS:
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] isis enable 1
[R2-GigabitEthernet0/0/0] quit
完成上述配置后,可以使用以下命令验证 IS-IS 配置和邻居关系的建立。
[R1] display isis peer
华三
首先,为 R1 的接口分配 IP 地址并启用接口:
<R1> system-view
[R1] interface GigabitEthernet1/0/1
[R1-GigabitEthernet1/0/1] ip address 192.168.1.1 255.255.255.0
[R1-GigabitEthernet1/0/1] undo shutdown
[R1-GigabitEthernet1/0/1] quit
接下来,启用 IS-IS 进程并配置 NET 地址。NET 地址在 IS-IS 中唯一标识路由器。
[R1] isis 1
[R1-isis-1] network-entity 49.0001.1921.6800.1001.00
[R1-isis-1] quit
最后,为特定接口启用 IS-IS:
[R1] interface GigabitEthernet1/0/1
[R1-GigabitEthernet1/0/1] isis enable 1
[R1-GigabitEthernet1/0/1] quit
接着为 R2 的接口分配 IP 地址并启用接口:
<R2> system-view
[R2] interface GigabitEthernet1/0/1
[R2-GigabitEthernet1/0/1] ip address 192.168.1.2 255.255.255.0
[R2-GigabitEthernet1/0/1] undo shutdown
[R2-GigabitEthernet1/0/1] quit
启用 IS-IS 进程并配置 NET 地址:
[R2] isis 1
[R2-isis-1] network-entity 49.0001.1921.6800.1002.00
[R2-isis-1] quit
为特定接口启用 IS-IS:
[R2] interface GigabitEthernet1/0/1
[R2-GigabitEthernet1/0/1] isis enable 1
[R2-GigabitEthernet1/0/1] quit
完成上述配置后,可以使用以下命令验证 IS-IS 配置和邻居关系的建立。
[R1] display isis peer
IS-IS 路由分层示例
假设我们有一个网络,分为两个区域:
-
区域 A
-
区域 B
两个区域之间通过一个骨干区域互联。路由器 R1 和 R2 在区域 A 内部,R3 和 R4 在区域 B 内部,R5 和 R6 是连接两个区域的边界路由器。
区域 A
+------+ +------+ +------+
| R1 |----| R2 |----| R5 |
+------+ +------+ +------+||+------+| R6 |+------+||
+------+ +------+ +------+
| R3 |----| R4 |----| R5 |
+------+ +------+ +------+
区域 B
在这个网络中:
-
R1 和 R2 是 L1 路由器,仅知道区域 A 内部的路由。
-
R3 和 R4 是 L1 路由器,仅知道区域 B 内部的路由。
-
R5 和 R6 是 L1/L2 路由器,维护 L1 和 L2 路由表,能够在区域 A 和区域 B 之间传递路由信息。
配置示例
R5 的 IS-IS 配置(此处跳过接口配置以及在接口中启用IS-IS的配置内容)
[R5] isis 1
[R5-isis-1] network-entity 49.0001.0000.0000.0005.00
[R5-isis-1] is-level level-1-2
[R5-isis-1] quit
IS-IS 路由协议使用分层架构,将网络分为多个级别以简化路由计算和提高可扩展性。通过正确配置 L1 和 L2 路由器,可以确保不同区域间的路由信息正确传播和交换,从而实现高效的网络通信。理解 IS-IS 分层架构对于大规模网络的设计和管理至关重要。
相关文章:

网络基础:IS-IS协议
IS-IS(Intermediate System to Intermediate System)是一种链路状态路由协议,最初由 ISO(International Organization for Standardization)为 CLNS(Connectionless Network Service)网络设计。…...

Java面试八股之如何提高MySQL的insert性能
如何提高MySQL的insert性能 提高MySQL的INSERT性能可以通过多种策略实现,以下是一些常见的优化技巧: 批量插入: 而不是逐条插入,可以使用单个INSERT语句插入多行数据。例如: INSERT INTO table_name (col1, col2) V…...

【密码学】什么是密码?什么是密码学?
一、密码的定义 根据《中华人民共和国密码法》对密码的定义如下: 密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。 二、密码学的定义 密码学是研究编制密码和破译密码的技术科学。由定义可以知道密码学分为两个主要分支&#x…...

k8s record 20240703
1. containerd 它不用于直接和开发人员互动,在这方面不和docker竞争 containerd的用时最短,性能最好。 containerd 是容器的生命周期管理,容器的网络管理等等,真正让容器运行需要runC containerd 是一个独立的容器运行时&am…...
Ansible常用模块
华子目录 Ansible四个命令模块1.组成2.特点3.区别3.1command、shell模块3.2raw模块 4.command模块4.1参数表4.2free_form参数 5.shell模块5.1作用5.2例如 6.script模块6.1示例 7.raw模块7.1参数7.2示例 文件操作模块1.file模块1.1参数1.2示例 2.copy模块2.1参数 Ansible四个命令…...
【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 库中的浏览器特性支持检测
深入探讨JavaScript库:功能、配置与应用场景 前言 在现代的Web开发中,JavaScript库扮演着至关重要的角色,帮助开发人员简化代码、提高效率、实现更好的用户体验。本文将探讨几个常用的JavaScript库,包括模块加载库、数据绑定库和…...
深度学习:C++和Python如何对大图进行小目标检测
最近在医美和工业两条线来回穿梭,甚是疲倦,一会儿搞搞医美的人像美容,一会儿搞搞工业的检测,最近新接的一个项目,关于瑕疵检测的,目标图像也并不是很大吧,需要放大后,才能看见细小的…...
Eureka从入门到精通面试题及答案参考
什么是Eureka?它在微服务架构中扮演什么角色? Eureka是Netflix开源的一款基于REST的服务发现组件,它主要应用于构建分布式系统中的服务注册与发现。在微服务架构中,Eureka扮演着至关重要的角色,它让微服务架构中的各个服务实例能够互相发现、相互调用,从而实现了服务之间…...

io流 多线程
目录 一、io流 1.什么是io流 2.流的方向 i.输入流 ii.输出流 3.操作文件的类型 i.字节流 1.拷贝 ii.字符流 3.字符流输出流出数据 4.字节流和字符流的使用场景 5.练习 6.缓冲流 1.字节缓冲流拷贝文件 2.字符缓冲流特有的方法 1.方法 2.总结 7.转换流基本用法…...

人工智能、机器学习、神经网络、深度学习和卷积神经网络的概念和关系
人工智能(Artificial Intelligence,缩写为AI)--又称为机器智能,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是智能学科重要的组成部分,它企图了解智能的实质…...

对话大模型Prompt是否需要礼貌点?
大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 基于Dify的QA数据集构建(附代码)Qwen-2-7B和GLM-4-9B&#x…...

【驱动篇】龙芯LS2K0300之ADC驱动
实验目的 由于LS2K0300久久派开发板4.19内核还没有现成可用的ADC驱动,但是龙芯官方的5.10内核已经提供了ADC驱动,想要在4.19内核使用ADC就要参考5.10内核移植驱动,本次实验主要是关于ADC驱动的移植和使用 驱动移植 主要的驱动代码主要有3个…...

Python入门 2024/7/3
目录 for循环的基础语法 遍历字符串 练习:数一数有几个a range语句 三个语法 语法1 语法2 语法3 练习:有几个偶数 变量作用域 for循环的嵌套使用 打印九九乘法表 发工资案例 continue和break语句 函数的基础定义语法 函数声明 函数调用 …...
Go 语言 Map(集合)
Go 语言 Map(集合) Map 是 Go 语言中一种非常重要的数据结构,它用于存储键值对。在 Go 中,Map 是一种无序的键值对的集合,其中每个键都是唯一的,而值则可以是任何类型。Map 是 Go 语言的内置类型,使用起来非常方便,同时也是许多 Go 程序中不可或缺的一部分。 Map 的声明…...

SpringCloud学习Day7:Seata
概念 Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务 工作流程 TC以Seata服务器形式独立部署,TM和RM则是以Seata Client的形式集成在微服务中运行...

【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、nouveau驱动程序加入黑名单二、安装NVIDIA显卡驱动总结 前言 NVIDIA显卡驱动是用于支持和优化NVIDIA显卡在计算机系统中运行的关键软件组件。该驱动程序能…...

LabVIEW从测试曲线中提取特征值
在LabVIEW中开发用于从测试曲线中提取特征值的功能时,可以考虑以下几点: 数据采集与处理: 确保你能够有效地采集和处理测试曲线数据。这可能涉及使用DAQ模块或其他数据采集设备来获取曲线数据,并在LabVIEW中进行处理和分析。 特…...

【应届应知应会】SQL常用知识点50道
SueWakeup 个人主页:SueWakeup 系列专栏:借他一双眼,愿这盛世如先生所愿 个性签名:人生乏味啊,我欲令之光怪陆离 本文封面由 凌七七~❤ 友情提供 目录 数据库的概念 (什么是数据库) RDBMS NOSQL 数据库的分类 …...

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】
持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】 购物车需求描述购物车数据结构数据Model抽取实现流程(参照京东)代码实现参考 购物车需求描述 用户可以在登录状态下将商品添加到购物车【用户购物…...

科技赋能智慧应急:“数字孪生+无人机”在防汛救灾中的应用
近期,全国多地暴雨持续,“麻辣王子工厂停工”“水上派出所成水上的派出所了”等相关词条冲上热搜,让人们看到了全国各地城市内涝、洪涝带来的严重灾情。暴雨带来的影响可见一斑,潜在的洪水、泥石流、山体滑坡等地质灾害更应提高警…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...