当前位置: 首页 > news >正文

IS-IS DIS

原理概述

     OSPF 协议支持4种网络类型, IS-IS 协议只支持两种网络类型,即广播网络点到点网络。与 OSPF 协议相同, IS-IS 协议在广播网络中会将网络视为一个伪节点( Pseudonode ,简称 PSN ),并选举出一台 DIS ( Designated IS )路由器来代行这个伪节点的职责。 DIS 的作用与 OSPF 的 DR 类似可以减少不必要的 LSP 泛洪。注意,与 OSPF 协议中的 DR 选举不同, DIS 的选举是抢占性的。另外, DIS 还有 Level-1和 Level-2之分,同一网络的 Level-1 DIS 和 Level-2 DIS 可能是同一台路由器,也可能是不同的路由器。在点到点网络中, IS-IS 协议不选举 DIS 。
        注意,选举出 DIS 后,广播网络中的路由器仍然需要与所有的邻居建立邻接关系,而不仅仅是与 DIS 建立邻接关系。在广播网络中, DIS 会周期性(默认为10s)地发送携带 CSNP ( Complete Sequence Number PDU )消息的组播帧来实现链路状态数据库之间的同步,其中 Level-1DIS使用的组播 MAC 地址为0180.C200.0014, Level-2 DIS 使用的组播 MAC 地址为0180.C200.0015。
        选举 DIS 的过程是自动进行的,选举的依据是比较同一网络中路由器接口的 DIS 优先级,其次是比较接口的 MAC 地址。在接口的 DIS 优先级相同的情况, MAC 地址较大者将成为 DIS
        路由器的 IS-IS 接口都拥有一个 Level-1 DIS 优先级和一个 Level-2 DIS 优先级,取值范围都是0到127,默认值都是64。 IS-IS 接口所发出的 Level-1 Hello 报文中携带了 Level-1 DIS 优先级的值, Level-2 Hello 报文中携带了 Level-2 DIS 优先级的值。注意,如果 DIS 优先级的值为0,并不表示不参与 DIS 的选举,而只是表示 DIS 优先级最低。
        最后需要说明的是,在 OSPF 协议中,除了有 DR ,还有 Backup DR ( BDR )。但是在 IS-IS 协议中,只有 DIS ,没有 Backup DIS 。 

实验目的

理解 IS-IS 协议中 DIS 的作用和选举方法
理解 IS-IS 接口的 DIS 优先级的概念
掌握通过修改 DIS 优先级来控制 DIS 选举结果的方法

实验内容

实验拓扑如图所示。本实验模拟了一个简单的企业网络场景,R1、R2、R3、R4分别连接着公司部门 A 、 B 、 C 、 D ;R1、R2、R3、R4分别为 Level-1-2、 Level-1-2、 Level-1、 Level-2路由器。网络需求是:必须让R1成为 Level-1 DIS ,R2成为 Level-2 DIS 。注意,本实验中路由器接口的 MAC 地址是随机生成的。

实验拓扑

1.基本配置

根据拓扑图进行相应的基本配置,并使用ping命令检测R1与R4之间的连通性。

其余路由器的连通性测试过程在此省略。

2.配置IS-IS路由协议

在每台路由器上配置IS-IS协议,其中R1和R2为Level-1-2路由器,R3为Level-1路由器,R4为Level-2路由器。

[r1]isis 1
[r1-isis-1]network-entity 10.0000.0000.0001.00
[r1-isis-1]is-name R1
[r1-isis-1]q
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]
[r1-GigabitEthernet0/0/0]isis enable

[r2]isis 1
[r2-isis-1]network-entity 10.0000.0000.0002.00
[r2-isis-1]is-name R2
[r2-isis-1]q
[r2]int g0/0/0
[r2-GigabitEthernet0/0/0]
[r2-GigabitEthernet0/0/0]isis enable

[r3]isis 1
[r3-isis-1]network-entity 10.0000.0000.0003.00

[r3-isis-1]is-level level-1
[r3-isis-1]is-name R3
[r3-isis-1]q
[r3]int g0/0/0
[r3-GigabitEthernet0/0/0]isis enable

