设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1994|回复: 4
收起左侧

[原创] 技术文档-ISIS

[复制链接]
发表于 2017-6-2 11:20:12 | 显示全部楼层 |阅读模式
IS-IS   中间系统到中间系统(Intermediate System,IS)
ISO 无连接网络协议(ISO's Connectionless Network Protocol,CLNP)
由 ISO10589 定义和解释

IS-IS 概述
IS-IS 最初是国际标准化组织 ISO 为它的无连接网络协议 CLNP 设计的一种动态路由协议。
IETF 对 IS-IS 进行了扩充和修改,使它能够同时应用在 TCP/IP 和 OSI 环境中,称为集成 IS-IS。

IS-IS 常用术语
CLNS:无连接网络服务
CLNS 由以下三个协议构成:
CLNP:类似于 TCP/IP 中的 IP 协议;2
IS-IS:中间系统间的路由协议,即路由器之间的协议;
ES-IS:主机系统与中间系统间的协议,相当于 IP 中的 ARP,ICMP 等。
NSAP:OSI 协议通过 NSAP(Network Service Access Point)来寻址 OSI 网络中处于传输层的各种服务,即 NSAP 类似于 IP 地址。

集成 IS-IS 注意事项
集成 IS-IS 能够同时应用在 TCP/IP 和 OSI 环境中,我们后续讨论的 IS-IS 协议,如无特殊说明均为集成 IS-IS。

IS-IS 整体拓扑
为了支持大规模的路由网络,IS-IS 在自治系统内采用骨干区域与非骨干区域两级的分层结构。一般来说,将 Level-1 路由器部署在非骨干区域,Level-2 路由器和 Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过 Level-1-2 路由器与骨干区域相连。

Level-2 级别的路由器可以不在同一个区域,即可以属于不同的区域。


拓扑所体现的 IS-IS 与 OSPF 不同点
在 OSPF 中,每个链路只属于一个区域;而在 IS-IS 中,每个链路可以属于不同的区域;在 IS-IS 中,单个区域没有物理的骨干与非骨干区域的概念;而在 OSPF 中,Area0 被定义为骨干区域;
在 IS-IS 中,Level-1 和 Level-2 级别的路由器分别采用 SPF 算法,分别生成最短路径树 SPT;在 OSPF 中,只有在同一个区域内才使用 SPF 算法,区域之间的路由需要通过骨干区域来转发。

ISIS 路由器的分类:
Level-1 路由器
Level-1 路由器负责区域内的路由,它只与属于同一区域的 Level-1 和 Level-1-2 路由器形成邻居关系,属于不同区域的 Level-1 路由器不能形成邻居关系。Level-1 路由器只负责维护 Level-1 的链路状态数据库 LSDB,该 LSDB 包含本区域的路由信息。到本区域外的报文转发给最近的 Level-1-2 路由器。Level-1 路由器必须通过 Level-1-2 路由器才能连接至其他区域。


Level-2 路由器
路由器负责区域间的路由,它可以与同一或者不同区域的 Level-2 路由器或者其它区域的 Level-1-2 路由器形成邻居关系。
Level-2 路由器维护一个 Level-2 的 LSDB,该 LSDB 包含 IS-IS 区域的所有路由信息。
所有 Level-2 级别(即形成 Level-2 邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中 Level-2 级别的路由器必须是物理连续的,以保证骨干网的连续性。

Level-1-2 路由器
同时属于 Level-1 和 Level-2 的路由器称为 Level-1-2 路由器,它可以与同一区域的Level-1 和 Level-1-2 路由器形成 Level-1 邻居关系,也可以与其他区域的 Level-2 和Level-1-2 路由器形成 Level-2 的邻居关系。
Level-1 路由器必须通过 Level-1-2 路由器才能连接至其他区域。
Level-1-2 路由器维护两个 LSDB,Level-1 的 LSDB 用于区域内路由,Level-2 的 LSDB用于区域间路由。


采用划分区域的概念
注意,所有的路由器都完全处在一个区域内部,并且区域的边界是在链路上,而不是在路由器上。
IS-IS 中“骨干区域”是第 2 层区域,而非骨干区域是第 1 层区域。

一个中间系统可以是 L1(非骨干内部路由器)、L2(骨干内部路由器)、L1/L2(ABR)

与 OSPF 协议相同,区域间的通信量都必须经过 L2 区域,以便防止区域间路由选择环路。在一个区域内的每台 L1 路由器(包括区域内的 L1/L2 路由器)都会维护一个同样的链路状态数据库。但与 OSPF 协议中的 ABR 路由器不同,缺省情况下, L1/L2 路由器不需要通告 L2 类型的路由给 L1 类型的路由器。因此,一台 L1 路由器无法知晓它自己所在区域之外的目的路由。在这个意义上,一个 L1 区域相当于 OSPF 协议中的完全末梢区域。
为了转发数据包到其它的区域,L1 路由器必须转发数据包到一台 L1/L2 路由器上。
当 L1/L2 路由器发送他的第 1 层 LSP 进入一个区域时,它将通过在 LSP 中设置一个“区域关联位(Attached,ATT)的二进制位来通知其它 L1 路由器它可以到达其它的区域。

IS-IS 支持的网络类型
对于 NBMA 网络,如帧中继,需对其配置子接口,并注意子接口类型应配置为 P2P。IS-IS 不能在点到多点链路 P2MP 上运行。

DIS(相当于 OSPF 的 DR)
在广播网络中,IS-IS 需要在所有的路由器中选举一个路由器作为 DIS。
Level-1 和 Level-2 的 DIS 是分别选举的。
DIS 优先级数值最大的被选为 DIS。如果优先级数值最大的路由器有多台,则其中 MAC地址最大的路由器会被选中。
每台 IS-IS 路由器的接口都被指定一个 L1 类型的优先级和 L2 类型的优先级,它们的范围是 0~127.缺省值为 64
路由器通过其每一个接口发送 hello 数据包,并且在 hello 数据包中通告它的优先级在 L1 类型的 hello 数据包中通告 L1 类型的优先级,在 L2 类型的 hello 数据包中
通告 L2 类型的优先级。
优先级为 0 的路由器也参与 DIS 的选举,且 DIS 选举支持抢占。
同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非 DIS 路由器之间也会形成邻接关系,但 LSDB 的同步仍然依靠 DIS 来保证。
DIS 用来创建和更新伪节点,并负责生成伪节点的链路状态协议数据单元 LSP(相当于OSPF 的 LSA),用来描述这个网络上有哪些网络设备。

伪节点
伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在 IS-IS 中,伪节点用 DIS 的 System ID 和一个字节的 Circuit ID(非 0 值)标识。
使用伪节点可以简化网络拓扑。
当网络发生变化时,需要产生的 LSP 数量也会较少,减少进行 SPF 运算时的资源消耗。

ISIS DIS 与 OSPF DR/BDR 的不同点
在 IS-IS 广播网中,优先级为 0 的路由器也参与 DIS 的选举,而在 OSPF 中优先级为 0的路由器则不参与 DR 的选举。
在 IS-IS 广播网中,当有新的路由器加入,并符合成为 DIS 的条件时,这个路由器会被选中成为新的 DIS,原有的伪节点被删除。此更改会引起一组新的 LSP 泛洪。而在 OSPF中,当一台新路由器加入后,即使它的 DR 优先级值最大,也不会立即成为该网段中的DR。
在 IS-IS 广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有
的非 DIS 路由器之间。

ISIS 地址结构:

NSAP

由 IDP 和 DSP 组成。IDP 和 DSP 的长度都是可变的,NSAP 总长最多是 20 个字节,最少 8 个字节。

IDP 相当于 IP 地址中的主网络号。它是由 ISO 规定,并由 AFI 与 IDI 两部分组成。AFI表示地址分配机构和地址格式,IDI 用来标识域。

DSP  相当于 IP 地址中的子网号和主机地址。它由 High Order DSP、System ID 和SEL 三个部分组成。High Order DSP 用来分割区域,System ID 用来区分主机,SEL
用来指示服务类型。

Area Address(Area ID)由 IDP 和 DSP 中的 High Order DSP 组成,既能够标识路由域,也能够标识路由域中的区域。因此,它们一起被称为区域地址,相当于 OSPF 中的区域编号。同一 Level-1 区域内的所有路由器必须具有相同的区域地址,Level-2 区域内的路由器可以具有不同的区域地址。

System ID 用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6 字节)。一边情况下,我们采用设备的 router-id 转换为 System ID。SEL 的作用类似 IP 中的“协议标识符”,不同的传输协议对应不同的 SEL。在 IP 上 SEL均为 00。

NET
即使 IS-IS 协议只用来为 TCP/IP 协议进行路由选择,它也依然是一个 ISO CLNP 协议。因此,IS-IS 协议对等体之间的通信数据包时 CLNS PDU;也就是说即使是在一个纯 IP网络环境中,一台 IS-IS 路由器也必须有一个 ISO 地址。

这个 ISO 地址是一个网络地址,称为网络实体标题(NET),并在 IDO 8348 中进行描述。

网络实体名称 NET 指的是设备本身的网络层信息,可以看作是一类特殊的 NSAP(SEL=00),NET 的长度与 NSAP 的相同,最多为 20 个字节,最少为 8 个字节。在路由器上配置 IS-IS 时,只需要考虑 NET 即可,NSAP 可不必去关注。

在配置 IS-IS 过程中,NET 最多也只能配 3 个。在配置多个 NET 时,必须保证它们的System ID 都相同。

一个 NET 地址的长度范围可以是 8~20 个八 位组字节,并可以描述为区域 ID 和一台设备的系统 ID 两部分。


----------区域 ID----------|------------系统 ID----------|--------SEL-----------
用于区域间的路由选择--|--用于区域内的路由选择----|---NASP 选择符----


系统 ID 一般为 6 个八位组字节,为某个设备接口的 MAC 地址。对于路由选择域的每一个节点,这个系统 ID 必须是唯一的。
NASP 选择符设置为 0x00 时,这个地址就是一个 NET 地址,指明了某个节点网络层本身的地址。

配置地址的 3 个规则:
1、NET 地址必须以一个单个八位组字节的域开始(例如,47.xxxx....)

2、NET 地址必须以一个单个八位组字节的域结束,并且应该设置为 0x00

3、NET 地址的系统 ID 必须是 6 个八位组字节

[R2]dis isis interface g0/0/0
                                             Interface information for ISIS(1)
                                             ---------------------------------
    Interface          Id              IPV4.State           IPV6.State            MTU                Type

DIS


   GE0/0/0         001                     Up                  Down              1497

L1/L2      Yes/No


ISIS 报文类型:

HELLO PDU
广播网中的 Level-1 IS-IS 使用 Level-1 LAN IIH。

广播网中的 Level-2 IS-IS 使用 Level-2 LAN IIH。

非广播网络中则使用 P2P IIH。

P2P IIH 中相对于 LAN IIH 来说,多了一个表示本地链路 ID 的 Local Circuit ID 字段,缺少了表示广播网中 DIS 的优先级的 Priority 字段以及表示 DIS 和伪节点 System ID的 LAN ID  字段。

IIH 报文通过填充字段用于邻居两端协商发送报文的大小(即使用接口最大 MTU 封装hello 包,满负载发送 hello;可用命令关闭:int g0/0/0   isis small-hello)

LSP PDU(类似于 OSPF 的 LSA)

Level-1 LSP 由 Level-1 IS-IS 传送。

Level-2 LSP 由 Level-2 IS-IS 传送。

Level-1-2 IS-IS  则可传送以上两种 LSP。

LSP  报文中包含的主要字段有 ATT 字段、。其OL 字段和 IS-Type 字段中 ATT 用于标识该路由是 L1/L2 发送的,OL 字段后续部分会介绍,IS-Type 用来指明生成此 LSP 的IS-IS 类型是 Level-1 还是 Level-2 IS-IS(01 表示 Level-1,11 表示 Level-2)。

LSP 的刷新间隔为 15 分钟;老化时间为 20 分钟,但是一条 LSP 的老化除了要等待 20分钟外,还要等待 60 秒的老化时延;LSP 重传时间为 5 秒。

SNP PDU 为 LSDB 的摘要信息,主要用于维护 LSDB 的完整与同步

CSNP 包括 LSDB 中所有 LSP 的摘要信息(相当于 OSPF 的 DBD),从而可以在相邻路由器间保持 LSDB 的同步。在广播网络上,CSNP 由 DIS 定期发送(缺省的发送周期为10  秒);在点到点链路上,CSNP 只在第一次建立邻接关系时发送。



PSNP 包含部分 LSDB 中的 LSP 摘要信息,能够对 LSP 进行请求和确认。

IS-IS PDU 数据包起始报文结构

Intra domain routing protocol discriminator

IS-IS PDU 中,该字段不变,都为 0x83。

PDU header length indicator

标识该固定头部字段的长度。

Version/protocol ID extension

始终为 1。
System ID length

用来表示 system ID 长度,固定为 6B。

PDU type

标识 PDU 类型。

Version

该字段和上一个 version 字段一样。

Reserve

当前设置为全 0。

Max areas

表示该 IS 所支持的最大区域数量,该字段为 3 表示所支持的最大区域地址数为 3。

Circuit type

表示发送该 PDU 的层级。如果改为被置位 0,那么该 PDU 将被忽略。

System ID(发送该 PDU 的 IS)

是指始发该 IIH 的路由器的系统 ID。

Holding time

是指邻居路由器等待始发路由器发送下一个 IIH 的时间间隔。

PDU length

是指整个 PDU 数据包的长度。

Local circuit ID

由始发路由器发送 hello 数据包时分配给这条电路,并且在路由器的接口上是唯一的。
在点到点链路的另一端,hello 数据包中的电路 DI 可能包含也可能不包含相同的值。

Area address TLV

始发路由器的区域地址。
IP interface address TLV
是指发送 PDU 数据包的接口地址或 IP 地址。
Protocol supported TLV
用来表示始发路由器支持的协议类型,如 IP/CLNP/IPv6。
Restart option TLV
用于优雅重启动部分。
Point-to-point adjacency state TLV
支持三次握手功能。



Multi topology TLV
支持多拓扑功能。
Padding TLV
支持 IIH 填充。
LSP 报文
PDU length
整个 PDU 的长度。
Remaining lifetime
LSP 过期前等待的秒数。
LSP ID
可以是系统 ID、伪节点 ID 或者 LSP 数据包的 LSP 编号。
0000.0000.0001.00-00  常规 LSP。
0000.0000.0001.01-00  伪节点 LSP。
0000.0000.0001.00-01  常规 LSP 的一个分片。
Sequence number
LSP 的序列号。从 0 开始,每次加 1,最大为 2^32-1。
Checksum
校验和。校验和是从 LSP Remaining lifetime 之后开始的,一直校验到最后。
P 位
是指分段区域的修复,类似 OSPF 的虚连接。多数厂商不支持该特性。
ATT


用来指明始发路由器是一个与一个或者多个区域相连的设备。
OL 位
后续会进一步介绍。
IS type
表明该路由器的类型。
Protocol supported TLV
用来表示始发路由器支持的协议类型,如 IP/CLNP/IPv6。
Area address TLV
始发路由器的区域地址。
IS reachability TLV
用来列出始发路由器的邻居。
Default metric 中的 internal 没有意义。IS-IS 中均为内部度量。
IP interface address TLV
是指发送 PDU 数据包的接口地址或 IP 地址。
IP internal reachability TLV
IP 内部可达。
用于通告该 LSP 的、路由器直连的路由选择域内的 IP 地址和相关掩码信息。该 TLV 不
会出现在伪节点的 LSP 中。
CSNP 和 PSNP
PDU length

整个 PDU 的长度。
Source-ID
始发路由器系统 ID。
Start LSP-ID
开始于 0000.0000.0000.00-00。
结束于 ffff.ffff.ffff.ff-ff。
LSP entries。
LSP 摘要信息
ISIS 形成邻居关系的条件:
1、同一层次
不同层次类型的路由器不能形成邻居关系,即 Level-2 路由器不能和 Level-1 路由器形
成邻居关系,但是 Level-1-2 路由器既能和同一区域的 Level-1 路由器形成 Level-1 邻
居关系又能和相同或者不同区域 Level-2 路由器形成 Level-2 邻居关系。
Level-1 路由器只能与同一区域的 Level-1 路由器或者 Level-1-2 路由器形成 Level-1
邻居关系。
2、同一网段
链路两端 IS-IS 接口的地址必须处于同一网段
根据原理,IS-IS  邻居关系的形成与 IP 地址无关的,所以容易导致相互形成邻居关系
的路由器间处于不同的 IP 网段。为了解决这一问题,华为设备进行同一网段检查,保


证邻居关系的正确建立。
如果网络不需要检查子网掩码,在 P2P 网络中,可以配置接口忽略 IP 地址检查;在广
播网络中,需要将以太网接口模拟成 P2P 接口,然后才可以配置接口忽略 IP 地址检查。
3、同一区域
4、同一网络类型
两台运行 IS-IS 的路由器在交互协议报文实现路由功能之前必须首先建立邻居关系。在
不同类型的网络上,IS-IS  的邻居建立方式并不相同。
IS-IS 路由器是通过交换 IS-IS Hello PDU 数据包信息来发现邻居并形成邻接关系的。
hello 数据包每隔 10s 传送一次。hold 时间是 30s.
在广播网络上,使用 LAN IIH 报文来建立邻接关系。有两种类型的 LAN IIH:L1 LAN IIH
(组播 MAC:01-80-C2-00-00-14)和 L2 LAN IIH (组播
MAC:01-80-C2-00-00-15)  。Level-1 路由器通过交互 L1 LAN IIH 报文来建立邻接
关系;Level-2 路由器通过交互 L2 LAN IIH 报文来建立邻接关系;Level-1-2 路由器会
同时交互 L1 LAN IIH 报文和 L2 LAN IIH 报文来建立邻接关系。
以两台 L2 路由器在广播链路上建立邻居关系为例(三次握手)

R1 组播发送 Level-2 LAN IIH(组播 MAC:01-80-C2-00-00-15),此报文中无邻居标
识。
R2 收到此报文后,将自己和 R1 的邻居状态标识为 Initial。然后,R2 再组播向 R1 回
复 Level-2 LAN IIH,此报文中标识 R1 为 R2 的邻居。
R1 收到此报文后,将自己与 R2 的邻居状态标识为 Up。然后 R1 再组播向 R2 发送一
个标识 R2 为 R1 邻居的 Level-2 LAN IIH。
R2 收到此报文后,将自己与 R1 的邻居状态标识为 Up。这样,两个路由器成功建立了
邻居关系。
因为是广播网络,需要选举 DIS,所以在邻居关系建立后,路由器会等待两个 Hello 报
文间隔再进行 DIS 的选举。Hello 报文中包含 Priority 字段,Priority 值最大的将被选
举为该广播网的 DIS。若优先级相同,接口 MAC 地址较大的被选举为 DIS。IS-IS  中
DIS 发送 Hello 时间间隔为 10/3 秒(hold 时间为 9 秒),而其他非 DIS 路由器发送 Hello
间隔为 10 秒。
IS-IS 和 OSPF 关于邻接关系的区别
IS-IS 两个邻居路由器只要相互交换 HELLO 数据包就认为相互形成了邻接关系;而
OSPF 中,两台路由器进入 2-Way 状态则认为形成了邻居关系,要进入 Full 状态才被
认为进入完全邻接关系。
IS-IS 中,优先级为 0 的路由器亦然可以参与 DIS 选举;而 OSPF 汇总优先级为 0 表示
不参与选举。

IS-IS 中,DIS 是基于抢占的;OSPF 中 DR/BDR 已经选举不得抢占。
在 P2P 链路上,邻居关系的建立不同于广播链路。分为两次握手机制和三次握手机制。
两次握手
只要路由器收到对端发来的 Hello 报文,就单方面宣布邻居为 Up 状态,建立邻居关系。
容易存在单通风险。
三次握手
此方式通过三次发送 P2P 的 IS-IS Hello PDU 最终建立起邻居关系,类似广播邻居关系
的建立。
广播网络 LSP 交互过程:
新加入的路由器与 DIS LSDB 同步交互过程
假设新加入的路由器 R3 已经与 R2(DIS)和 R1 建立了邻居关系。
建立邻居关系之后,R3 将自己的 LSP 发往组播地址(Level-1:01-80-C2-00-00-14;
Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该 LSP。
该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS
每隔 10 秒发送 CSNP 报文)并发送 CSNP 报文,进行该网络内的 LSDB 同步。
R3 收到 DIS 发来的 CSNP 报文,对比自己的 LSDB 数据库,然后向 DIS 发送 PSNP 报
文请求自己没有的 LSP。

DIS 收到该 PSNP 报文请求后向 R3 发送对应的 LSP 进行 LSDB  的同步。
在上述过程中 DIS 的 LSDB  更新过程如下
DIS 接收到 LSP,在数据库中搜索对应的记录。若没有该 LSP,则将其加入数据库,并
组播新数据库内容。
若收到的 LSP 序列号大于本地 LSP 的序列号,就替换为新报文,并组播新数据库内容;
若收到的 LSP 序列号小本地 LSP 的序列号,就向入端接口发送本地 LSP 报文。
若两个序列号相等,则比较 Remaining Lifetime(剩余生存时间)(注意区别于 OSPF
的老化时间,ISIS 的剩余生存时间默认是从 1800s 开始往下减的,减为 0 则该条 LSP
失效;而 OSPF 的老化时间是从 0 开始增大的,增大到 3600s 则该条 LSA 失效)。若收
到的 LSP 的 Remaining Lifetime  小于本地 LSP  的 Remaining Lifetime,就替换为
新报文,并广播新数据库内容;若收到的 LSP 的 Remaining Lifetime  大于本地 LSP 的
Remaining Lifetime,就向入端接口发送本地 LSP 报文。
若两个序列号和 Remaining Lifetime 都相等,则比较 Checksum。若收到的 LSP 的
Checksum  大于本地 LSP 的 Checksum,就替换为新报文,并广播新数据库内容;若
收到的 LSP 的 Checksum 小于本地 LSP 的 Checksum,就向入端接口发送本地 LSP 报
文。
若两个序列号、Remaining Lifetime  和 Checksum 都相等,则不转发该报文。
P2P 网络 LSDB 同步过程:
建立邻居关系之后,R1 与 R2 会先发送 CSNP 给对端设备。如果对端的 LSDB 与 CSNP

没有同步,则发送 PSNP 请求索取相应的 LSP。
假定 R2 向 R1 索取相应的 LSP。R1 发送 R2 请求的 LSP 的同时启动 LSP 重传定时器,
并等待 R2 发送的 PSNP 作为收到 LSP 的确认。
如果在接口 LSP 重传定时器超时后,R1 还没有收到 R2 发送的 PSNP 报文作为应答,
则重新发送该 LSP 直至收到 PSNP 报文。
在 P2P 链路中设备的 LSDB 更新过程如下
若收到的 LSP 比本地的序列号更小,则直接给对方发送本地的 LSP,然后等待对方给自
己一个 PSNP 报文作为确认;若收到的 LSP 比本地的序列号更大,则将这个新的 LSP 存
入自己的 LSDB,再通过一个 PSNP 报文来确认收到此 LSP,最后再将这个新 LSP  发
送给除了发送该 LSP 的邻居以外的邻居。
若收到的 LSP 序列号和本地相同,则比较 Remaining Lifetime,若收到 LSP 的
Remaining Lifetime  小于本地 LSP 的 Remaining Lifetime,则将收到的 LSP 存入
LSDB 中并发送 PSNP 报文来确认收到此 LS,然后将该 LSP 发送给除了发送该 LSP 的
邻居以外的邻居;若收到 LSP 的 Remaining Lifetime 大于本地 LSP 的 Remaining
Lifetime,则直接给对方发送本地的 LSP,然后等待对方给自己一个 PSNP 报文作为确
认。
若收到的 LSP 和本地LSP 的序列号和 Remaining Lifetime 都相同,则比较Checksum,
若收到 LSP 的 Checksum 大于本地 LSP 的 Checksum,则将收到的 LSP 存入 LSDB 中
并发送 PSNP 报文来确认收到此 LSP,然后将该 LSP 发送给除了发送该 LSP 的邻居以
外的邻居;若收到 LSP 的 Checksum 小于本地 LSP 的 Checksum,则直接给对方发送

本地的 LSP,然后等待对方给自己一个 PSNP 报文作为确认。
若收到的 LSP 和本地 LSP 的序列号、Remaining Lifetime 和 Checksum 都相同,则
不转发该报文。
在 P2P 网络中,PSNP 的作用
作为 Ack 应答以确认收到的 LSP。
用来请求所需的 LSP。

ISIS 收敛特性:
快速收敛
增量最短路径优先算法 I-SPF,是指当网络拓扑改变的时候,只对受影响的节点进行路
由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算。I-SPF 改进了
这个算法,除了第一次计算时需要计算全部节点外,每次只计算受到影响的节点,而最
后生成的最短路径树 SPT 与原来的算法所计算的结果相同,大大降低了 CPU 的占用率,
提高了网络收敛速度
部分路由计算 RPC,PRC 的原理与 I-SPF 相同,都是只对发生变化的路由进行重新计
算。不同的是,PRC 不需要计算节点路径,而是根据 I-SPF 算出来的 SPT 来更新路由。
在路由计算中,叶子代表路由,节点则代表路由器。如果 I-SPF 计算后的 SPT 改变,
PRC 会只处理那个变化的节点上的所有叶子;如果经过 I-SPF 计算后的 SPT 并没有变
化,则 PRC 只处理变化的叶子信息。比如一个节点使能一个 IS-IS 接口,则整个网络拓


扑的 SPT 是不变的,这时 PRC 只更新这个节点的接口路由,从而节省 CPU 占用率。
智能定时器
LSP 生成智能定时器:为了避免 LSP 频繁振荡对网络带来的冲击,LSP 的生成存在一个
最小间隔的限制,即同一个 LSP 在最小间隔内不允许重复生成,一般缺省最小时间间隔
为 5 秒,作了这种限制后,路由收敛速度受到较大影响。IS-IS 中,当本地路由信息发
生变化时,路由器需要产生新的 LSP 来通告这些变化。当本地路由信息的变化比较频繁
时,立即生成新的 LSP 会占用大量的系统资源。另一方面,如果产生 LSP 的延迟时间
过长,则本地路由信息的变化无法及时通告给邻居,导致网络的收敛速度变慢。初次产
生 LSP 的延迟时间为 init-interval;第二次产生具有相同 LSP ID 的 LSP 的延迟时间为
incr-interval(增量)。随后,路由每变化一次,产生 LSP 的延迟时间都增大为前一次
的两倍,直到 max-interval。初次产生 LSP 的延迟时间为 init-interval;第二次产生具
有相同 LSP ID 的 LSP 的延迟时间为 incr-interval。随后,路由每变化一次,产生 LSP
的延迟时间都增大为前一次的两倍,直到 max-interval。稳定在 max-interval 三次或
者 IS-IS 进程被重启,延迟时间又降回到 init-interval。稳定在 max-interval 三次或者
IS-IS 进程被重启,延迟时间又降回到 init-interval。在只使用 max-interval 的情况下,
智能定时器退化为一般的一次性触发定时器。
SPF 计算智能定时器:IS-IS 中,LSDB 发生变化时需要进行路由计算,但频繁的路由计
算会占用大量的系统资源,导致系统性能下降。延迟 SPF 计算可以在一定程度上提高路
由计算的效率。另一方面,如果路由计算的延迟时间过长,则会减慢路由的收敛速度。
初次进行 SPF 计算的延迟时间为 init-interval;第二次进行 SPF 计算的延迟时间为
incr-interval。随后,每变化一次,SPF 计算的延迟时间增大为前一次的两倍,直到

max-interval。稳定在 max-interval 三次或者 IS-IS 进程被重启,延迟时间又降回到
init-interval。在不使用 incr-interval 的情况下,初次进行 SPF 计算用 init-interval 作
为延迟时间,随后都是使用 max-interval 作为延迟时间。稳定在 max-interval 三次或
者 IS-IS 进程被重启,间隔又降回到 init-interval。在只使用 max-interval 的情况下,
智能定时器退化为一般的一次性触发定时器。
LSP 快速扩散,由于 LSP 数量比较庞大,通常为了减轻大量 LSP 一起发送时对网络设
备带来的冲击,一般 IS-IS 都是采用周期性分批扩散 LSP 的方法(缺省情况下,接口上
发送 LSP 报文的最小间隔时间是 50 毫秒,每次发送 LSP 报文的最大数目是 10)。使能
flash-flood 功能后,当 LSP 发生变化而导致 SPF 重新计算时,不再等待周期性分批扩
散,而是把导致 SPF 重新计算的 LSP 立即扩散出去,从而有效缩短拓扑变化时全网设
备上 LSDB 不一致的时间,提高全网的快速收敛性能。虽然 LSP 数量很多,但每次网络
出现故障而需要发生变化的 LSP 却很少,所以将这部分发生变化的 LSP 进行单独的快
速扩散对系统的资源占用影响很有限。
按优先级收敛
可以通过 IP 前列表等将特定路由过滤出来,通过对不同的路由配置不同的收敛优先级,
达到重要的路由先收敛的目的,提高网络的可靠性。
IS-IS 路由的收敛优先级分为 critical、high、medium 和 low 四种。收敛优先级的顺
序由高到低为 critical > high > medium > low。
本地有效。

ISIS 认证:
对于区域和路由域认证,可以设置为 SNP 和 LSP 分开认证
本地发送的 LSP 报文和 SNP 报文都携带认证 TLV,对收到的 LSP 报文和 SNP 报文都
进行认证检查。
本地发送的 LSP 报文携带认证 TLV,对收到的 LSP 报文进行认证检查;发送的 SNP 报
文携带认证 TLV,但不对收到的 SNP 报文进行检查。
本地发送的 LSP 报文携带认证 TLV,对收到的 LSP 报文进行认证检查;发送的 SNP 报
文不携带认证 TLV,也不对收到的 SNP 报文进行认证检查。
本地发送的 LSP 报文和 SNP 报文都携带认证 TLV,对收到的 LSP 报文和 SNP 报文都
不进行认证检查。
ISIS 的 LSP 分片扩展:
基本概念
初始系统(Originating System):实际运行 IS-IS 协议的路由器。使能 IS-IS LSP 分片
扩展功能后,可以为路由器配置附加的虚拟系统,“Originating System”指的是原来
运行的、“真正”的 IS-IS 进程。
系统 ID(System ID):初始系统的系统 ID。
附加系统 ID(Additional System ID):使能 IS-IS LSP 分片扩展功能后,为 IS-IS 路由
器配置的附加的虚拟 System ID。每个附加系统 ID 都可以生成 256 个额外扩展的 LSP
分片。附加系统 ID 和系统 ID 一样,在整个路由域中必须唯一。


虚拟系统:由附加系统 ID 标识的系统,用来生成扩展 LSP 分片。
原理描述
IS-IS 通过泛洪 LSP 来宣告链路状态信息,由于一个 LSP 能够承载的信息量有限,IS-IS
将对 LSP 进行分片。每个 LSP 分片由产生该 LSP 的结点或伪结点的 SystemID、
PseudnodeID(普通 LSP 为 0,Pseudonode LSP 为非 0)、LSPNumber(LSP 分片
号)组合起来唯一标识,由于 LSPNumber 字段的长度是 1 字节,因此,IS-IS 路由器
可产生的分片数最大为 256,限制了 IS-IS 路由器可以发布的链路信息量。
IS-IS LSP 分片扩展特性可使 IS-IS 路由器生成更多的 LSP 分片,通过为路由器配置附
加的虚拟系统、每个虚拟系统都可生成 256 个 LSP 分片(最多可配置 50 个虚拟系统),
使得 IS-IS 路由器可最多生成 13056 个 LSP 分片
LSP 分片分类
Mode-1
用于网络中的部分路由器不支持 LSP 分片扩展特性的情况。
虚拟系统参与路由 SPF 计算,初始系统发布的 LSP 中携带了到每个虚拟系统的链路信
息。类似地,虚拟系统发布的 LSP 也包含到初始系统的链路信息。这样,在网络中虚拟
系统看起来与初始系统相连的真实路由器是一样的。
虚拟系统的 LSP 中包含和原 LSP 中相同的区域地址和 overload bit。如果还有其它特
性的 TLV,也必须保持一致。
虚拟系统所携带的邻居信息指向初始系统,metric 为最大值(窄度量情况下最大值为

64)减 1;初始系统所携带的邻居信息指向虚拟系统,metric 必须为 0。这样就保证了
其它路由器在进行路由计算的时候,虚拟系统一定会成为初始系统的下游节点。
如拓扑所示:R2 是不支持分片扩展的路由器,RT 设置为 mode-1 的分片扩展,R1-1
和 R1-2 是 R1 的虚拟系统,R1 将一部分路由信息放入 R1-1 和 R1-2 的 LSP 报文中向
外发送。R2 收到 R1,R1-1 和 R1-2 的报文时,认为对端有三台独立的路由器,并进行
正常的路由计算。同时 R1 到 R1-1 和 R1-2 的开销都是 0,所以,R2 到 R1 的路由开
销值与 R2 到 R11 路由开销值都相等。
虚拟系统产生的 LSP 包含的邻居只有初始系统(邻居类型为点到点),且虚拟系统仅当
做叶子考虑。
Mode-2
用于网络中所有路由器都支持 LSP 分片扩展特性的情况。在该模式下,虚拟系统不参与
路由 SPF 计算,网络中所有路由器都知道虚拟系统生成的 LSP 实际属于初始系统。
R2 支持分片扩展,R1 设置为 Mode-2 的分片扩展,R1 将一部分路由信息放入到 R1-1
和 R1-2 的 LSP 报文中向外发送。当 R2 收到 R1-1 和 R1-2 的 LSP 时,通过 IS Alias ID
TLV 知道他们的初始系统是 R1,则把 R1-1,R1-2 所发布的信息都视为 R1 的信息。
注意事项
配置分片扩展后,如果存在由于报文装满而丢失的信息,系统会提醒重启 IS-IS。重启

之后,初始系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的 LSP 中发
送出去。
如果网络上还有其他厂商的设备,配置分片扩展必须配置成 Mode-1,否则其他设备无
法识别。
建议先配置分片扩展和虚拟系统,然后将 IS-IS 建立邻居或者引入路由。如果先让 IS-IS
携带大量信息,256 个分片无法装下,再配置分片扩展和虚拟系统,需要重启 IS-IS 才
可以让配置生效,所以要谨慎。
ISIS 管理标记--TAG:
管理标记
管理标记特性允许在 IS-IS 域中通过管理标记对 IP 地址前缀进行控制,可以达到简化管
理。其用途包括控制不同级别和不同区域间的路由引入,以及在同一路由器上运行的
IS-IS 多实例(即我们说的 Tag)。
拓扑描述
假设 R1 只想收到 R2/R3/R4 的 Level-1 路由信息。首先,可以给 R2、R3、R4 使能了
IS-IS 的接口配置相同的管理标记值 tag。然后在 Area3 的 Level-1-2  路由器做从
Level-2 到 Level-1 区域的路由渗透时,应用匹配指定的 tag。即可满足需求
注意事项
使能管理标记时,必须使能 IS-IS wide metric 属性

ISIS 配置:
isis 1
is-level level-2
network-entity 47.0002.0000.0000.0006.00
#
interface GigabitEthernet0/0/1
isis enable 1
命令含义
is-level 命令用来设置 IS-IS 路由器的 Level。缺省情况下,IS-IS 路由器级别为
Level-1-2。
isis circuit-level 命令用来设置接口链路类型。
具体用法
is-level 为 IS-IS 视图命令。
isis circuit-level 为接口视图命令

参数意义
is-level { level-1 | level-1-2 | level-2 }
level-1:设置路由器工作在 Level-1,只计算区域内路由,维护 Level-1 的 LSDB。
level-1-2:设置路由器工作在 Level-1-2,同时参与 Level-1 和 Level-2 的路由计算,
维护 Level-1 和 Level-2 两个 LSDB。
level-1-2:设置路由器工作在 Level-2,只参加 Level-2 的 LSP 交换和 Level-2 的路由
计算,维护 Level-2 的 LSDB。
isis circuit-level [ level-1 | level-1-2 | level-2 ]
level-1:设置接口链路类型为 Level-1,即在本接口只能建立 Level-1 的邻接关系,不
能建立 Level-2 的邻接关系。
level-1-2:设置接口链路类型为 Level-1-2,即在本接口可以同时建立 Level-1 和
Level-2 邻接关系。
level-1-2:设置接口链路类型为 Level-2,即在本接口只能建立 Level-2 邻接关系。
注意事项
如果本机是 Level-1-2 路由器,需要和对端路由器建立某个层次(Level-1 或 Level-2)
的关联关系,那么isis circuit-level 命令就可以规定本接口只发送和接收该层次的Hello
报文。在点到点链路上只能发送和接收一种类型的 Hello 报文。通过这种方式,可以避
免过多的处理过程,节省带宽。
只有在 IS-IS 系统类型为 Level-1-2 时,接口下的 circuit level 才起作用,否则以 is-level

命令规定的级别为准。
Circuit Id 在点到点网络用来唯一标示本地接口。Circuit Id 在广播网络中为系统 ID 和
伪节点 ID。
interface GigabitEthernet0/0/0
isis dis-priority 0
interface GigabitEthernet0/0/1
isis circuit-type p2p
命令含义
isis dis-priority 命令用来指定挑选对应层次时接口的优先级。
isis circuit-type 命令用来将接口的网络类型模拟为 P2P。
具体用法
isis dis-priority 为接口视图命令
isis circuit-type 为接口视图命令。
参数意义
silent-interface { all | interface-type interface-number }
all:抑制所有接口。
清默网络拥有一支强大的CCIE讲师团队,在技术的道路上为您保驾护航!

注意事项
isis dis-priority 命令仅对广播链路生效。
isis circuit-type 此命令仅在广播类型的接口下配置时生效,链路两端的 IS-IS 接口的网
络类型必须一致,否则双方不可以建立起邻居关系。
实验现象
我们通过命令 display isis interface process-id 重点看 DIS 部分
isis 1
cost-style wide
network-entity 47.0001.0000.0000.0004.00
import-route isis level-2 into level-1 filter-policy route-policy TAG
#
route-policy TAG permit node 10
if-match tag 100
isis 1

is-level level-2
cost-style wide
network-entity 47.0002.0000.0000.0006.00
import-route direct tag 100
命令含义
import-route 命令用来引入其他路由协议的路由信息。
import-route isis level-2 into level-1 命令来控制 IS-IS 从 Level-2 向 Level-1 进行路
由渗透,该命令需配置在与外部区域相连的 Level-1-2 路由器上。
cost-style 命令用来设置 IS-IS 路由器接收和发送路由的开销类型。
具体用法
命令 import-route 命令 IS-IS 视图命令
import-route isis level-2 into level-1 为 IS-IS 视图命令
cost-style 命令为 IS-IS 视图命令
参数意义
命令 import-route isis level-2 into
level-1 [ filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-nam
e | route-policyroute-policy-name } | tag tag ]
filter-policy:设置路由过滤条件。

