1.IS-IS基本概念

1.1 IS-IS历史

1.png
IS-IS概念

  • IS-IS最初是国际标准化组织ISO为它的无连接网络协议CLNP设计的一种动态路由协议。
  • IETF对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,称为集成IS-IS。

IS-IS常用术语

  • CLNS:Connectionless network service,无连接网络服务
    • 在OSI中,还有CONS(Connection network service),面向连接网络服务
    • CLNS和CONS是OSI协议族中的两种数据通信服务模型
  • CLNS由以下三个协议构成:
    • CLNP:类似于TCP/IP中的IP协议
      • IP协议为TCP/IP传输层服务,CLNP为OSI传输层服务
    • IS-IS:中间系统间的路由协议,即路由器之间的协议,类型于IP中的OSPF
    • ES-IS:终端系统与中间系统间的协议,相当于IP中的ARP,ICMP,DHCP等。
  • NASP:OSI协议通过NSAP(Network Service Access Point)来寻址OSI网络中处于传输层的各种服务,即NSAP类似于IP地址。

集成IS-IS注意事项

  • 集成IS-IS能够同时应用在TCP/IP和OSI环境中,我们后续讨论的IS-IS协议,如无特殊说明均为集成IS-IS。

2.jpg

1.2 IS-IS相关术语

3.jpg
4.jpg

  • NSAP:在OSI中,每个节点配置了一个NSAP就可以了

1.3 IS-IS地址结构

5.png

  • 对于49.0002.0000.0000.0001.00:
    • 49.0002:Area ID
      • 49:路由域
      • 0002:区域
    • 0000.0000.0001:System ID
    • 00:SEL
    • 确定System ID后,其它的就很容易区分,因为System ID固定为6B。

NSAP

  • 由IDP和DSP组成。IDP和DSP的长度都是可变的,NSAP总长最多是20个字节,最少8个字节。
  • IDP相当于IP地址中的主网络号。它是由ISO规定的,并由AFI与IDI两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域。
  • DSP相当于IP地址中的子网号和主机地址。它由High OrderDSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL用来指示服务类型。

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

    • Area ID是可变长度的,即1~13B,所以NET地址的长度可以为8~20B,习惯上配置为10B,比如49.0001.0000.0000.0001.00;
  • System ID用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)。一般情况下,我们采用设备的router-id转换为System ID。
  • SEL的作用类似IP中的“协议标识符”,不同的传输协议对应不同的SEL。在IP上SEL均为00。


    NET

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

  • 在一个IS-IS进程中,最多可以配3个NET地址。在配置多个NET时,必须保证它们的System ID都相同。

6.jpg

1.4 IS-IS整体拓扑

7.png
IS-IS整体拓扑

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


    拓扑介绍

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

  • 另外,Level-2级别的路由器可以不在同一个区域,即可以属于不同的区域。(可以结合IS-IS路由器分类的图示来进行理解)


    拓扑所体现的IS-IS与OSPF不同点

  • 在OSPF中,一条链路只属于一个区域;而在IS-IS中,一条链路可以跨接不同的区域;即OSPF以路由器来区分边界,而IS-IS在链路上区分边界。

  • 在IS-IS中,骨干网(Backbone)指的不是一个特定的区域;而在OSPF中,Area0被定义为骨干区域;
  • 在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。


    IS-IS区域

  • IS-IS允许将整个路由域分为多个区域

  • 一个路由器目前最多有3个Area ID,配置不同的区域ID是为了平滑的进行区域合并,分割,转换用。
  • 和OSPF不同的是,一个路由器必须整个属于某个区域,而不能是某些接口属于一个区域,其它的接口属于另外一个区域。
  • 最多可以配置3个NET地址,但是,System ID必须要一致。

1.5 IS-IS路由器分类

