1.0.0 IGP高级特性简要介绍(ISIS)

ISIS高级特性

1.LSP快速扩散

​ 正常情况下,当IS-IS路由器收到其它路由器发来的LSP时,如果此LSP比本地LSDB中相应的LSP要新,则更新LSDB中的LSP,并用一个定时器定期将LSDB内已更新的LSP扩散出去。

IS-IS如何识别LSP的新旧?

LSP的新旧判断机制:
1、比较LSP的序列号,越大越新(序列号范围0x00000001~0xFFFFFFFF),因为设备每隔15分钟,更新LSP扩散,同时LSP的序号会seq+1。
2、序列号相同情况下,则判断剩余老化时间(Remaining Lifetime,初始值为1200s)是否为0,如果等于0,则认为是最新的LSP,用于删除一条LSP。
3、如果剩余存活时间都不等于0,则比较校验值 Checksum,越大的越新。
4、如果校验值也一样,则认为是两条相同的LSP。

LSP的存活时间:
1、最大存活时间:20分钟
2、LSP的刷新时间:15分钟
3、LSP的存活时间为:倒计时
4、无效的LSP的表示:将该LSP的存活时间设置为0
————————————————
原文链接:https://blog.csdn.net/omacy0703/article/details/112560381

快速扩散的作用:LSP快速扩散特性改进了这种上述扩散方式,启用快速扩散特性的设备收到一个或多个较新的LSP时,在路由计算之前,先将小于指定数量的LSP扩散出去,加快LSDB的同步过程。这种方式在很大程度上可以提高整个网络的收敛速度。

而这个指定数量的LSP在flash-flood命令中指定;

同时可指定发送间隔防止设备不间断的发送更新LSP。

参考命令

  • 扩散LSA的最大间隔时间为10毫秒

    • 定时器在路由计算之前如果定时器未超时,则立即扩散至超时后停止;否则在该定时器超时时发送。

    • flash-flood max-timer-interval 10
      
  • 每个接口一次最多扩散LSP的数量(1~15)

    • flash-flood 15
      
  • 指定level中使用,默认所有level都应用

    • flash-flood level-1
      
  • 灵活组合使用

    • # 配置快速扩散特性,每个接口最大发送6个LSP,最大发送间隔为100毫秒。
      [Huawei] isis 1
      [Huawei-isis-1] flash-flood 6 max-timer-interval 100
      
      # 配置快速扩散特性,每个接口最大发送6个LSP,最大发送间隔为100毫秒,但只应用于level-1中。
      [Huawei] isis 1
      [Huawei-isis-1] flash-flood 6 max-timer-interval 100 level-1
      

2.LSP分片

为什么会有LSP分片?

与数据报文一样,当数据过大时就需要通过分片的方式发送数据,保障数据的正常传输。

当IS-IS要发布的链路状态协议数据报文信息量过大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。

如何标识一个LSP?

通过LSP标识符(LSP ID)

路由器生成的每个LSP都有一个LSP ID,用于标识不同的LSP和生成LSP的源路由器。

每个LSP ID都包括三个部分:

​ 系统ID(SysID)、伪节点标识符(Pseudonode ID)、LSP编号(LSP number)

​ 第1个00为伪节点标识,第2个00为LSP编号。

举例某个LSP ID:0001.0000.0001.00-00

如何查看LSP ID?
<AR2>dis isis lsdb 

                        Database information for ISIS(1)
                        --------------------------------

                          Level-1 Link State Database

LSPID                 Seq Num      Checksum      Holdtime      Length  ATT/P/OL
-------------------------------------------------------------------------------
0001.0000.0001.00-00  0x00000004   0x98bc        1065          84      0/0/0   
0001.0000.0002.00-00* 0x00000007   0x67fc        1086          100     0/0/0   
0001.0000.0002.01-00* 0x00000001   0xbdc9        1086          55      0/0/0  
常规情况下能有多少LSP分片?

IS-IS LSP分片由LSP ID中的LSP Number字段进行标识,这个字段的长度是1字节。

因此,一个IS-IS进程最多可产生256个LSP分片。

每个LSP分片可承载大概多少条路由?

未知

LSP分片扩展的原理?

通过增加附加系统ID,可以最多配置50个虚拟系统,从而使得IS-IS进程最多可生成13056个LSP分片。

使能分片扩展功能之后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。

重启之后,初始系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的LSP中发送出去,并通过24号TLV来告知其他路由器此虚拟系统和自己的关系。

虚拟系统的系统ID:由管理员自行分配,每个附加系统ID都允许生成256个扩展的LSP分片。
50个虚拟系统,即50*256=12800个LSP分片。
加上原有未扩展的LSP分片数量256,即可得出LSP分片扩展后可最多生成135056个LSP分片。
虚拟系统ID
isis 1
 virtual-system 5000.0000.0001  # 第一个虚拟系统ID
 virtual-system 5000.0000.0002	# 第二个虚拟系统ID