acl-name:基本 ACL 编号
acl-name acl-name:指定命名型访问控制列表的名字。
ip-prefix ip-prefix-name:指定 IP 地址前缀名。只有与该前缀相匹配的路由才
能引入。
route-policy route-policy-name:指定路由策略名称。
tag tag:为引入的路由分配管理标记值。
命令 cost-style { narrow | wide | wide-compatible }
narrow:接收或发送开销类型为 narrow 的路由。
wide:接收或发送开销类型为 wide 的路由。
wide-compatible:可以接收开销类型为 narrow 和 wide 的路由,但却只发送 wide
的路由。
注意事项
如果希望使用定全网传递 tag,则需要全网配置 cost-style wide。
实验现象
我们通过命令 display isis router 来查看 tag 信息。
ISIS 认证配置:
isis 1
area-authentication-mode md5 Huawei ip

#
interface GigabitEthernet0/0/1
isis authentication-mode md5 Huawei ip
命令含义:
area-authentication-mode 命令用来设置 IS-IS 区域按照预定的方式和密码验证收到
的 Level-1 路由信息报文(LSP 和 SNP),也可以用来为发送的 Level-1  报文加上认证
信息。
isis authentication-mode 命令用来设置 IS-IS 接口以指定的方式和密码验证 Hello 报
文。
具体用法
命令 area-authentication-mode 为 IS-IS 视图命令。
命令 isis authentication-mode 为接口视图命令
参数意义
isis authentication-mode { simple password | md5 password-key }
[ level-1 | level-2 ] [ ip | osi ] [ send-only ]
simple password:认证密码采用明文形式发送。
md5 password-key:认证密码通过 MD5 加密后发送。
keychainkeychain-name:随时间变化的密钥链表。
level-1:设置 Level-1 级别的认证。

