IS-IS动态路由协议笔记(中)路由计算方法

IS-IS动态路由协议笔记(中)路由计算方法

  中间系统到中间系统(IS-IS,Intermediate system to intermediate system,读作“i-sys”)是一种内部网关协议,是电信运营商普遍采用的内部网关协议之一。

  标准的IS-IS协议是由国际标准化组织制定的ISO/IEC 10589:2002 所规范的。但是标准的IS-IS协议是为无连接网络服务(CLNS)设计的,并不直接适合于IP网络,因此互联网工程任务组制定可以适用于IP网络的集成化的IS-IS协议,称为集成IS-IS,它由RFC 1195等RFC文档所规范。由于IP网络的普遍存在,一般所称的IS-IS协议,通常是指集成IS-IS协议。

  由笔记的上篇我们可知,IS-IS路由协议的路由收敛过程与OSPF路由协议相仿,均可分为建立邻居关系,同步LSDB数据库,执行SPF路由算法三个步骤,但细节上有所不同。

  本节笔记,我们继续讨论IS-IS协议链路状态信息的载体和交互,路由算法SPF的计算过程,网络分层路由域内(外)的概念,最后总结IS-IS协议和OSPF协议的差异性。

 

 

  TLV三元组

  PDU中的变长字段部分是多个TLV(Type-Length-Value)三元组。TLV也可以称为CLVCode-Length-Value)。

   

  如上图所示:TLV的含义是:类型(TYPE)长度(LENGTH)值(VALUE)。实际上是一个数据结构,这个结构包含了这三个字段。

  网络拓扑结构和路由信息使用TLV结构构建报文,使报文结构的灵活性和扩展性获得提升TLV结构使报文的整体结构固定,增加新特点时只需要增加新TLV即可,不需要改变整个报文的整体结构。

 

 

  链路状态信息载体

  IS-IS路由协议与其他路由协议不同,是直接运行在数据链路层上的。对等路由器间通过PDU来传递链路状态信息,完成链路状态数据库(LSDB)的同步。

  IS-IS中的PDU主要分为三大类:Hello PDU,LSP PDU,SNP PDU

 

  ① Hello PDU用于建立和维持邻居关系。已经在笔记上篇进行详细的介绍,此处进行总结:

  • 网络类型为点对点时,其Hello报文为:P2P IIH

  与LAN IIH相比多了Local Circuit ID字段,表示本地链路ID。

 

  • 网络类型为广播时,其Hello报文为:L1 LAN IIH或L2 LAN IIH

  分别有Priority字段代表选举DIS的优先级,LAN字段代表DIS的System ID和一字节的伪节点ID

 

  ② LSP PDU(Link State Protocol PDU)用于交换链路状态信息

  LSP类似于OSPF的LSA,承载的是链路状态信息,描述所处网络的拓扑结构和网络号。可分为实节点和伪节点LSP(只在广播链路存在)。

  LSP报文中包含了两个重要字段:ATT字段、IS-Type字段。其中ATT字段用于标识该路由是Level-1还是Level-2路由器发送的,IS-Type用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS

  • Level-1 LSP由Level-1 路由器传送。
  • Level-2 LSP由Level-2 路由器传送。
  • Level-1-2 路由器则可传送以上两种LSP。

  LSP的刷新间隔为15分钟;老化时间为20分钟。但是一条LSP的老化除了要等待20分钟外,还要等待60秒的零老化时延;LSP重传时间为5秒

 

  ③ SNP PDU(Sequence Number PDU)用于维护LSDB的完整与同步,且为摘要信息

  SNP PDU分为CSNP(用于同步LSP)和PSNP(用于请求和确认LSP)两类。

  • CSNP(Complete Sequence Number PDU):包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。类似于OSPF的DD报文用于传递的是LSDB里所有链路信息摘要DIS每隔10秒发送一次CSNP报文。
  • PSNP(Partial Sequence Number PDU):包含部分LSDB中的LSP摘要信息,能够LSP进行请求和确认。类似于OSPF的LSR或LSAck报文用于请求和确认部分链路信息。

 

  TipsIS-IS协议使用组播MAC地址作为发送IIH的目的地址

  协议报文都分为Level-1和Level-2两种,在广播(MA)网络中所有协议报文的目的MAC都是组地址:

  Level-1地址为:0180-C200-0014

  Level-2地址为:0180-C200-0015  

 

 

  链路状态信息的交互

  IS-IS协议同步LSDB的过程,可分为P2P网络和MA网络两种情况进行讨论。

 

  情况一 P2P(点对点)网络LSDB同步过程

   

   

  

  Step ①建立邻居关系之后,RTA与RTB会先发送CSNP给对端设备。(P2P网络CSNP报文只发送一次,在邻居建立后立即发送)

  Step ②如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。假定RTB向RTA索取相应的LSP,此时RTBRTA发送PSNP。

  Step ③:RTA发送RTB请求的LSP的同时启动LSP重传定时器,并等待RTB发送PSNP作为收到LSP的确认。

  Step ④⑤⑥如果在接口LSP重传定时器超时后,RTA还没有收到RTB发送的PSNP报文作为应答,则重新发送该LSP直至收到RTB的PSNP报文作为确认。

  TipsP2P网络CSNP报文只发送一次,邻居建立后立即发送。

 

 

  情况二MA网络中新加入的路由器与DIS 的LSDB同步交互过程:

   

  假设新加入的路由器RTC已经与RTB(DIS)和RTA建立了邻居关系。

  Step ①建立邻居关系之后,RTC将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP。

  Step ② 该网段中的DIS会把收到RTC的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP 报文,进行该网络内的LSDB同步。

  Step ③:RTC收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP(如RTA和RTB的LSP就没有)。

  Step ④:RTB作为DIS收到该PSNP报文请求后向RTC发送对应的LSP进行LSDB 的同步。

  TipsMA网络CSNP报文只由DIS组播发送,时间默认为10秒。

 

 

  路由计算方法

   

  1)IS-IS的计算特点

  ① 在本区域内路由器第一次启动的时候执行的是Full-SPF算法。

  ② 后续收到的LSP更新,如果是部分拓扑的变化执行的iSPF计算。

  ③ 如果只是路由信息的变化,执行的就是PRC计算。

  ④ 由于采用拓扑与网络分离的算法,路由收敛速度得到了加强。

 

  (2)IS-IS路由计算的开销方式

  • Narrow模式(设备默认模式开销都是10,手工配置接口开销取值范围为1~63)。
  • Wide模式(设备默认模式开销都是10,手工配置接口开销取值范围是1~16777215)。

  Tips:进程下加入auto-cost enable命令,Narrow模式和Wide模式都会参考接口带宽大小计算开销值,只是参考准则有少许差异。

 

  (3)SPF计算过程

  Step 1单区域LSDB同步完成

  Step 2:生成全网拓扑结构图

  Step 3:以本节点为根生成最短路径树

  Step 4:默认跨越每个节点开销一样

 

 

  网络分层路由域

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

  IS-IS协议的区域边界在整个RouterOSPF协议的区域边界在Router的接口。

   

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

  Level-1-2级别的路由器可以属于不同的区域,在Level-1区域,维护Level-1的LSDB,在Level-2区域,维护Level-2的LSDB。

 

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

  ① 在IS-IS中,每条链路可以属于不同的区域;而OSPF中,每个链路只属于一个区域;

  ② IS-IS中,单个区域没有物理的骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域;

  ③ IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。

 

 

  区域间路由                                                                                                                                                                                    

  如下图所示:Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。以下介绍各类型路由器的路由特点

   

  I、区域 49.0001由Level-1路由器组成。

  ① Level-1路由器维护Level-1的链路状态数据库,该链路状态数据库中只有本区域路由器LSP

  ② 路由表里不仅没有其他区域的路由信息,且都有一条默认路由:当访问非本区域路由器时,下一指向到Level-1-2路由器。

 

  II、区域49.0002由Level-2路由器组成。

  ① Level-2路由器维护Level-2的链路状态数据库,该链路状态数据库中有骨干区域路由器的LSP,但没有Level-1路由器产生的LSP。

  ② 路由表里面有整个网络的路由信息。

 

  III、Level-2和Level-1-2路由器共同部署在骨干区域中,其中骨干区域与非骨干区域是通过Level-1-2路由器相连的。

  ① Level-1-2路由器同时拥有Level-2和Level-1的链路状态数据库,其中Level-1数据库包含本区域的LSP,Level-2数据库包含骨干区域LSP

  ② 在自己产生的Level-1的LSP中设置了ATT比特位为1

  ③ 路由表里面有整个网络的路由信息。

 

 

  综合上述各类型路由器的路由特点,可以将区域间路由互访时,路由器工作步骤大致归纳如下:

  情况一 当区域49.0001访问区域49.0002

  ① Level-1-2路由器RTA产生ATT置位为1的LSP

  ② Level-1路由器收到ATT为1的LSP会产生下一跳指向Level-1-2路由器的默认路由

 

  情况二 当区域49.0002访问区域49.0001

  ① Level-1-2路由器RTA会把区域49.0001的明细路由以叶子节点方式挂载在L2级别的LSP上面并处在Level-2的LSDB中

  ② Level-2路由器通过自己SPF计算得出访问区域49.0001的明细路由

 

  TipsATT比特位的补充说明(仅限了解就好)。

  关于ATT(Attachment)字段,在本节笔记的介绍LSP PDU时已有提及,现提供补充说明:

  该字段Level-1-2路由器产生,用于标识该路由是Level-1/Level-2路由器发送的。虽然此标志位也存在于Level-1和Level-2的LSP中,但实际上此字段只和Level-1-2路由器始发的Level-1 LSP有关。

 

 

  IS-IS与OSPF的差异性

  IS-IS协议与OSPF协议都是链路状态路由协议,且均采用SPF算法进行路由计算,那么两种协议之间存在什么差异呢?在网络规划时应该如何选择要使用的协议呢?

