ISIS协议介绍

ISIS基本概念

ISIS(Intermediate system to intermediate system )中间系统到中间系统,是一个分级的链接状态路由协议。每一台路由器都会生成一个LSP,它包含了该路由器所有使能 IS-IS协议接口的链路状态信息。通过跟相邻设备建立IS-IS 邻接关系,互相更新本地设备的 LSDB,可以使得LSDB 与整个 IS-IS网络的其他设备的LSDB 实现同步。然后根据LSDB 运用 SPF算法计算出 IS-IS 路由。
为了支持大规模的路由网络, IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。
IS-IS是ISO定义的OSI协议栈中无连接网络服务CLNS (Connectionless Network Service)的一部分。

ISIS专业术语

IS(Intermediate System):节点,即路由器。

Area区域:由一组连续的路由器、主机和连接它们的网络链路组成的实体。类似于OSPF的Area。

Domain域:由一组相互连接的Area组成。相当于传统的自治系统。

ISIS协议介绍_第1张图片
DIS(Designated Intermediate System):
在广播网络中, IS-IS 需要在所有的路由器中选举一个路由器作为DIS, 用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的链路状态协议数据单元 LSP(Linkstate Protocol Data Unit),用来描述这个网络上有哪些网络设备。

伪节点:伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在 IS-IS中,伪节点用 DIS 的SystemID 和一个字节的Circuit ID(非0 值)标识。

ISIS协议介绍_第2张图片

ISIS网络类型

IS-IS 只支持两种类型的网络,根据物理链路不同可分为:

  • 广播链路:如 Ethernet、Token-Ring 等。
  • 点到点链路:如 PPP等。

注意:对于NBMA(Non-BroadcastMulti-Access)网络,如ATM,需对其配置子接口,并注意子接口类型应配置为P2P。
IS-IS不能在点到多点链路P2MP(Pointto MultiPoint)上运行

Level-1 路由器:

负责区域内的路由,它只与属于同一区域的Level-1 和 Level-1-2路由器形成邻居关系,属于不同区域的Level-1 路由器不能形成邻居关系。

Level-2 路由器:

路由器负责区域间的路由,它可以与同一或者不同区域的Level-2 路由器或者其它区域的 Level-1-2路由器形成邻居关系。

Level-1-2 路由器:

同时属于 Level-1 和Level-2 的路由器称为 Level-1-2路由器,它可以与同一区域的 Level-1 和Level-1-2路由器形成Level-1 邻居关系,也可以与其他区域的Level-2 和 Level-1-2路由器形成 Level-2 的邻居关系。Level-1 路由器必须通过 Level-1-2路由器才能连接至其他区域。
Level-1-2 路由器维护两个LSDB, Level-1的 LSDB 用于区域内路由,Level-2 的 LSDB用于区域间路由。

ISIS协议介绍_第3张图片

ISIS地址结构

OSI地址使用NSAP(NetworkService Access Point)形式,NSAP的地址结构如图所示,它由IDP(InitialDomain Part)和DSP(DomainSpecific Part)组成。IDP和DSP的长度都是可变的,NSAP总长最多是20个字节,最少8个字节。

  • IDP 由AFI (Authorityand Format Identifier)与IDI(InitialDomain Identifier)两部分组成。AFI表示地址分配机构和地址格式, IDI 用来标识域。
  • DSP 由 High Order DSP、System ID 和 SEL三个部分组成。High Order DSP用来分割区域, System ID (6bytes)用来区分主机,SEL(NSAP-Selector ,1 byte)用来指示服务类型。

ISIS协议介绍_第4张图片

Area address:

标识路由域,也能够标识路由域中的区域,同一Level-1区域内的所有路由器必须具有相同的区域地址, Level-2区域内的路由器可以具有不同的区域地址。

System ID:

用来在区域内唯一标识主机或路由器,它的长度固定为48bit(6字节),一般使用RouterID与System ID进行对应。

例如:将loopback0的 IP 地址168.10.1.1(Router ID) 的每个十进制数都扩展为3 位,不足 3位的在前面补 0,得到168.010.001.001;将扩展后的地址分为 3 部分,每部分由4 位数字组成,得到 1680.1000.1001,就是System ID。

注意:System ID 的指定可以有不同的方法,但要保证能够唯一标识主机或路由器。

SEL:

SEL的作用类似 IP中的“协议标识符”,不同的传输协议对应不同的SEL。在 IP上 SEL 均为00。

NET(NetworkEntity Title):

网络实体名称 指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00)。在路由器上配置 IS-IS时,只需要考虑 NET即可,NSAP 可不必去关注。

例如:NET为ab.cdef.1234.5678.9abc.00,则其中Area Address 为ab.cdef, SystemID为1234.5678.9abc,SEL 为 00

ISIS工作过程

邻居建立:

两台运行 IS-IS 的路由器在交互协议报文实现路由功能之前必须首先建立邻居关系。在不同类型的网络上,IS-IS 的邻居建立方式并不相同,ISIS通过IIH报文建立邻居。