8.png
8.jpg

  • 对于Area 47.0001:

    • 47:路由域
    • 0001:区域


    Level-1路由器:位于非骨干区域

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

  • Level-1路由器只有本区域内Level-1的链路状态数据库LSDB,该LSDB包含本区域的路由信息。
    • 在ISIS中,非骨干区域只有本区域的路由信息,没有骨干区域和其他非骨干区域的路由信息(L1区域类似于OSPF的Totally Stub区域,可以结合IS-IS整体拓扑的图示来进行理解);
    • 所以到达本区域外的报文需要转发给最近的Level-1-2路由器(该路由器连接了骨干区域和非骨干区域);
    • 非骨干区域中的路由器通过与自己最近的L1/L2路由器的ATT BIT生成指向此台设备的默认路由作为出口路由(L1区域类似于OSPF的Totally Stub区域);
    • 在转发时,如果目的地址在本区域内,就直接利用L1 LSDB生成的路由转发报文;如果目的地址不在本区域,则利用最近的L1/L2路由器作为区域外网络的出口,由此可能导致次优的路由。(解决的方法是路由渗透)
  • 到本区域外的报文转发给最近的Level-1-2路由器。
  • Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。


    Level-2路由器:位于骨干区域

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

  • Level-2路由器维护一个Level-2的LSDB,该LSDB包含IS-IS所有区域的路由信息。
  • 所有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-2的邻居关系;
    • 还可以与同一或不同区域的Level-1-2路由器形成Level-2的邻居关系。
  • Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。
  • Level-1-2路由器维护两个LSDB,Level-1的LSDB 用于区域内路由,Level-2的LSDB用于区域间路由。
    • L1/L2路由器完成它所在的区域和骨干之间的路由信息的交换,既承担L1的职责也承担L2的职责;
    • 一个L1/L2路由器如果和其它区域的路由器形成邻接关系,那么它将通告本区域内的L1路由器它有区域的出口点;
    • 具体方法是在生成本区域的L1 LSP时将报文中的ATT(Attachment)bit置为1,发给区域内的L1邻居。
      1. [Huawei-isis-1]is-level ?
      2. level-1 Level-1
      3. level-1-2 Level-1-2
      4. level-2 Level-2

1.6 IS-IS层次性

9.jpg
10.jpg
11.jpg

1.7 IS-IS网络类型

12.png
IS-IS支持的网络类型

  • 对于NBMA网络,如帧中继,需对其配置子接口,并注意子接口类型应配置为P2P。IS-IS没有专门对应于点到多点(P2MP)链路的网络类型。


    DIS

  • 在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS。

  • Level-1和Level-2的DIS是分别选举的。
  • DIS优先级数值最大的被选为DIS。如果优先级数值最大的路由器有多台,则其中MAC地址最大的路由器会被选中。
  • 同一台路由器在不同level的DIS选举中可以设置不同的优先级。
  • 优先级为0的路由器也参与DIS的选举,且DIS选举支持抢占。
  • 同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系,但LSDB的同步仍然依靠DIS来保证。
  • DIS用来创建和更新伪节点,并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备,在LAN中通过每10秒周期性地发送CSNP来泛洪LSP。


    伪节点

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

  • 使用伪节点可以简化网络拓扑。
  • 当网络发生变化时,需要产生的LSP数量较少,减少进行SPF运算时的资源消耗。


    ISIS DIS与OSPF DR/BDR的不同点

  • 在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。

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

DIS和Pseudnode
13.jpg
伪节点:
14.jpg
没有伪节点时的LSPDB
15.jpg
有伪节点时的LSPDB
16.jpg

  • 总结
    • 每个路由器都会通告自己与伪结点的连接性的LSP,
    • 同时一个LAN上的路由器也会收集其它路由器产生的该类LSP,
    • 当然还有伪节点产生的关于此LAN上路由器列表的LSP,以保证LSDB的同步。
    • (参考2.2.2 ISIS-报文类型—LSP和2.5 广播网络LSP交互过程)

2.IS-IS基本原理

2.1 形成邻居关系的条件

17.png

  • 同一区域实际上是不严谨的,只是L1必须要同区域;
  • 对于PPP和HDLC,网络类型就是点到点;对于以太网,网络类型就是广播类型;
  • 不同层次类型的路由器不能形成邻居关系,即Level-2路由器不能和Level-1路由器形成邻居关系,但是Level-1-2路由器既能和同一区域的Level-1路由器形成Level-1邻居关系又能和相同或者不同区域Level-2路由器形成Level-2邻居关系。
  • Level-1路由器只能与同一区域的Level-1路由器或者Level-1-2路由器形成Level-1邻居关系。
  • 链路两端IS-IS接口的地址必须处于同一网段
    • 根据原理,IS-IS 邻居关系的形成与IP 地址无关的,所以容易导致相互形成邻居关系的路由器间处于不同的IP网段。为了解决这一问题,华为设备进行同一网段检查,保证邻居关系的正确建立。
    • 如果不需要检查对端地址,在P2P网络中,可以配置接口忽略IP地址检查;在广播网络中,需要先在接口下将网络类型修改成P2P网络,然后才可以配置接口忽略IP地址检查。