差异性

IS-IS

OSPF

网络类型

开销方式

复杂

简便

区域类型

路由报文类型

简单

多样

路由收敛速度

很快

扩展性

一般

路由负载能力

超强

 

  可以根据自己的实际需求进行选择。以下对差异性进行详细说明:

  ① 网络类型和开销方式

  IS-IS协议只支持两种网络类型,且所有带宽默认开销值都是一样的

  OSPF协议支持四种网络类型,且会根据不同的带宽设定相应的开销值,对帧中继,按需链路等网络类型有很好的支持。

 

  ② 区域类型

  IS-IS协议分Level-1/Level-2区域Level-2区域是骨干区域存有全部明细路由,Level-1去往Level-2只有默认路由。

  OSPF协议分骨干区域、普通区域和特殊区域,普通区域和特殊区域跨区域访问均需要经过骨干区域。

 

  ③ 报文类型

  IS-IS协议路由承载报文类型只有LSP报文且里面路由信息是不区分内部与外部的,简单高效,无需递归计算。

  OSPF协议路由承载报文LSA类型多样,有1/2/3/4/5/7类等。路由级别等级森严,且需要递归计算,适合精细化调度计算。

 

  ④ 路由算法

  ISIS协议区域内某个节点上的网段发生变化时,触发的是PRC算法,收敛比较快,计算路由的报文开销也比较小。

  OSPF协议由于网络地址参与了拓扑的构建,在区域内当网段地址改变触发的是i-spf算法,相对来说过程繁琐复杂些。

 

  ⑤ 扩展性

  ISIS协议任何路由信息都使用TLV传递,结构简单,易于扩展,如对IPv6的支持只增加2个TLV就解决了。且ISIS本身对IPX等协议是支持的。

  OSPF协议本身是为IP特定开发的,支持IPv4和IPv6的OSPF协议是两个独立的版本(OSPFv2和OSPFv3)

 

 

  Tips:术语对照表

缩略语

OSI术语

IETF术语

IS

Intermediate System

Router

ES

End System

Host

DIS

Designated Intermediate System

OSPF中的DR

SysID

System ID

OSPF中的Router ID

LSP

Link State PDU

OSPF中的LSA

IIH

IS-IS Hello PDU

OSPF中的Hello报文

PSNP

Partial Sequence Number PDU

OSPF中的LSR或LSAck报文

CSNP

Complete Sequence Number PDU

OSPF中的DD报文

 

  至此,IS-IS协议的基础理论知识的介绍暂时告一段落,下一节笔记将会继续介绍IS-IS路由协议配置举例。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

至此,IS-IS协议的基础理论知识的介绍暂时告一段落,下一节笔记将会继续介绍IS-IS路由协议配置举例。

posted @ 2022-11-04 09:15  若水一瓢  阅读(860)  评论(0编辑  收藏  举报