level-2:设置 Level-2 级别的认证。
ip:IP 认证密码。使用 keychain 认证方式时,不能配置该选项。
osi:OSI 认证密码。使用 keychain 认证方式时,不能配置该选项。
send-only:只对发送的 Hello 报文加载认证信息,不对接收的 Hello
报文进行认证。
area-authentication-mode { simple password | md5 password-key } [ ip | osi ]
[ snp-packet { authentication-avoid | send-only } | all-send-only ]
simple password:认证密码采用明文形式发送。
md5 password-key:认证密码通过 MD5 加密后发送。
keychainkeychain-name:随时间变化的密钥链表。
ip:IP 认证密码。使用 keychain 认证方式时,不能配置该选项。
osi:OSI 认证密码。使用 keychain 认证方式时,不能配置该选项。
send-only:只对发送的 Hello 报文加载认证信息,不对接收的 Hello
报文进行认证。
all-send-only:对产生的 LSP 和 SNP 封装认证信息,不检查收到的 LSP
和 SNP。
authentication-avoid:不对产生的 SNP 封装认证信息,也不检查收到
的 SNP。只对产生的 LSP 封装认证信息,并检查收到的 LSP。
snp-packet:配置 SNP 报文相关的验证。
注意事项

area-authentication-mode 只有在 Level-1 路由器或者 Level-1-2 路由器上才能生
效。













发表于 2020-11-20 15:18:38 | 显示全部楼层
我认为你这个是水贴
地板 2020-11-20 15:18:38 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-3-3 17:34:46 | 显示全部楼层
平时 很少用来
5# 2021-3-3 17:34:46 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-20 06:26 , Processed in 0.067179 second(s), 11 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表