网络学习笔记(5)- IS-IS 工作原理

IS-IS邻接关系建立的原则

  • 同一层次
  • 同一区域
  • 同一网段
  • 相同网络类型 P2P broadcast
  • 相同的mtu 值
  • 认证相同
  • 接口未被设置为silent,在 P2P网络中 ,system-id 长度要一致,最大区域地址数要相同

由于IS-IS是直接运行在数据链路层上的协议,并且最早设计是给CLNP使用的,IS-IS邻接关系的形成与IP地址无关。但在实际的部署中,在IP网络上运行IS-IS时,需要检查对方的IP地址的。如果接口配置了从IP,那么只要双方有某个IP(主IP或者从IP)在同一网段,就能建立邻接,不一定要主IP相同。

IIH

IIH报文用于建立和维持邻接关系,广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH;广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH;点到点网络中则使用P2P IIH。

1652319166845.png

  • Reserved/Circuit Type:表示路由器的类型(01表示L1,10表示L2,11表示L1/L2)。
  • Source ID :发出Hello报文的路由器的System ID。
  • Holding Time : 保持时间。在此时间内如果没有收到邻接发来的Hello报文,则中止已建立的邻接关系。
  • Priority :选举DIS的优先级,取值范围为0~127。数值越大,优先级越高。该字段只在广播网中的Hello消息(LAN IIH消息)携带;点到点网络的Hello消息(P2P IIH消息)没有此字段,也没有此字段之前的R保留位。
  • LAN ID : 包括DIS的System ID和伪节点ID。该字段只在广播网中的Hello消息(LAN IIH消息)携带;点到点网络的Hello消息(P2P IIH消息)没有此字段。
  • Local Circuit ID :本地链路ID。该字段只在点到点网络的Hello消息(P2P IIH消息)携带;广播网中的Hello消息(LAN IIH消息)没有此字段。

邻接建立过程

广播网络

R1及R2通过千兆以太接口互联,这两台直连的Level-1路由器建立邻接关系的过程如下:

  1. 在Down状态下,R1组播发送Level-1 LAN IIH,此报文中邻接列表为空。
  2. R2收到此报文后,将邻接状态标识为Initial。然后,R2再向R1回复Level-1 LAN IIH ,此报文中标识R1为R2的邻接。
  3. R1收到此报文后,将自己与R2的邻接状态标识为Up。然后R1再向R2发送一个标识R2为R1邻接的Level-1 LAN IIH 。
  4. R2收到此报文后,将自己与R1的邻接状态标识为Up。这样,两个路由器成功建立了邻接关系。
  5. 广播网络中需要选举DIS,在邻接关系建立后,路由器会等待两个Hello报文间隔,再进行DIS的选举。

1652319505885.png

  • Level-1 IIH和Level-2 IIH发送的组播地址分别为01-80-C2-00-00-14、01-80-C2-00-00-15。
  • Down:邻接关系的初始状态。
  • Initial:收到IIH,但是报文中的邻接列表未包含路由器自身的System ID。
  • UP:收到IIS,且邻接列表中包含路由器自身的System ID。

点到点网络

点到点网络中,邻接关系的建立使用两次握手方式:只要路由器收到对端发来的Hello报文,就单方面宣布邻接为Up状态,建立邻接关系。

两次握手机制存在明显的缺陷,华为设备在点到点网络中使用IS-IS时,默认使用三次握手建立邻接关系。此方式通过三次发送P2P IIH最终建立起邻接关系。

1652319924213.png

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

  • IS-IS两个邻居路由器只要相互交换HELLO数据包就认为相互形成了邻接关系;而OSPF中,两台路由器进入2-Way状态则认为形成了邻接关系,但是只要进入Full状态才被认为进入完全邻接关系。
  • IS-IS中,优先级为0的路由器亦然可以参与DIS选举;而OSPF汇总优先级为0表示不参与选举。
  • IS-IS中,DIS是基于抢占的;OSPF中DR/BDR已经选举不得抢占。

DIS

广播网络

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

DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备。伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和Circuit ID(非0值)标识。

1652320223708.png

在伪节点LSP中,只包含邻接信息而不包含路由信息。

