IS-IS概览
IS-IS 协议是一种内部网关协议 (IGP),使用链路状态信息来做出路由决策。
IS-IS 是一种链路状态 IGP,它使用最短路径优先 (SPF) 算法来确定路由。IS-IS 评估拓扑更改,并确定是执行完全 SPF 重新计算还是部分路由计算 (PRC)。此协议最初是为路由国际标准组织 (ISO) 无连接网络协议 (CLNP) 数据包而开发的。
与 OSPF 路由一样,IS-IS 使用hello 数据包,当检测到网络变化时,可以快速实现网络融合。IS-IS 使用 SPF 算法来确定路由。IS-IS 使用 SPF 评估网络拓扑更改,并确定是否需要计算完整路由或部分路由。
由于 IS-IS 使用 ISO 地址,因此 IS-IS 的 IP 版本 6 (IPv6) 和 IP 版本 4 (IPv4) 实现的配置是相同的。
请参阅 无法转发 TCC 封装的 ISO 流量的平台/FPC ,以查找以 TCC 格式封装时无法传递 ISO 流量的设备和 FPC 配置的列表。
本节讨论以下主题:
IS-IS 术语
IS-IS 网络是由终端系统和中间系统组成的单个自治系统 (AS),也称为路由域。终端系统是发送和接收数据包的网络实体。中间系统发送和接收数据包以及中继(转发)数据包。(中间系统是路由器的开放系统互连 (OSI) 术语。ISO 数据包称为网络 PDU。
在 IS-IS 中,单个 AS 可以划分为更小的组,称为 区域。区域之间的路由按层次结构进行组织,允许将域在管理上划分为更小的区域。这种组织是通过配置 1 级 和 2 级 中间系统来实现的。1 级系统在一个区域内路由;当目标位于某个区域之外时,它们会路由到 2 级系统。第 2 级中间系统在区域之间路由并朝向其他 AS 路由。没有严格意义上的 IS-IS 区域作为主干网运行。
1 级路由器共享区域内路由信息,2 级路由器共享每个区域内可用 IP 地址的区域间信息。独特的是,IS-IS 路由器可以同时充当 1 级和 2 级路由器,与其他 1 级路由器共享区域内路由,并与其他 2 级路由器共享区域间路由。
链路状态更新的传播由级别边界决定。同一层级中的所有路由器都会维护同一层级中所有其他路由器的完整链路状态数据库。然后,每个路由器都使用 Dijkstra 算法确定从本地路由器到链路状态数据库中其他路由器的最短路径。
ISO 网络地址
IS-IS 使用 ISO 网络地址。每个地址标识一个网络连接点,如路由器接口,称为网络服务接入点 (NSAP)。
IS-IS 在环路 lo0 接口上支持多个 NSAP 地址。
终端系统可以有多个 NSAP 地址,在这种情况下,地址仅与最后一个字节(称为 n 选择器)不同。每个 NSAP 表示该节点上可用的服务。除了拥有多个服务外,单个节点还可以属于多个区域。
每个网络实体还有一个特殊的网络地址,称为 网络实体名称 (NET)。从结构上讲,NET 与 NSAP 地址相同,但 n 选择器为 00。大多数终端系统和中间系统都有一个 NET。参与多个领域的中间系统可以有多个 NET。
以下 ISO 地址说明了 IS-IS 地址格式:
49.0001.00a0.c96b.c490.00 49.0001.2081.9716.9018.00
NET 采用多种形式,具体取决于您的网络要求。NET 地址为十六进制,长度从 8 个八位位组到 20 个八位位组不等。通常,格式由授权和格式标识符 (AFI)、域 ID、区域 ID、系统标识符和选择器组成。最简单的格式省略域 ID,长度为 10 个八位位组。例如,NET 地址 49.0001.1921.6800.1001.00 由以下部分组成:
49 - AFI
0001 - 地区 ID
1921.6800.1001—系统标识符
00—选择器
系统标识符在网络中必须是唯一的。对于纯 IP 网络,我们建议使用路由器上接口的 IP 地址。当需要对网络进行故障排除时,使用 IP 地址配置环路 NET 地址会很有用。
地址的第一部分是区域编号,它是 1 到 13 字节的可变编号。区域编号 (49) 的第一个字节是权限和格式指示器 (AFI)。接下来的字节是分配的域(区域)标识符,可以是 0 到 12 字节。在上面的示例中,区域标识符为 0001。
接下来的六个字节构成系统标识符。系统标识符可以是在整个域中唯一的任意六个字节。系统标识符通常是媒体访问控制 (MAC) 地址(如第一个示例中的 00a0.c96b.c490)或以二进制编码十进制 (BCD) 表示的 IP 地址(如第二个示例中的 2081.9716.9018,对应于 IP 地址 208.197.169.18)。最后一个字节 (00) 是 n 选择器。
系统标识符不能为 0000.0000.0000。所有 0 都是非法设置,并且不会通过此设置形成邻接。
为了提供有关 IS-IS 调试的帮助,Junos®作系统 (Junos OS) 支持将 ISO 系统标识符动态映射到主机名。每个系统都可以配置一个主机名,从而允许在 IS-IS 链路状态 PDU 中以动态主机名类型、长度和值 (TLV) 元组进行系统标识符到主机名的映射。这使路由域中的中间系统能够了解特定中间系统的 ISO 系统标识符。
IS-IS 数据包
每个 IS-IS PDU 共享一个公共报头。IS-IS 使用以下 PDU 来交换协议信息:
IS-IS hello (IIH) PDU — 广播以发现相邻 IS-IS 系统的身份,并确定邻接方是 1 级还是 2 级中间系统。
IS-IS hello PDU 与其他路由器建立邻接,有三种不同的格式:一种用于点对点hello 数据包,一种用于 1 级广播链路,一种用于 2 级广播链路。1 级路由器必须共享相同的区域地址才能形成邻接,而 2 级路由器则没有此限制。邻接请求在 PDU 的电路类型字段中进行编码。
Hello PDU 分配了预设长度。IS-IS 路由器不会调整任何 PDU 的大小以匹配路由器接口上的最大传输单元 (MTU)。每个接口支持 1492 字节的最大 IS-IS PDU,并且填充了hello PDU 以满足最大值。当 hello 发送到相邻路由器时,连接接口支持最大 PDU 大小。
链路状态 PDU — 包含有关与相邻 IS-IS 系统的邻接状态的信息。链路状态 PDU 会周期性地在整个区域内泛洪。
还包括度量和 IS-IS 邻居信息。每个链路状态 PDU 都必须在网络上定期刷新,并由序列号 PDU 中的信息确认。
在点对点链路上,每个链路状态 PDU 由部分序列号 PDU (PSNP) 确认,但在广播链路上,则通过网络发送完整的序列号 PDU (CSNP)。在 CSNP 中发现较新的链路状态 PDU 信息的任何路由器都会清除过期条目并更新链路状态数据库。
链路状态 PDU 支持可变长度子网掩码寻址。
完整序列号 PDU (CSNP) — 包含 IS-IS 数据库中所有链路状态 PDU 的完整列表。CSNP 在所有链路上定期发送,接收系统使用 CSNP 中的信息来更新和同步其链路状态 PDU 数据库。指定的路由器在广播链路上组播 CSNP,而不是为每个链路状态 PDU 发送显式确认。
CSNP 中包含链路状态 PDU 标识符、生存期、序列号以及数据库中每个条目的校验和。定期通过广播和点对点链路发送 CSNP,以维护正确的数据库。此外,当与其他路由器形成邻接关系时,也会发生 CSNP 播发。与 IS-IS hello PDU 一样,CSNP 有两种类型:级别 1 和级别 2。
当设备收到 CSNP 时,它会根据自己的本地链路状态数据库检查数据库条目。如果检测到缺失信息,设备会使用部分序列号 PDU (PSNP) 请求特定的链路状态 PDU 详细信息。
部分序列号 PDU (PSNP) — 当接收器检测到其缺少链路状态 PDU(当其链路状态 PDU 数据库过期时)时,由接收方发送组播。接收器向传输 CSNP 的系统发送 PSNP,从而有效地请求传输丢失的链路状态 PDU。而该路由设备又会将缺失的链路状态 PDU 转发给请求的路由设备。
IS-IS 路由器使用 PSNP 向相邻路由器请求链路状态 PDU 信息。PSNP 还可以显式确认在点对点链路上接收到链路状态 PDU。在广播链路上,CSNP 被用作隐式知识。与 PDU 和 CSNP 一样,PSNP 也有两种类型:1 级和 2 级。
当设备将 CSNP 与其本地数据库进行比较并确定缺少链路状态 PDU 时,路由器会为丢失的链路状态 PDU 发出 PSNP,发送 CSNP 的路由器以链路状态 PDU 的形式返回该 PSNP。然后,接收到的链路状态 PDU 将存储在本地数据库中,并将确认发送回始发路由器。
持久的路由可达性
提交配置时,IS-IS 链路状态 PDU 中的 IPv4 和 IPv6 路由可达性信息将保留。在重新生成链路状态 PDU 时,IP 前缀与其原始数据包分段一起保留。
IS-IS 对多点网络云的支持
IS-IS 不支持多点配置。因此,在配置帧中继或异步传输模式 (ATM) 网络时,必须将其配置为点对点链路的集合,而不是多点云。
将默认路由安装到在两个 IS-IS 级别运行的最近路由设备
当同时作为 1 级和 2 级路由器运行的路由设备(路由器 B)确定至少可以到达其自身以外的一个区域(例如,在区域 Y 中)时,它会在其第 1 级链路状态 PDU 中设置 ATTACHED 位。此后,1 级路由器(路由器 A)引入一条默认路由,该路由指向最近的连接路由设备,该设备同时作为 1 级和 2 级路由器(路由器 B)运行。请参阅 图 1。
