07、IS-IS

ISIS基础

IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO为它的CLNP

(ConnectionLessNetwork Protocol,无连接网络协议)设计的一种动态路由协议。

为了提供对IP路由的支持,对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnect,开放式系统互联)环境中,我们将扩展后的IS-IS称为集成IS-IS。

NSAP(Network Service Access Point,网络服务访问点)是OSI协议栈中用于定位资源的地址,类似于TCP/IP模型中的IP地址。

NET

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

NET的长度与NSAP的相同,最长为20Byte,最短为8Byte。

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

image-20250214093854476

  • SEL:长度固定1Byte,00表示支持TCP/IP协议
  • System ID:长度固定6Byte,唯一标识一台路由器。与OSPF了Router ID类似。
  • Area ID:长度不固定,称为区域地址,相当于OSPF中的区域编号。

从有往左读NET地址比较好。

NET的配置举例

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

在一个IS-IS路由域中,设备的System ID必须唯一,为了便于管理,一般根据Router ID配置System ID。

image-20250214094707169

扩展为3位:在前面加上若干个0。

IS-IS区域划分

IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构:

  • Level-1路由器部署在非骨干区域。
  • Level-2路由器和Level-1-2路由器部署在骨干区域。
  • 每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。

image-20250214095208056

IS-IS与OSPF的不同点:

  1. 在IS-IS中,每个路由器都只属于一个区域;而在OSPF中,一个路由器的不同接口可以属于不同的区域。
  2. 在IS-IS中,单个区域没有骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域。
  3. 在IS-IS中,Level-1和Level-2级别的路由都采用SPF算法,分别生成最短路径树SPT(Shortest Path Tree);而在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。

IS-IS路由器的分类

Level-1路由器

  • 区域内部路由器。只与同一区域的L1或L2路由器建立邻接关系(Level-1邻接关系)
  • 只负责维护Level-1的链路状态数据库LSDB,该LSDB只包含本区域的路由信息。

Level-2路由器

  • 骨干路由器。与同一或者不同区域的L2路由器或者L1/2路由器形成邻接关系(Level-2邻接关系)。
  • 维护一个Level-2的LSDB,该LSDB包含整个IS-IS域的所有路由信息
  • Level-2级别(即形成Level-2邻接关系)的路由器必须是物理连续的。

Level-1-2路由器

  • 同时属于Level-1和Level-2的路由器称为Level-1-2路由器。
  • 与同一区域中的L1或L1-2路由器形成Level-1邻接关系。
  • 与不同区域中的L2或L1-2形成Level-2邻接关系。

Level-1-2路由器与同一区域中的Level-1-2路由器,能够既建立L1邻接关系,又建立L2邻接关系。与不同区域中的Level-1-2路由器只能建立L2邻居。

在华为路由器上配置IS-IS时,缺省时,路由器全局Level为Level-1-2,当然,可以通过命令修改该设备的类型.

image-20250214100533258

IS-IS支持的网络类型

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

  • 广播(Broadcast): 如Ethernet。
  • 点到点(P2P): 如PPP、 HDLC等。

IS-IS开销值

IS-IS使用Cost(开销)作为路由度量值,Cost值越小,则路径越优。IS-IS链路的Cost与设备的接口有关,与OSPF类似,每一个激活了IS-IS的接口都会维护接口Cost。缺省Cost为10。

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

IS-IS有三种方式来确定接口的开销,按照优先级由高到低分别是:

  1. 接口开销:为单个接口设置开销。
  2. 全局开销:为所有接口设置开销。
  3. 自动计算开销:根据接口带宽自动计算开销。

早期的IS-IS开销类型为narrow,最大值只有63。通常都将开销类型设置为开销类型为wide,接口开销值可以扩展到16777215。

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类型不同而有所差别。

image-20250214101836137

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

使用TLV的好处是,灵活性和扩展性好。

通用头部字段解释:

  • Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,固定为0x83。
  • Length Indicator: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的PDU有4种类型:

  1. IIH(IS-IS Hello) ---------> OSPF Hello
  2. LSP( Link State PDU,链路状态报文) ---------> OSPF LSU
  3. CSNP(Complete Sequence Number PDU,全序列号报文) ---------> OSPF DD
  4. PSNP(Partial Sequence Number PDU,部分序列号报文) ---------> OSPF LSR

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

LSP:用于交换链路状态信息。LSP分为两种,Level-1 LSP、Level-2 LSP。

SNP:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步。

SNP包括CSNP和PSNP,进一步又可分为Level-1CSNP、 Level-2 CSNP、 Level-1 PSNP和Level-2 PSNP。