[r4]isis 1
[r4-isis-1]network-entity 10.0000.0000.0004.00

[r4-isis-1]is-level level-2
[r4-isis-1]is-name R4
[r4-isis-1]q
[r4]int g0/0/0
[r4-GigabitEthernet0/0/0]
[r4-GigabitEthernet0/0/0]isis enable

配置完成后,在R1上查看IS-IS邻居信息。

可以看到,R1与相邻路由器的IS-IS邻接关系是正常的,其中R1与R2分别建立了Level-1邻接关系和Level-2邻接关系,R1与R3建立了Level-1邻接关系,R1与R4建立了Level-2邻接关系。

3.查看默认选举的DIS

在每台路由器上使用display isis interface GigabitEthernet 0/0/0命令查看GE0/0/0接口的IS-IS协议信息。

可以看到,在使用缺省DIS优先级的情况下,能够发送Level-1 Hello报文的接口中,R3的GE0/0/0接口的MAC地址最大,因此R3被选举为Level-1 DIS;能够发送Level-2 Hello报文的接口中,R4的GE0/0/0接口的MAC地址最大,因此R4被选举为Level-2 DIS;

在每台路由器上使用display isis interface GigabitEthernet 0/0/0 verbose命令查看GE0/0/0接口的IS-IS详细信息。

 

       可以看到,R1、R2、R3、R4的 SNPA ( Sub-Netowrk Point of Attachment )地址分别为00e0-fc0a-50a6、 00e0-fc4d-2c26、00e0-fc82-7f4c、00e0-fc97-7ad3( SNPA 地址在这里指的就是 MAC 地址),而 Level-1 DIS 优先级和 Level-2 DIS 优先级的值都为默认值64。R3被选举为 Level-1 DIS ,R4被选举为 Level-2 DIS 。需要注意的是,R1和R2都是 Level-1-2路由器,它们会使用 Level-1 DIS 优先级参与到 Level-1的 DIS 选举中,同时还会使用 Level-2 DIS 优先级参与到 Level -2的 DIS 选举中。
        IS-IS 协议会将广播型网络本身抽象成一个伪节点,伪节点并不实际存在,它只是一个逻辑上的概念,广播型网络中的路由器都认为自己和伪节点存在邻接关系,并通过产生相应的 LSP 来描述自己和这个伪节点之间的链路状态。广播型网络中的 DIS 充当了伪节点的角色并代行伪节点的职责; DIS 路由器会代替抽象的伪节点产生 PSN LSP (伪节点LSP  ),用以描述哪些路由器与伪节点相连。 PSN LSP 与 OSPF 中的 Type-2 LSA 非常相似。
在R1上查看 IS-IS 的链路状态数据库。

       可以看到, Level-1链路状态数据库中有一条 LSP ID 为R3.01-00的 LSP ,这就是一条 Level-1 PSN LSP ,同时也说明R3是 Level-1 DIS ;在 Level-2链路状态数据库中有一条 LSP ID 为R4.01-00的 LSP ,这就是一条 Level-2 PSN LSP ,同时说明R4是 Level-2 DIS 。
       在R1上使用 display isis lsdb is-name R1 verbose 命令查看R1生成的 LSP 的详细信息。

  

       可以看到,在 RI 的 Level-1的 LSDB 中 LSP ID 为0000.0000.0001.00-00*的 LSP 由 R1自己产生,这条 LSP 描述了R1和伪节点R3.01之间的链路状态信息,其中 Area Addr 描述了 R1自己所在的区域 ID 为10, INTF Addr 描述了R1自己与伪节点R3.01相连的接口 IP 地址为10.0.1.1, NBR ID 描述了邻居是伪节点R3.01, Cost 描述了R1自己到伪节点 R3.01的开销值为10, IP-Internal 描述了R1和伪节点R3.01之间的网络前缀和掩码以及开销值信息。
       伪节点只是一个逻辑上的概念,用来表示一个广播型网络本身,而 DIS 路由器是连接到这个广播型网络的一台路由器, DIS 和伪节点是两个不同的概念,只是 DIS 代行了伪节点的职责而已。
       R2既不是 Level-1 DIS ,也不是 Level-2 DIS ,在R2上使用 display isis lsdb is-name R2 verbose 命令查看R2生成的 LSP 的详细信息。  

