11.HCIP IS-IS协议基础知识

IS-IS协议基础知识

一、IS-IS协议概述

IS-IS全称为Intermediate System to Intermediate System,即中间系统到中间系统。ISO将具有路由功能的设备称为中间系统(IS),将不具备路由转发能力的终端称为终端系统(ES)。ES-IS则解决终端系统与中间系统之间的通信问题。

IS-IS是ISO定义的OSI协议栈中CLNS(无连接网络服务)的一部分。早期的网络环境以OSI协议栈为主流,IS-IS应运而生。随着TCP/IP协议栈的崛起,经过扩展后的IS-IS能够在IP网络中运行,因其出色的扩展性,IS-IS在当前的大规模网络中仍然被广泛使用。

在应用场景上,OSPF通常用于企业网络,基于策略对业务流量进行精细控制,满足定制化业务需求;而IS-IS更多应用于广域骨干网,追求快速转发和路由收敛速度。

二、IS-IS的区域与级别

2.1 两级分层结构

为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。与OSPF使用Area 0专门标识骨干区域不同,IS-IS通过连续的Level-2路由器或Level-1-2路由器构成的逻辑连接来组成骨干区域。

一般来说,将Level-1路由器 部署在非骨干区域,Level-2路由器Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。

2.2 路由器级别

在IS-IS中,每个路由器都只属于一个区域;而在OSPF中,一个路由器的不同接口可以属于不同的区域。

Level-1路由器

Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,属于不同区域的Level-1路由器不能形成邻居关系。Level-1路由器只负责维护Level-1的LSDB,该LSDB包含本区域的路由信息,到本区域外的报文转发给最近的Level-1-2路由器。

Level-2路由器

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

Level-1-2路由器

Level-1-2路由器同时支持Level-1和Level-2路由能力,同时维护Level-1和Level-2两份LSDB,既参与本区域内的Level-1路由,也参与区域间的Level-2路由。Level-1-2路由器是连接非骨干区域与骨干区域的桥梁,每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。

级别配置注意事项:在网络运行过程中,改变IS-IS设备的级别可能会导致IS-IS进程重启并可能造成IS-IS邻居断连,建议用户在配置IS-IS时即完成设备级别的配置。

2.3 邻居建立条件与规则

在IS-IS中,路由器的级别配置决定了它可以建立哪种类型的邻居:

本端接口级别 允许建立邻居的对端接口级别 区域地址要求
Level-1 Level-1或Level-1-2 至少有一个共同的区域地址
Level-2 Level-2或Level-1-2 不检查区域地址是否匹配
Level-1-2 Level-1、Level-2或Level-1-2 L1需要区域地址一致,L2不需要

建立Level-1邻居时,链路两端必须至少有一个共同的区域地址;建立Level-2邻居时不要求区域ID一致。一个IS-IS进程最多可以配置3个区域地址。建立邻居还需满足:同一网段、相同的MTU、同一层次认证一致、未设置silent-interface等条件。

三、IS-IS的电路类型与网络类型

IS-IS的电路类型(Circuit Type)是根据接口的数据链路层协议自动判别的:

  • 当接口为以太网时,电路类型默认为广播(Broadcast)
  • 当接口为PPP或HDLC等点到点协议时,电路类型默认为点对点(P2P)

在广播网络中,IS-IS需要选举DIS。通过配置IS-IS接口的DIS优先级,可以使拥有接口优先级最高的设备优选为DIS。在P2P网络中,IS-IS不需要选举DIS,无需配置接口的DIS优先级。但为了保证P2P链路的可靠性,可以配置IS-IS使用P2P接口在建立邻居时采用3-way模式,以检测单向链路故障。

通常情况下,IS-IS会对收到的Hello报文进行IP地址检查,只有当收到的Hello报文的源地址和本地接收报文的接口地址在同一网段时,才会建立邻居。当两端接口IP地址不在同一网段时,如果均配置了isis peer-ip-ignore命令,就会忽略对对端IP地址的检查,此时链路两端的IS-IS接口间可以建立正常的邻居关系。

四、DIS与伪节点