形成邻居关系的细节
18.jpg

2.2 IS-IS报文类型

19.png

2.2.1 IIH PDU

20.jpg

  • 在广播链路上,如果想同时形成L1和L2邻居关系,则需要发送这两种Hello报文
  • 但是在点到点链路上,只需要发送一种Hello报文就可以了
  • 另外需要注意的是Hello报文使用的是组播MAC地址进行发送

2.2.2 LSP

  • LSP

21.jpg

  • LSP Header

22.jpg

  • 可以查看下面的示例:

dis isis lsdb

Database information for ISIS(1)
————————————————

Level-2 Link State Database

LSPID Seq Num Checksum Holdtime Length ATT/P/OL
———————————————————————————————————————-
0000.0000.3333.00-00 0x00000009 0x2591 663 131 0/0/0
0000.0000.3333.02-00 0x00000001 0xf71f 657 55 0/0/0
0000.0000.4444.00-00 0x00000005 0xe391 661 126 0/0/0
0000.0000.5555.00-00 0x00000009 0x6d99 661 140 0/0/0
0000.0000.5555.02-00
0x00000001 0x6f41 661 55 0/0/0
0000.0000.6666.00-00 0x00000009 0x69d6 658 114 0/0/0
0000.0000.6666.01-00 0x00000001 0x3219 656 55 0/0/0

  • 带有*表示是自己产生的;

  • Sequence Number

23.jpg

  • LSP Holdtime和刷新间隔

24.jpg

  • OSPF的这些时间是不可以修改的,而且是从0开始递增。

  • LSP的信息,DIS产生的伪节点,伪节点的标识,以及伪节点LSP

25.png
DIS产生的伪节点
26.png

  • 伪节点ID与伪节点产生的LSP的ID是两个不同的概念

  • LSP信息(简要信息,或者头部信息)

27.png

  • 当然,如果AR1在连接的多个LAN网段都是DIS,则产生的伪节点ID则会有多个,编号就为AR1.01,AR1.02,以此类推。

  • LSP信息(详细)

28.png

  • 上面的NBR ID,表示邻居的系统ID,该系统ID其实就是伪节点ID,说明LAN中的所有路由器会通告自己与伪节点的连通性。

  • LSP信息(详细,伪节点产生的LSP)

29.png

2.2.3 CSNP

30.jpg

2.2.4 PSNP

31.jpg

2.3 广播邻接关系的建立

32.png

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


    ISIS邻居建立的不同情况

  • 在广播网络上,使用LAN IIH报文来建立邻接关系。

  • 有两种类型的LAN IIH:L1 LAN IIH(组播MAC:0180-C200-0014)和L2 LAN IIH(组播MAC:0180-C200-0015) 。
  • Level-1路由器通过交互L1 LAN IIH报文来建立邻接关系;
  • Level-2路由器通过交互L2 LAN IIH报文来建立邻接关系;
  • Level-1-2路由器会同时交互L1 LAN IIH报文和L2 LAN IIH报文来建立邻接关系。


    以两台L2路由器在广播链路上建立邻居关系为例

  • R1组播发送Level-2 LAN IIH(组播MAC:0180-C200-0015),此报文中无邻居标识。

  • R2收到此报文后,将自己和R1的邻居状态标识为Initial。然后,R2再组播向R1回复Level-2 LAN IIH,此报文中标识R1为R2的邻居。
  • R1收到此报文后,将自己与R2的邻居状态标识为Up。然后R1再组播向R2发送一个标识R2为R1邻居的Level-2 LAN IIH。
  • R2收到此报文后,将自己与R1的邻居状态标识为Up。这样,两个路由器成功建立了邻居关系。
  • 因为是广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。
  • Hello报文中包含Priority字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。优先级默认为64。
  • IS-IS中DIS发送Hello时间间隔为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。(只是Hello时间间隔,不是CSNP的时间间隔)


    IS-IS和OSPF关于邻接关系的区别

  • IS-IS两个邻居路由器只要相互交换HELLO数据包就认为相互形成了邻接关系;而OSPF中,两台路由器进入2-Way状态则被认为形成了邻居关系,只有进入Full状态才被认为建立了邻接关系。

  • IS-IS中,优先级为0的路由器也可以参与DIS选举;而OSPF端优先级为0表示不参与DR选举。
  • IS-IS中,DIS是可以抢占的;OSPF中DR/BDR选举结束后不得被抢占。

