关于 IS-IS
IS-IS 路由协议是一种链路状态内部网关协议 (IGP)。链路状态协议的主要特征是传播在每个参与设备上建立完整网络连接图所需的信息。然后,该连接图会用于计算到达目的地的最短路径。IS-IS 实施支持 IPv4 和 IPv6。
您可以将路由域划分为一个或多个子域。每个子域称为一个区域,并会分配一个区域地址。同一个区域内的路由称为 1 级路由。在 1 级区域之间的路由称为 2 级路由。路由器称为中间系统 (IS)。IS 可以运行在 1 级、2 级或两者。运行在 1 级的 IS 与同一区域中的其他 1 级 IS 交换路由信息。运行在 2 级的 IS 与其他 2 级路由器交换路由信息,而不管它们是否处于相同的 1 级区域内。2 级路由器集合以及将它们互连的链路形成 2 级子域,子域不能再分区,否则路由无法正常工作。
关于 NET
IS 通过称为网络实体名称 (NET) 的地址来标识。NET 是网络服务接入点 (NSAP) 的地址,标识 IS 上运行的 IS-IS 路由协议实例。NET 的长度为网络是 8 到 20 个八位组,它具有以下三个部分:
-
区域地址 - 此字段长度为 1 到 13 个八位组,由地址的高位八位组组成。
注
您可以为一个 IS-IS 实例分配多个区域地址;在这种情况下,所有区域地址视为相同。当合并或拆分域中的区域时,多个相同的区域地址非常有用。合并或拆分完成后,您不需要为一个 IS-IS 实例分配超过一个区域地址。
-
系统 ID - 此字段的长度为 6 个八位组,它紧随区域地址之后。当 IS 在 Level 1 运行时,系统 ID 在相同区域中的所有 Level-1 设备中必须是唯一的。当 IS 在 Level 2 运行时,系统 ID 在域中的所有设备中必须是唯一的。
注
您可以为一个 IS 实例分配一个系统 ID。
-
NSEL - N-selector 字段的长度是 1 个八位组,它紧随系统 ID 之后。其必须设置为 00。
IS-IS 动态主机名
在 IS-IS 路由域中,使用系统 ID 代表每个 ASA。系统 ID 是为每个 IS-IS ASA 配置的 NET 的一部分。例如,NET 配置为 49.0001.0023.0003.000a.00 的 ASA 的系统 ID 为 0023.0003.000a。对于网络管理员而言,在 ASA 上进行维护以及故障排除期间,很难记住 ASA 名称与系统 ID 的映射。
输入 show isis hostname 命令可显示系统 ID 与 ASA 名称映射表中的条目。
动态主机名机制使用链路状态协议 (LSP) 泛洪来跨整个网络分发 ASA 名称与系统 ID 的映射信息。网络中的每个 ASA 都会尝试安装其路由表中的系统 ID 与 ASA 名称的映射信息。
如果一台一直在网络中通告动态名称类型、长度、值 (TLV) 的 ASA 突然停止通告,则最后收到的映射信息将在动态主机映射表中保留最多一个小时,以便网络遇到问题时网络管理员可以显示映射表中的条目。
IS-IS PDU 类型
ISes 使用协议数据单元 (PDU) 与其对等体交换路由信息。使用中间系统到中间系统 Hello PDU (IIH)、链路状态 PDU (LSP) 和序列号 PDU (SNP) 类型的 PDU。
- IIH
-
IIH 将在已启用 IS-IS 协议的回路上的 IS 邻居之间交换。IIH 包括发送方的系统 ID、分配的区域地质,以及称为发送 IS 的回路上邻居的标识。还可包括其他可选信息。
- LSP
-
IS 将生成 LSP,以通告其直接连接到 IS 的邻居和目标。LSP 通过以下方式进行唯一标识:
-
生成 LSP 的 IS 的系统 ID
-
伪节点 ID - 除非当 LSP 是伪节点 LSP 时,否则此值始终为 0。
-
LSP 号(0 到 255)
-
32 位序列号
每当生成新版本的 LSP 时,序列号都会递增。
1 级 LSP 由支持 1 级的 IS 生成。1 级 LSP 将在整个 1 级区域泛洪。由某一区域内所有 1 级 IS 生成的 1 级 LSP 组是 1 级 LSP 数据库 (LSPDB)。某一区域内的所有 1 级 IS 都具有相同的 1 级 LSPDB,因此该区域具有相同的网络连接映射。
2 级 LSP 由支持 2 级的 IS 生成。2 级 LSP 将在整个 2 级子域泛洪。由相应域内所有 2 级 IS 生成的 2 级 LSP 组是 2 级 LSP 数据库 (LSPDB)。相应 2 级子域内的所有 2 级 IS 都具有相同的 2 级 LSPDB,因此该 2 级子域具有相同的连接映射。
-
- SNP
-
SNP 包含一个或多个 LSP 的摘要说明。对于 1 级和 2 级,都有两种类型的 SNP:
-
完整序列号 PDU (CSNP) 用于针对指定级别发送 IS 具有的 LSPDB 的摘要。
-
部分序列号 PDU (PSNP) 用于针对指定级别发送 IS 在其数据库中具有或者需要获取的 LSP 的子网的摘要。
-
IS-IS 在多接入回路上的操作
多接入回路支持多个 ISes(即两个或更多)在回路上操作。对于多接入回路,必要的先决条件是能够使用组播或广播地址处理多个系统。在多接入回路上支持级别 1 的 IS 在回路上发送级别 1 LAN IIH。在多接入回路上支持级别 2 的 IS 在回路上发送级别 2 LAN IIH。ISes 针对每个级别与回路上的邻居 ISes 形成单独的邻接。
IS 与回路上支持级别 1 的其他 ISes 形成级别 1 邻接,并且具有匹配的区域地址。不支持两个支持级别 1 且具有一组断开连接的区域地址和的 ISes 位于同一多接入回路上。IS 与回路上支持级别 2 的其他 ISes 形成级别 2 邻接。
下图中 IS-IS 网络拓扑中的设备沿网络主干执行级别 1、级别 2 或者级别 1 和级别 2 路由。
指定 IS 的 IS-IS 选择
如果每个 IS 通告其 LSP 中的多路访问电路上的所有邻接关系,则所需的通告总数将为 N 2(其中 N 是在电路上给定级别运行的 IS 的数量)。为了解决这种可扩展性问题,IS-IS 定义了一个伪节点来表示该多路访问电路。在给定级别的电路上运行的所有 IS 选择其中一个 IS 充当该电路上的指定中间系统 (DIS)。对于电路上活动的每个级别,选择一个 DIS。
该 DIS 负责颁发伪节点 LSP。伪节点 LSP 包括在该电路上运行的所有 IS 的邻居通告。在电路(包括 DIS)上运行的所有 IS 在其非伪节点 LSP 中向伪节点提供邻居通告,而不会在多路访问电路上通告任何邻居。这样,所需的通告总数将作为 N-电路上运行的 IS 数的函数变化。
伪节点 LSP 由以下标识符唯一分类:
-
生成 LSP 的 DIS 的系统 ID
-
伪节点 ID(始终非零)
-
LSP 数目(0 至 255)
-
32 位序号
非零伪节点 ID 是伪节点 LSP 与非伪节点 LSP 之间的区别,它由 DIS 选择,在 DIS 所处级别的所有 LAN 电路中是唯一的。
DIS 还负责在电路上发送定期 CSNP。其提供对 DIS 上 LSPDB 的当前内容的全面概述。然后,电路上的其他 IS 可执行以下活动,从而高效且可靠地同步多路访问电路上所有 IS 的 LSPDB:
-
泛洪 DIS 发送的 CSNP 中缺少的或比 CSNP 中所述的更新的 LSP。
-
对于 DIS 发送的 CSNP 中所述的本地数据库中缺少的 LSP 或比 CSNP 集中所述的 LSP 旧的 LSP,通过发送 PSNP 请求 LSP。
IS-IS LSPDB 同步
IS-IS 正常运行需要可靠和高效的进程,来同步每个 IS 上的 LSPDB。在 IS-IS 中,此进程称为更新进程。更新进程在每个受支持的级别独立运行。在本地生成的 LSP 始终是新 LSP。从回路上的邻居收到的 LSP 可能是由某个其他 IS 生成的,也可能是由本地 IS 生成的 LSP 的副本。与本地 LSPDB 的当前内容相比,收到的 LSP 可能较旧、龄期相同或较新。
- 处理较新的 LSP
-
在将较新的 LSP 添加到本地 LSPDB 时,它将替代 LSPDB 中相同 LSP 的较旧副本。较新的 LSP 将被标记为在所有回路上发送,在这些回路上,IS 当前在与较新的 LSP 相关联的级别包含一个处于运行状态的邻接 - 不包括在其上接收较新 LSP 的回路。
对于多接入回路,IS 会泛洪较新的 LSP 一次。IS 将检查 DIS 为多接入回路定期发送的 CNSP 组。如果本地 LSPDB 包含一个或多个比 CSNP 组中所述 LSP 更新的 LSP(这包括 CSNP 组中没有的 LSP),则将通过多接入回路重新泛洪这些 LSP。如果本地 LSPDB 包含一个或多个比 CSNP 组中所述内容更旧的 LSP(这包括 CSNP 组中所述但本地 LSPDB 中没有的 LSP),将在多接入回路上发送一个 PSNP,其中包含对需要更新的 LSP 的说明。用于多接入回路的 DIS 将通过发送请求的 LSP 作出响应。
- 处理较旧的 LSP
-
IS 可能会收到比本地 LSPDB 中的副本更旧的 LSP。IS 可能会收到 SNP(完整或部分),说明 LSP 比本地 LSPDB 中的副本更旧。在这两种情况下,IS 都会将本地数据库中的 LSP 标记为在收到较旧的 LSP 或包含该较旧 LSP 的 SNP 回路上泛洪。在向本地数据库添加新的 LSP 后,所采取的操作与上述操作相同。
- 处理龄期相同的 LSP
-
由于更新进程的分布式特性,IS 可能会收到与本地 LSPDB 的当前内容相同的 LSP 副本。在多接入回路中,收到龄期相同的 LSP 将被忽略。DIS 为该回路定期传输 CSNP 组,可以作为向发送方隐式确认已经收到 LSP。
下图显示了如何使用 LSP 创建网络映射。请将网络拓扑视为拼图游戏。每个 LSP(代表一个 IS)都是一块拼图。这对某一区域中的所有 1 级设备或者 2 级子域中的所有 2 级设备都适用。
下图显示了 IS-IS 网络中的每个设备,及其在邻居设备之间形成邻接之后已完全更新的链路状态数据库。这对某一区域中的所有 1 级设备或者 2 级子域中的所有 2 级设备都适用。
IS-IS 最短路径计算
LSPDB 的内容发生变化时,每个 IS 都会独立重新运行最短路径计算。该算法基于著名的 Dijkstra 算法来延导向图查找最短路径,在导向图中,ISes 是图形的顶点,ISes 之间的链路是带有非负权重的边缘。将两个 ISes 之间的链路视为图形的一部分之前,将执行双向连接性检查。这样,可以防止在 LSPDB 中使用过时信息,例如,当一个 IS 不再在网络中运行,但又没有清除它在停止运行之前生成的一组 LSP 时。
SPF 的输出是一组元组(目标,下一跳)。目标是特定于协议的。支持多个成本相同的路径,不管是哪种情况,多个下一跳都会与同一目标关联。
对于 IS 支持的每个级别执行单独的 SPF。当级别 1 和级别 2 路径都到达同一目标时,优先选择级别 1 路径。
指示在其他区域有一个或多个级别 2 邻居的级别 2 IS 可能被与必备路径(也称为默认路由)处于同一区域的级别 1 设备所用。级别 2 IS 通过在其级别 1 LSP 0 设置连接位 (ATT) 来指示其与其他区域的连接。
注 |
ID 可在每个级别生成多达 256 个 LSP。LSP 通过 0 至 255 之间的数字来标识。LSP 0 具有特定属性,包括设置 ATT 位以指示与其他区域的连接的重要性。当编号 1 至 255 的 LSP 设置了 ATT 位时,都没有意义。 |
IS-IS 关机
您可以关闭 IS-IS(将其置于管理停机状态)以对 IS-IS 协议配置进行更改,而不会丢失您的配置参数。您可以在全局 IS-IS 进程层面或接口层面关闭 IS-IS。如果在关闭该协议后重新启动该设备,则该协议预计会在禁用状态下恢复开机。如果将该协议设置为管理停机状态,将允许网络管理员以管理方式关闭 IS-IS 协议的运行,而不会丢失协议配置;对协议配置进行一系列更改,而不必让协议转换的运行通过中间(也许不理想)状态;以及在以后适当时间重新启用该协议。