ISIS DIS(学习笔记+实验验证)

ISIS DIS

  • 原理概述
  • 实验
    • 一,实验目的
    • 二,实验内容
      • (一)实验拓扑
      • (二)配置步骤
        • 1,基本配置
        • 2,配置IS-IS路由协议
        • 3,查看默认选举的DIS
        • 4,修改DIS优先级来控制DIS选举结果

原理概述

OSPF协议支持四种网络类型

在这里插入图片描述

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

实验

一,实验目的

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

二,实验内容

在这里插入图片描述

(一)实验拓扑

在这里插入图片描述
在这里插入图片描述

(二)配置步骤

1,基本配置

2,配置IS-IS路由协议

配置R1,R2为Level-1-2路由器,R3为Level-1,R4为Level-2 路由器。

[R1]isis
[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]isis enable  1
[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]isis enable 1
[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 1
[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]isis enable 1

配置后,查看IS-IS邻居信息
在这里插入图片描述
R1与相邻路由器ISIS建立成功,和R2建立Level-1和Level-2邻接关系,和R3建立了Level-1邻接关系,和R4建立了Level-2邻接关系。

3,查看默认选举的DIS

在每台路由器上使用display isis interface G0/0/0命令查看G0/0/0接口的ISIS信息
在这里插入图片描述
在这里插入图片描述
在缺省DIS优先级情况下,Level-1 Hello报文接口中,R3的G0/0/0接口MAC地址最大,所以R3选举为Level-1 DIS;Level-2 Hello报文接口中,R1的G0/0/0接口MAC地址最大,所以选举R1为Level-2 DIS 
使用display isis interface G0/0/0 verbose命令查看G0/0/0接口的ISIS详细信息.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到他们的SNPA地址(就是MAC地址),而Level-1DIS优先级和Level-2DIS都为默认的64.R3被选举为Level-1 DIS,R1被选举为Level-2 DIS。还有R1,R2都是Level-1-2路由器,他们也参加Level-1和Level-2的DIS选举。

ISIS协议会将广播网络本身抽象成伪节点,伪节点不实际存在,是一个逻辑概念,广播型网络中路由器都认为自己和伪节点存在邻接关系,并通过产生相应的LSP来描述自己和这个伪节点之间的链路状态。广播型网络中的DIS充当了伪节点角色并代伪节点的职责;DIS会代替抽象的伪节点产生PSN LSP(伪节点LSP),用来描述那些路由器与伪节点相连。PSN LSP和OSPF的Type-2 LSA很相似。

在R1上查看ISIS的链路状态数据库。

在这里插入图片描述
可以看到,Level-1的LSPID为R3.01-00的LSP,这就是Level-1 PSN LSP,说明R3为level-1的DIS;

在Level-2的R1.01-00*就是Level-2 PSN LSP,说明R1时Level-2 的DIS。

在R1上使用display isis lsdb is-name R1 verbose命令查看R1生成的LSP详细信息。
在这里插入图片描述
伪节点只是逻辑上的概念,用来表示一个广播型网络,DIS路由器是连接到广播型网络的一台路由器,DIS只是代行了伪节点的职责。
R2既不是Level-1 DIS,也不是Level-2 DIS,在R2上使用display isis lsdb is-name R2 verbose命令查看R2生成的LSP详细信息。

在这里插入图片描述
可以看到,R2上只有描述自己与伪节点R3.01和R1.01的关系。

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

要求是R2为Level-2 DIS。可以通过修改接口G0/0/0接口的Level-2 DIS优先级的值为127.
在R2 的G0/0/0下使用**[isis dis-priority 127 level-2**命令修改G0/0/0接口的Level-2 DIS优先级为127

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

在R2上使用命令display isis interface g0/0/0 verbose查看G0/0/0接口的ISIS协议详细信息。
在这里插入图片描述
可以看到,R2的G0/0/0接口的Level-2DIS优先级的值已经改为了127,Level-1 DIS还是64,接口属性也变为NO/Yes.说明R2现在是Level-2 DIS
他与OSPF协议不同,DIS优先级修改之后,优先级更高的路由器会迅速抢占DIS的角色。

热门文章

暂无图片
编程学习 ·

【面试】如果你这样回答“什么是线程安全”,面试官都会对你刮目相看

不是线程的安全 面试官问:“什么是线程安全”,如果你不能很好的回答,那就请往下看吧。 论语中有句话叫“学而优则仕”,相信很多人都觉得是“学习好了可以做官”。然而,这样理解却是错的。切记望文生义。 同理,“线程安全”也不是指线程的安全,而是指内存的安全。为什么如…
暂无图片
编程学习 ·

JavaScript-Promise的使用及详细解释

JavaScript-Promise的使用及详细解释案例使用多种方法实现以下案例第一种---setTimeout嵌套第二种---封装函数Promise详解小案例第三种---使用Promise来实现最开始的案例Promise---具体使用的案例第一版---点击按钮显示图片第二版---加载出第一张之后在加载其他,依次加载第三版…
暂无图片
编程学习 ·

Day 11 武装飞船

《外星人入侵》游戏要实现的是:玩家控制一艘出现在屏幕底部中央的飞船,可以使用箭头左右移动飞船,还可以使用空格来进行射击,游戏开始时候一群外星人出现在天空,他们在屏幕中向下移动,玩家的任务是射杀这些外星人,玩家将所有外星人都消灭干净后,会出现一群新的外星人,…
暂无图片
编程学习 ·

anaconda安装pytorch

CPU版本: https://pytorch.org/get-started/previous-versions/ #CPU only conda install pytorch1.2.0 torchvision0.4.0 cpuonly -c pytorch 参考博客 [1]https://blog.csdn.net/u014723479/article/details/103001861?utm_medium=distribute.pc_relevant.none-task-blog-B…
暂无图片
编程学习 ·

java学习基础:Math类

记录学习java路程将与风雨相伴!!! Math类(数学类) 算术计算 Math.sqrt():计算平方根 Math.cbrt():计算立方根 Math.pow(a,b):计算a的b次方 Math.max(,):计算最大值 Math.min(,):计算最小值 Math.abs():取绝对值 进位 Math.ceil():天花板的意思,就…
暂无图片
编程学习 ·

QT的::和:记录

******1.:一般指继承. Class 派生类 : 基类 (1)表示结构体内 位域的定义(即该变量占几个bit空间) (2)构造函du数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。 (3)public:和private:后面的冒号,表示后面定义的所有成员都是…
暂无图片
编程学习 ·

C语言判断大小端

大小端介绍 中央处理器(CPU:CentralProcessingUnit)和微处理器(MCU:MicrocontrollerUnit)中的存储单元都有存储单元,用来存放程序代码中申请的变量(存在栈区),CPU/MCU的最小存储单元是一1个字节(1Byte)即8bit。 C语言中有多种变量类型如:char(8bit)、short(16bit)、…
暂无图片
编程学习 ·

移动自动化测试-Appium基础操作API

Appium自动化测试框架 学习目标: 1.能够安装Appium桌面客户端 2.能够安装Appium-python库 Appium介绍: Appium是一个移动端的自动化测试框架,可用于测试原生应用,移动网页应用和混合型应用,且是垮平台的,可用于Android和IOS操作系统。 重要的是Appium是跨平台的,可以针对…
暂无图片
编程学习 ·

python pytest selenium 自动化测试框架搭建

python pytest selenium 自动化测试框架搭建公司一直有这个自动化测试需求,前期利用c++或者python进行了一些自动化脚本的编写。这几天没有版本更迭,基于前期的工作,把自动化测试整理了一部分功能模块。现在的状态基本达到预期:即搭建了一个AutoTest框架,基于此实现了logi…
暂无图片
编程学习 ·

Node.Js+React.Js+Git的基本开发环境配置

1、基本开发环境的配置 主要包括node.Js的基本安装、React的基本安装、GIT的安装以及git可视化工具sourceTree的基本安装。 (1)node.Js的安装 官网搜索node.Js,下载安装包,进行傻瓜式安装(点击下一步就可以)。(2)React的基本安装 首先创建一个项目文件夹, cd 到需要创…
暂无图片
编程学习 ·

java.lang.NullPointerException 自己踩过得坑 记录下来

java.lang.NullPointerExceptionjava.lang.NullPointerException 这个问题困扰了我好长时间 解答: 因为自己写的MybatisUtils工具类中 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 这句话中多写了一个 SqlSessionFactory , 因为…
暂无图片
编程学习 ·

1.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子, * 假如兔子都不死,问每个月的兔子对数为多少? * 分析: * 月份:1 2 3

package com.ujiuye.java;/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,* 小兔子长到第三个月后每个月又生一对兔子,* 假如兔子都不死,问每个月的兔子对数为多少?* 分析:* 月份:1 2 3 4 5 6 7 8 9...* 对数 :1 1 2 3 5 8 13 21... */ public class Dem…
暂无图片
编程学习 ·

中国恒大:模范生的“提质增效”

撞线万亿绝不会是恒大的终极目标,在提升自身发展质量的同时,恒大必然会选择更宽广的赛道御风而行,到达万亿规模也只是恒大的又一个新起点。一点财经 严 睿|作者刘 煜|编辑泥沙俱下或者傲立潮头?愈是在行业出现重大波折的阶段,愈能检验企业的发展质量。2020年上半场结束,…
暂无图片
编程学习 ·

面向对象到底是什么

面向对象编程OOP,全称 Object Oriented Programming两个基础概念:类(class)和对象(object)一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石面向对象编程语言OOPL,全称 Object Oriented Pro…
暂无图片
编程学习 ·

排序算法之插入排序、希尔排序、归并排序(C#)

插入排序 两次for循环,外层从数组第二位i=1开始,内层for循环由i向前进行判断,大于则将该位置与遍历位置交换。此时注意,不能按i的位置获取元素,应将该元素暂存,因为交换时对应i位置元素值会变换。c#代码如下/// <summary>/// 插入排序/// </summary>/// <…
暂无图片
编程学习 ·

兔(图)解之初识贪心算法

嗯,好想她呀....加油生活。 希望她好好的....剪绳子 给你一根长度为 n 的绳子,请把绳子剪成 m 段(m、n 都是整数,n>1 并且 m>1),每段绳子的长度记为 k[0],k[1],...,k[m]。请问 k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是 8 时,我们把它剪成 …
暂无图片
编程学习 ·

String类

String类的subString方法从指定位置截取到字符串结尾 substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。 eg:str1.subString(5)//从第6个位置开始截取截取指定范围的内容 substring (int beginIndex, int endIndex) :返回一个子字符…
暂无图片
编程学习 ·

Java 中内部类简单概念

概念:在一个类内部定义的类 1.内部类会生成独立的.class文件。文件名Outer$Inner.class 2.内部类可以访问外部类的私有属性,从而不破坏外部类的封装性 成员内部类(类比成员变量) 1.定义位置:类以内,方法以外 2.如何创建对象 Outer o = new Outer(); //创建外部类对象 Out…