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案例分析

相关推荐
特长腿特长2 小时前
IP Tunneling 基础案例错误日志
网络·网络协议·tcp/ip
IP老炮不瞎唠2 小时前
IP轮换机制解析:动态住宅代理如何维持高可用率?
运维·服务器·网络
小猪皮蛋粥2 小时前
python画图
开发语言·python
Felven2 小时前
A. The 67th Integer Problem
开发语言
酣大智2 小时前
Win11 24H2 eNSP中AR报错40,解决方法
网络·华为
zopple2 小时前
Laravel7.x核心特性全解析
开发语言·php·laravel
wjs20242 小时前
MVC 应用程序
开发语言
lly2024062 小时前
ionic 模态窗口:全面解析与最佳实践
开发语言
小白学大数据2 小时前
解决 Python 爬虫被限制:延迟抓取指令深度解析
开发语言·c++·爬虫·python