2.4 P2P邻接关系的建立

33.png

  • 在P2P网络上,邻居关系的建立不同于广播网络,分为两次握手机制和三次握手机制。


    两次握手

  • 只要路由器收到对端发来的Hello报文,就单方面宣布邻居为Up状态,建立邻居关系。

  • 容易存在单通风险。


    三次握手

  • 此方式通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,类似广播网络中邻居关系的建立。

  • 默认使用3次握手;
  • 配置3次握手时的参数
    • 在接口配置使用3次握手来建立邻居关系时,使用命令3-way的参数时,后面必须要再加only参数,否则既可以使用3次握手,也可以使用2次握手来建立邻居关系。

2.5 广播网络LSP交互过程

34.png
新加入的路由器与DIS LSDB同步交互过程

  • 假设新加入的路由器R3已经与R2(DIS)和R1建立了邻居关系。
  • 建立邻居关系之后,R3将自己的LSP发往组播地址(Level-1:0180-C200-0014;Level-2:0180-C200-0015)。这样网络上所有的邻居都将收到该LSP。
  • 该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP报文,进行该网络内的LSDB同步。
  • R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
  • DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步。
  • 广播网段不需要发送PSNP对收到的LSP进行确认,这是一种不可靠的传输机制,弥补的机制为,DIS会周期性泛洪CSNP;
  • 上面图示中,R2.01-00为伪节点的LSP,即R2作为DIS,它除了自己本身会生成LSP,也会为伪节点生成LSP,因为伪节点的LSP会列举网段上所有已知路由器;


    在上述过程中DIS 的LSDB 更新过程如下(了解就可以了)

  • DIS接收到LSP,在数据库中搜索对应的记录。若没有该LSP,则将其加入数据库,并组播新数据库内容。(此时的数据库包含新的LSP,如R3的LSP,比原来的数据库要新)

  • 若收到的LSP序列号大于本地LSP的序列号,就替换为新报文,并组播新数据库内容;若收到的LSP序列号小于本地LSP的序列号,就向入端接口发送本地LSP报文。
  • 若两个序列号相等,则比较Remaining Lifetime(剩余生存时间)。若收到的LSP 的Remaining Lifetime 小于本地LSP 的Remaining Lifetime,就替换为新报文,并组播新数据库内容;若收到的LSP 的Remaining Lifetime 大于本地LSP的Remaining Lifetime,就向入端接口发送本地LSP报文。
  • 若两个序列号和Remaining Lifetime都相等,则比较Checksum。若收到的LSP的Checksum大于本地LSP的Checksum,就替换为新报文,并组播新数据库内容;若收到的LSP的Checksum小于本地LSP的Checksum,就向入端接口发送本地LSP报文。
  • 若两个序列号、Remaining Lifetime和Checksum 都相等,则不转发该报文。

  • 补充

    • 广播网段中,LSP的传送是不可靠的,即没有确认机制的,弥补的方式为,DIS周期泛洪CSNP;

2.6 P2P网络LSP交互过程

35.png
P2P网络LSDB同步过程

  • 建立邻居关系之后,R1与R2会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。
    • 实验的效果为,R1与R2相互建立邻居关系后,会相互发送LSP,然后再发送CSNP,进行后续的LSDB同步过程;
  • 假定R2向R1索取相应的LSP。则R1发送R2请求的LSP的同时启动LSP重传定时器,并等待R2发送的PSNP作为收到LSP的确认。
  • 如果在接口LSP重传定时器超时后,R1还没有收到R2发送的PSNP报文作为应答,则重新发送该LSP直至收到PSNP报文。

