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] 中的数字都…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