OSPF协议中的 DR 与 ISIS协议的DIS 的区别

  • DR 选举先看优先级,再比较 router-id ,DIS 先看优先级,再比较 mac 地址
  • DR 默认为1,取值范围为 0-255,DIS 默认为64,取值范围为 0-127,
  • DR 的值为 0 ,代表放弃 DR 选取,DIS 的值为 0 ,只是值小,并不放弃DIS 选举
  • DR 主要为了减少LSA 泛洪,DIS是为周期发送CSNP,同步LSDB
  • DR 有备份的设备 BDR ,DIS 没有备份的 DIS
  • DR 的选举是在链路上选举的,DIS 的选举分为 Level-1 和Level-2,在路由器上选举
  • DR 默认不开启抢占, DIS 默认抢占
  • OSPF选举DR/BDR需要waiting time达40秒,过程也较为复杂,而ISIS选举DIS等待两个Hello报文间隔就可以,简单快捷
  • 选举完成后,ISIS网络链路内所有的路由器之间都建立的是邻接关系。OSPF中DRothers只与DR/BDR形成full邻接关系, DRothers之间只有2-way的关系。

链路状态数据库同步

LSP

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

两类LSP有相同的报文格式。
1652322897437.png

  • Remaining Lifetime : LSP的生存时间,以秒为单位。
  • LSP ID:由三部分组成,System ID、伪节点ID和LSP分片后的编号。
  • Sequence Number: LSP的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1,以后当需要生成新的LSP时,新LSP的序列号在前一个LSP序列号的基础上加1。更高的序列号意味着更新的LSP。
  • Checksum : LSP的校验和。
  • ATT(Attachment):由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。虽然此标志位也存在于Level-1和Level-2的LSP中,但实际上此字段只和Level-1-2路由器始发的L1 LSP有关。
  • OL(LSDB Overload,1bit):过载标志位。设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过超载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会考虑这台路由器。当路由器内存不足时,系统自动在发送的LSP报文中设置过载标志位。
  • IS Type(2bit):生成LSP的路由器的类型。用来指明是Level-1还是Level-2路由器(01表示Level-1,11表示Level-2)。

CSNP

CSNP包含该设备LSDB中所有的LSP摘要,路由器通过交互 CSNP来判断是否需要同步LSDB。

  • 在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒)。
  • 在点到点网络上,CSNP只在第一次建立邻接关系时发送。

1652323075165.png

  • Source ID:发出CSNP报文的路由器的System ID。
  • Start LSP:CSNP报文中第一个LSP的ID值。
  • End LSP ID:CSNP报文中最后一个LSP的ID值。

PSNP

PSNP只包含部分LSP的摘要信息(与CSNP不同):

  • 当发现LSDB不同步时,PSNP来请求邻居发送新的LSP。
  • 在点到的网络中,当收到LSP时,使用PSNP对收到的LSP进行确认。

1652323201855.png

Source ID:发出PSNP报文的路由器的System ID。

广播网络中LSP的同步过程

广播网络中新加入路由器与DIS同步LSDB数据库的过程:

  1. 新加入的路由器R3首先发送IIH报文,与该广播域中的路由器建立邻接关系。建立邻接关系之后,R3等待LSP刷新定时器超时,然后将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻接都将收到该LSP。
  2. 该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时并发送CSNP报文。
  3. R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
  4. DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步。

点到点网络中LSP的同步过程

点到点网络上LSDB数据库的同步过程:

  • R1先与R2建立邻接关系。
  • 建立邻接关系之后,R1与R2会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。

假设R2向R1索取相应的LSP。

  1. R1发送R2请求的LSP的同时启动LSP重传定时器,并等待R2发送的PSNP作为收到LSP的确认。
  2. 如果在接口LSP重传定时器超时后,R1没有收到R2发送的PSNP报文作为应答。
  3. 则R1重新发送该LSP。
  4. R2收到LSP后,发送PSNP进行确认。

LSP的处理机制

IS-IS通过交互LSP实现链路状态数据库同步,路由器收到LSP后,按照以下原则处理:

  • 若收到的LSP比本地LSP的更优,或者本地没有收到的LSP:
    • 在广播网络中:将其加入数据库,并组播发送新的LSP。
    • 在点到点网络中:将其加入数据库,并发送PSNP报文来确认收到此LSP,之后将这新的LSP发送给除了发送该LSP的邻居以外的邻居。

