IS-IS理论知识详解(二)
首页 > HuaWei > 路由配置   作者:浙江思唯网络  2016年7月29日 12:20 星期五  字号:   评论:0 条
时间:2016-7-29 12:20   评论:0 条 

IS-IS理论知识详解二

IS-IS理论知识详解一:http://www.023wg.com/lypz/312.html


    7IS-IS报文类型

    IS-IS报文有以下几种类型:HELLO PDUProtocol Data Unit)、LSPSNP

    1Hello PDU

    Hello报文用于建立和维持邻居关系,也称为IIHIS-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来说,多了一个表示本地链路IDLocal Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段以及表示DIS和伪节点System IDLAN ID字段。

    2LSP

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

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

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

    OLLSDB Overload)字段:过载标志位。

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

    IS Type字段:用来指明生成此LSPIS-IS类型是Level-1还是Level-2 IS-IS01表示Level-111表示Level-2)。

    3SNP

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

    SNP包括全序列号报文CSNPComplete SNP)和部分序列号报文PSNPPartial SNP),进一步又可分为Level-1 CSNPLevel-2 CSNPLevel-1 PSNPLevel-2 PSNP

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

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

         图5 TLV格式.png

                                  图TLV格式 

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

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

PDU类型和包含的TLV名称

TLV Type

名称

所应用的PDU类型

1

Area Addresses

IIHLSP

2

IS NeighborsLSP

LSP

4

Partition Designated Level2 IS

L2 LSP

6

IS NeighborsMAC Address

LAN IIH

7

IS NeighborsSNPA Address

LAN IIH

8

Padding

IIH

9

LSP Entries

SNP

10

Authentication Information

IIHLSPSNP

128

IP Internal Reachability Information

LSP

129

Protocols Supported

IIHLSP

130

IP External Reachability Information

L2 LSP

131

Inter-Domain Routing Protocol Information

L2 LSP

132

IP Interface Address

