IS-IS协议

IS-IS协议

  1. IS-IS是Intermediate System to Intermediate System简称.
  2. IS-IS是一种基于SPF算法的链路状态协议,同时IS-IS也是一种内部网关协议。
  3. IS-IS一般应用于大型的网络。

一、IS-IS原理描述

1.1、IS-IS基本概念

  • IS-IS特点:
    • 仅用于CLNS(无连接网络服务)环境下
  • 集成IS-IS特点:
    • 支持CLNP网络、IP网络、或者CLNP和IP双重网络
    • 工作在数据链路层
  • 属于OSI协议族(两种数据通信服务模型)
    • CONS(Connectionnetwork server)面向连接网络服务
    • CLNS(connectionless network server)无连接网络服务
  • IS-IS是ISO定义的OSI协议栈中无连接网络服务CLNS(ConnectionlessNetworkService)的一部分,用于动态路由数据包。
  • CLNS由以下三个协议构成:
    • CLNP:类似于TCP/IP中的IP协议。Ip协议为TCP/IP传输层服务。CLNP为OSI传输层服务。
    • IS-IS:中间系统间的路由协议,类似于IP中的OSPF
    • ES-IS:主机系统与中间系统间的协议,就象IP中的ARP,ICMP等。
  • CLNP类似于IP协议,CLNP定义为独立于数据链路层。
  • IP是TCP/IP协议种唯一的网络层协议,包括路由协议和用户数据都封装在IP包内;而CLNP、ES-IS、IS-IS协议都是网络层协议,分别被封装在数据链路层的帧内。

什么是CLNP

CLNS (Connectionless-mode Network Service),即无连接网络服务,是 OSI 七层模型中网络层(第 3 层) 的一种核心数据传输服务。它是 OSI(开放系统互联)参考模型中网络层提供的一种服务模式。其核心特征与互联网的 IP 协议类似:每个数据包(数据报)独立进行路由转发,无需提前建立端到端的连接。与之相对的是 CONS(面向连接的网络服务)。CONS 在通信前需要先建立连接(类似打电话),确保数据按序、可靠传输,但资源占用较高。CLNS 则更灵活、健壮,适合突发性数据传输。

核心机制: 源端与目的端在通信前不需要建立虚拟电路。每个数据包(通常称为数据报)都携带完整的目的地址,由中间系统(路由器)根据当时的路由表独立选择路径转发。因此,连续发送的多个数据包可能经过不同的路径,到达顺序也可能错乱。

什么是IS-IS协议呢?

ISIS - Intermediate System-Intermediate System 中间系统 -中间系统

ISIS路由选择协议在ISO10589中定义,旨在ISO-CLNS环境中运行CLNP协议的路由器之间提供动态交换路由信息的途径。并且ISIS协议可以自动计算最佳路径和选择路由。

什么是ES-IS呢?

ES-IS终端系统-中间系统路由交换协议;**同一网段或链路的ISO终端系统和路由器之间自动交换信息便于邻接点发现。**路由器发送IS报文hello(ISH),主机发送ES报文hello(ESH)。在直连节点间发送的hello报文包含通信节点的网络层地址和数据链路层地址。包含地址分配,网关选择等功能。等同于IP中的ICMP,ARP,DHCP协同工作。

什么是集成的ISIS协议?

ISIS - Intermediate System-Intermediate System中间系统 -中间系统:Intemet工程任务组IETF在RFC1195中定义了"用OSI-ISIS实现在TCP/IP和OSI双重环境下的路由选择",也就是"集成的ISIS"或者"双重ISIS";**这样集成的ISIS可以支持纯CLNP网络或者纯IP网络,或者同时运行CLNP和IP的双重网络。**当前的ISIS规范中把网络节点叫做中间系统,其他协议比如OSPF把节点叫做路由器。

1.1.1、相关术语

1.1.1.1、基础实体与地址
术语 全称 含义 类比 / 备注
ES End System 终端系统,即主机 类似于 IP 网络中的 Host
IS Intermediate System 中间系统,即路由器 类似于 IP 网络中的 Router
DIS Designated Intermediate System 指定中间系统,广播网络中的负责人 类似于 OSPF 的 DR,但 DIS 可抢占、无备份
SysID System ID 系统标识符,在域内唯一标识一个 IS 或 ES 类似于 OSPF 的 Router ID,长度固定 6 字节(通常用 MAC 或 Loopback 地址生成)
NSAP Network Service Access Point 网络服务访问点,OSI 网络层地址(含主机身份 + 上层服务选择符) 相当于 IP 地址 + 传输层端口(但格式更长,分 Area、System ID、SEL)
NET Network Entity Title 网络实体标识,一种特殊的 NSAP(SEL = 00),用于标识路由器本身 类似于 OSPF 的 Router ID + Area 信息,是路由器在 IS-IS 中的"身份证"
1.1.1.2、协议数据单元(PDU)
术语 全称 含义 类比 / 备注
PDU Protocol Data Unit 协议数据单元,IS-IS 直接封装在链路层帧中的报文 不是 IP 报文,而是链路层帧(以太网类型 0x22F4)
LSP Link State Protocol Data Unit 链路状态协议数据单元,携带路由信息(前缀、邻居、度量值等) 类似于 OSPF 的 LSA,是 IS-IS 的链路状态通告载体
LSPDB Link State PDU Database 链路状态数据库,存储所有收到的 LSP 类似于 OSPF 的 LSDB,同区域内所有 IS 的 LSPDB 最终一致
IIH Intermediate System to Intermediate System Hello IS-IS 路由器之间的 Hello 报文 类似于 OSPF 的 Hello,用于发现邻居、建立和维护邻接关系
ESH End System Hello 终端系统(主机)发送的 Hello 报文 在纯路由环境中少见;用于主机发现路由器(ES-IS 协议)
CSNP Complete Sequence Numbers PDU 完整序列号 PDU,包含当前 LSPDB 中所有 LSP 的摘要 类似于 OSPF 的 DBD,用于同步数据库
PSNP Partial Sequence Numbers PDU 部分序列号 PDU,用于请求缺失的 LSP 或确认收到的 LSP 类似于 OSPF 的 LSR / LSAck(点对点链路中兼具请求和确认功能)
1.1.1.3、关键机制说明
概念 说明
CLNS / CLNP 无连接网络服务 / 协议,IS-IS 运行在 CLNS 之上,不依赖 IP。CLNP 是 OSI 网络层的无连接协议,IS-IS 为其提供路由。
DIS 选举 广播网络(如以太网)中通过优先级选举 DIS,优先级最高者当选,若优先级相同则 MAC 地址大者获胜。DIS 可抢占,且无备份 DIS。
LSP 刷新 每个 LSP 都有存活时间(Lifetime),生成者会周期性刷新(默认 15 分钟),超过存活时间则 LSP 被删除。
CSNP 周期发送 在广播网络中,DIS 每 10 秒发送一次 CSNP 来维护数据库同步;点对点链路只在邻接建立时发送一次。
PSNP 的双重角色 广播网络:PSNP 仅用于请求缺失 LSP;点对点网络:PSNP 还用于显式确认收到的 LSP。

