中间系统到中间系统协议(Intermediate System-to-Intermediate System,简称 IS-IS)是一种基于链路状态的内部网关协议(IGP),广泛应用于大规模网络中,如服务提供商骨干网、企业核心网和数据中心。它以其高效的路由计算、灵活的分层设计和对多协议的支持而著称。
一、IS-IS 概述:链路状态协议的典范
1.1 IS-IS 的起源与背景
IS-IS 起源于国际标准化组织(ISO)的开放系统互连(OSI)模型,最初设计用于 CLNP(无连接网络协议)环境下的路由计算,定义于 ISO 10589 标准中。20 世纪 90 年代,随着 TCP/IP 协议的普及,IETF 通过 RFC 1195 将 IS-IS 扩展到支持 IP 路由,使其成为一种“双栈”协议,既支持 OSI 网络,也支持 IPv4 和 IPv6。
与 OSPF(开放最短路径优先)类似,IS-IS 采用最短路径优先(SPF)算法计算路由,但其设计理念更加简洁,协议开销更低,且对大规模网络的适应性更强。IS-IS 的分层架构和区域划分机制,使其在骨干网络中表现出色,尤其在需要高可用性和快速收敛的场景中。
核心目标:
- 在自治系统(AS)内部提供高效的路由计算。
- 通过链路状态数据库(LSDB)同步实现网络拓扑的全局一致性。
- 支持大规模网络的分层扩展和高可靠性。
1.2 IS-IS 的基本术语与概念
理解 IS-IS 需要掌握其核心术语:
- IS(Intermediate System):中间系统,即路由器,负责生成和传播路由信息。
- ES(End System):终端系统,即主机,通过 ES-IS 协议与 IS 通信。
- RD(Routing Domain):路由域,一个运行相同路由协议的网络范围。
- Area:区域,路由域的子单元,支持分层路由。
- LSDB(Link State Database):链路状态数据库,存储网络拓扑信息。
- LSPDU(Link State PDU):链路状态协议数据单元,简称 LSP,携带路由器的链路状态。
- NET(Network Entity Title):网络实体名称,IS 的唯一标识符。
- DIS(Designated IS):指定中间系统,广播网络中的“领导者”。
- NSAP(Network Service Access Point):网络服务接入点,OSI 网络层地址。
1.3 IS-IS 地址结构与 NET
IS-IS 使用 NSAP 地址标识网络实体,其结构分为三部分:
- 区域地址(Area Address):由 AFI(权限和格式标识符)、IDI(初始域标识符)和 HO-DSP(高阶 DSP)组成,标识路由域和区域。
- 系统 ID(System ID):固定 6 字节,在区域内唯一标识路由器,通常与 Router ID 对应。
- SEL(NSAP Selector):1 字节,指示服务类型,在 IP 环境中固定为 00。
NET 示例:49.0001.1234.5678.9abc.00
- 区域 ID:49.0001
- System ID:1234.5678.9abc
- SEL:00
一台路由器最多可配置 3 个 NET,支持区域合并或分割时的平滑过渡,但所有 NET 的 System ID 必须一致。
1.4 IS-IS 的分层设计
IS-IS 采用两级分层结构:
- Level-1(L1):区域内路由,仅维护本区域的 LSDB,与同区域的 L1 和 L1/L2 路由器建立邻接。
- Level-2(L2):区域间路由,维护整个路由域的 LSDB,与 L2 和 L1/L2 路由器建立邻接。
- Level-1-2(L1/L2):同时参与 L1 和 L2 路由,维护两个 LSDB,连接 L1 和 L2 区域。
L2 和 L1/L2 路由器构成骨干网(Backbone),负责区域间通信。骨干网无需集中于单一区域,但必须物理连续。
1.5 IS-IS 与 OSPF 的对比
特性 | IS-IS | OSPF |
---|---|---|
协议起源 | ISO(OSI) | IETF(IP) |
地址格式 | NSAP(可变长,8-20 字节) | IPv4/IPv6(固定长度) |
分层 | L1 和 L2 | 区域 0(骨干)+其他区域 |
DIS/DR | DIS(独立选举,优先级 0 可参与) | DR(优先级 0 不参与选举) |
邻接关系 | 广播网全互联 | 仅与 DR/BDR 建立全邻接 |
协议扩展性 | TLV 结构,易扩展 | LSA 类型,扩展性稍复杂 |
网络规模 | 更适合超大规模网络 | 适合中小型网络 |
IS-IS 的 TLV(类型-长度-值)设计使其对新协议支持(如 IPv6)更灵活,而 OSPF 的 LSA(链路状态通告)类型相对固定。
二、IS-IS 工作机制:链路状态路由的艺术
2.1 邻居建立与 Hello 报文
IS-IS 通过 Hello 报文(IIH)发现邻居并建立邻接关系:
- LAN IIH:广播网络中,分为 L1 LAN IIH 和 L2 LAN IIH。
- P2P IIH:点到点链路使用。
邻接条件:
- 网络类型匹配(广播或 P2P)。
- 级别匹配(L1 或 L2)。
- 区域地址匹配(仅 L1)。
- 认证通过(若配置)。
Hello 报文默认每 15 秒发送(DIS 为 5 秒),超时 3 次(45 秒)邻接断开,可通过配置调整。
2.2 DIS 选举与伪节点
在广播网络中,IS-IS 选举 DIS 简化拓扑:
- 选举规则:优先级最高者胜出(默认 64,范围 0-127);若优先级相同,MAC 地址大者胜出。
- 伪节点(Pseudonode):DIS 创建虚拟节点,表示广播网络,LSP 以 System ID.Circuit ID 标识(如 0000.0000.0001.01)。
与 OSPF 不同,IS-IS 中所有路由器间均建立邻接,DIS 仅负责 LSDB 同步和伪节点管理。新 DIS 当选会触发 LSP 泛洪。
2.3 LSDB 同步与 SPF 计算
- LSP 生成与泛洪:
- 每个 IS 生成 LSP,包含邻居和路由信息。
- LSP 默认 15 分钟刷新,变化时立即泛洪。
- 最大长度 1492 字节,支持分片扩展。
- SNP 报文同步:
- CSNP:完整序列号 PDU,DIS 定期发送(默认 10 秒),列出所有 LSP。
- PSNP:部分序列号 PDU,用于确认或请求特定 LSP。
- SPF 计算:
- 使用 Dijkstra 算法生成最短路径树(SPT)。
- L1 和 L2 分别计算,L1/L2 路由器维护两棵 SPT。
2.4 路由渗透(Route Leaking)
默认情况下,L2 路由器不将外部路由注入 L1 区域,导致 L1 路由器只能通过最近的 L1/L2 路由器转发,可能非最优路径。路由渗透允许 L1/L2 路由器将 L2 路由注入 L1,提升路径选择效率。
配置示例:
isis 1
route-leak level-2 into level-1
2.5 支持 IPv6 的扩展
IPv6 IS-IS 通过新增 TLV 支持:
- IPv6 Reachability (TLV 236):描述 IPv6 前缀和度量。
- IPv6 Interface Address (TLV 232):携带 128 位 IPv6 地址。
- NLPID (0x8E):标识 IPv6 协议。
多拓扑路由(MTR)允许 IPv4 和 IPv6 分离计算,避免拓扑不一致问题。
三、IS-IS 的技术优势与局限
3.1 核心优势
- 高效扩展性:TLV 结构支持新协议,适应性强。
- 快速收敛:LSDB 同步和 SPF 计算高效。
- 分层灵活性:骨干网无需特定区域,部署简便。
- 资源占用低:适合大规模网络。
- 多协议支持:原生支持 IPv4、IPv6 和 OSI。
3.2 局限性分析
- 复杂地址配置:NSAP 和 NET 配置较繁琐。
- 广播网限制:邻居数受 Circuit ID 限制(最大 255)。
- 功能丰富度:相比 OSPF,部分高级功能(如 QoS 支持)较弱。
- 学习曲线:对初学者不够直观。
3.3 典型应用场景
- 运营商骨干网:支持大规模路由和高可靠性。
- 数据中心:结合 TRILL 或 SPB 实现二层扩展。
- 企业核心网:提供稳定的区域间路由。
四、IS-IS 配置实践:从基础到高级
4.1 基础配置:IPv4 IS-IS
场景:三台交换机(A、B、C)组成区域 49.0001,实现网络互通。
Switch A:
system-view
isis 1
network-entity 49.0001.0000.0000.0001.00
is-level level-1
interface vlan-interface 10
ip address 10.1.1.1 255.255.255.0
isis enable 1
Switch B:
system-view
isis 1
network-entity 49.0001.0000.0000.0002.00
is-level level-1
interface vlan-interface 10
ip address 10.1.1.2 255.255.255.0
isis enable 1
Switch C:
system-view
isis 1
network-entity 49.0001.0000.0000.0003.00
is-level level-1-2
interface vlan-interface 10
ip address 10.1.1.3 255.255.255.0
isis enable 1
验证:
display isis peer # 查看邻居
display isis route # 查看路由表
4.2 IPv6 IS-IS 配置
场景:支持 IPv6 的单区域网络。
Switch A:
system-view
isis 1
network-entity 49.0001.0000.0000.0001.00
address-family ipv6
interface vlan-interface 10
ipv6 address 2001::1/64
isis ipv6 enable 1
4.3 高级功能:BFD 联动与 FRR
BFD 联动:
interface vlan-interface 10
isis bfd enable
bfd min-control-interval 500
bfd detect-multiplier 7
快速重路由(FRR):
isis 1
address-family ipv4
fast-reroute lfa
4.4 多实例配置
场景:隔离 IPv4 和 IPv6 拓扑。
Switch A:
isis 1 # IPv4
network-entity 49.0001.0000.0000.0001.00
interface vlan-interface 10
isis enable 1
isis 2 # IPv6
network-entity 49.0002.0000.0000.0001.00
multi-instance enable iid 1
address-family ipv6
interface vlan-interface 10
isis ipv6 enable 2
isis process-id 2 cost 63
五、IS-IS 优化与故障排查
5.1 优化技术
- 调整定时器:
isis 1 timer lsp-refresh 300 # 刷新周期 5 分钟 timer spf 5 # SPF 计算间隔
- LSP 分片扩展:
isis 1 lsp-fragments-extend
- 快速收敛(ISPF):
isis 1 ispf enable
5.2 安全机制
- 邻居认证:
interface vlan-interface 10 isis authentication-mode md5 key MyKey
5.3 故障排查
- 邻居未建立:检查区域地址、级别、网络类型。
- 路由缺失:验证 LSDB 同步(display isis lsdb)。
- 频繁切换:调整 Hello 间隔,检查链路稳定性。
六、IS-IS 的未来与趋势
- SDN 集成:通过控制器动态管理 IS-IS。
- 多活数据中心:结合 VXLAN 和 IS-IS 实现跨站路由。
- AI 优化:利用机器学习预测故障,优化路径。