若收到的LSP和本地LSP无法比较出优劣,则不处理该LSP。

1652323661199.png

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

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

路由计算

Level-1路由器的路由计算

  • R1是Level-1路由器,只维护Level-1 LSDB,该LSDB中包含同属一个区域的R2及R3以及R1自己产生的Level-1 LSP。
  • R1根据LSDB中的Level-1 LSP计算出Area 49.0001内的拓扑,以及到达区域内各个网段的路由信息。
  • R2及R3作为Area 49.0001内的Level-1-2路由器,会在它们向该区域下发的Level-1 LSP中设置ATT标志位,用于向区域内的Level-1路由器宣布可以通过自己到达其他区域。 R1作为Level-1路由器,会根据该ATT标志位,计算出指向R2或R3的默认路由。

1652323886998.png

Level-1路由器的次优路径的问题

缺省时, R1只能通过指向R2或R3的默认路由到达区域外部,但是R1距离R2和R3路由器的Cost值相等,那么当R1发送数据包到192.168.20.0/24时,就有可能选择路径2,导致出现次优路径。

1652323968935.png

路由渗透

  • 缺省情况下,Level-1-2路由器不会将到达其他区域的路由通告本Level-1区域中。
  • 通过路由渗透,可以将区域间路由通过Leve-1-2路由器传递到Level-1区域,此时Leve-1路由器可以学习到其他区域的详细路由,从而计算出最优路径。
    1652324037390.png

Level-1-2路由器的路由计算

  • R2及R3都维护Level-1 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0001的路由。
  • R2及R3都维护Level-2 LSDB,它们能够通过这些LSDB中的LSP计算出Area 49.0002的路由。
  • R2及R3将到达Area 49.0001的路由以Level-2 LSP的形式发送到Area 49.0002。

1652324114854.png

Level-2路由器的路由计算

R4及R5作为Level-2路由器,只会维护Level-2 LSDB,它们能够根据该LSDB计算出到达全网各个网段的路由

1652324158207.png

路由认证

根据报文的种类,认证可以分为以下三类:

  1. 接口认证:在接口视图下配置,对Level-1和Level-2的Hello报文进行认证。

    • Hello报文使用的认证密码保存在接口下,发送带认证TLV的认证报文,互相连接的路由器接口必须配置相同的口令。
  2. 区域认证:在IS-IS进程视图下配置,对Level-1的CSNP、PSNP和LSP报文进行认证。

    • 区域内的每一台L1路由器都必须使用相同的认证模式和具有共同的钥匙串。
  3. 路由域认证:在IS-IS进程视图下配置,对Level-2的CSNP、PSNP和LSP报文进行认证。

    • IS-IS域内的每一台L2和L1/L2类型的路由器都必须使用相同模式的认证,并使用共同的钥匙串。
    • 对于区域和路由域认证,可以设置为SNP和LSP分开认证。
      • 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查。
      • 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查。
      • 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查。
      • 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查。

根据报文的认证方式,可以分为以下四类:

  • 简单认证:将配置的密码直接加入报文中,这种加密方式安全性较其他两种方式低。
  • MD5认证:通过将配置的密码进行MD5算法加密之后再加入报文中,提高密码的安全性。
  • Keychian认证:通过配置随时间变化的密码链表来进一步提升网络的安全性。
  • HMAC-SHA256认证:通过将配置的密码进行HMAC-SHA256算法加密之后再加入报文中,提高密码的安全性。

总结图

1652349241114.png

|| 版权声明
作者:废权
链接:https://blog.yjscloud.com/archives/141
声明:如无特别声明本文即为原创文章仅代表个人观点,版权归《废权的博客》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
网络学习笔记(5)- IS-IS 工作原理
IS-IS邻接关系建立的原则 同一层次 同一区域 同一网段 相同网络类型 P2P broadcast 相同的mtu 值 认证相同 接口未被设置为silent,在 P2P网络中 ,system-id……
<<上一篇
下一篇>>
文章目录
关闭
目 录