1.1.2、ISIS地址结构

NSAP是OSI协议中用于定位资源的地址:相当于OSI的网络层协议CLNP的地址(类似IP地址的概念)

NET是一类特殊的NSAP(SEL=00):在路由器上配置IS-IS时,只需要考虑NET即可。

  • 简化的NSAP格式IDP DSP
  • Area Address由AFI,IDl还有DSP的一部分组成,既能够标识路由域,也能够标识路由域中的区域。System ID必须在整个区域和主干(Level2)上保持唯一,用来唯一标识主机或路由器。
  • System ID为6个字节。
  • NSEL(NSAP-Selector)NSAP标识,用来指示选定的服务,相当于TCP/IP地址中的端只号对NET地址来将,是00。
1.1.2.1、NSAP 是什么?

NSAP (Network Service Access Point,网络服务访问点)是 OSI 协议栈网络层的地址,用于唯一标识一个网络节点(主机或路由器)以及其上的某个上层服务。

  • 它的作用类似于 IP 地址 + 传输层端口号 (如 192.168.1.1:80),但格式不同。
  • NSAP 是 CLNP(无连接网络协议)使用的地址,IS-IS 路由协议基于 CLNP 运行,因此路由器需要配置 NSAP(或它的特例 NET)。
1.1.2.2、NSAP 的简化格式

NSAP 的完整格式由 IDP (初始域部分)和 DSP(域特定部分)组成

字段 长度 作用 在 NET(IS-IS 配置)中的说明 类比(TCP/IP)
AFI (Authority and Format Identifier) 1 字节 标识地址管理机构(ISO、ITU‑T等)和地址语法 常见值 49(私有地址),IS‑IS 几乎都使用此值 类似于 IPv4 公网/私有标识,但无直接对应
IDI (Initial Domain Identifier) 可变 (由 AFI 决定) 在 AFI 下进一步区分路由域 与 AFI、High Order DSP 的一部分共同构成 Area Address(区域地址) 类似于 IPv4 网络号的前缀部分
High Order DSP (高阶域特定部分) 可变 (0~13 字节) 在域内实现层次化寻址,通常用于标识 区域(Area) 与 AFI、IDI 一起作为 Area Address 在 IS‑IS 中配置 类似于 IPv4 子网号或 IPv6 层次化前缀
System ID 6 字节 (固定) 在区域内及 Level‑2 主干中唯一标识一台设备(路由器/主机) 必须唯一;通常从 MAC 地址或 Loopback IP 转换而来 类似于 Router ID 或主机标识
SEL (NSAP Selector) 1 字节 标识设备上的上层服务实体(类似端口号) NET 中固定为 00,表示地址指向路由器本身而非上层服务 类似于 TCP/UDP 端口号

补充说明

  • Area Address :在 IS‑IS 配置中,我们并不直接区分 AFI、IDI、High Order DSP,而是将 AFI + IDI + High Order DSP前缀 整体配置为区域地址。例如 49.0001.0002
  • NET :当 SEL = 00 时,整个 NSAP 地址称为 NET (Network Entity Title),用于标识路由器自身。一个路由器可配置多个 NET(如多区域时),但所有 NET 的 System ID 必须相同
  • 地址总长度 :NSAP 地址总长 8~20 字节 ,实际配置中常见 8~12 字节(如 49.0001.aaaa.bbbb.cccc.00 共 11 字节)。

注意 :一个 NSAP 地址的总长度范围是 8~20 字节

1.1.2.3、NET ------ 路由器专用地址

NET (Network Entity Title,网络实体标识)是一种特殊的 NSAP ,它的 NSEL = 00

  • NET 用来标识路由器自身的网络层实体(即路由器本身),而不是某个上层服务。
  • 在配置 IS-IS 时,我们只需要为路由器配置 NET,不需要关心其他 NSAP。
  • 一个路由器可以配置多个 NET(例如在区域边界时),但所有 NET 的 System ID 必须相同。

NET 示例(十六进制表示):

复制代码
49.0001.aaaa.bbbb.cccc.00
  • 49.0001 → Area Address(区域地址)
  • aaaa.bbbb.cccc → System ID(6 字节)
  • 00 → NSEL(固定为 0)
1.1.2.4、各字段详细说明

1、Area Address(区域地址)

  • 组成:由 IDP 和 DSP 的前缀共同构成,在配置时通常作为一个连续字段输入。
  • 作用
    • 标识路由域(Domain)和区域(Area)。
    • Level-1 路由器只属于一个区域,Level-2 路由器可连接多个区域。
    • 同一区域内的所有路由器必须具有相同的 Area Address

