骨干网的绝对主角:IS-IS 路由协议深度拆解与多厂商工程实战指南
在大型运营商骨干网、超大规模数据中心Data Center Fabric以及现代分段路由Segment Routing/SRv6的底层架构中IS-ISIntermediate System to Intermediate System中间系统到中间系统路由协议始终占据着核心地位。与运行在 IP 层之上的 OSPF 相比IS-IS 凭借其直接封装在数据链路层的无 IP 依赖性、天然支持新协议扩展的 TLV 架构以及极高的大规模网络收敛稳定性成为了众多网络架构师的终极选择。本文将基于工程实战视角对 IS-IS 协议的报文底层、交互机制、多厂商华为/华三/思科配置对齐、高级路由控制渗透/汇总/默认路由/认证进行全方位的深度拆解。一、 IS-IS 报文底层与 TLV 架构深度剖析IS-IS 是由 ISO国际标准化组织设计的链路状态路由协议最初用于 CLNS无连接网络服务环境后经 IETF 扩展以支持 IP 路由即集成化 IS-ISIntegrated IS-IS。1. 数据链路层直接封装与组播机制与 OSPF 封装在 IP 报文协议号 89中不同IS-IS 报文直接封装在数据链路层的数据帧内。由于不依赖 IP 层IS-IS 天然免疫针对 IP 协议栈的常见网络攻击。在以太网环境中IS-IS 使用特定的组播 MAC 地址进行报文收发从而在二层建立起控制面通信Level-1 组播地址01:80:c2:00:00:14用于 L1 邻居关系的建立与链路状态同步。Level-2 组播地址01:80:c2:00:00:15用于 L2 邻居关系的建立与链路状态同步。2. 核心报文种类的功能定位IS-IS 的报文统称为 PDUProtocol Data Unit协议数据单元主要分为以下三大类、九种具体的报文IIHIS-IS Hello报文用于邻居关系的发现、建立与维护。其功能类似于 OSPF 的 Hello 报文。在以太网链路上默认的 Hello 发送间隔Hello Time为 10 秒邻居失效时间Dead Time为 30 秒。L1 IIH用于在广播网络中建立 Level-1 邻居关系。L2 IIH用于在广播网络中建立 Level-2 邻居关系。P2P IIH用于点到点Point-to-Point链路不区分 Level直接通过一类报文完成协商。LSPLink State PDU报文链路状态报文用于在中间系统之间交换链路状态信息。其功能类似于 OSPF 的 LSULink State Update报文。LSP 内嵌了拓扑和路由信息分为L1 LSP和L2 LSP。SNPSequence Number PDU报文序列号报文用于链路状态数据库LSDB的同步与维护。CSNPComplete Sequence Number PDU完全序列号报文。它包含了本地 LSDB 中所有 LSP 的摘要信息类似 OSPF 的 DD 报文。在广播网络中由 DISDesignated IS定期发送在点到点链路中仅在邻居建立初始化时交互一次。PSNPPartial Sequence Number PDU部分序列号报文。用于请求缺失的详细 LSP 信息或对已收到的 LSP 进行确认。其功能对应 OSPF 的 LSR请求和 LSAck确认。3. TLV 编码IS-IS 的灵魂架构IS-IS 强大的生命力源于其采用TLVType-Length-Value类型-长度-值结构来承载所有路由和拓扑信息。这种三元组架构赋予了协议极强的可扩展性。如果需要支持一种全新的网络协议如 IPv6、SRv6 或 Segment Routing无需重构整个协议报文格式只需增加新的 TLV 类型即可。在 IS-IS 的底层实现中常见的标准 TLV 包括TLV Type 1Area Addresses区域地址常见于 IIH 和 L1 LSP 报文用于验证区域匹配。TLV Type 2IS Neighbors - LSP中间系统邻居关系描述链路拓扑。TLV Type 6IS Neighbors - MAC Address广播网络中邻居的 MAC 地址。TLV Type 8Padding填充字段用于将 IIH 报文填充到 MTU 大小以检测双向 MTU 是否匹配。TLV Type 9LSP EntriesLSP 条目摘要常见于 SNP 报文。TLV Type 10Authentication Information认证信息用于携带明文或 MD5 密文。TLV Type 128IP Internal Reachability区域内 IP 可达性信息。TLV Type 129Protocols Supported支持的协议类型如含有 IPv4 协议代码 129。TLV Type 132IP Interface Address接口的 IP 地址。二、 报文交互过程与 LSP 处理机制广播与点对点环境的双轨演练IS-IS 根据物理链路类型的不同设计了截然不同的邻居建立与数据库同步机制。1. 广播LAN环境下的三向交互在以太网等广播多路访问网络中IS-IS 通过以下机制实现高效交互邻居建立3-way Handshake两个设备互相发送组播 IIH。当路由器在收到的 IIH 报文“IS Neighbor”字段中发现自己的接口 MAC 地址时确认双向通信建立。这一过程需要经过三次握手。LSP 泛洪邻居关系建立后路由器直接以组播方式发送自身的 LSP。其他设备接收后存入本地本地链路状态数据库LSDB。DIS 与 CSNP 机制广播网络中会选举出一台 DIS类似于 OSPF 的 DR。DIS 的核心职责之一是每隔 10 秒向网络组播一次 CSNP 报文用于宣告当前 LSDB 的完整摘要。同步与请求其他非 DIS 设备收到 CSNP 后比对自身的 LSDB。如果发现缺失了某些 LSP则向网络发送 PSNP 报文以请求详细的 LSP如果发现自己拥有的 LSP 比 CSNP 中的更新则会直接组播发送自己的新 LSP。2. 点到点P2P环境下的双轨确认在 P2P 链路上IS-IS 的同步逻辑更加精简且可靠邻居建立双方发送单播 P2P IIH 报文。当在收到的 IIH 中看到对方确认的自身 System ID 后邻居关系宣告建立。一次性 CSNP 交换邻居关系建立后双方仅互相发送一次 CSNP 报文以同步数据库基线。PSNP 显式确认一方收到 CSNP 发现缺失后发送 PSNP 请求详细 LSP。另一方回复 LSP 后接收方必须回复一个 PSNP 作为对该 LSP 的显式确认Acknowledge。如果发送方在重传时间内没有收到确认 PSNP则会重新发送该 LSP确保链路的高可靠性。3. LSP 处理与选优决策算法当路由器从网络中收到一个已存在 LSP 的多个实例新报文时会触发标准的选优流程图逻辑序列号比对首先检查收到的 LSP 序列号是否与本地缓存相同。如果不相同则序列号更大的一方最优并更新 LSDB。保活时间比对若序列号完全相同接着检查保活时间Remaining Lifetime是否为 0 秒。如果为 0 秒表示该 LSP 正在被发起者主动清除Purge此时保活时间为 0s 的最优系统将立即清除该条路由。校验和比对若保活时间均不为 0 秒则比对 LSP 的校验和Checksum。若校验和不同则校验和更大的一方最优。忽略处理若上述所有属性完全相同则判定为重复报文系统直接不处理该 LSP。注IS-IS 的 LSP 定期泛洪时间默认老化触发刷新为 900 秒而 LSP 的最大存活老化时间Aging Time默认为 1200 秒。三、 路由渗透与路由汇总多厂商华为/华三/思科实战配置对齐在多区域 IS-IS 网络设计中骨干区域Level-2默认拥有全网拓扑而非骨干区域Level-1默认只拥有本地拓扑。为了防范次优路径并优化网络规模路由渗透与路由汇总在工程中被高频使用。1. 路由渗透Route Leaking的工程场景默认情况下Level-1 区域的路由器只能通过 Level-1-2 路由器下发的默认路由访问外部。然而这会导致 Level-1 路由器在选择出口时出现“非最优路径”问题。通过路由渗透可以将 Level-2 区域中的具体路由选择性地引入到 Level-1 区域。下面是三家主流网络厂商实现路由渗透将 L2 路由渗透进 L1并结合 ACL 实施按需过滤的配置对齐华为Huawei配置[R3] acl number 2000 [R3-acl-basic-2000] rule permit source 6.6.6.6 0 [R3-acl-basic-2000] rule deny source any [R3] isis 1 [R3-isis-1] import-route isis level-2 into level-1 filter-policy 2000华三H3C配置[R3] acl number 2000 [R3-acl-basic-2000] rule permit source 192.168.8.1 0 [R3-acl-basic-2000] rule deny source any [R3] isis 1 [R3-isis-1] address-family ipv4 [R3-isis-1-ipv4] import-route isis level-2 into level-1 filter-policy 2000思科Cisco配置R2(config)# access-list 100 permit ip host 192.168.7.1 any R2(config)# router isis R2(config-router)# redistribute isis ip level-2 into level-1 distribute-list 1002. 路由汇总Route Summarization路由汇总能够有效减小 LSP 的承载规模、精简边缘路由表条目并能屏蔽局部链路抖动对全局路由收敛的影响。通常路由汇总应该在明细路由产生的源头路由器上进行配置。以下是三家厂商对汇总路由并自动产生 Null0 防黑洞黑洞路由的实现华为配置[R4-isis-1] summary 10.1.0.0 255.255.252.0 level-1 generate_null0_route在 Level-1 数据库中生成 10.1.0.0/22 的汇总路由并在本地自动生成指向 Null0 接口的黑洞路由防止路由环路。华三配置[R3] isis 1 [R3-isis-1] address-family ipv4 [R3-isis-1-ipv4] summary 192.168.1.0 29 level-2 generate_null0_route思科配置R2(config-router)# summary-address 192.168.1.0 255.255.255.248 level-2注意在思科的工程实践中L1 路由器无法直接在本地对自身 L1 明细进行汇总再发往 L2。如果需要在边界上将 L1 区域路由汇总并向 L2 骨干发布需要使用 summary-address 配合特定的级别控制。四、 身份验证、等价路由与默认路由工程落地的高级策略在现网部署中协议的安全防护、流量的负载均衡设计以及边缘节点的默认路由下发是决定 IS-IS 网络鲁棒性的关键要素。1. 身份验证Authentication的多维防护为了防止恶意伪造路由更新破坏网络稳定性IS-IS 提供了多维度的加密验证机制。认证级别分类接口认证在接口视图下配置仅对该接口收发的 IIH 报文进行身份验证。区域认证在进程视图下配置对 Level-1 的 SNP 和 LSP 报文进行身份验证。路由域认证在进程视图下配置对 Level-2 的 SNP 和 LSP 报文进行身份验证。常见加密算法支持简单明文Simple、MD5 密文、Keychain钥匙扣动态密钥以及强安全的 HMAC-SHA256。多厂商配置对比华为接口 进程多级认证# 接口认证验证IIH [R4-GigabitEthernet0/0/0] isis authentication-mode md5 huawei123 # 区域认证验证L1 LSP/SNP [R3-isis-1] area-authentication-mode md5 huawei123 # 路由域认证验证L2 LSP/SNP [R3-isis-1] domain-authentication-mode md5 huawei123思科结合 Keychain 动态密钥认证R2(config)# key chain R2R5 R2(config-keychain)# key 1 R2(config-keychain-key)# key-string yucedu R2(config)# interface ethernet 0/0 R2(config-if)# isis authentication mode md5 R2(config-if)# isis authentication key-chain R2R5华三接口认证[R3-GigabitEthernet2/0] isis authentication-mode md5 plain yucedu2. 等价多路径路由ECMP的优选规则当网络拓扑存在多条等价路径时IS-IS 支持负载均衡。我们可以手动配置负载均衡的最大链路数并对不同的下一跳接口设置权重值。华为 ECMP 权重配置[Huawei-isis-1] maximum load-balancing 4 [Huawei-isis-1] nexthop 10.1.12.2 weight 20当配置了权重时系统会优先选用权重较小的路径。在未配置权重或权重相同的情况下多条等价路径实现标准的等价负载分担。越限选路兜底规则如果等价路径的数量超过了设备配置的最大负载均衡数Maximum NumberIS-IS 会使用以下硬性兜底规则按顺序依次比对淘汰多余路径优先级比对先看各下一跳接口配置的优先级数值越小越优先。System ID 比对若优先级相同比对下一跳邻居设备的 System IDSystem ID 越小越优先。接口索引比对若 System ID 仍相同比对本端流出接口的索引Interface Index接口索引越小越优先。3. 默认路由的精细化下发控制默认路由控制在 Level-1-2L1/2边界设备上非常关键。当 L1/2 设备连接到 L2 骨干网时它会在下发的 L1 LSP 中将ATTAttached附着位置 1用以通知 L1 路由器“我是去往外部的出口”。路由生成与干预机制在工程中我们可以干预这一默认行为防止流量次优或环路控制 ATT 置位产生# 强制 L1/2 设备生成带有 ATT 置位的 LSP [R3-isis-1] attached-bit advertise always # 强制 L1/2 设备绝不产生带有 ATT 置位的 LSP [R3-isis-1] attached-bit advertise never控制 L1 接收端学习# 强制 L1 设备即使收到 ATT 置位的 LSP也不在本地自动计算并产生默认路由 [R4-isis-1] attached-bit avoid-learning # 恢复默认收到 ATT 置位的 LSP 后自动计算出指向 L1/2 设备的默认路由 [R4-isis-1] undo attached-bit avoid-learning手动强行下发默认路由如果需要在一台普通的 IS-IS 路由器上强行注入默认路由可采用如下配置华为[R4-isis-1] default-route-advertise # 下发默认路由的同时配置防环保护防止自身再度学习到其他的默认路由导致环路 [R7-isis-1] default-route-advertise avoid-learning华三[R1] isis 1 [R1-isis-1] address-family ipv4 [R1-isis-1-ipv4] default-route-advertise五、 华山论剑IS-IS 与 OSPF 的全方位深度对决为了在进行协议选型时拥有清晰、客观的判断下面将从协议底层设计、可扩展性及工程部署差异等维度对 IS-IS 和 OSPF 进行深度对比1. 区域边界划分OSPF区域边界划分在路由器内部。ABR区域边界路由器必须同时属于多个区域它在不同的接口上运行不同的 OSPF 区域实例这导致 ABR 上的链路状态数据库LSDB较为庞大内存消耗较多。IS-IS区域边界划分在链路上。每台路由器整体属于且仅属于一个特定区域。这使得区域划分非常清晰降低了单台设备维护多区域 LSDB 的复杂度。2. 路由器与链路归属OSPF每条链路只属于一个区域。IS-IS整台路由器只属于一个区域。3. 主干网扩展性OSPF扩展主干网时较为复杂所有非 Area 0 区域必须通过 ABR 与 Area 0 保持物理或逻辑虚连接 Virtual Link上的连续。IS-IS主干网Level-2由所有连续的 Level-2 和 Level-1-2 路由器物理链路连接而成。扩展主干网非常简单只需将新路由器配置为 Level-2 并与现有 Level-2 设备建立邻接关系即可。4. 报文控制与密度OSPF发送大量、种类繁多的细碎 LSA链路状态通告如 1/2/3/4/5/7 类 LSA。在高动态网络环境下LSA 的频繁刷新和交互会占用一定的带宽和 CPU 资源。IS-IS路由信息高度集成在少量的大型 LSP 报文中发送的协议报文总量明显少于 OSPF对 CPU 和带宽的压力更小大网稳定性表现优异。5. 协议封装位置OSPF运行在 IP 之上协议号 89需要 IP 协议栈的支撑。IS-IS直接运行在数据链路层之上CLNS 封装对 IP 层无依赖安全性更高。6. 寻址依赖OSPF寻址和邻居建立完全依赖 IP 地址。IS-IS寻址依赖 CLNS 的 NSAP 地址具体为 NET 实体名称邻居建立不强制依赖 IP即使接口无 IP 地址只要二层互通且 NET 地址配置正确即可建立控制面邻居关系。7. 度量值Metric设计OSPF默认度量值Cost与接口物理带宽呈反比能够自动根据千兆/万兆带宽计算合理的开销。IS-IS无论是百兆、千兆还是万兆所有接口的默认度量值一律为 10窄度量模式。在工程落地中必须手动启用宽度量Wide Metric以便精确支持大带宽链路开销计算。8. 扩展灵活性与生态环境OSPF报文格式相对固定难以任意扩展。引入新特性如 IPv6 需部署全新的 OSPFv3 协议代价较大。IS-IS得益于底层的 TLV 架构极易通过引入新 TLV 支持新协议在现代段路由SR-MPLS、SRv6及流量工程TE演进中优势明显。产业生态生态从技术普及和人才生态来看OSPF 的相关教材、设备支持和具备维护经验的技术人员群体更大获取设备和人员支撑的成本相对较低。而 IS-IS 主要活跃于大型电信运营商和超大型互联网大厂技术门槛及专业要求更高。结语在当前的云网络时代虽然 OSPF 依旧在中小型企业网中大放异彩但在大规模多业务承载网络特别是融合了 IPv6、SRv6、EVPN 的新型骨干网中IS-IS 已经凭借其纯粹的二层底层、强大的 TLV 扩展性成为了无可替代的行业标配。通过深入理解 IS-IS 的底层报文机制、掌握跨厂商的路由控制技术网络工程师不仅能建设出超大规模、极速收敛的稳定网络更能为今后向下一代自愈式智简网络Intent-Based Networking和段路由演进打下最坚实的底层技术根基。