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ÿ…...
初步认识栈和队列
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…...
Kerberos身份认证原理与实战排错指南
1. 为什么今天还要花时间搞懂 Kerberos?——一个被低估的“老协议”正在悄悄支撑着你的日常你每天登录公司内网查邮件、访问财务系统提交报销、用 Jenkins 构建代码、甚至在 Windows 域环境中打开一台同事的共享文件夹……这些看似顺滑的操作背后,大概率…...
DeepSeek系统设计辅助:如何在48小时内完成可审计、可回滚、可压测的AI服务架构图?
更多请点击: https://intelliparadigm.com 第一章:DeepSeek系统设计辅助 DeepSeek系统设计辅助模块面向架构师与后端工程师,提供模型能力调用、接口契约生成、异步任务编排等核心支撑能力。该模块不替代人工设计决策,而是通过结构…...
航空航天为什么离不开高强镁合金?国产替代到哪一步了
飞机每减重一千克,全年大约节省四千两百美元的燃油费用——这是航空工程师熟悉的经验值。在商业航空领域,这个数字还只是财务账;在战斗机、导弹和卫星的世界里,减重的收益被换算成更远的航程、更大的载荷、更高的机动性࿰…...
MongoDB Limit 与 Skip 方法详解
MongoDB Limit 与 Skip 方法详解 引言 MongoDB 是一个高性能、可伸缩的文档存储系统,它提供了强大的数据存储和查询功能。在处理大量数据时,Limit 与 Skip 方法是 MongoDB 中常用的查询优化工具。本文将详细介绍 MongoDB 中的 Limit 与 Skip 方法,包括其基本用法、性能影响…...
Unity动态自然系统:Forest Environment-Dynamic Nature深度解析
1. 这不是“贴图堆砌”,而是自然系统级建模:Forest Environment-Dynamic Nature 的真实定位你有没有试过在Unity里拖进几棵树、铺点草、加个天空盒,然后发现场景像一张静止的风景明信片——风不动、叶不摇、雨不落、雾不散?我做过…...
双稳健机器学习:用正交性与交叉拟合解决因果推断中的ML偏差
1. 项目概述:当机器学习遇见因果推断的“干扰”难题在实证研究的日常工作中,我们常常面临一个核心矛盾:我们真正关心的,往往只是一个或几个关键参数——比如一项政策对就业率的平均影响(平均处理效应,ATE&a…...
3分钟解锁网易云音乐NCM文件:ncmdumpGUI小白也能懂的完整教程
3分钟解锁网易云音乐NCM文件:ncmdumpGUI小白也能懂的完整教程 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经下载了网易云音乐的歌曲&a…...
特定任务需求场景下的过约束并联机构构型设计与控制方法【附代码】
✨ 长期致力于曲面加工、构型综合、运动学和动力学建模、性能评价、多目标优化、滑模控制、鲁棒控制、视觉传感技术研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (…...
对比不同模型在创意生成任务中的效果与token消耗差异
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比不同模型在创意生成任务中的效果与token消耗差异 在为一场创意大赛准备素材时,我们面临一个常见的选择:…...
网安学习第24天 PHP安全——PHP反序列化
一、序列化与反序列化 1、序列化serialize() 序列化是什么?序列化就是把程序中的对象、数组、结构体等复杂数据,转换成可以存储或传输的格式。 简单说: 把“内存里的对象”变成“字符串/字节流”。 例如 PHP 中有一个对象: $u…...
