IS-IS的全称是Intermediate System to Intermediate System,翻译过来就是"中间系统到中间系统"。这里的"中间系统"是OSI参考模型术语,专指具备网络层路由转发能力、能够在两个终端系统之间承担数据中转职责的网络设备,也就是我们通常所说的路由器;与之相对,"终端系统"(End System,简称ES)指的是网络边缘发起或终止通信的主机。因此IS-IS这个名称本身就点明了它的工作范围——它不是在主机与主机之间直接建立通信,而是在负责中继转发的路由器之间交换路由信息,从而让网络层的数据报能够被正确地逐跳转发到目的地。
这里必须先厘清一个容易让初学者困惑的关键背景:IS-IS最初并不是为TCP/IP网络设计的。它诞生于国际标准化组织(ISO)制定的OSI协议簇之中,最早的服务对象是OSI自己的网络层协议CLNP(无连接网络协议,Connectionless Network Protocol),对应到TCP/IP世界里大致相当于IP协议的地位。换言之,IS-IS原本是OSI体系里为CLNP这种"无连接网络服务"计算路由的路由协议,它的地址结构使用的是OSI定义的NSAP地址(网络服务访问点地址),而不是我们熟悉的IPv4或IPv6地址。这一出身决定了IS-IS在报文封装、地址表示、协议结构上都与传统的IP路由协议存在明显差异,考生如果不能先搞清楚这个"血统"问题,后面学起来会处处感到别扭。
既然IS-IS原本服务于OSI的CLNP,那么它为什么能在以IP为主流的现代网络中依然被广泛使用呢?关键在于后来出现的"集成IS-IS"(Integrated IS-IS)。集成IS-IS对原始的IS-IS协议进行了扩展,使它能够在同一套路由协议框架内同时承载IP路由信息和OSI路由信息。这个扩展是通过IS-IS报文中的TLV(类型-长度-值,Type-Length-Value)字段实现的——TLV是一种可扩展的字段结构,协议设计者只需定义新的TLV类型,就能让IS-IS携带新的路由信息类型,而不必改动协议的整体框架。正是借助TLV这种优雅的扩展机制,IS-IS顺理成章地"学会"了承载IPv4路由,后来又扩展到IPv6。
这一点的考试价值在于:命题人常常拿IS-IS与OSPF放在一起考查,而两者最根本的出身差异正是理解它们一切技术差异的起点。OSPF是IETF为IP网络量身定制的路由协议,它的报文直接封装在IP数据报中,协议号是89;而IS-IS出身于OSI体系,报文不依赖IP承载,而是直接封装在数据链路层的帧之上。这个封装层次上的差异,直接影响了两种协议在网络攻击防护、运行环境、故障排查等多个方面的表现,是后面深入理解IS-IS原理机制的一把钥匙。
IS-IS是一种典型的链路状态路由协议(Link-State Routing Protocol),它与RIP所代表的距离矢量路由协议(Distance-Vector Routing Protocol)在运行机理上有着本质区别。距离矢量协议的工作方式是"传说的传播"——每个路由器只把自己知道的路由表告诉邻居,邻居再根据自己的理解加工后告诉下一个邻居,路由信息在逐跳传递的过程中不断被改写,每个路由器看到的其实是"别人口中转述的世界"。而链路状态协议的工作方式则是"地图的复制"——每个路由器都把自己所连接的链路状态(哪些接口是通的、对端邻居是谁、链路代价是多少)描述成一份LSP(链路状态报文,Link State Protocol Data Unit,也常写作链路状态分组),然后把这份LSP洪泛(Flooding)给整个区域内的所有路由器。
洪泛是链路状态协议的核心机制。当一台路由器生成或更新了自己的LSP后,它会把这份LSP发送给所有邻居,邻居收到后先检查自己是否已经拥有这份LSP,如果没有或者这份LSP比本地保存的更新,就将其保存下来并继续转发给除来源之外的所有邻居。这样经过一轮洪泛,区域内的每一台路由器最终都会保存一份完全相同、内容一致的链路状态数据库(Link State Database,LSDB),也就是全网拓扑的完整地图。正因为每台路由器都拥有同样的地图,它们才能各自独立地运行最短路径优先(SPF)算法,计算出一棵以自己为根的最短路径树,从而推导出到达每个目的地的最优路由。这种"先同步地图、再各自计算"的模式,保证了区域内所有路由器对网络拓扑的认知高度一致,避免了距离矢量协议中常见的路由环路和计数到无穷问题。
要理解IS-IS的洪泛机制,就必须吃透LSP报文上三个至关重要的字段。第一个是序列号(Sequence Number),它用于标识LSP的新旧程度。每当路由器生成一份全新的LSP时,序列号从1开始递增;序列号越大,代表这份LSP越新。当路由器收到一份LSP时,如果其序列号比本地已保存的同源LSP更大,就认为这份是更新的,应当保存并继续洪泛;如果序列号更小或相等,则视为旧信息予以丢弃。正是序列号机制保证了洪泛过程不会陷入"旧消息反复倒腾"的死循环,也保证了每台路由器的LSDB最终能收敛到一致状态。
第二个是剩余寿命(Remaining Lifetime)。每份LSP都有一个初始寿命值,在洪泛出去后,该值会随着时间流逝而递减,就像一份有保质期的公告。当剩余寿命减到零时,这份LSP就会被从LSDB中删除。这个机制的巧妙之处在于,它天然地解决了一个棘手问题:如果某台路由器因为故障而无声无息地消失了,它此前洪泛出去的LSP不会永远留在全网其他路由器的数据库中成为"幽灵路由",而是会在寿命耗尽后被自动清除。此外,当某条路由需要撤销时,源路由器会洪泛一份剩余寿命设为零的LSP,收到该报文的路由器会立即删除对应的旧LSP,这被称为"老化清除"。
第三个是校验和(Checksum)。校验和用于检测LSP在传输过程中是否发生了比特错误,保证进入LSDB的拓扑信息是完整可靠的。序列号、剩余寿命、校验和三者协同工作,构成了IS-IS链路状态数据库维持新鲜度、正确性与一致性的底层保障,也是命题人热衷于在细节题中考查的对象。
当链路状态数据库通过洪泛同步完成后,每台路由器就进入SPF计算阶段。SPF算法本质上就是图论中的Dijkstra最短路径算法,它以本路由器为根节点,以链路状态数据库中记录的链路代价为边的权重,逐步扩展出一棵覆盖全网所有节点的最短路径树。算法的大致过程是:初始时把根节点加入已确定集合,其余节点标记为无穷远;随后反复从未确定集合中选出距离根节点最近的那个节点加入已确定集合,并用它去松弛(Relax)与其相邻节点的距离;如此循环,直到所有节点都被纳入最短路径树。
在IS-IS中,Hello报文是邻居关系建立与维持的基础。Hello报文按照级别分为Level-1 LAN Hello、Level-2 LAN Hello和点对点Hello三种类型,路由器通过周期性地发送Hello报文来发现邻居、协商参数并维系邻居关系。在广播网络上,L1与L2路由器分别使用不同的Hello报文,这也意味着L1路由器与L2路由器即便物理相连,也不会因为Hello报文而建立邻居关系,从报文层面印证了前文所述的级别约束。Hello报文中的保持时间(Hold Time)用于判定邻居是否仍然存活,若在保持时间内未收到对方的Hello报文,则宣告邻居失效,进而触发相应的链路状态更新与SPF重算。
值得注意的是,SPF计算并不是一次性的,而是由事件驱动的。每当LSDB因为某份LSP的新增、更新或删除而发生变化时,路由器就会重新运行SPF算法。然而频繁的全量重算会消耗大量CPU资源,为此IS-IS实现中引入了一种优化策略——增量SPF(Incremental SPF,简称i-SPF),它只对拓扑中受影响的部分做局部重算,而不必每次都对整张地图推倒重来。这种机制上的优化虽然通常不作为软考的直接考点,但它能帮助考生理解为什么链路状态协议在大型网络中依然能够稳定运行,也有助于在遇到"链路状态协议是否因为频繁重算而不可用"这类干扰项时做出正确判断。
IS-IS最鲜明的设计特色之一,就是它的两级层次结构。为了应对大规模网络,IS-IS把路由能力划分为两个级别(Level):Level-1(简称L1)负责区域内部路由,Level-2(简称L2)负责区域之间即骨干区域的路由。相应地,路由器被分为三种类型。第一种是Level-1路由器,它只维护本区域内的链路状态数据库,只了解区域内部的拓扑结构;当它需要把数据发往区域之外的目的地时,它并不关心具体的外部路径,而是通过一条默认路由把数据交给最近的Level-1-2路由器去处理。第二种是Level-2路由器,它运行在骨干区域,负责在不同区域之间传递路由信息,维护区域间的拓扑结构。第三种是Level-1-2路由器,它同时承担L1和L2两级的功能,既要参与本区域内的路由计算,又要作为区域与骨干之间的桥梁,把本区域的路由信息汇总后注入骨干,同时也把骨干的路由信息引入本区域。
这种"区域内部只管内部、跨区域交给骨干"的分工方式,与OSPF的区域划分思想异曲同工,但IS-IS在实现上有一个OSPF不具备的灵活性:OSPF的区域边界必须落在路由器上,一台路由器只能属于一个区域,充当区域边界的路由器被称为ABR(区域边界路由器);而IS-IS的区域边界落在链路上,一台路由器可以同时属于多个区域,只要它的某个接口属于另一个区域即可。这个差异是IS-IS与OSPF对比考查时的高频命题点,考生务必牢记"IS-IS边界在链路、OSPF边界在路由器"这一关键区别。
在广播型网络(如以太网)中,如果每台路由器都向其他所有路由器建立邻居关系并互相洪泛LSP,会形成"全网状"的邻居关系,报文数量将随路由器数量呈平方级增长,严重浪费带宽。为了解决这个问题,IS-IS引入了指定中间系统(Designated Intermediate System,简称DIS)机制:在一条
本篇完!