其他分享
首页 > 其他分享> > IS-IS

IS-IS

作者:互联网

NET

NET(Network Entity Title,网络实体名称)是OSI协议栈中设备的网络层信息,主要用于路由计算,由区域地址(Area ID)和System ID组成。

在IP网络中运行IS-IS时,只需配置NET,根据NET地址设备可以获取到Area ID和System ID

每台运行IS-IS的网络设备至少需要拥有一个NET,当然,一台设备也可以同时配置多个NET,但是这些NET的System ID必须相同。

   

IS-IS的区域划分

以上拓扑结构图可以体现IS-IS与OSPF的不同点:

IS-IS路由器的分类

Level-1路由器

Level-2路由器

Level-1-2路由器

同时属于Level-1和Level-2的路由器称为Level-1-2路由器,它可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻接关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻接关系

   

IS-IS支持的网络类型

IS-IS会自动根据接口的数据链路层封装决定该接口的缺省网络类型

IS-IS支持的网络类型:

   

IS-IS开销值

IS-IS使用Cost(开销)作为路由度量值,Cost值越小,则路径越优

IS-IS接口的Cost在缺省情况下不与接口带宽相关,无论接口带宽多大,缺省时Cost为10。(在实际部署时,IS-IS也支持根据带宽调整Cost值)

一条IS-IS路径的Cost等于本路由到达目标网段沿途所有链路的Cost总和

IS-IS确定接口开销的方式:

IS-IS中Cost的开销类型:

   

IS-IS报文格式

IS-IS报文时直接封装在数据链路层的帧结构中的

PDU(Protocol Data Unit,协议数据单元)可以分为两个部分,报文头(IS-IS Header)和变长字段部分(Variable Length Fields)

其中IS-IS Header可以分为通用头部(PDU Common Header)和专用头部(PDU Specific Header)。对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别

IS-IS通用头部

重要字段:

Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,固定为0x83

PDU Header Length:IS-IS头部的长度(包括通用头部和专用头部),以Byte为单位

Version/Protocol ID Extension:版本/协议标识扩展,固定为0x01

System ID Length:NSAP地址或NET中System ID区域的长度,值为0时,表示System ID区域的长度为6Byte

R(Reserved):保留,固定为0

Version:固定为0x01

Max Areas:支持的最大区域个数,设置为1-254的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大支持3个区域地址数

IS-IS报文类型

   

IS-IS工作原理

邻接关系建立

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

IIH报文

IIH报文用于建立和维持邻接关系

重要字段:

Reserved/Circuit Type:表示路由器的类型(01表示L1路由器,10表示L2路由器,11表示L1-2路由器)

Holding Time:保持时间。在此时间内如果没有收到邻接发来的Hello报文,则中止已建立的邻接关系(缺省情况下,保持时间为30秒)

Priority:选举DIS的优先级,取值范围0-127,数值越大,优先级越高,该字段只在广播网络中的Hello消息(LAN IIH)携带;点到到网络的Hello消息()

LAN ID:包括DIS的System ID和伪节点ID。该字段只在广播网络中的Hello消息(LAN IIH消息)携带;点对点网络的Hello消息(P2P IIH消息)没有此字段

Local Circuit ID:本地链路ID,该字段只在点对点网络的Hello消息(P2P IIH消息)携带,广播网络中的Hello消息(LAN IIH)没有此字段

注:缺省情况下,IS-IS中IIH的间隔时间为10秒

邻接关系建立过程

广播网络中的邻接关系建立过程

在广播网络中,使用三次握手建立邻接关系

建立邻接关系的过程:

  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选举

注意:Level-1 IIH发送的组播地址:01-80-C2-00-00-14

Level-2 IIH发送的组播地址:01-80-C2-00-00-15

状态机:

Down:邻接关系的初始状态

Initial:收到IIH,但是报文中的邻接列表未包含路由器自身的System ID

Up:收到IIH,且邻接列表中包含路由器自身的System ID

DIS与伪节点

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

DIS用来创建和更新伪节点,并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备

伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器

IS-IS中的DIS

Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级

DIS的选举规则:

DIS发送Hello PDU的时间间隔是普通路由器的1/3(约3秒),这样可以确保DIS出现故障时能够被更快速的发现