36.png
在P2P链路中设备的LSDB 更新过程如下(了解就可以了)

  • 若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认;若收到的LSP比本地的序列号更大,则将这个新的LSP 存入自己的LSDB,再通过一个PSNP 报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居。
  • 若收到的LSP序列号和本地相同,则比较Remaining Lifetime,若收到LSP的Remaining Lifetime 小于本地LSP的Remaining Lifetime,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LS,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Remaining Lifetime大于本地LSP 的Remaining Lifetime,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。
  • 若收到的LSP和本地LSP的序列号和Remaining Lifetime都相同,则比较Checksum,若收到LSP的Checksum大于本地LSP的Checksum,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Checksum小于本地LSP的Checksum,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。
  • 若收到的LSP和本地LSP的序列号、Remaining Lifetime和Checksum都相同,则不转发该报文。


    在P2P网络中,PSNP的作用

  • 作为Ack应答以确认收到的LSP。

  • 用来请求所需的LSP。

3.IS-IS基本特点

3.1 IS-IS路由渗透

37.png
假设R1要访问R6,缺省情况下

  • R1作为Level-1路由器并不知道本区域外部的路由,那么发往区域外的报文都会选择由最近的Level-1-2路由器(即R3)产生的缺省路由发送出去(是因为L1/L2路由器产生ATT bit置位的LSP),所以会出现R1选择次最优路由(R1->R3->R5->R6)转发报文的情况。
  • 为解决上述问题,IS-IS提供了路由渗透功能。通过在Level-1-2路由器上定义ACL、路由策略、Tag标记等方式,将符合条件的路由筛选出来并导入本区域的level-1 LSDB,从而实现将其他Level-1区域和骨干区域的部分路由信息通报给自己所在的Level-1区域。
  • 如果分别在Level-1-2路由器R3和R4上使能路由渗透功能,Aera47.0001中的Level-1路由器就会拥有经这两个Level-1-2路由器通向区域外的路由信息。经过路由计算,选择的转发路径为R1->R2->R4->R5->R6,即R1到R6的最优路由。

  • UP/DOWN bit防止环路

38.png

  • 在AR3上配置路由渗透

39.png

  • 可能产生环路
    • AR3将该LSP传给到AR4的时候,如果AR4也使用带有10.1.7.7的链路状态信息进行计算,则有可能会传给AR5,从而导致环路。
  • 如何防止环路
    • 在AR3发送给AR1的LSP中,10.1.7.7的链路状态信息带有DOWN bit置位,而正常情况下该bit置位为UP,当AR4收到时,不仅不会将其传给AR5,而且也不会将其进行SPF计算,只是会保存到LSDB中;
    • 该bit只能通过抓包才能看到;

40.png

3.2 IS-IS路由过载

41.png
原理描述

  • 设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过过载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会使用这台路由器做转发,只计算该节点上的直连路由。


    拓扑说明

  • R1到R3的报文由R2转发,但如果R2发布的LSP中的OL位置1,则R1认为R2的LSDB不完整,于是将流量通过R4、R5转发给R3,但去往R2直连网段的流量不受影响。


    进入过载状态的方法

  • 设备异常可导致自动进入过载状态。

  • 手工设置使设备进入过载状态。


    进入过载状态的说明

  • 如果因为设备进入异常状态导致系统进入过载状态,此时系统将删除全部引入或渗透的路由信息。

  • 如果因为用户配置导致系统进入过载状态,此时会根据用户的配置决定是否删除全部引入或渗透路由。

  • 路由过载实例演示

42.png

  • AR5上配置路由过载

43.png

  • AR3上的LSDB情况

image.png

  • 可以看到AR3上有收到AR5发送过来的LSP,只是会发现OL位已经置为1了;
  • 另外一个是P bit位,这是用于区域修复的,作用类似于OSPF中的虚链路,当初在设计ISIS的时候也考虑到了区域不规整的情况;

  • AR3上的路由表情况

45.png

  • 可以看到AR5后面的路由信息就没有了。

4.IS-IS收敛特性

46.png

4.1 快速收敛

