2. IS-IS 基础实验
2.1 IS-IS 配置实验
2.1.1 实验介绍
2.1.1.1 学习目标
1. 实现 IS-IS 协议基本配置
2. 实现 IS-IS 协议 DIS 优先级修改
3. 实现 IS-IS 协议网络类型修改
4. 实现 IS-IS 协议外部路由引入
5. 实现 IS-IS 接口 cost 修改
6. 实现 IS-IS 路由渗透配置
2.1.1.2 实验组网介绍

IP 地址、IS-IS 区域、IS-IS 路由器等级如图所示,其中 R1、R2、R3 属于 49.0001 区域,R4.R5 属于 49.0002 区域,所有路由器均创建 Loopback0 接口,其IP 地址为 10.0.x.x/32,其中x为设备编号
2.1.1.3 实验背景
某客户的网络使用 IS-IS 协议作为 IGP,R4 和 R5 运行在 49.0002 区域,都是 Level-2 路由器。R1、R2、R3 运行在 49.0001 区域,其中 R1 是 Level-1 路由器,R2和 R3 作为 Level-1-2路由器。R5 上引入了外部路由 192.168.1.0/24。要求:R1 可以访问 R5 引入的外部路由;R1 的 GE0/0/1 接口作为 DIS;R1 与 R5 之间的双向流量要求沿着 R3、R4 这条路径转发,可以通过 cost 和路由渗透进行选路控制
2.1.2 实验任务
2.1.2.1 任务思路
1. 设备 IP 地址配置
2. 按照规划配置 IS-IS
3. 检查 IS-1S 配置结果,分别在 R1、R4 检查 IS-IS 邻居信息
4. 手动修改 R1 GE0/0/1 接口的 DIS 优先级,使其成为 DIS
5. 在 R5 上创建 Loopback1,作为外部路由引入到 |S-IS 中,分别在 R4、R1 上观察 IS-IS 路由表,并测试 R1与外部路由地址之间的连通性
6. 手动在 R4 上修改 GE0/0/3 的 IS-IS Cost 值,使得 R4 优选下一跳为 R2 的路由前往 R1
7. 在 R3 上配置 IS-IS 的路由渗透,使得 R1 从 R3 上学习到 L2 区域的明细路由,使得 R1 根据最长匹配原则,优选下一跳为 R3 的明细路由前往 L2 区域
2.1.2.2 任务步骤
步骤 1、互联接口、环回口 IP 地址配置
# 配置 R1 的 GE0/0/0、Loopback0 接囗IP 地址

#配置 R2 的 GE0/0/0、GE0/0/1、Loopback0 接囗IP 地址

# 配置 R3 的 GE0/0/0、GE0/0/1、Loopback0 接囗 IP 地址

# 配置 R4的 GE0/0/0、GE0/0/1、GE0/0/2、Loopback0 接口 IP 地址

# 配置 R5 的 GE0/0/0、Loopback0 接囗IP 地址

#在 R1、R4 上检查互联地址连通性


步骤 2、IS-IS 协议配置
按照拓扑设计逐台配置路由器的 IS-IS 进程,进程号使用1,NET 使用设备编号,以 R1 为例:49.0001.0000.0000.0001.00
# 配置 R1
[R1]isis 1
这个命令进入了IS-IS协议的配置模式,并且指定了IS-IS实例或进程的编号为1。在大型网络中,可能会有多个IS-IS实例,每个实例可以有不同的配置和参数。
[R1-isis-1]is-level level-1
这个命令将当前的IS-IS实例配置为Level-1。在IS-IS中,有两种级别的路由:Level-1和Level-2。Level-1主要负责在区域内进行路由计算和选择,而Level-2负责在区域间进行路由计算和选择。这个命令将R1设备配置为只参与Level-1的路由计算。
[R1-isis-1]network-entity 49.0001.0000.0000.0001.00
这个命令设置了IS-IS的网络实体标题(Network Entity Title, NET)。NET是IS-IS协议中用来标识一个IS(中间系统)的标识符,由系统ID(System ID)和伪节点ID(Pseudo-Node ID)组成。在这个例子中,系统ID是49.0001.0000.0000.0001,而伪节点ID是00。这通常用于在IS-IS网络中唯一标识一个设备。
[R1-LoopBack0]isis enable 1
这个命令在特定的接口(在这个例子中是LoopBack0接口)上启用IS-IS协议,并且指定了使用编号为1的IS-IS实例。LoopBack接口通常用于设备内部测试或作为路由协议的标识地址。启用IS-IS意味着该接口将参与IS-IS路由协议的计算和通告。

