正常情况下,当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
与数据报文一样,当数据过大时就需要通过分片的方式发送数据,保障数据的正常传输。
当IS-IS要发布的链路状态协议数据报文信息量过大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。
通过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
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
IS-IS LSP分片由LSP ID中的LSP Number字段进行标识,这个字段的长度是1字节。
因此,一个IS-IS进程最多可产生256个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分片。
isis 1
virtual-system 5000.0000.0001 # 第一个虚拟系统ID
virtual-system 5000.0000.0002 # 第二个虚拟系统ID
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
#
reset isis all
Warning: The ISIS process(es) will be reset. Continue?[Y/N]y
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)来表示初始系统是谁。
当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
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作为下一跳:
[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的话,是无法控制主要下一跳的。
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-isis-1] attached-bit advertise always
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]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