增量最短路径优先算法

  • 增量最短路径优先算法I-SPF,是指当网络拓扑改变的时候,只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算;而最后生成的最短路径树SPT与对所有节点进行计算所得的结果相同,同时大大降低了CPU的占用率,提高了网络收敛速度


    部分路由计算PRC

  • 部分路由计算PRC,PRC的原理与I-SPF相同,都是只对发生变化的路由进行重新计算。不同的是,PRC不需要计算节点路径,而是根据I-SPF算出来的SPT来更新路由。在路由计算中,叶子代表路由,节点则代表路由器。如果I-SPF计算后的SPT改变,PRC会只处理那个变化的节点上的所有叶子;如果经过I-SPF计算后的SPT并没有变化,则PRC只处理变化的叶子信息。比如一个节点使能一个IS-IS接口,则整个网络拓扑的SPT是不变的,这时PRC只更新这个节点的接口路由,从而节省CPU占用率。


    智能定时器

  • LSP生成智能定时器:为了避免LSP频繁振荡对网络带来的冲击,LSP的生成存在一个最小间隔的限制,即同一个LSP在最小间隔内不允许重复生成,一般缺省最小时间间隔为5秒,作了这种限制后,路由收敛速度受到较大影响。IS-IS中,当本地路由信息发生变化时,路由器需要产生新的LSP来通告这些变化。当本地路由信息的变化比较频繁时,立即生成新的LSP会占用大量的系统资源。另一方面,如果产生LSP的延迟时间过长,则本地路由信息的变化无法及时通告给邻居,导致网络的收敛速度变慢。可以使用timer lsp-generation命令用来设置产生LSP(这些LSP具有相同的LSP ID)的延迟时间。

  • SPF计算智能定时器:IS-IS中,LSDB发生变化时需要进行路由计算,但频繁的路由计算会占用大量的系统资源,导致系统性能下降。延迟SPF计算可以在一定程度上提高路由计算的效率。另一方面,如果路由计算的延迟时间过长,则会减慢路由的收敛速度。可以使用timer spf命令用来设置SPF路由计算的延迟时间。


    LSP快速扩散

  • LSP快速扩散,由于LSP数量比较庞大,通常为了减轻大量LSP一起发送时对网络设备带来的冲击,一般IS-IS都是采用周期性分批扩散LSP的方法(缺省情况下,接口上发送LSP报文的最小间隔时间是50毫秒,每次发送LSP报文的最大数目是10)。使能flash-flood功能后,当LSP发生变化而导致SPF重新计算时,不再等待周期性分批扩散,而是把导致SPF重新计算的LSP立即扩散出去,从而有效缩短拓扑变化时全网设备上LSDB不一致的时间,提高全网的快速收敛性能。虽然LSP数量很多,但每次网络出现故障而需要发生变化的LSP却很少,所以将这部分发生变化的LSP进行单独的快速扩散对系统的资源占用影响很有限。

4.1.1 I-SPF(Incremental SPF)

47.jpg
48.jpg
49.jpg

  • D通告新邻居G,A只需要从D开始计算SPT。

4.1.2 PRC:Partial Route Calulation

50.jpg
image.png
image.png

4.1.3 智能定时器

52.jpg
51.jpg
53.jpg

4.1.4 LSP快速扩散

54.jpg

4.2 按优先级收敛

  • 可以通过IP前缀列表等将特定路由过滤出来,通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。
  • IS-IS路由的收敛优先级分为critical、high、medium和low四种。收敛优先级的顺序由高到低为critical > high > medium> low。
  • 本地有效。

55.jpg

5.IS-IS拓展特性

5.1 IS-IS认证

56.png
对于区域和路由域认证,可以设置为SNP和LSP分开认证(可以忽略)

  • 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查。
  • 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查。
  • 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查。
  • 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查。
  • 接口认证、区域认证和路由域认证

57.png

  • 接口认证
    • 配置了接口认证后,在发送的IIH报文中,会携带认证字段,如果没有配置接口认证,就不会有该字段;
  • 区域认证
    • 区域认证要在ISIS进程中配置;
    • 先在AR3上进行配置,[AR3-isis-1]area-authentication-mode md5 hcie(后续再配置AR1的);
    • 之后,在AR3发送给AR1的SNP和LSP报文中,都带有认证字段,如果没有配置区域认证,则不会有该认证字段;
    • 配置认证后,AR3会对接收的LSP和SNP报文进行认证,如果不包含认证字段,则会丢弃LSP和SNP报文,所以AR3学习不到AR1发送过来的路由信息;
    • 但是AR1是会接收AR3发送过来的LSP和SNP的,虽然没有配置认证,理解的方式为,AR1不认识该字段,所以也会进行接收;
  • 路由域认证
    • 路由域认证要在ISIS进程中配置;
    • 先在AR5上进行配置,domain-authentication-mode md5 hcie(后续再配置AR3的);
    • 之后,在AR5发送给AR1的SNP和LSP报文中,都带有认证字段,如果没有配置区域认证,则不会有该认证字段;
    • 配置认证后,AR5会对接收的LSP和SNP报文进行认证,如果不包含认证字段,则会丢弃LSP和SNP报文,所以AR5学习不到AR3发送过来的路由信息;
    • 但是AR3是会接收AR5发送过来的LSP和SNP的,虽然没有配置认证,理解的方式为,AR3不认识该字段,所以也会进行接收;