# 配置 R2

# 配置 R3

# 配置 R4

# 配置 R5

# 为保证安全性,配置 IS-IS 的接口认证,使用 MD5 方式,密码配置为“huawei'





步骤 3、检查 IS-IS 配置结果
# 在 R1、R4 查看 IS-IS 邻居
Peer information for IsIs(1)
这一行表示显示的是编号为1的IS-IS实例的邻居信息
System Id Interface Circuit Id state HoldTime Type
这是输出的表头,分别表示邻居的系统ID、接口、电路ID、状态、保持时间(HoldTime)和类型
0000.0000.0002 GE0/0/0 0000.0000.0003.01 U 255 8s L1
System Id: 0000.0000.0002,这是邻居设备的系统ID。Interface: GE0/0/0,这是本设备与邻居设备建立IS-IS邻居关系的接口。Circuit Id: 0000.0000.0003.01,这是IS-IS电路的ID,用于在邻居之间唯一标识一个电路。state: U,这表示电路的状态是“Up”,意味着电路已经建立并且处于活动状态。HoldTime: 255,这是IS-IS协议的保持时间,单位可能是秒或者其他时间单位,具体取决于设备的实现。Type: L1,这表示这是一个Level-1的邻居。
TotalPeer(s):2
这一行表示总共有2个IS-IS邻居

R1 已经成功地与 R2、R3 建立 IS-IS 邻居,并且是 L1 类型

R4 已经成功地与 R2、R3、R5 建立 IS-IS 邻居,并且是 L2 类型
# 在 L2 路由器 R4 上检查 IS-IS 路由表

从输出信息可以看到 L2 路由器 R4 已经学习到整网的路由,并且前往 10.0.123.0/24、10.0.1.1/32 的路由已经处于负载均衡的状态下
步骤 4、修改 R1 GE0/0/0 接口的 DIS 优先级
R1、R2、R3 处于同一个广播网络中,它们会选举出一个 DIS,通过修改 DIS 优先级手动指定R1 的 GE0/0/0 作为 DIS
# 在 R1 上查看 IS-IS 接口状态

此时 R1 的 GE0/0/1 接口并不是 DIS
# 修改 R1 的 GE0/0/0 DIS 优先级

# 在 R1 上查看 IS-IS 接囗状态

此时 R1 的 GE0/0/1 接口已经成为 DIS
步骤 5、引入外部路由
# 在 R5 上创建 Loopback1 接口,配置IP 地址为 192.168.1.1,作为外部路由引入到 IS-1S 中

# 在 R5 上查看 IS-IS 路由表

在 L2 的路由重发布表中可以看到引入的外部路由
# 在 R4 上查看 IS-1S 路由 192.168.1.1

R4 此时已经学习到 IS-IS 路由 192.168.1.1/32
# 在 R1 上查看 IS-IS 路由表

从输出信息无法看到路由 192.168.1.1/32,R1 作为 L1 路由器,默认情况下 L1-2 路由器不会向其传递 L2 路由,所以在 R1 上无法看到引入的外部路由 192.168.1.1/32,但 R1 上存在前往骨干区域的默认路由,并且为负载均衡状态
#在 R1 上测试与 R5 的 Loopback1 接口的连通性