2、System ID(系统 ID)

  • 固定长度6 字节(48 位)。
  • 作用 :在区域内(Level-1)和整个 Level-2 主干中唯一标识一台路由器。
  • 生成方式 :通常使用路由器的 MAC 地址、Loopback 接口的 IP 地址转换而成(例如 192.168.1.1 转换为 1921.6800.1001)。
  • 重要性:IS-IS 的邻接关系、LSP 生成者都依赖 System ID 来区分设备。

3、NSEL(NSAP Selector)

  • 长度:1 字节。
  • 作用:在 NSAP 中用于区分上层协议或服务(类似 IP 的端口)。
  • NET 中的值 :固定为 00,表示"该地址标识的是网络实体本身,而非某个上层服务"。
1.1.2.5、配置中的注意事项
  1. 只需配置 NET:在 Cisco / 华为等设备上启动 IS-IS 时,只需在全局模式下配置 NET,例如:

    复制代码
    router isis
    net 49.0001.1921.6800.1001.00
  2. System ID 必须唯一:同一个路由域(Level-2 主干)内,所有路由器的 System ID 不能重复。

  3. 区域地址可多个:一个路由器可以配置多个区域地址(多区域 IS-IS),但所有 NET 的 System ID 必须相同。

  4. 地址规划建议

    • 使用 Loopback 接口的 IP 地址转换为 System ID(方便管理)。
    • 区域地址通常用 49 开头(私有路由域,类似于私有 IP),后跟区域编号。

1.1.3、ISIS区域

  • IS-IS允许将整个路由域分为多个区域
  • 一个路由器目前最多有3个AreaID,配置不同的区域D是为了平滑的进行区域合并、分割、转换用
  • 和OSPF不同的是,一个路由器必须整个属于某个区域,而不能是某些接口属于一个区域,其它的接口属于另外一个区域
  • 49.0001.aaaa.bbbb.cccc.00
    • 区域地址:49.0001。49通常表示私有网络,0001是具体的区域号。同一区域内的路由器必须有相同的区域地址。
    • 系统ID:aaaa.bbbb.cccc。长度为6字节,必须在整个域内唯一标识该路由器。
    • SEL:00。固定为0,用于表示这是网络实体而非上层服务

1.1.4、ISIS路由器分类和层次

结点(Nodes):

  • Level-1 Routers(L1路由器)
  • Level-2 Routers(L2路由器)
  • Level-1 and Level-2 Routers (L1/L2路由器)

Area层次性:

  • Level-1area:包含区域内路由器
  • Levle-2 area(Backbone,骨干区):包括L2和L1/L2 -router

