「ISIS」- 概念,术语

ISIS vs OSPF

IS-IS 是 ISO 定义的 OSI 协议栈中的 CLNS(ConnectionLess Network Service,无连接网络服务)的一部分;

IS-IS 也是是种链路状态路由协议,IS-IS 与 OSPF 在许多方面非常相似,例如:
1)运行 IS-IS 协议的直连设备之间通过发送 Hello 报文发现彼此,然后建立邻接关系,并交互链路状态信息;

两者不同之处在于:
1)Integrated IS-IS:支持 CLNP 网络、IP 网络;采用数据链路层封装;
2)OSPF:只支持 IP 网络;采用 IP 报文封装;

CLNS 由以下三个部分组成:
1)CLNP:类似于 TCP/IP 中的 IP 协议;
2)IS-IS:类似于 TCP/IP 中的 OSPF 协议;
3)ES-IS:类似于 TCP/IP 中的 ARP,ICMP 等;

ES:End System,终端系统,类似于 IP 网络环境中的主机;
ES-IS:End System to Intermediate System,终端系统到中间系统;

在 IP 网络环境中,不涉及 CLNP 以及 ES-IS,因此不做详细介绍;

Router ID

NSAP | Network Service Access Point

NSAP(Network Service Access Point,网络服务访问点)是 OSI 协议栈中用于定位资源的地址,主要用于提供网络层和上层应用之间的接口。等同于 IP Address + Port Number

所示如下图,NSAP 结构如下:

IDP(Initial Domian Part)相当于 IP Address 中的主网络号:

  • 它是由 ISO 规定 ⇒ 特定数值具有特定用途,不能随意定义和使用;
  • AFI(Authority and Format Identifier)表示地址分配机构和地址格式,
  • IDI(Initial Domain Identifier):用来标识域;

DSP(Domian Specific Part)相当于 IP 地址中的子网号和主机地址。它由:

  • High Order DSP:用来分割区域
  • System ID:用来区分主机。在 OSI 中,每个平台(设备),仅配置一个地址(NSAP);
  • SEL(NSAP Selector):用来指示服务类型;类似于 TCP/IP 的 Port Number;针对路由器,该字段全零(因为路由器不提供服务);

NET | Network Entity Title

NET,Network Entity Title,网络实体名称,是 OSI 中设备的网络层信息,主要用于路由计算;

其由 Area ID(区域地址)和 System ID 组成,长度与 NSAP 的相同,最长为 20 Byte,最短为 8 Byte;
其可被视为特殊的 NSAP,即 SEL 为 00 的 NSAP;

注意,在 IP Network 中,当运行 IS-IS 协议时,只需配置 NET,根据 NET 地址设备能够获取到 Area ID 以及 System ID 参数。

Area ID

Area ID = IDP + DSP.High_Order_DSP

1)既能够标识路由域,也能够标识在路由域中的区域。因此它们一起被称为区域地址,相当于在 OSPF 中的 Area ID;
2)配置单独 Area ID:通常,一个路由器只需要配置一个 Area ID,且同一区域中所有节点的 AREA ID 都要相同;
3)配置多个 Area ID:为了支持区域的平滑合并、分割、转换,缺省情况下,同个 IS-IS 进程下最多可配置 3 个 Area ID;

在华为的网络设备上,System ID 总是固定的 6Byte 长度;

配置多个 AREA ID 能够实现区域分隔、区域合并而不中断全业务。我们以区域合并为例,假如现在有两个区域:(1)在路由器上,配置相同的 Area ID 参数,等待 LSDB 数据同步完成。(2)当数据同步完成后,删除原来的区域即可。

System ID

1)用来在区域内唯一标识主机或路由器。在设备的实现中,其固定为 6Byte 长度;

每台运行 ISIS 的网络设备至少需拥有一个 NET 地址。
当然同台设备也同时配置多个 NET 地址,但是这些 NET 的 System ID 必须相同,即便属于不同域。简而言之,配置多个 AREA ID,但要求 System ID 相同。
在同个 ISIS 路由域中,如果有多台设备,则各个设备的 System ID 必须唯一;

为了便于管理,通常会采用如下方法,来将 OSPF Router ID 转化为 ISIS System ID:
1)将 Router ID 的每位扩展为三位;例如 10.0.1.1 先转为 010.000.001.001;
2)此时 Router ID 与 System ID 的长度一致,即 6 Byte 长;
3)移动点的位置:010.000.001.001(Router ID) ⇒ 0100.0000.1001(System ID)

ROUTER TYPE

在 ISIS 中,路由器分为 L1 (Level-1)、L1/2 (Level-1-2)、L2 (Level-2) 三种类型;

默认情况下,路由器处于 L1/2 级别(取决于厂商的实现,但能够进行调整);

路由器级别与 ISIS Area 相关:在 OSPF 中,路由器负责衔接骨干区与非骨干区;在 ISIS 中,通过路由类型进行 ISIS Area 划分;

Level-1 Router

Level-1 Router 是种 IS-IS 区域内部路由器

在建立邻接关系时:
1)L1 Router 仅能与 具有 L1 级别的 Router 形成邻接关系(称为 Level-1 邻接关系);
—- L1 Router 能够与其他 L1 Router 或 L1/2 Router 形成 Level-1 邻接关系;
—- L1 Router 无法与 L2 Router 建立 Level-1 邻接关系;
2)并且,这些 Router 必须属于同区域,即 Area ID 相同;

