当前位置: 首页 > 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。

相关文章:

  • Android:OkHttp网络请求框架的使用
  • 【二叉树】LeetCode.144:二叉树的前序遍历(小细节把握)
  • 今天说的什么好呢
  • 汇编原理(二)
  • STL库 —— unordered_set与unordered_map的封装
  • 5月23日学习记录
  • 002 CentOS 7.9 redis-7.2.5安装及配置
  • idea2023的git从dev分支合并到主分支master
  • AlexNet论文解析—ImageNet Classification with Deep Convolutional Neural Networks
  • AIGC-常见图像质量评估MSE、PSNR、SSIM、LPIPS、FID、CSFD,余弦相似度----理论+代码
  • 公共代理IP和独享代理IP之间的区别?
  • Java进阶学习笔记28——StringJoiner
  • python内置函数map/filter/reduce详解
  • VLAN高级特性
  • 吴恩达深度学习笔记:超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)3.4-3.5
  • [nginx文档翻译系列] 控制nginx
  • C++类的相互关联
  • Flannel解读
  • miaov-React 最佳入门
  • Python打包系统简单入门
  • Sass Day-01
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 诡异!React stopPropagation失灵
  • 前嗅ForeSpider中数据浏览界面介绍
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 移动端解决方案学习记录
  • 优秀架构师必须掌握的架构思维
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​人工智能书单(数学基础篇)
  • #HarmonyOS:基础语法
  • #mysql 8.0 踩坑日记
  • #NOIP 2014#Day.2 T3 解方程
  • (1)(1.13) SiK无线电高级配置(五)
  • (1)STL算法之遍历容器
  • (C#)获取字符编码的类
  • (PySpark)RDD实验实战——取一个数组的中间值
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计ssm电影分享网站
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (学习日记)2024.01.09
  • (一) springboot详细介绍
  • (转)Linux下编译安装log4cxx
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转载)OpenStack Hacker养成指南
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET CLR基本术语
  • .NET Core中如何集成RabbitMQ
  • .net mvc 获取url中controller和action
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET处理HTTP请求
  • .net的socket示例