L1Router:位于普通区域(AREA)内部

  • L1路由器只和本区域内的L1路由器(或具有L1功能的L1/L2)形成邻居关系
  • L1路由器只有本区域内Level1的链路数据库(L1 LSDB),包含本区域内所有的L1路由器的路由信息
  • 通过与自己最近的L1/2路由器的ATT BIT生成指向此台设备的默认路由作为出口路由(L1区域类似于OSPF的stub区域
  • 在转发时,如果目的地址在本区域内,就直接利用L1 LSDI生成的路由转发报文;如果目的地址不在本区域,则利用本区域最近的L1L2路由器作为区域外网络的出口,由此可能导致次优的路由

L2 Router:位于骨干区域

  • 可以和其它的L2(或具备L2功能的L1/L2路由器形成邻居关系
  • L2路由器有Level2的链路状态数据库(L2 LSDB),它包含所有的区域间路由信息。
  • 接收来自本区域内其它L2路由器的报文,并按照目的地址将报文转交给其他区域的L2路由器(或是转发到同一区域的L2路由器)。接收来自其他区域的L2路由器的报文,并按照目的地址将报文转发。

L1/L2 Router:通常位于区域边界上

  • 可以和本区域的任何级别路由器形成邻居关系;可以和其它区域相邻的L2或L1/L2路由器形成L2邻居关系
  • 可能有两个级别的链路状态数据库:
    • L1用来作为区域内路由;
    • L2用来作为区域间路由
  • 完成它所在的区域和骨干之间的路由信息的交换,既承担L1的职责也承担L2的职责

注意:一个L1/L2路由器如果和其它区域的路由器形成邻接关系,那么它将通告本区域内的L1路由器它有区域的出口点。具体方法是在生成本区域的L1 LSP时将报文中的ATT(Attachment)bit置为1,发给区域内的L1邻居。

1.1.5、ISIS层次性

IS-IS由两个层次组成:

  • Level 2:骨干Backbone(连续的Level2路由器的集合);Backbone是由所有的L2(含L1/L2)路由器组成,backbone必须是连续(连通)的。
    • 注意:IS-IS的Backbone不是某个特定的什么区域!!!
  • Level1:相对于单个区域的概念,由本区域中的Level-1路由器构成,其路由信息将自动发布到backbone中。
    • 注意:一个IS-IS路由域(routingdomain)并不一定需要有两个层次,如果只部署一个区域的话,可能全部是L1,或全部是L2,推荐用L2,以得到比较好的扩展性。

1.1.6、ISIS网络类型

IS-IS支持的网络类型:

  • 点对点链路,如PPP、HDLC等
  • 广播链路,如Etheret等
  • 对于NBMA网络,如帧中继,需对其配置子接口,并注意子接口类型应配置为P2P
1.1.6.1、广播链路:DIS和伪节点
  • DIS:DesignatedIS 指定中间系统
  • 功能:在广播网络中创建和更新伪节点;在LAN中通过每10秒周期性地发送CSNP来泛洪LSP

在 IS-IS 中,当多个路由器通过一个广播多路访问网络(如以太网)互联时,为了减少邻接关系的数量和链路状态数据库的复杂度,引入了 DIS(指定中间系统) 和 伪节点 的概念。

假设一个以太网段上连接了 N 台路由器。如果每两台路由器之间都建立全互连的邻接关系,那么:邻接数量为 N(N-1)/2,随着 N 增大迅速膨胀。每台路由器在 LSP 中需要通告与所有其他路由器的链路信息,导致数据库冗余和泛洪开销。为了解决这个问题,IS-IS 采用类似 OSPF 的 DR(指定路由器) 机制,但具体实现有差异。

什么是DIS

在一个LAN中,必须有一个路由器被选举成为DIS:

  • 选举依据:选举基于接口优先级(0~127,默认 64)
    • 如果所有接口的优先级一样,具有最大的sub network point of attachment(SNPA子网连接点)的路由器将当选DIS
    • 在LAN中,SNPA指的是MAC地址;优先级相同则 MAC 地址大者胜出
    • 在帧中继网络中,SNPA是localdatalink connectionidentifier(DLCI)
  • 抢占性:DIS的选举是抢占式,没有规定不能参与选举的机制,当优先级为0的时候仍可以参加DIS的选举;更高优先级的路由器加入后,立即成为新 DIS,导致短暂邻接重建
  • 无备份:与OSPF不同,没有类似 BDR 的角色;IS-IS中不存在备份DIS,当一个DIS不能工作时,直接选举另一个
  • DIS发送HELLO数据包的时间间隔是普通路由的1/3,这样可以保证DIS失效可以被快速检测到
  • 代表广播网络:DIS 会创建一个 伪节点(Pseudonode),将广播网络抽象为一个虚拟的中间系统。
  • 周期性发送 CSNP:在广播网络中,DIS 每隔 10 秒(默认)发送 CSNP(完整序列号 PDU),用于同步该网络上所有路由器的 LSP 数据库。
  • 负责泛洪:当收到新 LSP 时,DIS 协助在广播网络上泛洪。
  • 邻接关系:广播网络中所有路由器两两都建立邻接,但只有 DIS 需要与所有路由器建立邻接(实际上是所有路由器互相都是邻接,但伪节点机制减少 LSP 泛洪)

注:IS-IS 中广播链路上所有路由器之间都会形成邻接(邻居关系),但通过伪节点来简化 LSP 的描述。OSPF 则通过限制邻接关系数量来减少数据库同步开销。

什么是伪节点

伪节点是在广播多路访问网络中的一台虚拟路由器

  • 伪节点由DIS创建
  • DIS在伪节点LSP中通告LAN中的所有邻居
  • LAN中的所有路由器在它们的LSP中通告自己与伪节点的连接性
  • 伪节点的标识:伪节点由 DIS 的 System ID + 一个非零的电路 ID(通常是 1 字节)来唯一标识。例如,DIS 的 System ID 为 aaaa.bbbb.cccc,伪节点的 ID 可能是 aaaa.bbbb.cccc.01。
  • 伪节点生成 LSP:DIS 会为伪节点生成一个 伪节点 LSP,该 LSP 描述了哪些路由器连接在这个广播网络上(即列出所有与该 DIS 建立邻接的路由器的 System ID)。
  • 真实路由器的 LSP 简化:每台路由器(包括 DIS 自己)在生成 LSP 时,只描述与伪节点的连接,而不是列出与其他所有路由器的连接。这样一来,广播网络在 LSDB 中表现为一个"星型"拓扑:中心是伪节点,周围是各个路由器。
  • 作用
    • 减小路由器LSP的大小
    • 使路由器LSP更稳定
    • 使SPF计算更快

假设以太网上有三台路由器 R1、R2、R3,其中 R1 被选举为 DIS。

  • R1 为伪节点 P(ID = R1-SystemID.01)生成 LSP,内容:邻居:R1, R2, R3。
  • R1 自己的 LSP 中只描述:邻居:P(以及可能其他物理链路)。
  • R2 的 LSP 中描述:邻居:P。
  • R3 的 LSP 中描述:邻居:P。

1.2、IS-IS基本原理

两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先立邻接关系。在不同类型的网络上,IS-IS的邻接建立方式并不相同。目前IS-IS支持如下两类网络:

  • 广播网络
  • 点对点

IS-IS形成邻居关系的条件:

  • 同一层次;
  • 同一区域;
  • 同一网段;
  • 相同网络类型;
  • 同一网段IP(LANor PPP)

形成邻居关系的细节

  1. 两台L1路由器只有和它们的AID匹配时才能形成一个L1邻接关系。
  2. 两台L2路由器即使它们的AID不同也能形成一个L2的邻接关系。
  3. 一台L1路由器和一台L1/2路由器只有在它们的AID匹配时才能形成一个L1邻接关系。
  4. 一台L2路由器和一台L1/L2路由器即使在它们不同的AID时也能形成L2邻居关系。
  5. 如果两台L1/L2路由器的AID匹配,它们就可以同时形成L1和L2类型的邻居关系。
  6. 如果两台L1/L2路由器的AID不匹配,它们就只能形成L2类型的邻接关系

1.2.1、报文类型

  • HELLO PDU(IIH)用于建立和维持邻居关系
    • Level-1 LAN IIH
    • Level-2 LAN IIH
    • P2P IIH

Hello数据单元:定期发送,用来确定相邻的其它系统是否在运行IS-IS,以建立邻接关系,交换LSP,达到LSDB同步(默认10S)

在IS-IS里有三种hello包:一种是点对点接口的(Point-to-PointIStoISHello PDU)、一种是LAN上对I路由器(Level1 LAN IS to IS Hello PDU)的和一种是在LAN上对L2路由器的(Level2 LAN IS to IS Hello PDU)

在LAN上L1和L2 IIH PDU发送到不同的组播MAC地址:L1为0180-C200-0014,L2为0180-C200-0015.

  • LSP PDU用于交换链路状态信息
    • Level-1 LSP
    • Level-2 LSP

链路状态数据单元。

链路状态报文用来在区域中传播链路和节点信息。

LSP 分为两种 : Level 1 Link State PDU和Level 2 Link State PDU.

Level2 Link State PDU包含在IS-IS里所有可到达前缀的信息。Level1 Link State PDU只用于本地区域。

LSPHeader介绍:

LSP-id:用来唯一标志一个LSP

由三部分组成

  1. SysID(结点或伪结点的SysID);
  2. PseudonodeID:对普通LSP为0;Pseudonode LSP非0
  3. LSP number:分片号
    例:00c0.0040.1234.01--00,其中System ID为
    00c0.0040.1234,PseudonodeID为01(表明为伪结点发出的)
    分片号为0
    Sequece Number:用来确定是否是最新的LSP版本
    LSP Holdtime:用来周期性清除旧的LSP
    LSP Checksum:校验和,并可以用来比较LSP的新旧
    ATT bit
    Overload bit
    P bit
  • SNP PDU用于维护LSDB的完整与同步,且为摘要信息
    • CSNP
      • Level 1 CSNP
      • Level 2 CSNP
    • PSNP
      • Level 1 CSNP
      • Level 2 CSNP

LSP生存时间

LSP剩余生存时间有2个重要的值,一个是最大生存时间,一个是刷新间隔;

剩余生存时间值为20分钟(1200秒),而且是从1200一直倒数到0,VRP中可用命令:timerlsp-mox-0ge来配置一个更大的值,最大为65535秒。

当lsp的间隔到达刷新间隔的时候,该lsp就会被源路由器重新生成,否则直到生存时间为0就会被清除掉。

刷新间隔被定义为15分钟(15-25%随机抖动变量)(900秒),可用命令:timer Isp-refresh

将刷新间隔改成更长的值,最大为65535秒。

备注:如果Isp到生存时间都没有刷新包到来,那么这个包的生存时间到0以后,那么IS将除LSP的内容,只保留LSP Header 将Lifetime置0洪泛出去,所有收到为o的lsp路由器在60秒后将从库中清除此lsp;这叫做零寿命生存时间

CSNP : Complete Sequence Numbers Protocol Data Unit完整序列号协议数据单元。

CSNP分为两种 :Level 1 CSNP和Level 2 CSNP.

CSNP用于数据库同步,描述数据库LSDB中的所有的LSP包含地址范围,各LSP的简要信息:LSPid,SequeceNumber,checksum, remainning lifetime

何时发送

在广播网络上,由DIS定期发送(缺省10秒的周期)。在点到点串行线路上,只在第一次邻接时发送CSNP。如果路由器的LSDB非常大,将分成多个CSNP发

PSNP : Partial sequence Number Protocol Data Unit部分序列号协议数据单元。

PSNP分为两种 :Level1 PSNP和Level 2 PSNP.PSNP用于数据库同步,主要有以下功能:

在点到点(p2p)链路上路由器用来相互交换作为Ack应答以确认收到某个LSP;

用来请求发送最新的LSP,当路由器从近邻接收到CSNP时,注意到CSNP丢失了部分数据库(或自己的比较I旧),路由器发送PSNP请求新的LSP。

和CSNP一样,PSNP在头中利用LSPid,SequenceNumber,Remainning lifetime, LSP checksum来描述LSPs.

1.2.2、邻居关系

1.2.2.1、三次握手
1.2.2.2、两次握手

1.3、交互过程

1.3、IS-IS基本特点

1.3.1、IS-IS路由渗透(路由泄露)

IS-IS路由渗透(Route Leaking)是指将Level-2区域的路由信息传递到Level-1区域,或者反过来将Level-1的明细路由传递到Level-2的过程

因为在标准的IS-IS设计中,为了防止路由环路并保证稳定性,Level-1区域默认只拥有本区域的路由,对于区域外的网络,它只知道一条由最近Level-1-2路由器发送的默认路由。同样,Level-2路由器通常只知道其他Level-2区域的路由,而不了解Level-1区域的内部明细。

作用

  1. 解决次优路径问题:这是最常见的需求。当Level-1区域有两个或多个Level-1-2路由器连接到Level-2骨干网时,如果Level-1路由器只有默认路由,它可能会选择最近的Level-1-2路由器出去,即使另一台Level-1-2路由器能提供到达目标更优的具体路径
  2. 多厂家设备互通:在某些场景下,不同厂商对默认路由的处理方式不同,渗透具体路由可以避免依赖不兼容的默认路由行为。
  3. 特殊网络规划:某些网络设计需要在Level-1区域内获知其他区域的特定路由信息,以实现策略或优化。

路由渗透的两种方向
Level-2→Level-1:

作用:将Level-2骨干网或其他Level-1区域的路由(以Level-1的LSP形式)注入到Level-1区域。

结果:Level-1路由器不再仅仅依靠默认路由,而是可以学到到达其他区域的具体IP前缀,从而做出更精确的转发决策。

控制:通常在Level-1-2路由器上配置,可以配合路由策略,只渗透部分需要的路由,而不是全部。

Level-1 → Level-2

作用:将Level-1区域内的明细路由(以Level-2的LSP形式)注入到Level-2骨干网。

结果:默认情况下,Level-2路由器只知道去往Level-1区域的路径(通过Level-1-2路由器),但不知道Level-1内部的明细网络。渗透后,Level-2路由器能学到这些明细。

典型场景:当Level-2网络需要基于更具体的Level-1内部网络信息进行路由决策或流量工程时。

可能存在的问题
路由表膨胀 :渗透会显著增加Level-1区域路由器的路由表条目,因为原本只有一条默认路由,现在可能收到成百上千条外部路由。需评估设备硬件能力。
环路风险 :不当的渗透配置(尤其是双向渗透且无严格过滤)可能导致路由环路。通常建议单向(L2→L1)且配合策略。
默认路由处理:即使做了渗透,许多实现仍然会保留默认路由的生成,需要根据需求决定是否抑制。

参考案例

假设设备在骨干网之外,R1想要去访问该设备,正常线路:①R1→R3→R5:cost是60;②R2→R4→R5:cost是20;但是在这里存在③R1→R2→R4→R5:cost是30,③是最优的,①是次优解.

因此就需要启动路由渗透L2→L1:R3和R4将自己知道的Level-2外部路由(或默认路由)以具体路由形式注入Level-1区域。R1就能同时学到两条路径,并根据IS-IS的SPF算法选择到具体目标的最优路径(可能通过R4),从而解决次优问题。

环路的风险:

启动路由渗透后,R3同步路由给R1,R1同步给R2,R2同步给R4,R4又同步给R5,在某些场景下,R5可能同步给R3,进而导致环路。

UP/DOWN bit预防环路

UP/DOWN bit 是 IS-IS LSP(链路状态报文)中一个专门的标志位,用于标记一条路由的来源方向。

作用是:防止被渗透进 Level-1 区域的路由,又被 Level-1 区域内的路由器重新注入回 Level-2 区域,从而形成路由环路。

定义:

UP (0):路由起源于当前层级(例如,Level-1 路由器生成的 Level-1 LSP)。

DOWN (1):路由是通过渗透从高层级(Level-2)进入低层级(Level-1)的。

规则:

当一个 Level-1-2 路由器将 Level-2 路由渗透到 Level-1 时,它会将所有被渗透路由的 UP/DOWN bit 设置为 DOWN (1)。

Level-1 路由器收到带有 DOWN bit = 1 的路由时,绝对不能将这些路由再重新注入(redistribute)回 Level-2 区域。它们只能被用于本地转发或进一步在 Level-1 区域内传递。

ATT (Attached) bit:Level-1-2 路由器用 ATT bit 告诉 Level-1 路由器"我连接到 Level-2 骨干网",触发 Level-1 路由器生成默认路由。它本身不防环,只解决可达性。

1.3.2、IS-IS路由过载

IS-IS 路由过载(Overload bit,也称为 Set-bit 或 Suppress adjacency)是一种特殊的网络状态,用于在特定情况下暂时隔离一台路由器,使其不参与数据包转发,但依然参与网络拓扑和路由信息的传递。

核心机制:

IS-IS 使用 LSP(链路状态报文)中的 Overload bit(过载标志位)来实现这一功能。

  • 正常状态:Overload bit = 0(0 表示未过载)
  • 过载状态:Overload bit = 1(1 表示过载)

当一台路由器设置 Overload bit = 1 时:

1、其他路由器仍然接收它的 LSP,知道它的存在和连接的链路。

2、其他路由器不会将这台路由器作为数据转发的中间节点(即不会把数据包路由经过它)。

、3其他路由器仍然可能将这台路由器作为末节网络的目的地(即发往这台路由器自身直连网络的数据包仍然可达)。

主要场景是路由器启动、重启、或者出现资源不足时,防止因路由表未完全同步或CPU/内存过高导致丢包或路由环路。

案例

R1→R3:正常优先走R1→R2→R3;由于R2可能挂机了导致R2走不通了,对R2设置路由过载,进而不走R2这条路,但是直连还是可以的

1.4、IS-IS收敛特性

1、增量最短路径优先算法I-SPF(IncrementalSPF)

只对受影响的节点进行路由计算;只第一次计算全部节点;作用在路由计算 (CPU);减少SPF计算对CPU的消耗,将计算复杂度从O(N^2)降至O(N log N)

以上图为例,ROOTA为根,只有黑色线段断了,才会重新计算,黄色线段不是以ROOTA为根的线段。

同理如果在路由器D新增路由器G,只需要对新增加的部分进行通告和计算。

2、部分路由计算PRC

只对发生变化的路由进行重新计算;根据I-SPF算出来的SPT来更新路由;作用在路由计算 (CPU);进一步细分计算粒度,当网络拓扑稳定但路由条目变化时,效率最高。

当有路由变化的时候新增变化的路由即可。

3、智能定时器:

分为SPF计算智能定时器和LSP生成智能定时器;当网络变化频繁时,智能定时器的间隔时间会自动延长;作用在所有阶段 (触发、生成、计算);平衡快速响应与稳定性,避免因网络频繁抖动导致CPU过载。

4、LSP快速扩散

使用Pacing和Flooding机制,不等待定时器立即转发LSP;作用在信息同步(扩散)阶段;加速LSP在整个路由域中的传播速度,减少全网信息同步延迟。

正常情况下,当IS-IS收到其它路由器发来的LSP时,如果此LSP比本地LSDB中相应的LSP要新,则更新LSDB中的LSP,并用一个定时器定期将LSDB内已更新的LSP扩散出去。LSP快速扩散特性改进了这种方式,使能了此特性的设备收到一个或多个较新的LSP时,在路由计算之前,先将小于指定数目的LSP扩散出去,加快LSDB的同步过程。这种方式在很大程度上可以提高整个网络的收敛速度。

一般IS-IS都是采用周期性分批扩散LSP的方法(缺省情况下,接口上发送LSP报文的最小间隔时间是50毫秒,每次发送LSP报文的最大数目是10)。使能flash-flood功能后,当LSP发生变化而导致SPF重新计算时,不再等待周期性分批扩散,而是把导致SPF重新计算的LSP立即扩散出去,从而有效缩短拓扑变化时全网设备上LSDB不一致的时间,提高全网的快速收敛性能。虽然LSP数量很多,但每次网络出现故障而需要发生变化的LSP却很少,所以将这部分发生变化的LSP进行单独的快速扩散对系统的资源占用影响很有限。

5、按优先级收敛

能够让某些特定的路由优先收敛的一种技术,为关键路由(如专线、VoIP网段)设置更高收敛优先级。作用在路由计算 & 表项下发;保障关键业务的最短中断时间,例如让语音业务路径在50ms内恢复。

IS-IS按优先级收敛是指在大量路由情况下,能够让某些特定的路由(例如匹配指定IP前缀的路由)优先收敛的一种技术。因此用户可以把和关键业务相关的路由配置成相对较高的优先级,使这些路由更快的收敛,从而使关键的业务收到的影响减小。通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。

可以通过IP前列表等将特定路由过滤出来,通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。IS-IS路由的收敛优先级分为critical、high、medium和low四种。收敛优先级的顺序由高到低为critical>high>medium>low。本地有效。

总结

ISIS协议=I-SPF+PRC

I-SPF 负责拓扑级别的计算("哪台路由器挂了?")。

PRC 负责路由级别的计算("这个路由器上挂了哪些网段?")。

协同流程:当网络变化时,先由I-SPF算出受影响的节点和链路,生成新的最短路径树(SPT);然后PRC基于这个新的SPT,只重新计算那些受到影响的路由条目,直接更新路由表。这样避免了反复扫描整个路由表。

1.5、IS-IS扩展特性

1.5.1、IS-IS认证

你列出的内容是关于 IS-IS(Intermediate System to Intermediate System)协议 的认证机制。整理和补充如下:

IS-IS 认证分类

认证类型 作用范围 认证的报文
接口认证 邻居之间(链路级别) 仅对 Level-1 和 Level-2 的 Hello 报文 进行认证
区域认证 Level-1 路由域内 Level-1 的 SNP(序列号PDU)和 LSP(链路状态PDU) 进行认证
路由域认证 Level-2 骨干区域 Level-2 的 SNP 和 LSP 进行认证

注意:接口认证用于邻居建立时的身份验证;区域/路由域认证用于防止伪造的 LSP/SNP 污染 LSDB。

IS-IS 认证方式

认证方式 别名 安全级别 说明 常见使用场景
Null none / 无认证 不携带认证 TLV,不校验 默认状态,仅用于信任网络
明文(Simple / Text) plain / clear text 极低 密码明文传输,可被抓包直接获取 极不推荐,仅老旧设备兼容
MD5 HMAC-MD5 中低(已弱化) 使用 MD5 哈希 + 密钥,但不抗碰撞攻击 老旧网络,逐步弃用
SHA-1 HMAC-SHA-1 中(已弱化) 比 MD5 强,但已被证明有碰撞风险 过渡方案,不推荐新部署
SHA-2 系列 HMAC-SHA-256 / SHA-384 / SHA-512 目前主流安全推荐 现代企业/运营商网络
Keychain 密钥链 高(动态) 支持多组密钥、按时间切换、可配合 MD5/SHA 等 高安全要求场景(如金融、政务)

注:Keychain 不是一种哈希算法,而是一个密钥管理框架,内部可以配置 MD5 / SHA-1 / SHA-256 等。

各认证方式详解

Null(无认证)

  • TLV 类型:不携带认证 TLV(Type 10 / 133)
  • 效果:任何携带认证的报文也会被忽略(取决于实现)
  • 风险:完全无保护,LSP 可被伪造

明文(Simple)

  • TLV 类型:10(Authentication Information,Type = 1 表示明文)
  • 报文示例 :密码 cisco123 直接在 PDU 中可见
  • 抓包特征:直接用 Wireshark 可看到密码
  • 结论等同于没有认证,只防误接入,不防攻击

MD5

  • TLV 类型:10(Type = 2 表示 HMAC-MD5)
  • 机制:密钥 + 报文内容 → MD5 哈希 → 附加到报文中
  • 问题:MD5 已被证实可碰撞攻击(2004 年起)
  • 状态:很多厂商默认仍支持,但安全审计不推荐

SHA-256(当前推荐)

  • TLV 类型:厂商扩展或标准演进(RFC 5310)

  • 优势:目前无已知实际碰撞攻击

  • 配置示例(Huawei)

    bash 复制代码
    isis authentication-mode hmac-sha-256 plain Huawei@123

Keychain(增强方案)

  • 能力

    • 可定义多个密钥(key ID)
    • 每个密钥有生效时间窗(send / accept lifetime)
    • 支持算法 MD5 / SHA-1 / SHA-256
  • 典型用途

    • 定期更换密钥而不中断邻居关系
    • 满足合规要求(如等保、PCI-DSS)
  • 示例 (华为):

    bash 复制代码
    keychain isis-key mode absolute
      key-id 1
        key-string plain Huawei@123
        algorithm hmac-sha-256
        send-lifetime 00:00:00 2025-01-01 to 23:59:59 2025-12-31
        receive-lifetime 00:00:00 2025-01-01 to 23:59:59 2026-01-01

认证方式对比

项目 明文 MD5 SHA-1 SHA-256 Keychain+ SHA-256
防嗅探
防篡改 ⚠️ ⚠️
防重放 ❌(需配合防重放机制)
抗碰撞 ⚠️
密钥轮换
推荐等级 不推荐 谨慎使用 不推荐 推荐 强推荐(高安全场景)

说明:IS-IS 认证本身 不防重放攻击(依靠序列号和生命周期缓解),不是设计缺陷,是协议特征。

1.5.2、IS-IS LSP分片扩展

IS-IS LSP分片扩展是用于突破IS-IS协议原有256个LSP分片限制的机制,允许一台路由器发布更多链路状态信息。

IS-IS协议规定,一台路由器(一个IS-IS进程)最多可产生256个LSP分片(LSP Number字段为1字节)。每个LSP分片的大小也有限制(通常为1492字节)。

以下因素可能导致256个分片不够用:

1、引入大量新TLV和子TLV(如流量工程TE信息)

2、网络中路由条目急剧增加

3、支持IPv6等多拓扑特性

4、引入大量外部路由

初始系统:实际运行IS-IS协议的物理路由器

系统ID(Normal System-ID):初始系统本身的System ID

附加系统ID:管理员分配的额外System ID,在整个路由域中必须唯一

虚拟系统:由附加系统ID标识的"虚拟"路由器,用于生成扩展LSP分片

每个虚拟系统可以额外生成256个LSP分片。一个IS-IS进程最多可配置50个虚拟系统,因此理论上最大可产生:50 × 256 + 256 = 13056个LSP分片;当初始系统的LSP分片装满后,装不下的信息会放入虚拟系统的LSP中发送出去,并通过IS Alias ID TLV(Type 24)声明虚拟系统与初始系统的关系。

Mode-1(兼容模式)

适用场景:网络中存在不支持分片扩展的老设备

虚拟系统行为:参与SPF计算,对老设备看起来像真实路由器

邻居开销设置:初始系统→虚拟系统:metric=0;虚拟系统→初始系统:metric=最大值-1(保证虚拟系统成为下游节点)

LSP内容要求:虚拟系统的LSP需包含与初始系统相同的区域地址和Overload bit

Mode-2(标准模式)

适用场景:网络中所有设备都支持分片扩展

虚拟系统行为:不参与SPF计算,仅作为初始系统的信息载体

路由计算:其他设备通过IS Alias ID TLV识别虚拟系统属于初始系统,将其信息合并处理

1.6、IS-IS管理特性

1.6.1、IS-IS管理标记(Tag)

IS-IS管理标记(Administrative Tag) 是一种策略控制机制,允许网络管理员为IP前缀附加一个整数标签,用于在IS-IS域内简化路由策略的控制,如路由渗透、重分发和路由聚合。简单来说,它就像是给某些路由"贴上彩色贴纸",方便在其他路由器上基于"贴纸颜色"统一执行策略,而不必关心具体的IP地址。

核心概念与标准

管理标记的核心思想是将管理意愿与具体路由信息解耦。其技术标准主要定义在 RFC 5130 中。

标记对象:标记是路由前缀(IP Prefix)的属性,而不是节点或接口的属性(虽然标记通常在接口上配置,但最终会关联到该接口网段生成的前缀上)。

标记格式:支持32位和64位两种长度的整数值(通常取值范围为1到4294967295),其中0被保留,表示"无标记"。

携带方式:32位标记由 Sub-TLV 1 携带,64位标记由 Sub-TLV 2 携带。这些Sub-TLV依附于携带路由信息的TLV 135(IPv4扩展可达性)、TLV 236(IPv6可达性)等TLV中。

关键前提:必须配置wide Metric风格(即metric-style wide),因为旧的narrow风格不支持携带这些Sub-TLV

1.6.2、IS-IS Wide Metric

IS-IS Wide Metric 是对传统窄度量(Narrow Metric)的扩展,旨在满足大规模网络部署和流量工程的需求。简单来说,它打破了IS-IS协议在早期标准中的度量值限制,允许使用更大的数值来定义链路开销。

比较维度 窄度量 (Narrow Metric) 宽度量 (Wide Metric)
接口度量值范围 1 到 63 1 到 16,777,215 ( 2 24 − 1 2^{24}-1 224−1)
路径最大开销 1023 4,261,412,864
使用的TLV TLV 2 (邻居) TLV 128/130 (IP前缀) TLV 22 (扩展邻居) TLV 135 (扩展IP前缀) TLV 236 (IPv6前缀)
核心目的 简单、小规模网络 大规模网络、流量工程(TE)、路由精细控制
兼容性 旧设备 新设备,但需注意互通性

为什么要使用宽度量?

使用宽度量不仅仅是为了配置一个更大的数字,更重要的是它解锁了一系列关键功能:

  1. 支持大规模网络:旧标准中 1023 的总路径开销在大型网络(如全国性骨干网)中很容易被耗尽,宽度量彻底解决了这个问题。
  2. 实现精细的流量工程:更大的度量值范围允许管理员对不同链路(如10GE、100GE)进行更精细的开销区分,从而更精确地控制路由选择和流量路径。
  3. 承载更多路由信息 :新的TLV 135可以携带子TLV(Sub-TLV) ,这是支持以下特性的基础:
    • 管理标记:通过子TLV为路由前缀打标签,便于实施路由策略。
    • 链路属性:携带链路颜色、带宽等流量工程信息。

二、IS-IS配置命令

三、IS-IS故障诊断

四、IS-IS案例分析

相关推荐
Cyber4K5 小时前
【Python专项】进阶语法-系统资源监控与数据采集(1)
开发语言·python·php
初願致夕霞5 小时前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
Le_ee6 小时前
ctfweb:php/php短标签/.haccess+图片马/XXE
开发语言·前端·php
yong99906 小时前
MATLAB读取高光谱图像
开发语言·matlab
2zcode7 小时前
基于MATLAB的肝病风险评估与分期分析系统设计与实现
开发语言·matlab
小小de风呀7 小时前
de风——【从零开始学C++】(五):内存管理
开发语言·c++
ooseabiscuit7 小时前
Laravel6.x核心优化与特性全解析
android·开发语言·javascript
数智化精益手记局7 小时前
什么是设备维护管理?设备维护管理包含哪些内容?
大数据·网络·人工智能·安全·信息可视化
折哥的程序人生 · 物流技术专研7 小时前
Java面试85题图解版(一):基础核心篇
java·开发语言·后端·面试
Hello.Reader7 小时前
算法基础(十)——分治思想把大问题拆成小问题
java·开发语言·算法