5.2 IS-IS LSP分片扩展

58.png

5.2.1 基本概念

  • 初始系统(Originating System):实际运行IS-IS协议的路由器。使能IS-IS LSP分片扩展功能后,可以为路由器配置附加的虚拟系统,“Originating System”指的是原来运行的、“真正”的IS-IS进程。
  • 系统ID(System ID):初始系统的系统ID。
  • 附加系统ID(Additional System ID):使能IS-IS LSP分片扩展功能后,为IS-IS路由器配置的附加的虚拟System ID。每个附加系统ID都可以生成256个额外扩展的LSP分片。附加系统ID和系统ID一样,在整个路由域中必须唯一。
  • 虚拟系统:由附加系统ID标识的系统,用来生成扩展LSP分片。
  • 系统ID ———-标识—> 初始系统
  • 附加系统ID —标识—> 虚拟系统

5.2.2 原理描述

  • IS-IS通过泛洪LSP来宣告链路状态信息,由于一个LSP能够承载的信息量有限,IS-IS将对LSP进行分片。每个LSP分片由产生该LSP的结点或伪结点的SystemID、PseudnodeID(普通LSP中该值为0,Pseudonode LSP中该值为非0)、LSPNumber(LSP分片号)组合起来唯一标识,由于LSPNumber字段的长度是1字节,因此,IS-IS路由器可产生的分片数最大为256,限制了IS-IS路由器可以发布的链路信息量。
  • IS-IS LSP分片扩展特性可使IS-IS路由器生成更多的LSP分片,通过为路由器配置附加的虚拟系统、每个虚拟系统都可生成256个LSP分片(最多可配置50个虚拟系统),使得IS-IS路由器可最多生成13056个LSP分片

5.2.3 LSP分片分类

59.png
Mode-1

  • 用于网络中的部分路由器不支持LSP分片扩展特性的情况。
  • 虚拟系统参与路由SPF计算,初始系统发布的LSP中携带了到每个虚拟系统的链路信息。类似地,虚拟系统发布的LSP也包含到初始系统的链路信息。这样,在网络中虚拟系统看起来与初始系统相连的真实路由器是一样的。
  • 虚拟系统的LSP中包含和原LSP中相同的区域地址和overload bit。如果还有其它特性的TLV,也必须保持一致。
  • 虚拟系统所携带的邻居信息指向初始系统,metric为最大值(窄度量情况下最大值为64)减1;初始系统所携带的邻居信息指向虚拟系统,metric必须为0。这样就保证了其它路由器在进行路由计算的时候,虚拟系统一定会成为初始系统的下游节点。
  • 如拓扑所示:R2是不支持分片扩展的路由器,R1设置为mode-1的分片扩展,R1-1和R1-2是R1的虚拟系统,R1将一部分路由信息放入R1-1和R1-2的LSP报文中向外发送。R2收到R1,R1-1和R1-2的报文时,认为对端有三台独立的路由器,并进行正常的路由计算。同时R1到R1-1和R1-2的开销都是0,所以,R2到R1的路由开销值与R2到R1-1路由开销值都相等。
  • 虚拟系统产生的LSP包含的邻居只有初始系统(邻居类型为点到点),且虚拟系统仅当做叶子考虑。


    Mode-2

  • 用于网络中所有路由器都支持LSP分片扩展特性的情况。在该模式下,虚拟系统不参与路由SPF计算,网络中所有路由器都知道虚拟系统生成的LSP实际属于初始系统。

  • R2支持分片扩展,R1设置为Mode-2的分片扩展,R1将一部分路由信息放入到R1-1和R1-2的LSP报文中向外发送。当R2收到R1-1和R1-2的LSP时,通过IS Alias IDTLV知道他们的初始系统是R1,则把R1-1,R1-2所发布的信息都视为R1的信息。

5.2.4 注意事项

  • 配置分片扩展后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。重启之后,初始系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的LSP中发送出去。
  • 如果网络上还有其他厂商的设备,配置分片扩展必须配置成Mode-1,否则其他设备无法识别。
  • 建议先配置分片扩展和虚拟系统,然后将IS-IS建立邻居或者引入路由。如果先让IS-IS携带大量信息,256个分片无法装下,再配置分片扩展和虚拟系统,需要重启IS-IS才可以让配置生效,所以要谨慎。