如何配置LSP分片扩展?

lsp-fragments-extend [选项1] [选项2]
level-1:指定在Level-1级别使能分片扩展。
level-2:指定在Level-2级别使能分片扩展。
level-1-2:指定在Level-1-2级别使能分片扩展。
mode-1:该模式可以兼容以前老版本不支持LSP分片扩展特性的情况。
mode-2:该模式要求所有路由器都支持LSP分片扩展特性。

配置一个/多个虚拟系统
为了使设备生成扩展LSP分片,应至少配置一个虚拟系统的系统ID.
一个IS-IS进程最多可配置50个虚拟系统的System ID.
virtual-system 5000.0000.0001
virtual-system 5000.0000.0002
virtual-system 5000.0000.0003

以上两条命令是配合使用的,只有使能了LSP分片扩展,并用reset isis all命令重启了IS-IS进程后,配置的虚拟系统ID才会生效。

# 启用LSP分片应用于level-1-2中,工作模式为mode-2
isis 1
 network-entity 49.0001.0000.0000.0002.00
 lsp-fragments-extend mode-2
 virtual-system 5000.0000.0001
#

<HUAWEI>reset isis all 
Warning: The ISIS process(es) will be reset. Continue?[Y/N]y

LSP分片中的模式1、模式2有何区别?

Mode-1工作原理:

​ 虚拟系统参与路由SPF计算,初始系统发布的LSP中携带了到每个虚拟系统的链路信息

​ 类似地,虚拟系统发布的LSP也包含到初始系统的链路信息。

​ 这样,在网络中虚拟系统看起来与初始系统相连的真实路由器是一样的。

​ 这种方式是为了兼容不支持分片扩展的老版本所做的一个过渡模式

​ 在老版本中,IS-IS无法识别24号TLV,所以虚拟系统的LSP必须表现的像一个普通IS-IS发出的报文。

注意事项:

​ 虚拟系统的LSP中包含和原LSP中相同的区域地址和过载标志位。

​ 如果还有其它特性的TLV,也必须保持一致

​ 虚拟系统的邻居信息指向初始系统,metric为最大值减1;

​ 初始系统的邻居信息指向虚拟系统,metric必须为0。

​ 这样就保证了其它路由器在进行路由计算的时候,虚拟系统一定会成为初始系统的下游节点。

Mode-2工作原理:

​ 虚拟系统不参与路由SPF计算,网络中所有路由器都知道虚拟系统生成的LSP实际属于初始系统。

​ 在该模式下工作的IS-IS,可以识别24号TLV的内容,并作为计算树和路由的依据。

注意:

​ 无论在哪种方式下,初始系统和虚拟系统的LSP零分片中,都必须包含IS Alias ID TLV(24号TLV)来表示初始系统是谁。

3. 设置等价路由

当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由。

负载分担

如下图,AR3将会收到来自AR1、AR2去往192.168.100.254/32的等价路由:

注释:AR系列手册中说明ISIS缺省情况下,形成负载分担的等价路由的最大条数为1,即不进行负载分担。

但在ENSP中使用AR2240做实验时却是可以进行负载,故以下实验先将等价条数设置为1再进行实验。

[AR3]isis
[AR3-isis-1]maximum load-balancing 1

<AR3>dis ip rou protocol isis 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
192.168.100.254/32  ISIS-L1 15   10          D   10.1.13.1       GigabitEthernet0/0/0

在这里插入图片描述

2、为了提高网络中链路的利用率及减少某些链路负担过重造成阻塞发生的情况,通过配置负载分担,流量会被均匀的分配到每条负载的链路上。

[AR3]isis
[AR3-isis-1]maximum load-balancing 2

[AR3-isis-1]dis ip rou protocol isis 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
192.168.100.254/32  ISIS-L1 15   10          D   10.1.13.1       GigabitEthernet0/0/0
                    ISIS-L1 15   10          D   10.1.23.2       GigabitEthernet0/0/1
等价路由优先级

等价路由默认情况下无法优选指定的下一跳转发。

按照往常OSPF中对等价路由的操作,是通过修改接口的开销控制选路,但这样可能会对后期的路由管理造成一定的影响。

在ISIS中则可以通过对指定下一跳目的地址添加Weight 权重值来控制路由优选。

如需要控制下一跳优选10.1.13.1作为下一跳:

  • 修改10.1.13.1权重值为1,权重值越小其等价路由的优先级越大。
  • 修改10.1.23.2权重值为2。
  • 如果把权重当排名就好理解了,第1名,第2名…