在广播型网络中,为了减少网络中的泛洪流量并简化拓扑,IS-IS会选举一个DIS(指定中间系统)来代表该网段。DIS会创建一个虚拟的伪节点来代表整个广播网络。

4.1 DIS选举规则

DIS的选举规则可总结为:优先级优先,MAC地址次选,支持抢占

  • 优先级优先:接口优先级数值越大越优先。优先级取值范围是0~127,缺省值为64。当优先级为0时,表示优先级最低,但仍参与DIS选举。这一点与OSPF中优先级为0不参与DR选举的机制不同。
  • MAC地址次选:如果优先级相同,则比较接口的MAC地址,地址最大的路由器当选为DIS。
  • 独立选举:Level-1和Level-2的DIS分别独立选举,可为不同级别分别设置不同的DIS优先级。
  • 抢占特性:IS-IS的DIS选举是抢占式的。当有新的高优先级路由器加入网络时,可以抢占成为新的DIS,触发重新选举。

DIS优先级配置命令

bash 复制代码
[Huawei] interface GigabitEthernet0/0/0
# 设置Level-2的DIS优先级
[Huawei-GigabitEthernet0/0/0] isis dis-priority 100 level-2
# 设置Level-1的DIS优先级
[Huawei-GigabitEthernet0/0/0] isis dis-priority 80 level-1

4.2 DIS与OSPF DR的对比

对比维度 IS-IS的DIS OSPF的DR
抢占性 支持抢占(新设备可抢占DIS) 不支持抢占
备份机制 无备份设备 有BDR作为备份
邻接关系 所有路由器之间都形成邻接关系(Full mesh) DR-OTHER之间为2-Way状态
选举等待时间 仅需2个Hello报文间隔(约6秒) 需40秒等待时间
优先级0 参与选举(优先级最低) 不参与选举
CSNP发送 只有DIS周期性发送CSNP ---

五、NSAP地址与NET地址

5.1 地址体系概述

IS-IS基于OSI协议栈,其网络层使用NSAP地址来标识网络节点,而非IP地址。NSAP是网络服务访问点,用于定位OSI协议栈中的资源。

5.2 NSAP地址结构

NSAP地址由IDP(初始域部分)和DSP(特定域部分)两部分组成:

  • IDP包含AFI(地址分配机构和格式标识符)和IDI(初始域标识符)。
  • DSP包含High Order DSP、System ID和SEL三部分。

在实际配置中,网络管理员只需配置NET 即可。NET是NSAP的一种特殊形式(SEL固定为00),可以理解为在OSI网络中为路由设备指定的"名字"。华为官方要求:必须在IS-IS视图中配置NET,IS-IS协议才能正常启动

5.3 NET的组成与格式

NET的格式为:区域ID . System ID . SEL(00)

NET组成部分 说明 长度/取值范围
区域ID 可变长度区域地址,标识路由器所属的区域,可配置多个 1~13字节
System ID 设备的固定标识,在区域内必须唯一 固定12个十六进制字符
SEL(Selector) 网络服务访问点选择符,00表示这是一个网络实体名称 固定为"00"

NET地址配置示例

bash 复制代码
[Huawei] isis 1
[Huawei-isis-1] network-entity 49.0001.0010.0100.1001.00

其中,"49.0001"是区域ID,"0010.0100.1001"是System ID,"00"是SEL。

六、IS-IS报文类型

报文类型 功能说明 子类型
Hello PDU(IIH) 用于邻居发现与保持 LAN L1 IIH / LAN L2 IIH / P2P IIH
LSP(链路状态协议数据单元) 用于交换链路状态信息,类似OSPF的LSU Level-1 LSP / Level-2 LSP
CSNP(完全序列号报文) 包含LSDB中所有LSP的摘要信息 Level-1 CSNP / Level-2 CSNP
PSNP(部分序列号报文) 请求或确认特定LSP(类似OSPF的LSR和LSAck) Level-1 PSNP / Level-2 PSNP

IS-IS报文直接基于链路层封装,而不是像OSPF那样封装在IP报文中。所有PDU由通用头部和专用头部构成,通用头部对于所有PDU相同。

6.1 Hello报文