IS-IS按如下原则建立邻居关系:

  • 只有同一层次的相邻路由器才有可能成为邻居。
  • 对于 Level-1 路由器来说,区域号必须一致。
  • 链路两端 IS-IS 接口的网络类型必须一致。

广播链路邻居关系的建立:

  1. R1广播发送IIH,此报文中无邻居标识。
  2. R2收到此报文后,将自己和R1的邻居状态标识为 Initial。然后,R2再向 R1回复IIH,此报文中标识R1为 R2的邻居。
  3. R1收到此报文后,将自己与R2的邻居状态标识为 Up。然后R1再向R2发送一个标识R2为R1邻居的 IIH。
  4. R2 收到此报文后,将自己与R1的邻居状态标识为 Up。
    ISIS协议介绍_第5张图片

P2P链路邻居关系的建立:

在 P2P 链路上,邻居关系的建立不同于广播链路。分为两次握手机制和三次握手机制。
两次握手机制:只要路由器收到对端发来的 Hello报文,就单方面宣布邻居为 Up 状态,建立邻居关系。

三次握手机制:此方式通过三次发送 P2P 的IS-IS Hello PDU 最终建立起邻居关系,类似广播邻居关系的建立。

两次握手机制存在明显的缺陷。当路由器间存在两条及以上的链路时,如果某条链路上到达对端的单向状态为Down,而另一条链路同方向的状态为 Up,路由器之间还是能建立起邻接关系。SPF 在计算时会使用状态为 UP的链路上的参数,这就导致没有检测到故障的路由器在转发报文时仍然试图通过状态为 Down的链路。

ISIS协议介绍_第6张图片

LSP的产生:

IS-IS 路由域内的所有路由器都会产生LSP,以下事件会触发一个新的 LSP

  • 邻居 Up 或Down
  • IS-IS 相关接口 Up或 Down
  • 引入的 IP 路由发生变化
  • 区域间的 IP 路由发生变化
  • 接口被赋了新的 metric 值
  • 周期性更新

LSP的处理:

  • 将接收的新的 LSP合入到自己的 LSDB 数据库中,并标记为flooding。
  • 发送新的 LSP到除了收到该 LSP 的接口之外的接口。
  • 邻居再扩散到其他邻居

广播链路LSDP同步:ISIS协议介绍_第7张图片

P2P链路LSDP同步:

ISIS协议介绍_第8张图片

ISIS报文种类:

IS-IS路由协议的协议数据单元(PDU)

  • Hello PDU:包括ESH(ES至IS),ISH(IS至ES),IIH(IS之间)三种类型,用于建立和维护毗邻关系。
  • LSP:用于发布链路状态信息。
  • PSNP(Partial sequence number PDU):用于请求和确认链路状态消息。
  • CSNP(Complete sequence number PDU):用于发布路由器的完整链路状态数据库。

PDU报格式文:

  • 前8个1字节大小的字段
  • 各种类型数据包附加包头字段
  • TLV字段
    ISIS协议介绍_第9张图片

路由渗透

路由渗透特性是指Level-1-2 IS-IS将己知的其他Level-1区域以及Level-2区域的路由信息通报给指定的Level-1区域。

通常情况下,区域内的路由通过Level-1的路由器进行管理。所有的Level-2和Level-1-2路由器构成一个连续的骨干区域。Level-1区域必须且只能与骨干区域相连,不同的Level-1区域之间并不相连。

Level-1区域内的路由信息通过Level-1-2路由器通报给Level-2区域的,即Level-1-2路由器将学习到的Level-1路由信息装进Level-2 LSP,再泛洪LSP给其他Level-2和Level-1-2路由器。因此,Level-1-2和Level-2路由器知道整个IS-IS路由域的路由信息。但是,为了有效减小路由表的规模,在缺省情况下,Level-2路由器并不将自己知道的Level-1区域以及骨干区域的路由信息通报给Level-1区域。这样,Level-1路由器将不了解本区域以外的路由信息

路由过载

使用IS-IS过载标记来标识过载状态,对设备设置过载标志位后,其他设备在计算SPF时,不会使用这台设备做转发,只计算该设备上的直连路由。
进入过载状态的方法:

  • 设备异常(内存不足)导致自动进入过载状态
  • 手工使设备进入过载

路由计算

路由器获取了全部链路状态信息之后,以自己为根节点采用SPF算法计算出最小生成树。
ISIS协议介绍_第10张图片

ISIS实验

isis test

  • R1和R2配置直连接口ip地址;
  • R1和R2配置ISIS实例1;
  • R1和R2的直连接口下配置ISIS实例1;
  • R1和R2的环回口配置IP地址和ISIS实例1;

配置ISIS协议介绍_第11张图片

ISIS协议介绍_第12张图片

邻居

形成邻居关系

isis nei R1
isis nei R2

路由表

互相学习到对端环回口ip地址路由

ISIS协议介绍_第13张图片
ISIS协议介绍_第14张图片

你可能感兴趣的:(网络协议)