[AR3]isis 1
[AR3-isis-1]nexthop 10.1.13.1 weight 1
[AR3-isis-1]nexthop 10.1.23.2 weight 2

[AR3-isis-1]dis ip rou protocol isis 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
192.168.100.254/32  ISIS-L1 15   10          D   10.1.13.1       GigabitEthernet0/0/0
疑问

既然都负载了为什么还需要去修改某条路由优选?这样不就没有意义了嘛?

依照实际要求而定,两个功能互不冲突,可以灵活组合。

比如:在多出口且对下一跳无要求的时候可以使用负载分担让流量自由转发。

比如:在多出口但有要求优选某个下一跳出口的时候,可以通过修改权重值控制路由优选(如果通过调整开销,就容易影响后期的路由规划)而如果不用权重,单纯修改负载分担条数为1的话,是无法控制主要下一跳的。

4.ATT缺省路由控制

lIS-IS规定,如果IS-IS Level-1-2设备可以通过Level-2邻居到达其它区域,则该L1/2设备会在所发布的Level-1
LSP内将ATT位置位。

对于收到ATT位置位的LSP报文的Level-1设备,会生成一条目的地为发送该LSP的Level-1-2设备地址的缺省路由。

以上是协议的默认原则,在实际应用中,可以根据需要对ATT比特位进行手动配置以更好地为网络服务。

1.(Level-1-2设备)设置IS-IS LSP报文的ATT比特位置位规则。

[AR1-isis-1] attached-bit advertise { always | never }

always:指定ATT位永远置位,收到该LSP的Level-1设备会生成缺省路由。
never: 指定ATT位永不置位,可以避免Level-1设备生成缺省路由,减小路由表的规模。

2.(Level-1设备)控制Level-1设备不因为ATT位下发缺省路由到路由表。

[AR1-isis-1] attached-bit avoid-learning

接着上一个等价路由的小实验进行测试该两条命令的效果:

  • 让AR1向AR3下发ATT=1的LSP报文,使其生成默认路由指向AR1:
[AR1-isis-1] attached-bit advertise always
  • 此时再去查看AR3的ISIS路由:
<AR3>dis ip routing-table protocol isis 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
0.0.0.0/0   ISIS-L1 15   10          D   10.1.13.1       GigabitEthernet0/0/0
  • 紧接着在AR3上配置attached-bit avoid-learning ,使设备不因为ATT置位1而生成默认路由。
  • 配置之后,再查看ISIS路由表将无法查看到缺省路由
[AR3]isis
[AR3-isis-1]attached-bit avoid-learning 

[AR3-isis-1]dis ip rou pro isis
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/262067.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[每周一更]-(第35期):为何要用ChatGPT?

为何要用ChatGPT&#xff1f;因为她是工具&#xff0c;而人类需要工具&#xff1b; AI只要没有自主目的性的话就是工具&#xff0c;需要怕的是使用这个工具的人。掌握了提问的艺术&#xff0c;更好利用AI帮助我们完成目标&#xff1b; 最开始2022/12/07 开始注册ChatGPT使用&a…

【C++】开源:libmodbus通信协议库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍libmodbus通信协议库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#x…

PDF控件Spire.PDF for .NET【安全】演示:将加密或解密 PDF 文件

当涉及到在 Internet 上共享机密文档时&#xff0c;PDF 加密是一项至关重要的任务。通过使用强密码加密 PDF 文件&#xff0c;您可以保护文件数据免遭未经授权的人员访问。在某些情况下&#xff0c;可能还需要删除密码才能公开文档。在本文中&#xff0c;您将了解如何使用Spire…

ChatGPT一周年:开源语言大模型的冲击

自2022年末发布后&#xff0c;ChatGPT给人工智能的研究和商业领域带来了巨大变革。通过有监督微调和人类反馈的强化学习&#xff0c;模型可以回答人类问题&#xff0c;并在广泛的任务范围内遵循指令。在获得这一成功之后&#xff0c;人们对LLM的兴趣不断增加&#xff0c;新的LL…

mac电池最大充电限制 AlDente Pro中文 for Mac

热保护&#xff1a;在电池温度较高时为电池充电会导致电池老化更快。启用热保护后&#xff0c;当电池温度过高时&#xff0c;充电将自动停止。 航行模式&#xff1a;通常情况下&#xff0c;即使激活了最大电池充电&#xff0c;您的 MacBooks 电池也会始终稍微充电和放电以保持所…

linux 驱动——私有数据

文章目录 linux 驱动中的私有数据container_of驱动程序数据结构定义 应用程序模块使用 linux 驱动中的私有数据 前面的程序中&#xff0c;都只申请了一个从设备号&#xff0c;这里使用 alloc_chrdev_region 分配两个设备号&#xff0c;这两个设备共用 ops 方法。 所以需要在 …