IS-IS邻接关系建立

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

  1. 只有同一层次的相邻路由器才有可能成为邻接。
  2. 对于Level-1路由器来说,Area ID必须一致。
  3. 链路两端IS-IS接口的网络类型必须一致。
  4. 链路两端IS-IS接口的地址必须处于同一网段(默认情况下)。

IIH报文

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

IIH报文发送间隔10s,保持时间Hollding Time为IIH的3倍,30s。

重要字段:

  • Holding Time保持时间(30s)。在此时间内如果没有收到邻接发来的Hello报文,则中止已建立的邻接关系。
  • Priority 选举DIS的优先级,取值范围为0~127。数值越大,优先级越高。(DIS类似于DR)
    • 该字段只在广播网中的Hello消息(LAN IIH消息)携带;点到点网络的Hello消息(P2P IIH消息)没有此字段,也没有此字段之前的R保留位。

image-20250214105952966

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

两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻接关系。

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

image-20250214111250218

  • 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最终建立起邻接关系。

image-20250214111452391

DIS与伪节点

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

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

伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和Circuit ID(非0值)标识。

image-20250214111130684

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

DIS的选举规则如下:

  1. DIS优先级数值最大的被选为DIS。
  2. 优先级相同,选择MAC地址大的。

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

DIS类似于OSPF中的DR,区别如下:

IS-IS OSPF
是否可抢占 可抢占 不可抢占
优先级范围 0~127 0~255
优先级为0是否参与选举 0也参与选举 0不参与选举
优先级默认值 64 1
广播王中的邻接关系 同一网段的同一级别都建立邻接 路由器只于DR和BDR建立邻接

链路状态数据库同步

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有相同的报文格式。

重要字段:

  • Remaining Lifetime : LSP的生存时间,以秒为单位。
  • LSP ID:由三部分组成,System ID、伪节点ID和LSP分片后的编号。
  • Sequence Number: LSP的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1,以后当需要生成新的LSP时,新LSP的序列号在前一个LSP序列号的基础上加1。更高的序列号意味着更新的LSP。
  • ATT(Attachment):由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。虽然此标志位也存在于Level-1和Level-2的LSP中,但实际上此字段只和Level-1-2路由器始发的L1 LSP有关。

ISIS中的LSDB

display isis lsdb

分片号:全0表示未分片

伪节点标识:全0表示实节点,非0表示伪节点

image-20250214111926540

查看非伪节点的LSP 【路由+拓扑】

display isis lsdb 0100.0000.1001.00-00 verbose

image-20250214112559677

查看伪节点LSP 【拓扑信息】

image-20250214112619010

CSNP与PSNP

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

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

CSNP关键字段:

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

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

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

LSP的同步过程

广播网络中

新加入的路由器采用组播地址发送L1或(和)L2的LSP,使网络上所有的邻接都收到该LSP。

image-20250214203448211

点到点网络中

点到点网络中,可以使用PSNP对收到的LSP进行确认

image-20250214203508686

LSP的处理机制

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

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

image-20250214204117880

保活时间也就是生存时间。

路由计算

L1路由器的路由计算

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标志位。 R1作为Level-1路由器,会根据该ATT标志位,计算出指向R2或R3的默认路由

image-20250215095137391

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

image-20250215095215583

路由渗透【解决L1次优路径】

缺省情况下,Level-1-2路由器不会将到达其他区域的路由通告本Level-1区域中。

通过路由渗透,可以将区域间路由通过Leve-1-2路由器传递到Level-1区域,此时Leve-1路由器可以学习到其他区域的详细路由,从而计算出最优路径。

image-20250215095321088

L1-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。

image-20250215095447190

L2路由器的路由计算

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

image-20250215095526928

思考题

image-20250215163322655

1、ABCD。 2、ACD。

总结

每一台运行IS-IS的路由器都至少有一个NET地址。IS-IS采用分层架构,所有Level-2和Level-1-2路由器共同构成了骨干区域,同一区域的Level-1路由器构成了普通区域。

IS-IS协议有四种报文类型,分别是IIH、CSNP、PSNP、LSP。

Level-1路由器只维护区域内的LSDB,Level-1路由通过离自己最近的Level-1-2路由器到达区域外部,为了避免次优路径,可以在Level-1-2路由器上部署路由渗透的特性。

IS-IS支持三种认证类型,分别是接口认证、区域认证、路由域认证。

IS-IS协议与OSPF协议都是链路路由状态协议,两者都需要维护LSDB。

posted @ 2025-05-28 11:55  最爱喝开水  阅读(73)  评论(0)    收藏  举报