Hello报文用于建立和维持邻居关系,也称为IIH消息。IS-IS Hello消息可分为三类:广播网中的Level-1路由器使用Level-1 LAN IIH消息;广播网中的Level-2路由器使用Level-2 LAN IIH消息;非广播网络中则使用P2P IIH消息。

6.2 LSP报文

LSP用于交换链路状态信息,分为两种:Level-1 LSP由Level-1路由器传送,Level-2 LSP由Level-2路由器传送,Level-1-2路由器则可传送以上两种LSP,两类LSP有相同的报文格式。

L1级别的路由器只会维护L1级别的LSDB,L2级别的路由器只会维护L2级别的LSDB,L1/2级别的路由器既维护L1级别的LSDB,又维护L2级别的LSDB。

6.3 SNP报文

SNP报文负责维护LSDB的同步与一致性。

  • CSNP(完全序列号报文) :在广播网络中,CSNP由DIS设备周期性发送,包含DIS本地LSDB中所有LSP的摘要信息。在点到点链路上,CSNP只在第一次建立邻接关系时发送。
  • PSNP(部分序列号报文) :当邻居发现LSDB不同步时,发送PSNP报文来请求缺失的LSP报文。广播网络中 ,PSNP仅用于请求LSP,没有确认作用。点到点网络中 ,PSNP不仅用于请求LSP,还充当ACK确认,收到LSP后可用PSNP确认(类似OSPF的LSAck)。

七、报文交换完整流程

7.1 邻居建立(Hello交互)

IS-IS的邻居建立机制根据网络类型有所不同。P2P链路默认采用三次握手机制建立邻接关系,以保证链路的可靠性。

广播网络中的邻居建立(三次握手)

  1. R1向组播地址发送LAN IIH(邻居列表为空)。
  2. R2收到后学习R1的信息,回复LAN IIH(邻居列表中包含R1的System ID)。
  3. R1收到R2的回复后,确认双向通信建立。若需要更高可靠性,可配置三次握手机制检测单向链路故障。

P2P网络中的邻居建立(三次握手------华为设备默认)

  1. R1向R2发送P2P IIH(邻居System ID为空),状态为Down。
  2. R2向R1回复IIH(邻居System ID为R1的System ID),状态进入Initializing。
  3. R1收到后再次向R2发送IIH(邻居System ID为R2的System ID),双方状态最终进入Up。

P2P链路默认采用3-way模式以检测单向链路故障。配置isis ppp-negotiation 3-way启用三次握手,isis ppp-negotiation 3-way only表示只采用三次握手,不兼容二次握手。

7.2 数据库同步

在邻接关系建立后,邻居之间开始交互LSP同步LSDB。

广播网络中的LSDB同步
  • DIS周期性发送CSNP报文(缺省间隔10秒)。
  • 新加入的路由器收到CSNP后,对比本地LSDB。
  • 如发现本地缺少某些LSP或本地存储的LSP较旧,发送PSNP请求缺失的LSP。
  • 收到请求的LSP后,对方回复相应的LSP。在广播网络中,PSNP不充当ACK确认。
点到点网络中的LSDB同步
  • 邻居建立后,只在第一次建立邻接关系时发送CSNP
  • 双方收到LSP后使用PSNP进行确认(ACK)。
  • 当发现LSDB不同步时,也可发送PSNP请求缺失的LSP。

PSNP角色总结表

网络类型 PSNP请求LSP PSNP确认LSP
广播(Broadcast)
点到点(P2P)

7.3 LSDB维护

IS-IS中没有专门的"老化计时器"(Age),而是通过序列号+剩余生存时间组合判断LSP的新旧。LSP有一个最大有效时间(MaxAge),超出该时间仍未收到新序列号的同源LSP,该LSP将被删除。

LSP最大有效时间缺省为1200秒 (20分钟)。缺省LSP刷新周期为900秒(15分钟)。LSP的最大有效时间必须大于LSP刷新周期三百秒以上,以保证LSP在失效前能够被新的LSP更新。