案例101:基于微信小程序的停车共享小程序

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

基于Java+Springboot+Vue+elememt宠物用品商城系统设计实现

基于JavaSpringbootVueelememt宠物用品商城系统设计实现 &#x1f345; 作者主页 程序开发 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; 文章目录 基于JavaSpringbootVueelememt宠物用品商城系统设计实…

CGAL的3D Alpha Shapes

假设我们给定一个二维或三维的点集S&#xff0c;我们希望得到类似“这些点形成的形状”的东西。这是一个相当模糊的概念&#xff0c;可能有许多可能的解释&#xff0c;阿尔法形状就是其中之一。阿尔法形状可用于从密集的无组织数据点集进行形状重建。事实上&#xff0c;阿尔法形…

跑马灯实验

4.1 实验目的 1.熟悉龙芯实验开发板、熟悉 VIVADO 的编译环境及操作流程。 2.掌握 FPGA 编程入门知识、利用门级方法实现简单逻辑电路。 3.继续学习 Verilog HDL 语法、掌握跑马灯的设计、熟悉调试过程。 4.2 实验原理及芯片 本次实验用 Verilog HDL 语言来描述 6 个不同的 …

【Spring Security】打造安全无忧的Web应用--进阶篇

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Spring Security的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.导入相关配置 1.pom 2.ym…

redis基本用法学习(C#调用NRedisStack操作redis)

redis官网文档中推荐C#中使用NRedisStack包连接并操作redis&#xff0c;本文学习C#调用NRedisStack操作redis的基本方式。   新建Winform项目&#xff0c;在Nuget包管理器中搜索并安装NRedisStack包&#xff0c;如下图所示&#xff1a; 主要调用StackExchange.Redis命名空间下…

Navicat里放大、缩小字体的快捷方法

我是偶然误触键盘把字体缩小了&#xff0c;研究以后发现的这个快捷键&#xff0c;分享给大家。 方法&#xff1a;按住【CtrlShift】组合键&#xff0c;再拖动鼠标滚轮&#xff0c;就可以缩放字体了。 缩小效果&#xff1a; 放大效果&#xff1a;

看懂PL/SQL执行计划

看懂PL/SQL执行计划 一&#xff1a;什么是Oracle执行计划&#xff1f; 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述 二&#xff1a;怎样查看Oracle执行计划&#xff1f; 因为我一直用的PLSQL远程连接的公司数据库&#xff0c;所以这里以PLSQL为例&#xff1…

第4章Netty第二节入门案例+channel,future,promise介绍

需求 开发一个简单的服务器端和客户端 客户端向服务器端发送 hello, world服务器仅接收&#xff0c;不返回 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.39.Final</version> </d…

TrustZone之可信操作系统

有许多可信内核&#xff0c;包括商业和开源的。一个例子是OP-TEE&#xff0c;最初由ST-Ericsson开发&#xff0c;但现在是由Linaro托管的开源项目。OP-TEE提供了一个功能齐全的可信执行环境&#xff0c;您可以在OP-TEE项目网站上找到详细的描述。 OP-TEE的结构如下图所示&…

通杀无限 debugger,目前只有 1% 的人知道!

前言 相信很多小伙伴在进行 web 逆向的时候&#xff0c;都遇到过无限 debugger。最简单的方法&#xff0c;在 debugger 位置&#xff0c;点击行号&#xff0c;右键 Never pause here&#xff0c;永远不在此处断下即可。但是这种方法就妄想通杀&#xff0c;显然是不大可能的&am…

电子科技大学《高级算法设计与分析》期末复习汇总

&#x1f389; 博主相信&#xff1a; 有足够的积累&#xff0c;并且一直在路上&#xff0c;就有无限的可能&#xff01;&#xff01;&#xff01; &#x1f468;‍&#x1f393;个人主页&#xff1a; 青年有志的博客 &#x1f4af; 说明&#xff1a; 本文中前大部分来自简言之大…

Ubuntu 常用命令之 sudo 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 sudo命令在Ubuntu系统中是一个非常重要的命令&#xff0c;它允许系统管理员赋予某些用户&#xff08;或用户组&#xff09;以系统管理员的身份运行一些或全部的命令。sudo代表“superuser do”&#xff0c;即以超级用户的身份执行…

SQL Server 安装教程

安装数据库 1、启动SQL Server2014安装程序&#xff0c;运行setup.exe文件&#xff0c;打开”SQL Server安装中心“对话框&#xff0c;单击左侧 的导航区域中的”安装“选项卡。 2、选择”全新SQL Server独立安装或向现有安装添加功能“&#xff0c;启动SQL Server2014安装向导…
最新文章