IIHLSP

   其中,Type值从110TLVISO10589中定义,其他几种TLVRFC1195中定义。

 

    8IS-IS基本原理简介

    IS-IS是一种链路状态路由协议,每一台路由器都会生成一个LSP,它包含了该路由器所有使能IS-IS协议接口的链路状态信息。通过跟相邻设备建立IS-IS邻接关系,互相更新本地设备的LSDB,可以使得LSDB与整个IS-IS网络的其他设备的LSDB实现同步。然后根据LSDB运用SPF算法计算出IS-IS路由。如果此IS-IS路由是到目的地址的最优路由,则此路由会下发的IP路由表中,并指导报文的转发。

 

    9IS-IS邻居关系的建立

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

    1、广播链路邻居关系的建立

     图1 广播链路邻居关系建立过程.png

                                图1 广播链路邻居关系建立过程

    上图1Level-2路由器为例,描述了广播链路中建立邻居关系的过程。Level-1路由器之间建立邻居与此相同。

    1RouterA广播发送Level-2 LAN IIH,此报文中无邻居标识。

    2RouterB收到此报文后,将自己和RouterA的邻居状态标识为Initial。然后,RouterB再向RouterA回复Level-2 LAN IIH,此报文中标识RouterARouterB的邻居。

    3RouterA收到此报文后,将自己与RouterB的邻居状态标识为Up。然后RouterA再向RouterB发送一个标识RouterBRouterA邻居的Level-2 LAN IIH

    4RouterB收到此报文后,将自己与RouterA的邻居状态标识为Up。这样,两个路由器成功建立了邻居关系。

    因为是广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔,再进行DIS的选举。Hello报文中包含Priority字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS

    2P2P链路邻居关系的建立

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

    2.1、两次握手机制

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

    2.2、三次握手机制

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

    两次握手机制存在明显的缺陷。

    当路由器间存在两条及以上的链路时,如果某条链路上到达对端的单向状态为Down,而另一条链路同方向的状态为Up,路由器之间还是能建立起邻接关系。SPF在计算时会使用状态为UP的链路上的参数,这就导致没有检测到故障的路由器在转发报文时仍然试图通过状态为Down的链路。

    三次握手机制解决了上述不可靠点到点链路中存在的问题。这种方式下,路由器只有在知道邻居路由器也接收到它的报文时,才宣布邻居路由器处于Up状态,从而建立邻居关系。

    IS-IS按如下原则建立邻居关系:

    只有同一层次的相邻路由器才有可能成为邻居;对于Level-1路由器来说,区域号必须一致;链路两端IS-IS接口的网络类型必须一致。

    通过将以太网接口模拟成P2P接口,可以建立P2P链路邻居关系。

    3、链路两端IS-IS接口的地址必须处于同一网段。

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

    当链路两端IS-IS接口的地址不在同一网段时,如果配置接口对接收的Hello报文不作IP地址检查,也可以建立邻居关系。对于P2P接口,可以配置接口忽略IP地址检查;对于以太网接口,需要将以太网接口模拟成P2P接口,然后才可以配置接口忽略IP地址检查。

 

    10IS-ISLSP产生的原因与收到邻居新的LSP的处理过程

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

    邻居UpDownIS-IS相关接口UpDown;引入的IP路由发生变化;区域间的IP路由发生变化;接口被赋了新的metric值;周期性更新。

    设备收到邻居新的LSP的处理过程

    1、将接收的新的LSP合入到自己的LSDB数据库中,并标记为flooding

    2、发送新的LSP到除了收到该LSP的接口之外的接口。

    3、邻居再扩散到其他邻居。

 

    11IS-ISLSP“泛洪”简介

    LSP报文的“泛洪”(flooding)是指当一个路由器向相邻路由器通告自己的LSP后,相邻路由器再将同样的LSP报文传送到除发送该LSP的路由器外的其它邻居,并这样逐级将LSP传送到整个层次内所有路由器的一种方式。通过这种“泛洪”,整个层次内的每一个路由器就都可以拥有相同的LSP信息,并保持LSDB的同步。

    每一个LSP都拥有一个标识自己的4字节的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1,以后当需要生成新的LSP时,新LSP的序列号在前一个LSP序列号的基础上加1。更高的序列号意味着更新的LSP

 

    12IS-IS广播链路中新加入路由器与DIS同步LSDB数据库的过程

        图2 广播链路数据库更新过程.png

                         图广播链路数据库更新过程 

    如上图2所示,新加入的路由器RouterC首先发送Hello报文,与该广播域中的路由器建立邻居关系。

    1、建立邻居关系之后,RouterC等待LSP刷新定时器超时,然后将自己的LSP发往组播地址(Level-101-80-C2-00-00-14Level-201-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP

    2、该网段中的DIS会把收到RouterCLSP加入到LSDB中,并等待CSNP报文定时器超时并发送CSNP报文,进行该网络内的LSDB同步。

    3RouterC收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP

    4DIS收到该PSNP报文请求后向RouterC发送对应的LSP进行LSDB的同步。

    在上述过程中DISLSDB更新过程如下:

    1DIS接收到LSP,在数据库中搜索对应的记录。若没有该LSP,则将其加入数据库,并广播新数据库内容。

    2、若收到的LSP序列号大于本地LSP的序列号,就替换为新报文,并广播新数据库内容;若收到的LSP序列号小本地LSP的序列号,就向入端接口发送本地LSP报文。

    3、若两个序列号相等,则比较Remaining Lifetime。若收到的LSPRemaining Lifetime小于本地LSPRemaining Lifetime,就替换为新报文,并广播新数据库内容;若收到的LSPRemaining Lifetime大于本地LSPRemaining Lifetime,就向入端接口发送本地LSP报文。

    4、若两个序列号和Remaining Lifetime都相等,则比较Checksum。若收到的LSPChecksum大于本地LSPChecksum,就替换为新报文,并广播新数据库内容;若收到的LSPChecksum小于本地LSPChecksum,就向入端接口发送本地LSP报文。

    5、若两个序列号、Remaining LifetimeChecksum都相等,则不转发该报文。


    13IS-IS P2P链路上LSDB数据库的同步过程

       图3 P2P链路数据库更新过程.png

                   图P2P链路数据库更新过程 

    1RouterA先与RouterB建立邻居关系。

    2、建立邻居关系之后,RouterARouterB会先发送CSNP给对端设备。如果对端的LSDBCSNP没有同步,则发送PSNP请求索取相应的LSP

    3、如上图3所示假定RouterBRouterA索取相应的LSPRouterA发送RouterB请求的LSP的同时启动LSP重传定时器,并等待RouterB发送的PSNP作为收到LSP的确认。

    4、如果在接口LSP重传定时器超时后,RouterA还没有收到RouterB发送的PSNP报文作为应答,则重新发送该LSP直至收到PSNP报文。

    P2P链路上PSNP有两种作用:

    作为Ack应答以确认收到的LSP;用来请求所需的LSP

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

    1、若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认;若收到的LSP比本地的序列号更大,则将这个新的LSP存入自己的LSDB,再通过一个PSNP报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居。

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

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

    4、若收到的LSP和本地LSP的序列号、Remaining LifetimeChecksum都相同,则不转发该报文。


IS-IS理论知识详解(三):http://www.023wg.com/lypz/316.html

 您阅读这篇文章共花了: 
二维码加载中...
技术交流:欢迎在本文下方留言或加入QQ群:647682417 互相学习。     
本文地址:http://www.023wg.com/lypz/314.html
版权声明:若无注明,本文皆为“思唯网络教育博客”原创,转载请保留文章出处。
返回顶部    首页   
版权所有:思唯网络教育博客    浙江思唯网络