LSP序列号回绕机制:当IS-IS路由器生成的LSP序列号达到最大值0xFFFFFFFF后,不会立即重新从1开始,而是先等待该LSP老化(LSP最大生存时间+60秒,LSP最大生存时间缺省为1200秒)。老化完成后,LSP的序列号重新从1开始递增。

IS-IS多拓扑扩展(MT) :IS-IS通过扩展TLV支持IPv6。新增了两个TLV------TLV 236(IPv6可达性)描述路由前缀和度量值,TLV 232(IPv6接口地址)与IPv4的IP接口地址TLV类似,但将32位IPv4地址扩展为128位IPv6地址。还新增了NLPID 142用于标识IPv6协议包。IS-IS的MT(多拓扑)特性可支持IPv4和IPv6独立拓扑,分别进行SPF计算。

7.4 完整报文交互流程图

复制代码
邻居发现阶段         邻接建立阶段             数据库同步阶段              LSDB维护阶段
     |                    |                        |                          |
     v                    v                        v                          v
LAN IIH(初始) --> 接收邻居Hello --> 接收CSNP --> 对比本地LSDB --> 发现缺失LSP
     |                    |                        |                          |
     +--> 双向通信建立 --> DIS选举 --> CSNP(周期:广播网) --> PSNP请求 --> 收到LSP
                                      CSNP(仅一次:P2P)         |
                                                              +--> PSNP确认(P2P)
                                          (广播网中PSNP不具ACK功能)

7.5 P2P链路邻居状态机

在P2P链路上,邻居建立过程遵循严格的状态机:

  1. Down:初始状态,未收到任何Hello报文。
  2. Initializing(Init) :收到来自邻居的Hello报文,但邻居列表中不含本端System ID,此时单向通信建立。
  3. Up:再次收到邻居的Hello报文,邻居列表中已包含本端System ID,双向通信建立,邻居状态进入Up。

八、IS-IS与OSPF主要对比

对比维度 IS-IS OSPF
协议起源 ISO OSI协议栈 IETF TCP/IP协议栈
区域划分 Level-1(非骨干)/ Level-2(骨干) 骨干区域(Area 0)/ 常规区域(Area n)
区域边界 位于路由器之间(路由器只属于一个区域) 位于路由器内部接口上
网络类型 广播、P2P(无NBMA、P2MP) 广播、NBMA、P2P、P2MP
DIS/DR选举 可抢占、无备份、优先级0参与选举 非抢占、有BDR备份、优先级0不参与
报文封装 基于OSI网络层,直接封装于链路层 封装于IP报文中,协议号89
报文类型 IIH、LSP、CSNP、PSNP Hello、DD、LSR、LSU、LSAck
认证方式 接口认证、区域认证、域认证 接口认证、区域认证
扩展性 使用TLV结构,新增协议(如IPv6)可添加新TLV 需发布新版本(如OSPFv3)支持新协议

九、华为配置与排障命令

9.1 基本配置

bash 复制代码
# 1. 进入系统视图
[Huawei] system-view

# 2. 创建IS-IS进程,指定NET地址
[Huawei] isis 1
[Huawei-isis-1] network-entity 49.0001.0010.0100.1001.00

# 3. 设置路由器级别(默认为level-1-2)
[Huawei-isis-1] is-level level-1-2

# 4. 进入接口视图,使能IS-IS
[Huawei] interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0] isis enable 1

# 5.(可选)配置接口级别
[Huawei-GigabitEthernet0/0/0] isis circuit-level level-1

9.2 高级配置

bash 复制代码
# 配置接口DIS优先级(广播网络中有效)
[Huawei] interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0] isis dis-priority 100 level-2

# 配置接口认证
[Huawei-GigabitEthernet0/0/0] isis authentication-mode md5 huawei123

# 修改LSP最大有效时间(缺省1200秒)
[Huawei] isis 1
[Huawei-isis-1] timer lsp-max-age 1500

# 修改LSP刷新周期(缺省900秒)
[Huawei-isis-1] timer lsp-refresh 1000

# 修改CSNP发送间隔(缺省10秒)
[Huawei] interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0] isis timer csnp 15 level-2