IS-IS中DIS与OSPF协议中DR的区别:

点到点网络中建立邻接关系的过程

点到点网络中,邻接关系的建立使用两次握手方式

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

建立邻接关系的过程:

(华为设备在点对点网络中使用IS-IS是,默认使用三次握手建立邻接关系)

  1. 在Down状态下,R1组播发送Level-1 P2P IIH,此报文中邻接列表为空
  2. R2收到此报文后,将邻接状态标识为Initial,然后R2再向R1回复Level-1 P2P IIH,此报文中标识R1为R2的邻接
  3. R1收到此报文后,将邻接状态标识为Up,然后R1再向R2发送一个标识R2为R1的邻接的Level-1 P2P IIH
  4. R2收到此报文后,将临界状态标识为Up,这样两个路由器成功建立了邻接关系

链路状态数据库同步

LSP

IS-IS链路状态报文LSP用于交换链路状态信息

LSP分为两种:

Level-1 LSP:由Level-1路由器和Level-1-2路由器传送

Level-2 LSP:由Level-2路由器和Level-1-2路由器传送

LSP报文格式

重要字段:

Remaining Lifetime:LSP的生存时间,以秒为单位(1200秒)

LSP ID:由三部分组成,System ID、伪节点ID和LSP分片后的编号

Sequence Number:LSP的序列号,在路由器启动时所发送的第一个LSP报文中的序列号为1,以后当需要生成新的LSP时,新LSP的序列号在前一个LSP序列号的基础上加1,更高的序列号意味着更新的LSP

Checksum:LSP的校验和

ATT:由Level-1-2路由器产生,用来指明始发路由器是否与其他区域相连,虽然此标志位也存在Level-1和Level-2路由器的LSP中,但实际上此字段只和Level-1-2路由器始发的L1 LSP有关

OL:过载标志位,设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过超载路由器的路由时不会被采用。即对路由器设置过载位后,其他路由器在进行SPF计算时不会考虑这台路由器。当路由器的内存不足时,系统自动在发送的LSP报文中设置过载标志位

IS Type:生成LSP的路由器的类型,用来指明时Level-1还是Level-2路由器(01表示Level-1,11表示Level-2)

IS-IS的LSDB

伪节点ID:当该参数不为零时,表示该LSP为伪节点生成

分片号:当IS-IS要发布的LSP中的信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。分片号用来区分不同的LSP分片

非伪节点的LSP

   

伪节点的LSP

CSNP

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

重要字段:

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

Start LSP ID:CSNP报文中第一个LSP的ID值

End LSP ID:CSNP报文中最后一个LSP的ID值

PSNP

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

重要字段:

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

广播网络中LSP的同步过程

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

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

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

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

  1. R1先与R2建立邻接关系
  2. 建立邻接关系之后,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产生的原因,IS-IS路由域内的所有路由器都会产生LSP,

触发一个新的LSP的事件:

路由计算

Level-1路由器的路由计算

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

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

路由渗透

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

Level-2路由器的路由计算

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

   

IS-IS快速收敛

I-SPF

I-SPF的工作原理:当网络拓扑改变的时候,只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算

I-SPF改进了SPF算法,除了第一次SPF计算时需要计算全部节点外,之后每次都通过I-SPF计算受到影响的节点,而最后生成的最短路径树与原来的算法所计算的结果相同,大大降低了CPU的占用率,提高了网络收敛速度

在IS-IS网络中,I-SPF和PRC结合使用

   

LSP快速扩散

正常情况下,当IS-IS路由器收到其他路由器发来的LSP时,如果此LSP比本地LSDB中相应的LSP要新,则更新LSDB中的LSP,并用一个定时器定期将LSDB内已更新的LSP扩散出去

LSP快速扩散特性改进了这种方式,使能了此特性的设备收到一个或多个较新的LSP时,在路由计算之前,先将小于指定数目的LSP扩散出去,加快LSDB的同步过程。这种方式在很大程度上可以提高整个网络的收敛速度。

配置LSP快速扩散

Flush-flood [lsp-count | max-timer-interval interval | [level-1 | level-2]]

lsp-count:指定每个接口一次扩散LSP的最大数量,整数形式,取值范围时1-15,缺省值:5

