目录
一、IS-IS 协议简介
IS-IS(Intermediate System to Intermediate System),即中间系统到中间系统协议 ,是一种链路状态路由协议,最初由国际标准化组织 ISO 为无连接网络协议 CLNP(ConnectionLess Network Protocol)设计。随着 TCP/IP 协议的广泛应用,IETF 对 IS-IS 进行了扩充和修改,使其能够同时应用在 TCP/IP 和 OSI 环境中,这就是我们现在所说的集成 IS-IS(Integrated IS-IS 或 Dual IS-IS)。
在现代网络中,IS-IS 主要用于城域网和承载网,属于内部网关路由协议,用于自治系统内部。它与 TCP/IP 网络中的 OSPF 协议非常相似,都使用最短路径优先(SPF,Shortest Path First)算法进行路由计算。但相比之下,IS-IS 具有收敛速度快、扩展性强、运行在数据链路层因而抗攻击能力较强等优势,这些特性使得它非常适合实现大规模网络的互通,比如在大型企业网络和互联网服务提供商(ISP)网络中,IS-IS 发挥着至关重要的作用。
绘制一个简单的 IS-IS 在网络中应用的示意图如下:
在这个示意图中,企业总部路由器与分支机构路由器之间通过 IS-IS 协议进行路由信息的交互,实现不同分支机构网络之间的互联互通,而分支机构路由器与内部交换机的连接则展示了网络的层级结构,IS-IS 协议在其中保障了整个企业网络路由的高效与稳定。
二、IS-IS 协议基础概念
2.1 关键术语解释
在深入了解 IS-IS 协议之前,先熟悉一些关键术语,这有助于我们更好地理解协议的工作机制。
- IS(Intermediate System):即中间系统,在 IS-IS 协议中表示路由器 ,它是负责在不同网络之间转发数据包的设备。
- ES(End System):即终端系统,指的是网络中的终端设备,如计算机、服务器等,它们通过 IS 连接到网络中,不直接参与 IS-IS 的路由计算。
- DIS(Designated Intermediate System):指定中间系统,类似于 OSPF 中的 DR(指定路由器) 。在广播网络中,为了减少链路状态信息的泛洪,会选举一个 DIS,它负责生成伪节点 LSP(Link State PDU,链路状态协议数据单元),并代表该网络向其他路由器通告链路状态信息。
- LSP(Link State PDU):链路状态协议数据单元,用于携带路由信息,包含了路由器的链路状态、邻居信息、开销等,路由器通过交换 LSP 来构建和更新自己的链路状态数据库(LSDB) 。
IS 作为网络中的路由设备,连接着 ES,在广播网络环境下选举出 DIS,而 DIS 和 IS 都与 LSP 产生关联,LSP 在 IS 之间交换,承载着关键的路由信息,这几个关键术语相互关联,共同构成了 IS-IS 协议运行的基础元素。
2.2 地址类型
IS-IS 协议中涉及到两种重要的地址类型:NSAP 和 NET。
- NSAP(Network Service Access Point):网络服务访问点地址,用于标识网络层服务,类似 TCP/IP 中的 IP 地址概念,但结构不同 。一个 NSAP 地址由区域地址(Area Address)、系统 ID(System ID)和 N - selector(NSAP Selector)组成。区域地址用于标识网络中的区域,系统 ID 用于唯一标识区域内的节点(路由器或主机),N - selector 则类似于 TCP/IP 中的端口号,用于指示选定的服务。在 IS-IS 中,N - selector 通常为 0。
- NET(Network Entity Title):网络实体标记,是一种特殊的 NSAP 地址,其 N - selector 部分固定为 0,用于唯一标识一个 IS-IS 路由器 。也就是说,NET 主要用于标识路由器本身,而不是具体的服务。
在 IS-IS 协议中,NSAP 和 NET 地址起着至关重要的作用。路由器通过 NET 地址来标识自身,在建立邻居关系和交换路由信息时,NET 地址用于识别对等体。而 NSAP 地址则在路由计算和数据包转发过程中发挥作用,路由器根据 NSAP 地址中的区域地址和系统 ID 来构建和维护链路状态数据库,计算到达不同目的地的最优路由 。例如,当一个路由器接收到一个 LSP 时,会根据 LSP 中包含的 NSAP 地址信息来更新自己的 LSDB,并重新计算路由表。
2.3 路由器级别
IS-IS 协议定义了三种不同级别的路由器,它们在网络中承担着不同的角色和功能。
- Level - 1 路由器:负责区域内的路由,它只与属于同一区域的 Level - 1 和 Level - 1/2 路由器形成邻居关系 。Level - 1 路由器维护一个 Level - 1 的链路状态数据库,该数据库仅包含本区域的路由信息。对于目的地址不在本区域的数据包,Level - 1 路由器会将其转发给最近的 Level - 1/2 路由器。
- Level - 2 路由器:负责区域间的路由,可以与同一区域或者其它区域的 Level - 2 和 Level - 1/2 路由器形成邻居关系 。Level - 2 路由器维护一个 Level - 2 的链路状态数据库,其中包含了整个骨干区域(由所有 Level - 2 和 Level - 1/2 路由器组成)的路由信息,用于实现不同区域之间的通信。
- Level - 1/2 路由器:同时参与 Level - 1 和 Level - 2 路由,它可以与同一区域的 Level - 1 路由器形成 Level - 1 邻居关系,也可以与其他区域的 Level - 2 路由器形成 Level - 2 邻居关系 。Level - 1/2 路由器维护两个链路状态数据库,分别用于区域内和区域间的路由计算,通常位于区域边界,起到连接不同区域的作用。
以下绘制一个简单的网络拓扑图,展示不同级别路由器的作用和关系:
在这个拓扑图中,区域 1 和区域 2 内的 Level - 1 路由器通过 Level - 1 邻居关系进行区域内的路由信息交互,而 Level - 1/2 路由器一方面与本区域的 Level - 1 路由器建立邻居关系,另一方面通过 Level - 2 邻居关系与其他区域的 Level - 1/2 路由器和 Level - 2 路由器相连,Level - 2 路由器则构成了骨干区域,负责区域间的路由,这样不同级别的路由器协同工作,实现了整个网络的路由功能。
三、IS-IS 协议原理剖析
3.1 邻居建立机制
在 IS-IS 协议中,邻居建立是实现路由信息交换的基础。建立邻居关系需要满足一系列条件:
- 只有同一层次的相邻路由器才有可能成为邻居。例如,Level - 1 路由器只能与同一区域的 Level - 1 或 Level - 1/2 路由器建立邻居关系;Level - 2 路由器可以与其他区域的 Level - 2 或 Level - 1/2 路由器建立邻居关系。
- 对于 Level - 1 路由器来说,区域号必须一致。这确保了它们在同一个区域内进行路由信息交互。
- 链路两端 IS-IS 接口的网络类型必须一致。IS-IS 支持广播链路和点到点链路,不同网络类型的接口建立邻居的方式有所不同。
- 链路两端 IS-IS 接口的地址必须处于同一网段(在实际实现中,因为主要在 IP 上运行 IS-IS,所以需要检查 IP 地址) 。若接口配置了从 IP,只要双方有某个 IP(主 IP 或者从 IP)在同一网段,就能建立邻居,不一定要主 IP 相同。当链路两端 IS-IS 接口的地址不在同一网段时,如果配置接口对接收的 Hello 报文不作 IP 地址检查,也可以建立邻居关系(对于 P2P 接口,可以配置接口忽略 IP 地址检查;对于以太网接口,需要将以太网接口模拟成 P2P 接口,然后才可以配置接口忽略 IP 地址检查)。
在广播链路中,以 Level - 2 路由器为例,邻居建立过程如下:
- RouterA 广播发送 Level - 2 LAN IIH(IS - to - IS Hello PDUs,IS-IS hello 协议数据单元 ),此报文中无邻居标识。
- RouterB 收到此报文后,将自己和 RouterA 的邻居状态标识为 Initial(初始状态) 。然后,RouterB 再向 RouterA 回复 Level - 2 LAN IIH,此报文中标识 RouterA 为 RouterB 的邻居。
- RouterA 收到此报文后,将自己与 RouterB 的邻居状态标识为 Up(已建立状态)。然后 RouterA 再向 RouterB 发送一个标识 RouterB 为 RouterA 邻居的 Level - 2 LAN IIH。
- RouterB 收到此报文后,将自己与 RouterA 的邻居状态标识为 Up,至此两个路由器成功建立了邻居关系。因为是广播网络,需要选举 DIS,所以在邻居关系建立后,路由器会等待两个 Hello 报文间隔,再进行 DIS 的选举,Hello 报文中包含 Priority 字段,Priority 值最大的将被选举为该广播网的 DIS,若优先级相同,接口 MAC 地址较大的被选举为 DIS。
在 P2P 链路中,邻居关系的建立分为两次握手机制和三次握手机制:
- 两次握手机制:只要路由器收到对端发来的 Hello 报文,就单方面宣布邻居为 Up 状态,建立邻居关系。这种方式存在明显的缺陷,当路由器间存在两条及以上的链路时,如果某条链路上到达对端的单向状态为 Down,而另一条链路同方向的状态为 Up,路由器之间还是能建立起邻接关系,SPF 在计算时会使用状态为 UP 的链路上的参数,这就导致没有检测到故障的路由器在转发报文时仍然试图通过状态为 Down 的链路。
- 三次握手机制:通过三次发送 P2P 的 IS - IS Hello PDU 最终建立起邻居关系,类似广播邻居关系的建立。这种方式下,路由器只有在知道邻居路由器也接收到它的报文时,才宣布邻居路由器处于 Up 状态,从而建立邻居关系,解决了不可靠点到点链路中存在的问题。
时序图呈现广播和 P2P 链路邻居建立过程如下:
通过这个时序图,可以清晰地看到广播链路和 P2P 链路(三次握手机制)中邻居建立的步骤和顺序,以及每个步骤中路由器之间的交互和状态变化。
3.2 链路状态数据库(LSDB)
链路状态数据库(LSDB,Link - State Database)是 IS-IS 协议的核心组件之一,它存储了整个网络的链路状态信息,包括路由器之间的连接状态、链路成本(metric)等。LSDB 的作用至关重要,它为路由器提供了构建完整网络拓扑视图的基础,使得路由器能够基于这些信息计算出到达各个目的地的最优路由。
当一个 IS-IS 路由器启动时,它会首先与相邻路由器建立邻居关系。一旦邻居关系建立成功,路由器就会开始交换链路状态协议数据单元(LSP,Link State PDU)。每个 LSP 包含了路由器自身的链路状态信息,如直连链路的接口状态、与邻居的连接情况等。路由器接收到邻居发送的 LSP 后,会将其存储到本地的 LSDB 中。
LSDB 的同步是确保网络中所有路由器拥有一致网络拓扑视图的关键过程。在广播网络中,新加入的路由器与 DIS 同步 LSDB 数据库的过程如下:
- 新加入的路由器 RouterC 首先发送 Hello 报文,与该广播域中的路由器建立邻居关系。
- 建立邻居关系之后,RouterC 等待 LSP 刷新定时器超时,然后将自己的 LSP 发往组播地址(Level - 1:01 - 80 - C2 - 00 - 00 - 14;Level - 2:01 - 80 - C2 - 00 - 00 - 15),这样网络上所有的邻居都将收到该 LSP。
- 该网段中的 DIS 会把收到 RouterC 的 LSP 加入到 LSDB 中,并等待 CSNP(Complete Sequence Number Protocol Data Unit,全序列号协议数据单元)报文定时器超时并发送 CSNP 报文,进行该网络内的 LSDB 同步。CSNP 报文包含了 LSDB 中所有 LSP 的摘要信息。
- RouterC 收到 DIS 发来的 CSNP 报文,对比自己的 LSDB 数据库,然后向 DIS 发送 PSNP(Partial Sequence Number Protocol Data Unit,部分序列号协议数据单元)报文请求自己没有的 LSP。
- DIS 收到该 PSNP 报文请求后向 RouterC 发送对应的 LSP 进行 LSDB 的同步。
在 P2P 链路上,路由器之间直接交换 LSP,并通过 PSNP 报文来确认和请求缺失的 LSP,以实现 LSDB 的同步。
当网络拓扑发生变化时,例如链路故障或新链路加入,受影响的路由器会生成新的 LSP,并将其泛洪(flooding)到整个网络中。泛洪是指当一个路由器向相邻路由器通告自己的 LSP 后,相邻路由器再将同样的 LSP 报文传送到除发送该 LSP 的路由器外的其它邻居,并这样逐级将 LSP 传送到整个层次内所有路由器的一种方式。通过这种 “泛洪”,整个层次内的每一个路由器就都可以拥有相同的 LSP 信息,并保持 LSDB 的同步。每一个 LSP 都拥有一个标识自己的 4 字节的序列号,在路由器启动时所发送的第一个 LSP 报文中的序列号为 1,以后当需要生成新的 LSP 时,新 LSP 的序列号在前一个 LSP 序列号的基础上加 1,更高的序列号意味着更新的 LSP。
数据库同步流程如下:
这个流程图清晰地展示了在广播网络环境下,新路由器加入时与 DIS 进行 LSDB 同步的完整流程,从建立邻居关系开始,到 LSP 的发送、接收、对比以及最终的同步,各个环节一目了然。
3.3 最短路径优先(SPF)算法
最短路径优先(SPF,Shortest Path First)算法是 IS-IS 协议用于计算路由的核心算法,也被称为 Dijkstra 算法。其基本原理是:以本路由器为根节点,通过遍历 LSDB 中的链路状态信息,构建一个有向图,图中的节点表示路由器,边表示链路,边的权值表示链路的开销(metric) 。然后,算法从根节点开始,逐步寻找距离根节点最近的节点,并将这些节点加入到最短路径树(SPT,Shortest Path Tree)中,直到所有可达节点都被包含在最短路径树中。
假设我们有一个简单的网络拓扑,包含路由器 R1、R2、R3、R4,它们之间的链路及开销如下:
R1 与 R2 相连,开销为 10;
R1 与 R3 相连,开销为 20;
R2 与 R3 相连,开销为 5;
R2 与 R4 相连,开销为 15;
R3 与 R4 相连,开销为 25。
网络拓扑图如下:
以 R1 为根节点,使用 SPF 算法计算到达其他节点的最短路径过程如下:
- 初始时,最短路径树中只有根节点 R1。
- 从 R1 出发,有两条链路分别连接到 R2 和 R3,开销分别为 10 和 20,所以选择开销最小的链路(R1 - R2,开销为 10),将 R2 加入最短路径树。
- 此时,从 R1 和 R2 出发,有四条链路(R1 - R3,R2 - R3,R2 - R4,R3 - R4),其中 R2 - R3 的开销为 5(R1 通过 R2 到达 R3 的总开销为 10 + 5 = 15,小于 R1 直接到 R3 的开销 20),所以选择 R2 - R3 链路,将 R3 加入最短路径树。
- 接着,从 R1、R2、R3 出发,有三条链路(R2 - R4,R3 - R4),其中 R2 - R4 的开销为 15,小于 R3 - R4 的开销 25,所以选择 R2 - R4 链路,将 R4 加入最短路径树。
最终得到的最短路径树如下:
通过这个过程,R1 就计算出了到达 R2、R3、R4 的最短路径,这些路径信息将被用于构建路由表,指导数据包的转发。SPF 算法的高效性和准确性确保了 IS-IS 协议能够快速适应网络拓扑变化,提供稳定和高效的路由服务。
四、IS-IS 协议报文类型
IS-IS 协议通过多种类型的协议数据单元(PDU,Protocol Data Unit)来实现邻居发现、链路状态信息交换以及链路状态数据库的同步等功能 。这些报文在 IS-IS 网络中起着至关重要的作用,下面详细介绍几种主要的 IS-IS 协议报文类型。
4.1 Hello PDU(IIH)
Hello PDU,也称为 IIH(IS - to - IS Hello PDUs),主要用于邻居发现和邻接关系的维护 。在不同的网络类型中,IIH 的格式和作用略有差异。
- 广播网络:在广播网络(如以太网)中,Level - 1 路由器使用 Level - 1 LAN IIH,Level - 2 路由器使用 Level - 2 LAN IIH 。它们的目的 MAC 地址不同,Level - 1 LAN IIH 的目的 MAC 地址为 01 - 80 - C2 - 00 - 00 - 14,代表所有 Level - 1 IS;Level - 2 LAN IIH 的目的 MAC 地址为 01 - 80 - C2 - 00 - 00 - 15,代表所有 Level - 2 IS 。这些 IIH 报文中包含了诸如区域地址、系统 ID、优先级、LAN ID 等重要信息。其中,优先级字段用于 DIS 的选举,优先级数值最大的被选为 DIS;LAN ID 字段包括 DIS 的 System ID 和一字节的伪节点 ID,用于标识广播网络中的伪节点。
- 点到点网络:在点到点网络(如 PPP 链路)中,使用 P2P IIH 。P2P IIH 与 LAN IIH 有一些区别,它没有 Priority 和 LAN ID 字段,取而代之的是 Local Circuit ID 字段,表示本地链路 ID 。P2P IIH 同样包含源 ID、保持时间等关键信息,用于建立和维护点到点链路上的邻居关系。
绘制 IIH 报文格式如下(以广播网络 Level - 2 LAN IIH 为例):
在这个报文中,各个字段各司其职,域内路由选择协议鉴别符用于标识协议类型,长度指示符明确 PDU 头部长度,版本和协议标识扩展字段确保协议的兼容性,ID 长度和源 ID 用于标识发送者,保持时间控制邻居关系的维持时长,PDU 长度表示整个报文的大小,优先级和 LAN ID 在广播网络中起着关键作用,可变长度字段则用于携带其他可选信息,如区域地址、认证信息等。
4.2 链路状态 PDU(LSP)
链路状态 PDU(LSP,Link State PDU)是 IS-IS 协议中用于携带链路状态信息的重要报文,它包含了路由器的链路状态、邻居信息、开销等关键数据,这些信息对于路由器构建和更新链路状态数据库(LSDB)至关重要。
LSP 可以分为 Level - 1 LSP 和 Level - 2 LSP:
- Level - 1 LSP:由 Level - 1 路由器生成和传送,包含了本区域内的链路状态信息,用于区域内的路由计算 。Level - 1 路由器通过交换 Level - 1 LSP,了解本区域内各个链路的状态和邻居路由器的信息,从而构建出本区域的拓扑图,为区域内的数据包转发提供路由依据。
- Level - 2 LSP:由 Level - 2 路由器生成和传送,包含了区域间的链路状态信息,用于区域间的路由计算 。Level - 2 路由器通过交换 Level - 2 LSP,掌握整个骨干区域(由所有 Level - 2 和 Level - 1/2 路由器组成)的拓扑结构,实现不同区域之间的通信。
当网络拓扑发生变化时,比如链路故障或新链路加入,受影响的路由器会生成新的 LSP 。以链路故障为例,假设 RouterA 与 RouterB 之间的链路出现故障,RouterA 会立即感知到这一变化,然后生成一个新的 LSP,在这个新 LSP 中,会将与 RouterB 相连的链路状态标记为不可用,并更新相关的度量值(metric) 。之后,RouterA 将这个新的 LSP 发送给所有邻居路由器。
LSP 的泛洪过程如下:
- RouterA 向其所有邻居(假设为 RouterC 和 RouterD)发送新生成的 LSP 。
- RouterC 和 RouterD 收到 LSP 后,首先检查 LSP 的序列号,若发现该序列号比自己 LSDB 中对应的 LSP 序列号更新(序列号越大表示越新),则将新的 LSP 存储到本地的 LSDB 中 。
- RouterC 和 RouterD 再将这个新的 LSP 转发给除了从 RouterA 接收该 LSP 的接口之外的其他所有邻居 。例如,RouterC 将 LSP 转发给 RouterE,RouterD 将 LSP 转发给 RouterF,如此逐级传播,最终使得整个网络中的路由器都能接收到这个新的 LSP,从而实现全网 LSDB 的同步更新 。
LSP 泛洪流程如下:
在这个泛洪过程中,每个路由器都扮演着信息传播的角色,通过不断地接收、存储和转发 LSP,确保了网络中所有路由器的 LSDB 能够及时更新,反映出最新的网络拓扑变化,为 SPF 算法计算最优路由提供准确的数据基础 。
4.3 完全序列号数据包(CSNP)和部分序列号数据包(PSNP)
完全序列号数据包(CSNP,Complete Sequence Number Protocol Data Unit)和部分序列号数据包(PSNP,Partial Sequence Number Protocol Data Unit)主要用于链路状态数据库(LSDB)的同步。
- CSNP:CSNP 包含了 LSDB 中所有 LSP 的摘要信息,就像是一本目录,列出了 LSDB 中所有 LSP 的关键信息,如 LSP 的序列号、校验和、生存时间等 。在广播网络中,DIS 会周期性地发送 CSNP(默认发送周期为 10 秒),非 DIS 路由器接收到 CSNP 后,会将其与自己本地的 LSDB 进行对比,检查自己的 LSDB 是否完整,是否有需要更新的 LSP。
- PSNP:PSNP 有两个主要作用,一是用于确认收到的 LSP,二是当发现 LSDB 不同步时,用于请求邻居发送新的 LSP 。在点到点网络中,PSNP 被广泛用于确认收到的 LSP,当路由器接收到 LSP 后,会发送 PSNP 给邻居,告知对方自己已成功接收;在广播网络和点到点网络中,如果路由器发现自己的 LSDB 与邻居的 LSDB 不一致,就会发送 PSNP,请求邻居发送自己缺失或更新的 LSP。
在 LSDB 同步过程中,CSNP 和 PSNP 的交互过程如下(以广播网络为例):
- DIS 周期性地发送 CSNP,其中包含了整个 LSDB 中所有 LSP 的摘要信息 。
- 非 DIS 路由器接收到 CSNP 后,将其与自己本地的 LSDB 进行详细对比 。假设 RouterX 是一个非 DIS 路由器,它在对比过程中发现自己的 LSDB 中缺少 LSP - 3,并且 LSP - 5 的序列号比 CSNP 中的要旧。
- RouterX 会向 DIS 发送 PSNP,在 PSNP 中明确请求 LSP - 3 以及更新的 LSP - 5 。
- DIS 收到 PSNP 后,根据请求将 LSP - 3 和最新的 LSP - 5 发送给 RouterX 。
- RouterX 收到所需的 LSP 后,更新自己的 LSDB,完成与 DIS 的 LSDB 同步 。
时序图展示在 LSDB 同步中的交互过程如下:
通过 CSNP 和 PSNP 的协同工作,IS-IS 协议能够高效地实现 LSDB 的同步,确保网络中所有路由器的 LSDB 保持一致,为准确的路由计算奠定坚实基础,保障网络的稳定运行和数据包的正确转发。
五、IS-IS 协议的特点与优势
5.1 快速收敛
IS-IS 协议具有快速收敛的特点,这使得它在网络拓扑发生变化时,能够迅速调整路由,保障网络的稳定运行。其快速收敛主要得益于以下几个方面:
- 增量 SPF 算法(I-SPF):传统的 Dijkstra SPF 算法在网络拓扑变化时,会导致所有路由器进行一次完整的 SPF 计算,资源开销大。而增量 SPF 算法改进了这一过程,所有节点仅在首次进行完整的 SPF 计算并构建最短路径树(SPT) 。之后,当网络发生变化时,如新增或删除路由器,仅将新路由器作为叶子节点添加到现有 SPT,只需进行简单的 SPF 计算;若链路故障不在 SPT 上,则对节点无影响;若链路开销变化导致最优路径改变,或 SPT 上路径出现故障,也只需对受影响部分进行计算,避免了重复完整计算,节省了网络资源,加快了收敛速度。
- 部分路由计算(PRC):当网络中增加末梢链路或子网网段发生变化,未导致整个拓扑改变时,IS-IS 协议不需要进行 SPF 计算,只需像距离矢量路由协议那样,将新的链路对应的路由及 metric 信息添加进路由表,从而节省了设备的开销 。例如,当一个路由器接收到一个只有 IP Reachability 信息的 LSP 后,将其中的网络前缀信息作为路由安装进路由表即可,不需要重新计算 SPF。
- LSP 快速扩散:正常情况下,当 IS-IS 收到其它路由器发来的 LSP 时,如果此 LSP 比本地 LSDB 中相应的 LSP 要新,则更新 LSDB 中的 LSP,并用一个定时器定期将 LSDB 内已更新的 LSP 扩散出去 。LSP 快速扩散特性改进了这种方式,使能了此特性的设备收到一个或多个较新的 LSP 时,在路由计算之前,先将小于指定数目的 LSP 扩散出去,加快 LSDB 的同步过程,进而加快了整个网络的收敛。
以一个大型企业网络为例,该企业网络由多个分支机构和数据中心组成,通过 IS-IS 协议实现互联。当其中一个分支机构的链路出现故障时,IS-IS 协议利用上述快速收敛机制,在短时间内完成路由的重新计算和调整,使得数据包能够迅速切换到其他可用链路进行传输,保障了分支机构与其他部分的通信,减少了业务中断的时间。
在链路故障后,IS-IS 协议通过快速收敛,迅速切换链路,保障了网络的连通性,体现了其在网络稳定性方面的重要作用。
5.2 良好的扩展性
IS-IS 协议具备良好的扩展性,能够支持大规模网络和多区域的部署,这主要体现在以下几个方面:
- 层次化结构:IS-IS 协议采用两级的分层结构,将网络划分为不同的区域,通过 Level - 1 路由器负责区域内路由,Level - 2 路由器负责区域间路由,Level - 1/2 路由器连接不同区域 。这种层次化结构使得网络的管理和扩展更加方便,每个区域内的路由信息只在本区域内传播,减少了路由信息的泛滥,降低了网络的复杂度,提高了网络的可扩展性。
- 支持大量路由条目:IS-IS 协议在设计时就考虑到了大规模网络的需求,其路由计算和存储资源的使用相对高效,能够支持更多的路由条目和节点 。例如,IS-IS 有虚拟系统的概念,可分 50 个虚拟系统,每个虚拟系统 256 个 LSP 分片,这使得它能够适应大型网络中复杂的路由需求。
- TLV 结构的灵活性:IS-IS 协议使用类型 - 长度 - 值(TLV,Type - Length - Value)结构来携带路由信息,这种结构具有很强的灵活性,易于扩展和增加新功能 。当网络中需要支持新的特性或协议时,只需在 TLV 中添加相应的类型和值,而无需对整个协议进行大规模修改,为网络的扩展提供了便利。
以下绘制一个大型网络拓扑图,展示 IS-IS 协议的扩展性:
在这个大型网络拓扑中,多个区域通过 Level - 1/2 路由器和 Level - 2 路由器相互连接,IS-IS 协议的层次化结构和扩展性得以充分体现,即使网络规模不断扩大,新的区域或节点加入,也能通过这种结构有效地进行路由管理和扩展。
5.3 其他特性
除了快速收敛和良好的扩展性外,IS-IS 协议还具有以下特性:
- 支持 VLSM 和 CIDR:IS-IS 协议支持可变长子网掩码(VLSM,Variable - Length Subnet Masking)和无类别域间路由(CIDR,Classless Inter - Domain Routing) 。这使得网络管理员可以根据实际需求灵活地划分子网,提高 IP 地址的利用率,同时也便于进行路由汇总,减少路由表的条目数量,提高路由查找的效率。例如,在一个企业网络中,不同部门可能需要不同数量的 IP 地址,通过 VLSM 技术,管理员可以为每个部门分配合适大小的子网,避免 IP 地址的浪费。
- 认证功能:IS-IS 协议支持认证功能,包括邻居认证和区域 / 域认证 。邻居认证用于在路由器之间建立邻接关系时验证身份,防止非法设备接入网络;区域 / 域认证则对特定 IS-IS 区域或整个路由域内的路由更新信息进行完整性校验,确保数据未被篡改 。认证方式通常包括明文认证和 HMAC - MD5 加密认证等,明文认证简单但安全性较低,适用于低风险环境;HMAC - MD5 加密认证通过哈希算法生成密钥,安全性更高 。在企业核心网络或运营商骨干网等对安全性要求较高的场景中,配置 IS-IS 认证可以有效防止路由欺骗攻击,保障数据完整性,满足合规性要求。
- 与 IP 协议无关:IS-IS 协议最初是为无连接网络协议 CLNP 设计的,后来经过扩展和修改,使其能够同时应用在 TCP/IP 和 OSI 环境中 。它在 IP 层下工作,使用 CLNS(Connectionless Network Service,无连接网络服务)进行邻居发现和拓扑构建,这意味着它不直接依赖于 IP 层 。这种与 IP 协议无关的特性使得 IS-IS 在一些情况下更具鲁棒性,特别是在处理 IP 配置错误或网络初始化时,能够提供更稳定的路由服务 。在同时需要支持多种网络层协议(如 IPv4、IPv6、CLNP 等)的复杂网络环境中,IS-IS 协议基于二层的特性,通过 TLV 扩展可以很好地适应不同协议的需求,实现多协议的路由。
六、IS-IS 协议在软考中的考察要点
6.1 常见考点梳理
在软考中级网络工程师考试中,IS-IS 协议是一个重要的考察点,主要涵盖以下几个方面的知识点:
- 协议基础概念:包括 IS-IS 协议的定义、特点、与其他路由协议(如 OSPF)的区别和联系等。考生需要理解 IS-IS 协议作为链路状态路由协议的本质,掌握其使用 SPF 算法进行路由计算的原理,以及与 OSPF 在区域划分、报文类型、收敛速度等方面的差异。
- 地址与路由器级别:熟悉 NSAP 和 NET 地址的结构和作用,理解不同级别路由器(Level - 1、Level - 2、Level - 1/2)的功能和在网络中的角色 。比如,要清楚 Level - 1 路由器负责区域内路由,维护 Level - 1 的 LSDB;Level - 2 路由器负责区域间路由,维护 Level - 2 的 LSDB;Level - 1/2 路由器则连接不同区域,同时维护两个 LSDB。
- 邻居建立与数据库同步:掌握邻居建立的条件和过程,以及链路状态数据库(LSDB)同步的机制 。例如,邻居建立需要满足层次相同、区域号一致(对于 Level - 1 路由器)、网络类型和接口地址匹配等条件;LSDB 同步涉及 LSP 的泛洪、CSNP 和 PSNP 的交互等过程。
- 报文类型与功能:了解 IS-IS 协议的各种报文类型(IIH、LSP、CSNP、PSNP)的作用、格式和发送机制 。比如,IIH 用于邻居发现和邻接关系维护,LSP 携带链路状态信息,CSNP 用于 LSDB 同步时通告 LSP 摘要,PSNP 用于确认 LSP 和请求缺失的 LSP。
- 路由计算与收敛:理解 SPF 算法在 IS-IS 协议中的应用,以及 IS-IS 协议快速收敛的特性和实现方式 。例如,通过增量 SPF 算法(I-SPF)和部分路由计算(PRC)等机制,减少网络拓扑变化时的路由计算量,加快收敛速度。
6.2 真题解析
下面通过一道软考真题来深入理解 IS-IS 协议的考察方式和解题思路。
【真题】在 IS-IS 协议中,关于 Level - 1 路由器和 Level - 2 路由器的描述,错误的是( )。
A. Level - 1 路由器只与属于同一区域的 Level - 1 和 Level - 1/2 路由器形成邻居关系
B. Level - 2 路由器可以与同一或者不同区域的 Level - 2 路由器或者其它区域的 Level - 1/2 路由器形成邻居关系
C. Level - 1 路由器维护一个 Level - 1 的链路状态数据库,该数据库包含本区域和其他区域的路由信息
D. Level - 2 路由器维护一个 Level - 2 的链路状态数据库,该数据库包含区域间的路由信息
【解析】
- 分析选项 A:Level - 1 路由器主要负责区域内的路由,根据 IS-IS 协议的邻居建立规则,它只与属于同一区域的 Level - 1 和 Level - 1/2 路由器形成邻居关系,选项 A 描述正确。
- 分析选项 B:Level - 2 路由器负责区域间的路由,它的邻居关系更为广泛,可以与同一或者不同区域的 Level - 2 路由器或者其它区域的 Level - 1/2 路由器形成邻居关系,选项 B 描述正确。
- 分析选项 C:Level - 1 路由器仅维护一个 Level - 1 的链路状态数据库,该数据库只包含本区域的路由信息,对于其他区域的路由信息,Level - 1 路由器是不包含在其 Level - 1 LSDB 中的,当需要访问其他区域时,它会将报文转发给最近的 Level - 1/2 路由器,所以选项 C 描述错误。
- 分析选项 D:Level - 2 路由器维护一个 Level - 2 的链路状态数据库,这个数据库包含了区域间的路由信息,用于实现不同区域之间的通信,选项 D 描述正确。
综上,答案是 C。通过对这道真题的解析,我们可以看到软考中对于 IS-IS 协议路由器级别的考察重点在于对不同级别路由器功能、邻居关系和链路状态数据库内容的理解 。在备考过程中,考生需要准确掌握这些关键知识点,通过分析真题,总结解题方法和技巧,提高应对考试的能力。
七、总结与展望
7.1 内容回顾
本文深入探讨了软考中级网络工程师知识点之 IS-IS 协议,从其基础概念到工作原理,再到在软考中的考察要点。IS-IS 作为一种链路状态路由协议,在现代网络中,尤其是大规模网络环境下扮演着重要角色。它通过独特的邻居建立机制、链路状态数据库同步过程以及最短路径优先算法,实现了高效的路由计算和快速收敛,确保网络的稳定运行和数据的可靠传输。
在基础概念方面,我们了解了 IS-IS 协议中的关键术语,如 IS、ES、DIS、LSP 等,以及地址类型 NSAP 和 NET,不同级别的路由器(Level - 1、Level - 2、Level - 1/2)各自的功能和在网络中的位置 。这些概念是理解 IS-IS 协议工作机制的基石。
协议原理剖析部分,详细阐述了邻居建立机制,包括广播链路和点到点链路中邻居建立的不同过程和条件;链路状态数据库(LSDB)的构建和同步机制,以及最短路径优先(SPF)算法在路由计算中的应用 。这些原理共同构成了 IS-IS 协议的核心运行逻辑。
对于 IS-IS 协议报文类型,如 Hello PDU(IIH)、链路状态 PDU(LSP)、完全序列号数据包(CSNP)和部分序列号数据包(PSNP),分别介绍了它们的作用、格式和在协议运行中的交互过程。这些报文是 IS-IS 协议实现邻居发现、链路状态信息交换和数据库同步的重要载体。
IS-IS 协议的特点与优势,如快速收敛、良好的扩展性、支持 VLSM 和 CIDR、认证功能以及与 IP 协议无关等特性,使其在网络中具有很强的适应性和竞争力。这些特性在实际网络部署和运营中发挥着关键作用。
在软考中,IS-IS 协议的常见考点涵盖了协议基础概念、地址与路由器级别、邻居建立与数据库同步、报文类型与功能、路由计算与收敛等方面 。通过真题解析,我们明确了考试的重点和解题思路。IS-IS 协议是软考中级网络工程师知识体系中的重要组成部分,对于理解和构建现代网络具有重要意义。
7.2 学习建议
对于备考软考中级网络工程师的读者,以下是一些学习 IS-IS 协议的建议和方法:
- 深入理解基础概念:IS-IS 协议的基础概念较多且相互关联,务必扎实掌握。可以通过绘制思维导图、制作概念卡片等方式,梳理各个概念之间的关系,加深记忆。例如,将不同级别的路由器、地址类型、报文类型等概念分别列出,并注明它们之间的联系和区别。
- 结合拓扑图理解原理:在学习 IS-IS 协议原理时,结合实际的网络拓扑图进行分析,会更加直观易懂 。可以自己动手绘制简单的网络拓扑,标注出不同级别路由器、链路以及报文的传输路径,模拟邻居建立、LSDB 同步和路由计算的过程 。像前面介绍的各种拓扑图和流程时序图,都可以帮助我们更好地理解。
- 多做练习题和真题:通过做练习题和真题,能够熟悉考试题型和考点,检验自己对知识的掌握程度 。在做题过程中,要注重分析错题,找出自己的薄弱环节,有针对性地进行复习和强化训练 。可以将真题按照知识点进行分类,集中练习某个知识点的题目,加深对该知识点的理解和应用能力。
- 搭建实验环境实践:利用模拟器(如华为 eNSP、GNS3 等)搭建 IS-IS 协议的实验环境,进行实际的配置和调试 。在实践过程中,能够更深刻地理解协议的运行机制,遇到问题并解决问题,积累实践经验 。比如配置不同级别的路由器、观察邻居建立过程、模拟网络拓扑变化等实验,都能让我们对 IS-IS 协议有更深入的认识。
- 参考多种学习资料:不要局限于单一的学习资料,可以参考教材、在线课程、技术博客、论坛等多种资源 。不同的资料可能会从不同的角度讲解 IS-IS 协议,相互补充,有助于全面理解 。例如,教材可以提供系统的知识框架,在线课程可以通过视频讲解更生动地呈现原理,技术博客和论坛则能让我们了解到实际应用中的经验和技巧。
希望以上建议和方法能够帮助读者更好地学习 IS-IS 协议,顺利通过软考中级网络工程师考试,在网络工程领域取得更好的发展。