ISIS路由协议(1)

ISIS路由协议

IS-IS概述

  • isis是intermediate system to intermediate system 的简称。
  • IS-IS最初是国际标准化组织ISO为它的无连接网络协议CLNP设计的一种动态路由协议。
  • IETF对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,称为集成IS-IS。
  • 集成IS-IS能够同时应用在TCP/IP和OSI环境中。后续提到的IS-IS协议,如无特殊说明均为集成IS-IS。
  • isis是基于SFP算法的链路状态协议,也是一种内部网关协议。
  • 适用于大型网络。

IS-IS常用术语

  • CLNS:无连接网络服务
  • CLNS由以下三个协议构成:
    CLNP:类似于TCP/IP中的IP协议;
    IS-IS:中间系统间的路由协议,即路由器之间的协议;
    ES-IS:主机系统与中间系统间的协议,相当于IP中的ARP,ICMP等。
  • NSAP:OSI协议通过NSAP(Network Service Access Point)来寻址OSI网络中处于传输层的各种服务,即NSAP类似于IP地址。

IS-IS整体拓扑

为了支持大规模路由网络,IS-IS在自制系统内采用骨干区域与非骨干区域两级的分层结构。一般来说

  • Level-1路由器部署在非骨干区域
  • Level2路由器和Level-1-2路由器部署在骨干区域
  • 每一个非骨干区域都通过Level-1-2路由器与骨干区域相连
    在这里插入图片描述
    拓扑介绍
  • 拓扑中为一个运行IS-IS协议的网络,整个骨干区域不仅包括Area 47.0001中的所有路由器,还包括其它区域的Level-1-2路由器。
  • Level-2级别的路由器可以不在同一个区域,即可以属于不同的区域。
    拓扑体现出的IS-IS与OSPF不同点
  • OSPF中一条链路只属于一个区域;IS-IS中一条链路可以跨越不同的区域。
  • OSPF中Area0被定义为骨干区域;IS-IS中Backbone指的不是一个特定的区域。
  • OSPF中只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干网来转发;IS-IS中Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT。

IS-IS路由器分类

Level-1路由器

  • Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,属于不同区域的Level-1路由器不能形成邻居关系。 Level-1路由器只负责维护Level-1的链路状态数据库LSDB,该LSDB包含本区域的路由信息。
  • 到本区域外的报文转发给最近的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用于区域间路由。

IS-IS网络类型

IS-IS支持的网络类型

  • 点对点网络:PPP、HDLC等链路
  • 广播网络:Ethernet链路
  • NBMA网络:帧中继

广播链路:DIS和为节点

  • DIS:Designated Intermediate system 指定中间系统
  • 功能:在广播网络实现更高效的数据库同步。

DIS

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

伪节点

  • 伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和一个字节的Circuit ID(非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路由器之间。

IS-IS报文类型

Hello PDU(IIH)用于建立与维持邻居关系

  • Level-1 LAN IIH:用于广播网中Level-1 IS-IS使用
  • Level-2 LAN IIH:用于广播网中Level-2 IS-IS使用
  • P2P IIH:用于非广播网中使用

注:

  • P2P IIH相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段和表示DIS和伪节点System ID的LAN ID 字段。
  • 通过填充字段将IIH报文扩展到MTU大小,用于邻居之间协商发
    送报文的大小。

LSP PDU用于交换链路状态信息

  • Level-1 LSP:由Level-1 IS-IS传送。
  • Level-2 LSP:由Level-2 IS-IS传送。

注:

  • Level-1-2 IS-IS 则可传送以上两种LSP。
  • LSP 报文中包含的主要字段有ATT字段、 OL字段和IS-Type字段。其中ATT用于标识该路由是L1/L2发送的,OL字段后续部分会介绍,IS-Type用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)。
  • LSP的刷新间隔为15分钟;老化时间为20分钟,但是一条LSP的老化除了要等待20分钟外,还要等待60秒的零老化时延;LSP重传时间为5秒。

SNP PDU(序列号报文)用于维护LSDB完整与同步,且为摘要信息

  • CSNP
    ++ Level 1 CSNP
    ++ Level 2 CSNP
  • PSNP
    ++ Level 1 PSNP
    ++ Level 2 PSNP

注:

  • CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10 秒);在点到点链路上,CSNP 只在第一次建立邻接关系时发送。
  • PSNP包含部分LSDB中的LSP摘要信息,能够对LSP进行请求和确认。发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。

IS-IS形成邻居关系的条件

  • 同一层次: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地址检查。

IS-IS邻接关系的建立

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

1、广播网络中邻接关系的建立

在广播网络上,使用LAN IIH报文来建立邻接关系。有两种类型的LANIIH:L1 LAN IIH(组播MAC:01-80-C2-00-00-14)和L2 LAN IIH(组播MAC:01-80-C2-00-00-15) 。 Level-1路由器通过交互L1 LANIIH报文来建立邻接关系;Level-2路由器通过交互L2 LAN IIH报文来建立邻接关系;Level-1-2路由器会同时交互L1 LAN IIH报文和L2 LAN IIH报文来建立邻接关系。

以两台L2路由器在广播链路上建立邻居关系为例:
在这里插入图片描述

  • R1组播发送Level-2 LAN IIH(组播MAC:01-80-C2-00-00-15),此报文中无邻居标识。
  • 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。 IS-IS中DIS发送Hello时间间隔为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。

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

  • IS-IS两个邻居路由器只要相互交换HELLO数据包就认为相互形成了邻接关系;而OSPF中,两台路由器进入2-Way状态则被认为形成了邻居关系,只有进入Full状态才被认为建立了邻接关系。
  • IS-IS中,优先级为0的路由器也可以参与DIS选举;而OSPF端口优先级为0表示不参与DR选举。
  • IS-IS中,DIS是基于抢占的;OSPF中DR/BDR选举结束后不得被抢占
2、P2P邻接关系的建立

在P2P网络上,邻居关系的建立不同于广播网络,分为两次握手机制和三次握手机制。
在这里插入图片描述
两次握手

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

三次握手

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

IS-IS LSP交互过程

1、广播网络中LSP的交互过程

广播网络中LSP的交互过程
新加入的路由器与DIS LSDB同步交互过程

  • 假设新加入的路由器R3已经与R2(DIS)和R1建立了邻居关系。
  • 建立邻居关系之后,R3将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP。
  • 该网段中的DIS会把收到R3的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP报文,进行该网络内的LSDB同步。
  • R3收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP。
  • DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB 的同步。

上述过程中DIS的LSDB 更新过程如下

  • DIS接收到LSP,在数据库中搜索对应的记录。若没有该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 都相等,则不转发该报文。
2、P2P网络中LSP的交互过程

P2P网络LSDB同步过程

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

在P2P链路中设备的LSDB 更新过程如下

  • 若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认;若收到的LSP比本地的序列号更大,则将这个新的LSP 存入自己的LSDB,再通过一个PSNP 报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居。
  • 若收到的LSP序列号和本地相同,则比较Remaining Lifetime,若收到LSP的Remaining Lifetime 小于本地LSP的RemainingLifetime,则将收到的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。

猜你喜欢

转载自blog.csdn.net/u011727262/article/details/103069734