R1 可以与 R5 的 Loopback1 接口正常通信
步骤 6、修改 IS-IS 接口 Cost 值
R4 前往 R1 的流量此时通过 R2、R3 进行负载分担(之前的查看路由表时已经观察到),管理员希望手工控制 R4 前往 R1 的流量经过 R2,为此在 R4 上手动修改接口 Cost。
# R4 上查看 IS-IS 路由 10.0.1.1/32

此时 R4 前往 R1 的 Loopback0 接口为负载分担,其下一跳分别为 10.0.24.2、10.0.34.3.
# 修改 R4的 GE0/0/3 接口其 IS-IS Cost 值

# 再次在 R4 上查看 IS-IS 路由 10.0.1.1/32

此时 R4 前往 R1 的 Loopback0 接囗只存在一个下一跳,即 10.0.24.2
步骤 7、配置 IS-IS 路由渗透
由于缺省时 R1 并不知道到达 L2 区域的具体路由,仅仅通过 L1-2 路由器发布的缺省路由到达L2 区域,因此当前 R1 只能选择 R2 及 R3 作为等价的下一跳设备到达 L2 区域。为了将 R1 发往 R5 的流量引导到 R3 进行转发,可以在 R3 上配置路由渗透,由其将到达 L2 区域的路由渗透到 L1 区域,使得 R1 能够通过 IS-IS 学习到相关路由
# 在 R1 的 IP 路由表中查看 R5 Loopback0 接口路由

可以看到此时 R1 去往 10.0.5.5 为通过 R2、R3 负载均衡,
# 在 R3 上配置 IS-IS 路由渗透
import-route isis level-2 into level-1这个命令的作用是将Level-2路由表中的路由信息导入到Level-1路由表中。这通常发生在那些同时参与Level-1和Level-2路由计算的设备上,以便这些设备能够在其Level-1路由计算中考虑到Level-2路由信息

# 再次在 R1 的 IP 路由表中查看 R5 Loopback0 接口路由