Max-timer-interval:指定LSP扩散的最大间隔时间,整数形式,取值范围10-50000,单位时毫秒,缺省值:10毫秒

   

IS-IS路由控制

等价路由

当IS-IS网络中由多条冗余链路时,可能会出现多条等价路由,此时可以采取两种方式

当组网中存在的等价路由数量大于maximum load-balancing命令配置的等价路由数量时,按照下面原则选取有效路由进行负载分担

  1. 路由优先级:选取优先级高的路由进行负载分担
  2. 下一跳设备的System ID:如果路由的优先级相同,则比较下一跳设备的System ID,选取System ID小的路由进行负载分担
  3. 本地设备出接口索引:如果路由优先级和下一跳设备的System ID都相同,则比较出接口的索引,选取接口索引较小路由进行负载分担

缺省路由

在IS-IS中,主要通过以下3种方式控制缺省路由的生成和发布

通过设置ATT位控制缺省路由生成

IS-IS规定,如果IS-IS Level-1-2路由器根据LSDB判断通过Level-2区域比Level-1区域能够到达更多的区域,该设备会在所发布的Level-1 LSP内将ATT位置位。对于收到ATT位置位的LSP报文的Level-1路由器,会生成一条目的地为发送该LSP的Level-1-2路由器地址的缺省路由

以上是协议的默认原则,在实际应用中,可以根据需要对ATT位进行手动配置以更好的为网络服务

IS-IS发布缺省路由

在具有外部路由的边界设备上配置IS-IS发布缺省路由可以使该路由器在IS-IS路由域内发布一条缺省路由。在执行此配置后,IS-IS域内的其他设备在转发流量时,将所有去往外部路由域的流量首先转发到该设备,然后通过该设备去往外部路由域

在网络中部署了IS-IS和其他路由协议时,为了实现IS-IS域内的流量可以到达IS-IS域外,通常使用如下两种方式:

配置运行IS-IS的设备生成缺省路由

Default-route-advertise [always | match default | route-policy route-policy-name][cost cost | tag tag | [level-1 | level-1-2 | level-2]][aviod-learning]

always:指定设备无条件的发布缺省路由,且发布的缺省路由中将自己作为下一跳

Match default:如果在路由表中存在其他路由协议或其他IS-IS进程生成的缺省路由,则在LSP中发布该缺省路由

Route-policy:指定路由策略名称。当该边界设备的路由表中存在满足路由策略的外部路由时,才向IS-IS域发布缺省路由,避免由于链路故障等原因造成该设备已经不存在某些重要的外部路由时,仍然发布缺省路由从而造成路由黑洞

Cost:指定缺省路由的开销值

Tag:指定发布的缺省路由的标记值。只有当IS-IS的开销值类型为Wide、Wide-compatible或compatible时,发布的LSP中才会携带Tag值

   

LSP分片

当IS-IS要发布的PDU中信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息

LSP的报文格式为:

IS-IS LSP分片由LSP ID中的分片号(LSP Number)字段进行标识,这个字段的长度是1Byte。因此,一个IS-IS进程最多可产生256个LSP分片,携带的信息量有限

LSP分片扩展的基本概念

IS-IS可以配置虚拟的系统ID,并生成虚拟IS-IS的LSP报文来携带路由等信息

LSP分片扩展工作原理

在IS-IS中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。通过增加附加系统ID,可以最多配置50个虚拟系统,从而使得IS-IS进程最多个生成13056个LSP分片

IS-IS路由器可以在两种模式下运行LSP分片扩展特性:

Mode-1工作原理:

Mode-2工作原理:

注意:无论在哪种方式下,初始系统和虚拟系统的LSP零分片中,都必须包含IS Alias ID来标识初始系统是谁

LSP分片扩展的基本配置命令

lsp-fragments-extend [[ level-1 | level-2 | level-1-2 ] | [mode-1 | mode-2 ]]

配置LSP分片扩展时,如果不指定mode和level级别,默认为mode-1和level-1-2

Virtual-system virtual-system-id

注意:以上两条命令是配合使用的,只有使能了LSP分片扩展,并用reset isis all命令重启了IS-IS进程后,配置的虚拟系统ID才会生效

标签:,邻接,Level,LSP,ID,路由,路由器
来源: https://www.cnblogs.com/hongliang888/p/16290904.html