# 设置P2P链路的三次握手机制
[Huawei-GigabitEthernet0/0/0] isis ppp-negotiation 3-way

9.3 关键查看命令

bash 复制代码
[Huawei] display isis peer                      # 查看IS-IS邻居信息
[Huawei] display isis peer verbose              # 查看IS-IS邻居详细信息
[Huawei] display isis lsdb                      # 查看IS-IS LSDB数据库
[Huawei] display isis interface                 # 查看使能IS-IS的接口信息
[Huawei] display isis route                     # 查看IS-IS路由表
[Huawei] display isis spf-log                   # 查看SPF计算历史记录
[Huawei] display isis brief                     # 查看IS-IS进程简要信息
[Huawei] display isis graceful-restart status   # 查看IS-IS GR状态

十、知识要点速查

知识点 核心要点
IS-IS起源 ISO为OSI协议栈CLNS设计,后扩展到IP网络
路由器级别 Level-1(区域内)、Level-2(骨干)、Level-1-2(连接两者)
Level-1邻居 必须同一区域ID,只能与L1或L1-2建邻
Level-2邻居 不要求区域ID相同,可与L2或L1-2建邻
DIS选举 优先级0参与选举、可抢占、无备份;优先级优先→MAC地址最大
NET地址 格式为:区域ID . System ID . 00,System ID 12字符且区域内唯一
报文类型 Hello、LSP、CSNP(全量摘要)、PSNP(部分/请求/确认)
广播CSNP 由DIS周期性发送(缺省10秒),用于LSDB同步
P2P CSNP 只在第一次建立邻接关系时发送
PSNP角色 广播网:仅请求;P2P:请求+ACK确认
LSP参数 MaxAge缺省1200秒,刷新周期缺省900秒,差值须大于300秒
IPv6支持 新增TLV 232、TLV 236和NLPID 142

十一、常见问题排查

问题1:Level-1邻居无法建立

可能原因

  • 两端区域ID不一致
  • 接口级别配置不一致(一端配置了L1,另一端配置了L2)
  • 认证模式或口令不匹配

排查命令

bash 复制代码
[Huawei] display isis interface GigabitEthernet0/0/0
[Huawei] display isis peer

问题2:DIS选举不符合预期

原因:优先级参数配置错误。请检查Level-1和Level-2的优先级是否为独立配置。

bash 复制代码
# 查看接口的IS-IS配置,确认DIS优先级
[Huawei] display isis interface verbose

问题3:LSDB同步异常

在广播网络中,若LSDB无法同步,请确认CSNP是否由DIS正常发送。可通过抓包或display isis lsdb验证。缺省CSNP周期为10秒。

声明:本文档主要基于华为官方技术文档和RFC标准进行编写,具体部署和故障排查请以华为官方最新发布的产品文档为准。本文内容仅供参考学习,实际网络部署时应结合具体设备型号和软件版本进行验证。

相关推荐
一只小菜鸡..1 小时前
南京大学 操作系统 (JYY) 学习笔记:CPU 的局限、GPU 与 AI 时代的算力革命
人工智能·笔记·学习
happymagic2 小时前
vmware workstation Pro 虚拟机设定启停的时间段
运维·服务器·windows
所愿ღ2 小时前
SSM框架-Spring3
java·开发语言·笔记·spring
组合缺一3 小时前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·服务器·网络协议·http·solon
影视飓风TIM3 小时前
C++ STL 完整入门笔记[8]:deque 底层原理深度剖析
开发语言·c++·笔记
瓦学妹3 小时前
为什么您的AI总是显示“不支持的区域”?如何解决?
大数据·网络·人工智能
Zhang~Ling3 小时前
手写进程池:基于匿名管道的 Master-Slave 架构实战
linux·服务器·架构
凉、介4 小时前
ARMv8-A 指令学习
linux·笔记·学习·嵌入式·arm·指令
coward914 小时前
千兆以太网卡(Ethernet)驱动初始化完成,但是无法udhcpc获取ip
服务器·网络·嵌入式硬件·tcp/ip
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题 第211题】【10_网络协议篇】第2题:说一下什么是 HTTP 协议?
java·网络协议·http·https·web通信