可以看到此时 R1 去往 10.0.5.5 的路由下一跳为 10.0.123.3,即 R3,并且是明细路由而不是默
认路由
相关文章:
2. IS-IS 基础实验
2.1 IS-IS 配置实验 2.1.1 实验介绍 2.1.1.1 学习目标 1. 实现 IS-IS 协议基本配置 2. 实现 IS-IS 协议 DIS 优先级修改 3. 实现 IS-IS 协议网络类型修改 4. 实现 IS-IS 协议外部路由引入 5. 实现 IS-IS 接口 cost 修改 6. 实现 IS-IS 路由渗透配置 2.1.1.2 实验组网介…...
Rust 并行库 crossbeam 的 Channel 示例
示例1 一个不完整的示例: let (tx, rx) channel::unbounded::<Task>(); let mut handlers vec![];for _ in 0..number {let rx rx.clone();let handle thread::spawn(move || {while let Some(task) rx.recv() {task.call_box();}});handlers.push(han…...
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级的理解
一:缓存雪崩 我们可以简单的理解为:由于原有缓存失效,新缓存未到期间 (例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了ÿ…...
springcloud gateway
一、 predicate : 就是你定义一些规则,如果满足了这些规则,就去找到对应的路由。 对于strip 二、自定义过略器和全局过滤器 约定大于配置,后缀不变,只改前缀 sentinel持久化 三、sentinel quick-start | Sentinel 信号量虽然简…...
JAVA八股day1
遇到的问题 相比于包装类型(对象类型), 基本数据类型占用的空间往往非常小为什么说是几乎所有对象实例都存在于堆中呢?静态变量和成员变量、成员变量和局部变量的区别为什么浮点数运算的时候会有精度丢失的风险?如何解…...
探索拓展坞的奥秘:提升电脑接口的无限可能
在数字化时代的浪潮中,电脑已成为我们日常生活和工作中不可或缺的一部分。然而,随着外接设备的日益增多,电脑接口的数量和类型往往无法满足我们的需求。这时,拓展坞便应运而生,以其强大的扩展能力和便捷的使用方式&…...
Linux中执行脚本报错(脚本乱码问题)
主要原因是在windows中编译文件格式导致 linux下解决: 方案一: Linux下打开shell文件,用vi/vim命令打开脚本文件,输入“:set fileformatunix”,回车,保存退出。 方案二: yum install -y dos2uni…...
el-table按钮获取当前行元素
el-table按钮获取当前行元素 vue2 <el-table-column label"操作" width"240px"><template slot-scope"scope"><el-button size"mini" click"toItem(scope.row)">用户详情</el-button><el-butto…...
MySQL数据导入的方式介绍
MySQL数据库中的数据导入是一个常见操作,它涉及将数据从外部源转移到MySQL数据库表中。在本教程中,我们将探讨几种常见的数据导入方式,包括它们的特点、使用场景以及简单的示例。 1. 命令行导入 使用MySQL命令行工具mysql是导入数据的…...
构建部署_Docker常用命令
构建部署_Docker常见命令 启动命令镜像命令容器命令 启动命令 启动docker:systemctl start docker 停止docker:systemctl stop docker 重启docker:systemctl restart docker 查看docker状态:systemctl status docker 开机启动&…...
Spring Boot Actuator介绍
大家在yaml中经常见到的这个配置 management: endpoints: web: exposure: #该配置线上需要去掉,会有未授权访问漏洞 include: "*" 他就是Actuator! 一、什么是 Actuator Spring Boot Actuator 模块提供了生产级别…...
数据库中DQL、DML、DDL、DCL的概念与区别
目录 DQL (Data Query Language) DML (Data Manipulation Language) DDL (Data Definition Language) DCL (Data Control Language) 数据库语言可以根据其功能被分为几个不同的类别:DQL(数据查询语言)、DML(数据操纵语言&…...
MacOS---设置Java环境变量
介绍 在MacOS系统配置Java环境变量。 操作步骤 第一步:打开.bash_profile文件 vim ~/.bash_profile第二步:添加或修改配置 如果是第一次配置需要添加配置如果是已经配置过想更换其他版本需要修改配置 在文件末尾添加或修改下面的配置 export JAVA…...
使用 Boot Camp 助理查明您的 Mac 需不需要 Windows 安装介质
使用 Boot Camp 助理查明您的 Mac 需不需要 Windows 安装介质 当前的 Mac 机型无需介质即可安装 Windows,也就是说,您不需要用到外置驱动器。较早的 Mac 机型需要用到 USB 驱动器或光盘驱动器。使用 Boot Camp 助理可查明您需要用到什么。 Boot Camp 助…...
KY105 整除问题(用Java实现)
描述 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k1)整除。 输入描述: 两个整数n(2<n<1000),a(2<a<1000) 输出描述: 一个整数. 示例1 输入: 6 10输出: 1代…...
C++ 接口的实现,及作用通俗理解方式
接口 C中的接口,一般就是指抽象类,是一种用来描述类对外提供的操作、方法或功能的集合——注意,一般只是描述(声明),而不对这些方法或功能进行定义实现,通常在类的继承或多态中作为基类使用&am…...
TypeScript:typescript的安装与运行
TypeScript:typescript的安装与运行 1 安装方式 -g全局安装TypeScript: npm install -g typescript2 运行方式 (1)ts编译成js,使用node命令运行js文件 打开vscode,进入ts文件所在目录下并打开终端term…...
【代码随想录Day27】
Day 27 回溯算法03 今日任务 组合总和 40.组合总和II131.分割回文串 代码实现 组合总和,直接套模板可解 public List<List<Integer>> combinationSum(int[] candidates, int target) {backtracking(candidates, target, 0);return result;}void back…...
【一】【单片机】有关LED的实验
点亮一个LED灯 根据LED模块原理图,我们可以知道,通过控制P20、P21...P27这八个位置的高低电平,可以实现D1~D8八个LED灯的亮灭。VCC接的是高电平,如果P20接的是低电平,那么D1就可以亮。如果P20接的是高电平,…...
面试算法-49-缺失的第一个正数
题目 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
