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,因此不做详细介绍。
ISIS Router ID: NET
NSAP,Network Service Access Point
NSAP(Network Service Access Point,网络服务访问点)是 OSI 协议栈中用于定位资源的地址,主要用于提供网络层和上层应用之间的接口。等同于 IP Address + Port Number
NSAP,如下图所示:
IDP(Initial Domian Part)相当于 IP Address 中的主网络号:
0)它是由 ISO 规定 ⇒ 特定数值具有特定用途,不能随意定义和使用;
1)AFI(Authority and Format Identifier)表示地址分配机构和地址格式,
2)IDI(Initial Domain Identifier):用来标识域;
DSP(Domian Specific Part)相当于IP地址中的子网号和主机地址。它由:
1)High Order DSP:用来分割区域
2)System ID:用来区分主机。在 OSI 中,每个平台(设备),仅配置一个地址(NSAP);
3)SEL(NSAP Selector):用来指示服务类型。
—- 类似于 TCP/IP 的 Port Number;对于路由器,该字段全零(因为路由器不提供服务);
Net,Network Entity Title
NET(Network Entity Title,网络实体名称)是 OSI 中设备的网络层信息,主要用于路由计算。
1)由 Area ID(区域地址)和 System ID 组成,长度与 NSAP 的相同,最长为 20 Byte,最短为 8 Byte;
2)可以看作是特殊的 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:通常,一个路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。
3)配置多个 Area ID:为了支持区域的平滑合并、分割、转换,缺省情况下,一个 IS-IS 进程下最多可配置 3 个区域地址。
System ID
1)用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为 6Byte;
每台运行 ISIS 的网络设备至少需拥有一个 NET 地址:
1)当然,一台设备也可以同时配置多个 NET 地址,但是这些 NET 的 System ID 必须相同,即属于不同域。
2)在同个 ISIS 路由域中,设备的 System ID 必须唯一;
为了便于管理,一般将 Router ID(OSPF)转化为 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: L1; L1/2; L2;
在 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 骨干区域,从而访问其他区域。
—- 以通过默认路由的形式,访问其他网络;
—- 该默认路由是 L1 Router 根据 L1/2 Router 返回的 ATT=1 而自己产生的;
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用于区域间路由;
ISIS Area
在 AS 内,IS-IS 采用骨干区域与非骨干区域两级的分层结构:
1)骨干区:具有 L2 功能的路由器(L2 Router 与 L1/2 Router)组成的区域;
—- Level-2 Router 和 Level-1-2 Router 部署在骨干区域。
2)非骨干区:由 L1 Router 组成的区域为非骨干区;
—- L1 Router 部署在非骨干区;
3)每个非骨干区域都通过 Level-1-2 Router 与骨干区域相连。
如图所示,整个骨干区域:
1)包括 Area 49.0001 中的所有路由器;
2)包括 Area 49.0002 中的所有路由器;
3)以及 Area 49.0002 中的 L1/2 路由器;
Network Type
根据接口的数据链路层封装,IS-IS 会自动决定该接口的缺省网络类型。
IS-IS 支持两种类型的网络:
1)广播(Broadcast): 如Ethernet。
2)点到点(P2P): 如PPP、 HDLC等。
鉴于 ISIS 出现时间比较短,所以才无需支持那些几近淘汰的网络类型;
ISIS Cost
IS-IS 使用 Cost(开销)作为路由度量值:Cost 值越小,则路径越优。
1)IS-IS 链路的 Cost 与设备的接口有关,与 OSPF 类似,每个激活 IS-IS 的接口都会维护接口 Cost 值。
2)在缺省情况下,ISIS 接口 Cost 与接口带宽无关:无论接口带宽多大,缺省 Cost = 10
—- 在实际部署时,IS-IS也支持根据带宽调整 Cost 值(像 OSPF 那样)
3)一条 IS-IS 路径的 Cost 等于本路由器到达目标网段沿途的所有链路的 Cost 总和,因此 ISIS 开销也是个累加值;
IS-IS 有三种方式来确定接口的开销,按照优先级由高到低分别是:
1)接口开销:为单个接口设置开销。
2)全局开销:为所有接口设置开销。
3)自动计算开销:根据接口带宽自动计算开销。
如图所示,全网运行IS-IS,则R3到达10.0.1.1/32的Cost值为20(10+10+0)。
Narrow & Wild
在早期的ISO10589中,使能IS-IS的接口下最大只能配置值为63的开销值,此时IS-IS的开销类型为narrow。
但是在大型网络设计中,较小的度量范围不能满足实际需求。RFC3784中规定,使能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):用来携带邻居信息。