ISIS的认证
接口认证:ISIS邻居建立hello报文认证。可以设置对L1还是L2的认证。
认证TLV内容:
Authentication (t=10, l=17)
Type: 10
Length: 17
hmac-md5 (54), message digest (length 16) = 2f52826aa78457f3e341a4af336b5f6f
如上图,可以选择针对IP、L1、L2、OSI的hello报文做认证。 send-only表示只在发送hello报文时携带认证,接收报文时不做认证报文的匹配。
上述对AR1做接口的认证后,会因为两端认证不匹配断开邻居:
[AR1-GigabitEthernet0/0/0]dis isis error int gi 0/0/0
::: warning 如果两端都配置send-only,相当于没有做认证。 如果两端密码相同,就不需要send-only了。 如果两端需要更换密码,加上send-only可以进行密码更改,而不会断开邻居。 :::
区域认证:L1的SNP和LSP报文的认证。
认证TLV内容:
Authentication (t=10, l=17)
Type: 10
Length: 17
hmac-md5 (54), message digest (length 16) = 8592597ec4a08e9f883e091e7bf19482
如上图,all-send-only表示对于SNP和LSP报文,发送时携带认证,但是接收时不做认证匹配。 snp-packet表示只针对SNP报文做认证。
[AR1-isis-1]area-authentication-mode md5 plain Huawei@123 snp-packet ?
authentication-avoid 发送时不携带认证,接收时不做认证匹配
send-only 发送时携带认证,但是接收时不做认证匹配
路由域认证:L2的SNP和LSP报文的认证。
路由域认证和区域认证的配置内容参数相比没有任何区域,只是报文的级别发生了变化。 即L2的区域认证: [AR3-isis-1]domain-authentication-mode md5 plain Huawei@123 snp-packet ? authentication-avoid 发送时不携带认证,接收时不做认证匹配 send-only 发送时携带认证,但是接收时不做认证匹配 ::: tip P2P只有接口认证。 ::: ::: warning L1-2设备做哪种认证取决于相连的L1设备和L2设备的认证类型。 ::: ::: tip 如果在认证中输完密码后直接回车,默认所有认证都做。 :::
ISIS路由汇总
在AR4设置3条环回口:
内部路由汇总:
- 可以在ISIS视图下使用summary命令执行汇总操作。
实验:
- 必须由叶子路由挂在的节点设备来执行路由汇总。(上述拓扑中路由挂载在实节点AR4上,就由AR4执行汇总)
实验: 在AR3做环回口4.4.4.4/32,做汇总4.4.4.0/24: AR2中汇总和明细都会出现:
- L1/2在执行渗透时不能做汇总(除非指定汇总的路由为L1)。
实验:
[AR4-isis-1]summary 4.4.4.0 255.255.255.252
[AR2-isis-1]import-route isis level-2 into level-1
在AR2再做4.4.4.4/32的环回口并执行4.4.4.0/24的路由汇总后,AR1查看路由表: AR1查看实节点AR2携带的路由: 如上,执行路由渗透时不能将汇总路由再次进行汇总。 当把AR5的汇总undo掉,只使用AR2执行汇总,路由渗透后仍然是以明细路由的形式出现。
将汇总的路由指定为L1:
[AR2-isis-1]summary 4.4.4.0 255.255.255.0 level-1
外部路由汇总:
::: tip 外部路由汇总和内部路由汇总的规则完全一致。 :::
实验: 如上,在AR3设置3条静态路由并import-route static。 AR3汇总为192.168.1.0/30,在AR2查看路由表: AR2路由渗透时如果进行汇总不加level-1,渗透时就不会执行汇总: 如果加了level-1,渗透时就会执行汇总:
两种产生环路问题的解决方法
::: warning 当A、B两台L1-2设备之间存在A发来的L1的汇总路由时,A、B建立L1和L2的邻居关系,A本身只有明细路由,没有汇总路由,汇总路由发到B,经过L1到L2的默认渗透,A学到了这条汇总路由,当A的明细路由失效时,使用汇总路由访问,就会出现环路。 ::: 解决办法:添加avoid-feedback参数:
[AR2-isis-1]summary 1.1.1.0 255.255.255.252 level-1 avoid-feedback
增加avoid-feedback参数可以让A不再学习B渗透来的汇总路由,可以避免自身学习聚合后的路由,防止出现环路。
::: warning 当设备A在L1进行路由汇总1.1.1.0/30,设备B在L2进行路由汇总1.1.1.0/24,此时B存在1.1.1.0/30路由,B存在1.1.1.0/24路由,仍会出现环路。 :::
解决办法:添加generate_null0_route参数: [AR2-isis-1]summary 1.1.1.0 255.255.255.252 level-1 generate_null0_route 执行路由汇总时,A的汇总路由指向NULL0,当A的明细路由失效,B通过A的学来的汇总路由指向NULL0,避免形成环路。
::: tip 汇总路由和明细路由的关系: 1.只有当所有明细路由失效,汇总路由才会失效。 2.汇总路由会继承明细路由的开销。(继承小的) :::
ISIS路由过滤
将拓扑设备恢复至ISIS邻居建立完成,AR4有3个环回口的状态。 如果不想把lo1传给AR3,可以在AR4上做配置: ISIS只有在ISIS视图下做的filter-policy,没有接口上的过滤。
设置ACL条目,只需要写允许通过的路由条目,ACL默认拒绝所有:
[AR4-isis-1]filter-policy 2000 ?
export 发出时做过滤
import 接收时做过滤
[AR4-isis-1]filter-policy 2000 export
执行过滤后查看AR3的路由表,仍会看到4.4.4.2的路由: 原因是export主要针对外部路由即分片LSP进行过滤,对环回口等内部路由没有效果。
::: tip 在ISIS视图下: filter-policy import:针对于在接收路由时,是否计算路由加入路由表。 AR3设备可以正常接收传递AR4传来的LSP,但是不会计算LSP携带的ACL中没有匹配允许的路由信息。
filter-policy export:针对于引入外部路由后,在发出时做过滤。 :::
import过滤
在AR3上设置ACL并执行ACL过滤:
[AR3-acl-basic-2000]rule 5 permit source 4.4.4.1 0
[AR3-acl-basic-2000]rule 10 permit source 4.4.4.3 0
[AR3-isis-1]filter-policy 2000 import
ACL中不写入4.4.4.2,默认拒绝(ISIS中引入时会过滤)。 如上,import是在加入路由表时做过滤。 如下查看AR4的实节点的详细信息: AR4的实节点是存在4.4.4.2的路由描述,只是AR3接收后根据匹配项表示,不计算4.4.4.2的路由,不加入路由表。 ::: warning LSDB是整个ISIS区域内泛洪,除了做过滤的AR3外,其他设备如AR2中还是会有4.4.4.2的路由表项。 上述会形成黑洞,AR2访问4.4.4.2时经过AR3会被丢弃。 :::
export过滤
在AR4上做如下3条静态路由:
ip route-static 192.168.1.1 255.255.255.255 NULL0
ip route-static 192.168.1.2 255.255.255.255 NULL0
ip route-static 192.168.1.3 255.255.255.255 NULL0
AR3由于设置了ACL2000入方向匹配,路由表里不会有AR4传来的静态。 如果想要AR4的静态,可以在ACL设置允许。 ::: tip 拒绝条目少,允许条目多时,可以设置拒绝:
[AR3-acl-basic-2000]rule 5 deny source 4.4.4.2 0
[AR3-acl-basic-2000]rule 10 permit source any
::: ::: warning OSPF中一条LSA携带一条路由,可以针对某条单独的路由做过滤。 ISIS中只能把所有的外部路由都过滤掉,不要这个LSP分片。 ::: 设置AR3只学习到192.168.1.1和192.168.1.3的静态:
[AR4-acl-basic-2000]rule 5 deny source 192.168.1.2 0
[AR4-acl-basic-2000]rule 10 permit source any
[AR4-isis-1]filter-policy 2000 export
::: tip AR4设备引入外部路由向ISIS区域发布时,就不会发出192.168.1.2路由。 ::: 此时AR2仍可以收到192.168.1.1和192.168.1.3的静态,设置AR3过滤192.168.1.3后,AR2仍可以收到192.168.1.3的路由。 ::: tip 一个区域内只有ISIS的ASBR设备可以执行命令过滤外部路由信息。 ::: 此时AR1可以收到AR2允许渗透的4.4.4.1,再在AR2上设置允许192.168.1.1渗透后,AR1可以收到192.168.1.1的路由。 ::: tip 在L1-2设备上执行路由渗透时,可以针对外部路由信息再次执行过滤。(L1-2执行路由L2转L1时,将外部路由当作自己的叶子路由) :::
filter过滤:
在L1-2设备上,针对于路由渗透使用。 L1-2设备的路由渗透只有一个方向,即L2-L1,就不需要在过滤时再选择方向:
[AR2-acl-basic-2000]rule 5 permit source 4.4.4.1 0
[AR2-isis-1]import-route isis level-2 into level-1 filter-policy 2000
路由过滤后,在L1-2执行路由渗透时,只向L1渗透4.4.4.1/32的路由: L1-2设备上,针对于路由渗透的filter过滤后,L1设备的LSDB中AR2的实节点LSP只会携带过滤后的路由描述:
::: tip traffic 开头的工具都是匹配流量的。 filter、router 开头的工具都是匹配路由的。 :::
::: warning ACL可以匹配流量,也可以匹配路由。 匹配流量的信息,默认规则放行所有。 匹配路由的信息,默认规则拒绝所有。 :::
ISIS高级特性
ISIS特性:
I-SPF:增量最短路径算法。 当网络中存在新加入的设备,新加入的设备与被连接的节点,会通告自身的LSP。 网络中其他设备收到后,只会计算新加入的设备与被连接的节点的拓扑。
PRC:部分路由计算,只计算发生改变的路由信息。
智能定时器:通过设置时间值来减少发送LSP和接收LSP的时间 通过设置时间值来控制发生震荡的路由信息。
LSP快速扩散:就是为了更加快速的发送LSP。
- 可以设置每次LSP扩散的最大数量。
- 如果收到的LSP数量没有达到设置的LSP扩散最大数量,则等待老化定时器超时后发送。
- 如果收到的LSP在计算路由之前就达到了设置的LSP扩散最大数量,且定时器未超时,则按照 设置的每次LSP扩散的最大数量立即发送LSP。
设置每次LSP扩散的最大数量为10 ,老化定时器时间为1s(1000ms): [AR1-isis-1]flash-flood 10 max-timer-interval 1000
ISIS的路由承载能力:
是基于TLV架构的(每一个路由条目都是使用TLV结构携带的)。
ISIS存在存在分片LSP(每一个实节点LSP,都存在255个分片LSP)。 实节点LSP(-00)和分片LSP(255个)一共可以携带16384个IP。 (一个LSP可以携带64个IP,256个LSP共可以携带16384个IP)
ISIS支持虚拟系统,每一个真实系统都存在50个虚拟系统。 如上,可以配置50个真实系统虚拟后的system-id。 1真实系统 + 50虚拟系统 = 835584个IP。
[AR1-isis-1]lsp-fragments-extend 执行LSP的分片扩展能力
[AR1-isis-1]virtual-system 配置虚拟系统(要求配置的虚拟系统ID 在全网唯一)
上述两条命令都后,重启ISIS进程才会使虚拟系统生效。
针对网络中存在老旧设备不支持虚拟系统LSP的处理:
- 老旧设备认为对方的初始系统(实际运行ISIS的路由器)和虚拟系统都是真实的节点存在。
- mode-2:所有设备都支持虚拟系统。
设备会根据24号TLV得知初始系统和虚拟系统的关系。 设备在收到虚拟系统发送LSP会直接挂载到初始系统。