可以看到,R2生成了两条 LSP ,第一条描述了自己与伪节点R3.01的关系,第二条描述了自己与伪节点R3.01的关系。

4.修改 DIS 优先级来控制 DIS 选举结果 

      根据需求,R1应当成为 Level-1 DIS, R2应当成为 Level-2 DIS 。这一需求很容易通过修改接口的 Level-1 DIS和Level-2 DIS 优先级来实现。
      在R1的 GE 0/0/0接口的视图下使用 isis dis-priority 127 Level-1命令修改 GE 0/0/0接口的 Level-1 DIS 优先级的值为120;在R2的 GE 0/0/0接口的视图下使用 isis dis-priority 127 Level-2命令修改 GE 0/0/0接口的 Level-2 DIS 优先级的值为127。

[r1-GigabitEthernet0/0/0]isis dis-priority 120 level-1

[r2-GigabitEthernet0/0/0]isis dis-priority 127 level-2 

在R1和R2上使用命令display isis interface GigabitEthernet 0/0/0 verbose 查看 GE 0/0/0接口的 IS-IS 协议的详细信息。 

可以看到,R1的 GE 0/0/0接口的 Level-1 DIS 优先级的值已被修改成120, Level-2 DIS 优先级的值依旧为64,接口信息中 DIS 属性为 Yes /No 。说明R1现在是 Level-1 DIS 。R2的 GE 0/0/0接口的 Level-2 DIS 优先级的值已被修改成127, Level-1 DIS 优先级的值依旧为64,接口信息中 DIS 属性为 No / Yes 。说明R2现在是 Level-2 DIS 。注意,与 OSPF 协议不同, DIS 优先级修改之后,优先级更高的路由器会迅速抢占 DIS 的角色。

在R1上使用命令display isis lsdb is-name R1 verbose命令查看R1生成的LSP的详细信息。

      可以看到,在 RI 的 Level-1的 LSDB 中 LSP ID 为0000.0000.0001.00-00*的 LSP 由 RI 自己产生,这条 LSP 描述了R1和伪节点R1.01之间的链路状态信息。
       观察还发现,在R1的 Level-1 LSDB 中还有一条 LSP ID 为0000.0000.0001.01-00*的 LSP ,这条 LSP 其实就是由R1代替伪节点R1.01产生的一条 Level-1 PSN LSP ,其中的 NBR ID 描述了R1.01这个伪节点同时连接了R1、R2、R3这3台路由器,而 Cost 说明了R1.01这个伪节点到R1、R2、R3的开销值都为0。注意,在广播网络上,路由器到伪节点的开销值默认为是10,而伪节点到路由器的开销值为0。

相关文章:

IS-IS DIS