在同步 LSDB 数据时:
1)L1 Router 仅负责维护 L1 的 LSDB,该 LSDB 只包含本区域的路由信息;
2)L1 Router 必须通过 L1/2 Router 接入 IS-IS 骨干区域,从而访问其他区域;
—- 以通过 Default Route(默认路由)的形式,访问其他网络;
—- 根据 L1/2 Router 返回的 ATT=1 标志,L1 Router 自己产生默认路由;

Level-2 Router

L2 Router 是 IS-IS 骨干路由器

在形成邻接关系时:
1)能与具有 L2 级别的 Router形成邻接关系(称为 Level-2 邻接关系);
—- L2 Router 能够与其他 L2 Router 或 L1/2 Router 形成 Level-2 邻接关系;
2)但不要求这些 Router 的区域相同;

在同步 LSDB 数据时:
1)L2 Router 维护 L2 的 LSDB,但该 LSDB 包含整个 IS-IS 域的所有路由信息(L2 属于骨干区域)

在网络部署时:
1)在路由域中,所以 L2 Router 必须是物理连续的,以保证骨干网的连续性;
2)所有 Level-2 级别(即形成 Level-2 邻接关系)的路由器组成路由域的骨干网,负责在不同区域间通信;

Level-1-2 Router

L1/2 Router 同时属于 Level-1 和 Level-2 的路由器称为 L1/2 Router(这与 OSPF 的 ABR 非常相似),它也是 IS-IS 骨干网络的组成部分;

在形成邻接关系时:
1)它可以与同一区域的 Level-1 和 L1/2 Router 形成 Level-1 邻接关系;
2)也可以与其他区域的 Level-2 和 L1/2 Router 形成 Level-2 邻接关系;

在同步 LSDB 数据时:
1)L1/2 Router 维护两个 LSDB:Level-1 的 LSDB 用于区域内路由;Level-2 的 LSDB 用于区域间路由;

Area

在 AS 内,IS-IS 采用骨干区域与非骨干区域两级的分层结构:

骨干区

具有 L2 功能的路由器(L2 Router 与 L1/2 Router)组成的区域;

Level-2 Router 和 Level-1-2 Router 部署在骨干区域;

非骨干区

由 L1 Router 组成的区域为非骨干区;

L1 Router 部署在非骨干区;

针对每个非骨干区域,其都通过 Level-1-2 Router 与骨干区域相连;

如图所示,整个骨干区域:
1)包括 Area 49.0001 中的所有路由器;
2)包括 Area 49.0002 中的所有路由器;
3)以及 Area 49.0002 中的 L1/2 路由器;

Network Type

根据接口的数据链路层封装,IS-IS 会自动决定该接口的缺省网络类型;

IS-IS 支持两种类型的网络:

  • 广播(Broadcast):例如 Ethernet 等等;
  • 点到点(P2P):例如 PPP、HDLC 等等。通过将以太网接口模拟成点到点接口,可以建立点到点链路邻接关系;

鉴于 ISIS 出现时间比较短,所以才无需支持那些几近淘汰的网络类型;

Cost

IS-IS 使用 Cost(开销)作为路由度量值:Cost 值越小,则路径越优;

1)IS-IS 链路的 Cost 与设备的接口有关,与 OSPF 类似,每个激活 IS-IS 的接口都会维护接口 Cost 值;
2)在缺省情况下,ISIS 接口 Cost 与接口带宽无关:无论接口带宽多大,缺省 Cost = 10
—- 在实际部署时,IS-IS 也支持根据带宽调整 Cost 值(像 OSPF 那样)

确定接口开销的方式

IS-IS 有三种方式来确定接口的开销,按照优先级由高到低分别是:
1)接口开销:为单个接口设置开销;
2)全局开销:为所有接口设置开销;
3)自动计算开销:根据接口带宽,来自动计算开销;

计算方法

一条 IS-IS 路径的 Cost 等于本路由器到达目标网段沿途的所有链路的 Cost 总和,因此 ISIS 开销也是个累加值;

如图所示,全网运行 IS-IS,则 R3 -> 10.0.1.1/32 的 Cost 值为 20(10+10+0);

Narrow and Wild

在早期的 ISO 10589 中,在使能 IS-IS 的接口下,最大只能配置值为 63 的开销值,此时 IS-IS 的开销为 narrow 类型。

但是,在大型网络设计中,较小的度量范围不能满足实际需求。

在 RFC 3784 中,规定使能 IS-IS 的接口开销值可以扩展到 16777215 ,此时 IS-IS 的开销类型为 wide 类型。

缺省时,华为路由器采用的开销是 narrow 类型;

narrow 类型下,使用的 TLV:

  • 128 号 TLV(IP Internal Reachability TLV):用来携带路由域内的 IS-IS 路由信息;
  • 130 号 TLV(IP External Reachability TLV):用来携带路由域外的 IS-IS 路由信息;
  • 2 号 TLV(IS Neighbors TLV):用来携带邻居信息;

wide 类型下,使用的 TLV:

  • 135 号 TLV(Extended IP Reachability TLV):用来替换原有的 IP reachability TLV,携带 IS-IS 路由信息,它扩展了路由开销值的范围,并可以携带 sub TLV;
  • 22 号 TLV(IS Extended Neighbors TLV):用来携带邻居信息;