01、IS-IS基本概念

IS-IS基本概念

IS-IS的拓扑结构

IS-IS的整体拓扑

为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构。一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。

图1所示为一个运行IS-IS协议的网络,它与OSPF的多区域网络拓扑结构非常相似。整个骨干区域不仅包括Area1中的所有路由器,还包括其它区域的Level-1-2路由器。

图1 IS-IS拓扑结构图一

图2所示是IS-IS的另外一种拓扑结构图。在这个拓扑中,Level-2级别的路由器没有在同一个区域,而是分别属于不同的区域。此时所有物理连续的Level-1-2和Level-2路由器就构成了IS-IS的骨干区域。

图2 IS-IS拓扑结构图二

通过以上两种拓扑结构图可以体现IS-IS与OSPF的不同点:
  • 在IS-IS中,每个路由器都只属于一个区域;而在OSPF中,一个路由器的不同接口可以属于不同的区域。
  • 在IS-IS中,单个区域没有骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域。
  • 在IS-IS中,Level-1和Level-2级别的路由都采用SPF算法,分别生成最短路径树SPT(Shortest Path Tree);而在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。

IS-IS路由器的分类

  • Level-1路由器

    Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,属于不同区域的Level-1路由器不能形成邻居关系。Level-1路由器只负责维护Level-1的链路状态数据库LSDB(Link State Database),该LSDB包含本区域的路由信息,到本区域外的报文转发给最近的Level-1-2路由器。

  • Level-2路由器

    Level-2路由器负责区域间的路由,它可以与同一或者不同区域的Level-2路由器或者其它区域的Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。

    所有Level-2级别(即形成Level-2邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性。只有Level-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用于区域间路由。

IS-IS的网络类型

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

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

对于NBMA(Non-Broadcast Multi-Access)网络,需对其配置三层子接口,并注意三层子接口类型应配置为P2P。

IS-IS不能在点到多点链路P2MP(Point to MultiPoint)上运行。

DIS和伪节点

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

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

图3 伪节点示意图

图3所示,使用伪节点可以简化网络拓扑,使路由器产生的LSP长度较小。另外,当网络发生变化时,需要产生的LSP数量也会较少,减少SPF的资源消耗。

Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。DIS优先级数值最大的被选为DIS。如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会被选中。不同级别的DIS可以是同一台路由器,也可以是不同的路由器。

IS-IS协议中DIS与OSPF协议中DR(Designated Router)的区别:
  • 在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。

  • 在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。

  • 在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中,路由器只与DR和BDR建立邻接关系。

IS-IS广播网上所有的路由器之间都形成邻接关系,但LSDB的同步仍然依靠DIS来保证。

IS-IS的地址结构

网络服务访问点NSAP(Network Service Access Point)是OSI协议中用于定位资源的地址。NSAP的地址结构如图4所示,它由IDP(Initial Domain Part)和DSP(Domain Specific Part)组成。IDP和DSP的长度都是可变的,NSAP总长最多是20个字节,最少8个字节。
  • IDP相当于IP地址中的主网络号。它是由ISO规定,并由AFI(Authority and Format Identifier)与IDI(Initial Domain Identifier)两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域。
  • DSP相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL(NSAP Selector)用来指示服务类型。
图4 IS-IS协议的地址结构示意图

  • Area Address

    IDP和DSP中的High Order DSP一起,既能够标识路由域,也能够标识路由域中的区域,因此,它们一起被称为区域地址(Area Address),相当于OSPF中的区域编号。同一Level-1区域内的所有路由器必须具有相同的区域地址,Level-2区域内的路由器可以具有不同的区域地址。

    一般情况下,一个路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。为了支持区域的平滑合并、分割及转换,在设备的实现中,一个IS-IS进程下最多可配置3个区域地址。

  • System ID

    System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。

    在实际应用中,一般使用Router ID与System ID进行对应。假设一台路由器使用接口Loopback0的IP地址192.168.1.1作为Router ID,则它在IS-IS中使用的System ID可通过如下方法转换得到:
    • 将IP地址192.168.1.1的每个十进制数都扩展为3位,不足3位的在前面补0,得到192.168.001.001。

    • 将扩展后的地址分为3部分,每部分由4位数字组成,得到1921.6800.1001。重新组合的1921.6800.1001就是System ID。

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

  • SEL

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

网络实体名称NET(Network Entity Title)指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00)。NET的长度与NSAP的相同,最多为20个字节,最少为8个字节。在路由器上配置IS-IS时,只需要考虑NET即可,NSAP可不必去关注。

例如有NET为:ab.cdef.1234.5678.9abc.00,则其中Area Address为ab.cdef,System ID为1234.5678.9abc,SEL为00。

IS-IS的报文类型

IS-IS报文有以下几种类型:HELLO PDU(Protocol Data Unit)、LSP和SNP。

  • Hello PDU

    Hello报文用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs)。其中,广播网中的Level-1 IS-IS使用Level-1 LAN IIH;广播网中的Level-2 IS-IS使用Level-2 LAN IIH;非广播网络中则使用P2P IIH。它们的报文格式有所不同。P2P IIH中相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段以及表示DIS和伪节点System ID的LAN ID字段。

  • LSP

    链路状态报文LSP(Link State PDUs)用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP。Level-1 LSP由Level-1 IS-IS传送,Level-2 LSP由Level-2 IS-IS传送,Level-1-2 IS-IS则可传送以上两种LSP。

    LSP报文中主要字段的解释如下:

    • ATT字段:当Level-1-2 IS-IS在Level-1区域内传送Level-1 LSP时,如果Level-1 LSP中设置了ATT位,则表示该区域中的Level-1 IS-IS可以通过此Level-1-2 IS-IS通往外部区域。

    • OL(LSDB Overload)字段:过载标志位。

      设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过过载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会使用这台路由器做转发,只计算该节点上的直连路由。更多内容请参见《原理描述-IS-IS过载位》。

    • IS Type字段:用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)。

  • SNP

    序列号报文SNP(Sequence Number PDUs)通过描述全部或部分数据库中的LSP来同步各LSDB(Link-State DataBase),从而维护LSDB的完整与同步。

    SNP包括全序列号报文CSNP(Complete SNP)和部分序列号报文PSNP(Partial SNP),进一步又可分为Level-1 CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP。

    CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒);在点到点链路上,CSNP只在第一次建立邻接关系时发送。

    PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。

IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组。其格式如图5所示。TLV也称为CLV(Code-Length-Value)。

图5 TLV格式

不同PDU类型所包含的TLV是不同的。如表1所示。

表1 PDU类型和包含的TLV名称

TLV Type

名称

所应用的PDU类型

1

Area Addresses

IIH、LSP

2

IS Neighbors(LSP)

LSP

4

Partition Designated Level2 IS

L2 LSP

6

IS Neighbors(MAC Address)

LAN IIH

7

IS Neighbors(SNPA Address)

LAN IIH

8

Padding

IIH

9

LSP Entries

SNP

10

Authentication Information

IIH、LSP、SNP

128

IP Internal Reachability Information

LSP

129

Protocols Supported

IIH、LSP

130

IP External Reachability Information

L2 LSP

131

Inter-Domain Routing Protocol Information

L2 LSP

132

IP Interface Address

IIH、LSP

其中,Type值从1到10的TLV在ISO10589中定义,其他几种TLV在RFC1195中定义。

posted @ 2024-04-15 16:07  博雅塔之客  阅读(50)  评论(0编辑  收藏  举报