原理概述 OSPF 协议支持4种网络类型, IS-IS 协议只支持两种网络类型,即广播网络和点到点网络。与 OSPF 协议相同, IS-IS 协议在广播网络中会将网络视为一个伪节点( Pseudonode ,简称 PSN ),并选举出一台 DIS ( Designa…...

random和range

含义: random(1,10) 不包含10,用于生成随机数。它可以生成浮点数或整数,取决于具体的使用方式。 range(0,1) 不包含1,用于生成一个整数序列。它可以生成一个指定范围内的连续整数序列。 区别在于&#x…...

研二学妹面试字节,竟倒在了ThreadLocal上,这是不要应届生还是不要女生啊?

一、写在开头 今天和一个之前研二的学妹聊天,聊及她上周面试字节的情况,着实感受到了Java后端现在找工作的压力啊,记得在18,19年的时候,研究生计算机专业的学生,背背八股文找个Java开发工作毫无问题&#x…...

Golang:gammazero/deque是一个快速环形缓冲区deque(双端队列)实现

gammazero/deque是一个快速环形缓冲区deque(双端队列)实现。 文档 https://github.com/gammazero/deque 安装 go get github.com/gammazero/deque代码示例 先入先出队列 package mainimport ("fmt""github.com/gammazero/deque&quo…...

C++ 时间处理-统计函数运行时间

1. 关键词2. 问题3. 解决思路4. 代码实现 4.1. timecount.h4.2. timecount.cpp 5. 测试代码6. 运行结果7. 源码地址 1. 关键词 C 时间处理 统计函数运行时间 跨平台 2. 问题 C如何简单便捷地实现“函数运行时间的统计”功能? 3. 解决思路 类的构造函数&#x…...

JAVA面试题大全(十五)

1、Zookeeper 是什么? zookper是一个分布式的,开放源码的分布式应用程序协调服务。是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护…...

使用python对指定文件夹下的pdf文件进行合并

使用python对指定文件夹下的pdf文件进行合并 介绍效果代码 介绍 对指定文件夹下的所有pdf文件进行合并成一个pdf文件。 效果 要合并的pdf文件,共计16个1页的pdf文件。 合并成功的pdf文件:一个16页的pdf文件。 代码 import os from PyPDF2 import …...

Day50 | 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费 总结

代码随想录算法训练营Day50 | 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费 总结 LeetCode 309.最佳买卖股票时机含冷冻期 题目链接:LeetCode 309.最佳买卖股票时机含冷冻期 思路: 四个状态。 保持持有股票,保持卖出股票…...

Steam在连接至服务器发生错误/连接服务器遇到问题解决办法

Steam作为全球最大的数字游戏分发平台,构建了一个活跃的玩家社区,用户可以创建个人资料,添加好友,组建群组,参与讨论,甚至直播自己的游戏过程。通过创意工坊,玩家还能分享自制的游戏模组、地图、…...

kafka 工作流程文件存储

爬虫组件分析 目录概述需求: 设计思路实现思路分析1.kafka 工作流程2.kafka 文件存储 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for…...

贪心算法4(c++)

过河的最短时间 题目描述 输入 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过,如果…...

【无标题】yoloV8目标检测与实例分割--目标检测onnx模型部署

1. 模型转换 ONNX Runtime 是一个开源的高性能推理引擎,用于部署和运行机器学习模型,其设计的目标是优化执行open neural network exchange (onnx)格式定义各模型,onnx是一种用于表示机器学习模型的开放标准。ONNX Ru…...

深入理解与防御跨站脚本攻击(XSS):从搭建实验环境到实战演练的全面教程

跨站脚本攻击(XSS)是一种常见的网络攻击手段,它允许攻击者在受害者的浏览器中执行恶意脚本。以下是一个XSS攻击的实操教程,包括搭建实验环境、编写测试程序代码、挖掘和攻击XSS漏洞的步骤。 搭建实验环境 1. 安装DVWA&#xff…...

初步认识栈和队列

Hello,everyone,今天小编讲解栈和队列的知识!!! 1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶&…...

插件:NGUI

一、版本 安装完毕后重启一下即可,否则可能创建的UI元素不生效 二、使用 Label文字 1、创建Canvs 2、只有根节点的这些脚本全部展开才能鼠标右键创建UI元素 3、选择字体 Label添加打字效果 Sprite图片 1、选择图集 2、选择图集中的精灵 InvisibleWidget容器 用来…...

网络爬虫原理及其应用

你是否想知道Google 和 Bing 等搜索引擎如何收集搜索结果中显示的所有数据。这是因为搜索引擎对其档案中的所有页面建立索引,以便它们可以根据查询返回最相关的结果。网络爬虫使搜索引擎能够处理这个过程。 本文重点介绍了网络爬虫的重要方面、网络爬虫为何重要、其…...

串口中断原理及实现

一、串口的原理 SM0、SM1——串行口工作模式 SM0SM1模式特点00模式0移位寄存器方式,用于I/O口扩展01模式18位UART,波特率可变10模式29位UART,波特率为时钟频率/32或/6411模式39位UART,波特率可变 TI、RI——发送、接收中断标志位 TITI0 允许发送>TI1 发送完成后…...

课时136:变量进阶_变量实践_高级赋值

2 变量进阶 2.1 变量实践 2.1.1 高级赋值 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 所谓的高级赋值,是另外的一种变量值获取方法,这里涉及到更多我们学习之外的一些shell内置变量格式,其实这部分…...

牛客网刷题 | BC99 正方形图案

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 KiKi学习了循环&am…...

启动小程序F12窗口管理器

如何使用小程序F12任务窗口管理器教学流程 一、引言 小程序的开发者们,是否希望有一款工具能帮助你们更好地管理任务窗口? 二、前置准备 观看视频教程 访问B站视频链接:https://www.bilibili.com/video/BV1aa4y197UU/?spm_id_from333.9…...

Unity中TextMeshPro (TMP) 中文项目字体优化

一、常用配置方案 A.静态主字体(Static Asset) 用途:储存游戏 95% 以上的文本配置内容:ASCII 字符(英文、数字、符号) 通用规范汉字一级字库(3500字) 配置操作步骤: Win…...

CCS工程报错找不到库?别慌,手把手教你用XGCONF和工程属性搞定RTSC/裸机配置

CCS工程报错找不到库?三步精准定位与RTSC/裸机配置全攻略 刚接触TI芯片开发的朋友们,一定遇到过这样的场景:官方例程跑得飞起,自己新建的工程却频频报出"library not found"的红色警告。这就像拿到一把新枪却发现子弹型…...

VideoAgentTrek Screen Filter部署排错大全:从403 Forbidden到GPU内存不足

VideoAgentTrek Screen Filter部署排错大全:从403 Forbidden到GPU内存不足 部署AI视频处理工具,最怕的就是遇到各种报错,尤其是当你满怀期待地敲下运行命令,屏幕上却弹出一堆看不懂的红色错误信息时,那种感觉真是让人…...

非科班转编程,面试通关全流程干货

文章目录 前言一、简历关:别让"自学"俩字毁了你1.1 教育背景怎么写?诚实但要有"小心机"1.2 项目经历:千万别写"XXX管理系统" 二、八股文关:别再傻傻背"Redis为什么快"了2.1 2025年八股文…...

AI软件研发成本飙升的真相:3个被忽视的隐性成本源,今天不查明天多烧47%预算!

第一章:AI原生软件研发成本优化实战技巧 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的研发成本常被模型训练开销主导,但实际可观测的浪费更多来自推理服务冗余、提示工程低效、以及缺乏细粒度资源编排。聚焦可落地的降本路径,…...

VS2013创建首个C++程序教程

在 Visual Studio 2013 中创建并运行第一个 C 程序,主要涉及环境准备、项目创建、代码编写、编译与调试等核心步骤。以下将结合具体操作和代码示例进行详细说明。 1. 环境准备与项目创建 启动 VS2013:确保 Visual Studio 2013 已正确安装。启动后&…...

Tauri 2.0 Shell插件避坑指南:预设参数覆盖、权限配置与Command.create的正确姿势

Tauri 2.0 Shell插件深度实战:参数控制、权限设计与Command最佳实践 当你在Tauri项目中尝试通过Shell插件调用外部程序时,是否遇到过参数莫名失效、权限配置不生效的困扰?本文将带你深入tauri-apps/plugin-shell的设计哲学,通过真…...

章三 通往殿堂的阶梯

我大学刚毕业时就入职了一家以图像处理见长的外企,因为很多材料是日语撰写的,作为工作需要,那年我对这个小语种的痴迷也达到了一个小巅峰,为此我即自学了日语又到处寻找资料去补充我在图像处理这一块的短板知识。当我们想打印一张…...

从付费软件到自主开发:我用AI和FFmpeg实现了一个录屏工具粱

我为什么会发出这个疑问呢?是因为我研究Web开发中的一个问题时,HTTP请求体在 Filter(过滤器)处被读取了之后,在 Controller(控制层)就读不到值了,使用 RequestBody 的时候。 无论是字…...

NVIDIA Profile Inspector导入导出功能:3分钟掌握游戏配置备份与分享

NVIDIA Profile Inspector导入导出功能:3分钟掌握游戏配置备份与分享 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为每次重装系统后需要重新配置显卡游戏设置而烦恼吗?NV…...