6.IS-IS管理特性

6.1 IS-IS管理标记(Tag)

60.png
管理标记

  • 管理标记特性允许在IS-IS域中通过管理标记对IP地址前缀进行控制,可以达到简化管理。其用途包括控制不同级别和不同区域间的路由引入,以及在同一路由器上运行的IS-IS多实例。


    拓扑描述

  • 假设R1只想收到R2/R3/R4的Level-1路由信息。首先给R2、R3、R4的IS-IS的接口配置相同的tag(管理标记)。然后在Area47.0003的Level-1-2 路由器做从Level-2到Level-1区域的路由渗透,渗透时使用tag进行过滤,可以简化过滤的策略。


    注意事项

  • 使能管理标记时,必须使能IS-IS wide metric属性

配置实例:
61.png

  • 所有路由器使能wide metric属性
    • [AR7-isis-1]cost-style wide
  • 在AR7和AR6上配置TAG属性
    • 配置方式

62.jpg

  • AR7上配置(新增了接口l1,IP地址为100.100.100.100/32)

image.png

  • AR6上配置

image.png

  • AR3上查看相应的路由信息

63.png

  • 在AR3上做路由渗透时就可以根据TAG属性进行路由渗透

64.png

6.2 IS-IS Wide Metric

65.jpg

  • 最大为63,指的是初始路由的发出点最大可以设置cost值为63;
  • IS-IS在计算路由时,是不基于链路计算cost值的,每经过一跳,cost值都加上10;

66.jpg
67.jpg
image.png
image.png

  • 为什么要改为wide类型才能使用标签?
    • 对比前面的数据包,改为wide之后,数据包的格式变为这样:

image.png

  • 可以看到多了sub-TLVs,字段,也就是用来存放TAG值的字段,原来的数据包类型是没有的,所以也就没有办法支持TAG;
  • 这也是ISIS的优点之一,扩展很灵活。


7.IS-IS路由引入、过滤与汇聚


  • 路由引入
    • 默认情况下,在引入其它路由时,比如直连路由,是以level-2的方式引入的,所以如果在L1路由器上做引入,一定要加level-1参数;
  • 路由过滤
    • 在isis进程中使用filter-policy import进行路由的过滤时,需要注意的是,此时进行的过滤只是LSPDB在向路由表中加载路由时的过滤,这意味着,即使对相关路由做了过滤,在LSPDB上,相应的LSP还是存在的;
  • 路由汇聚
    • 可以在L1/L2路由器上进行过滤,有两种过滤方式:
      • L1区域到L2区域的汇聚
        • 默认情况下,L1区域的路由会自动引入到L2区域中;
        • 如果需要进行汇聚,可以直接在isis进程下配置summary就可以,最后面的参数默认为level-2;
        • 此时L2区域的路由器会同时拥有汇聚路由和明细路由(实验结果);
      • L2区域到L1区域的汇聚
        • 这种情况下,需要先进行路由渗透;
        • 在isis进程下配置summary时,需要在最后面加上level-1参数,表示是从L2区域到L1区域的汇聚;
        • 此时L1区域只有汇聚路由,没有明细路由(实验结果);

8.IS-IS与OSPF比较

image.png
image.png
image.png

8.1 DIS与DR的区别

  1. DR有BDR备份,而DIS无备份,DIS Hello时间为3s,普通为10S。
  2. DR不支持抢占,DIS支持抢占。
  3. 优先级为0不能成为DR,而ISIS中优先级为0可以成为DIS。
  4. DR默认优先级为1,DIS默认64。
  5. MA网络中DR-other只与DR/BDR建立邻接关系,而ISIS中DIS全互联。
  6. DR优先级一样比较Router-ID,而DIS优先级一样则比较MAC,(PPP中没有MAC的则比较system-id)。
  7. DR的Hello时间和普通路由器一样,而DIS是3S(普通是10S)。
  8. DR选举时间为4倍的Hello时间,而DIS则是2倍的Hello。
  9. OSPF中DR-other直接传递LSA是通过DR,而ISIS中所有的设备直接传递LSP,DIS充当间接确认(10s周期更新一次CSNP)