03 ISIS(2020.0503)

ISIS原理

基本概念

概述

  • ISIS的意思是标识中间系统到中间系统,是为ISO无连接网络协议设计的路由选择协议
  • ISIS协议的时间和OSPF发布的时间基本同一时间,都基于链路状态并使用最短路径优先算法进行路由计算的一种IGP协议
  • ISIS现在更多的作为服务应用商网络的IGP的层面(华为设备优先级为15)
  • 为了提供对IP的路由支持,IETF在RFC1195中对ISIS进行了扩充和修改,目前在大型的ISP网络中被广泛的部署
  • ISIS是一个扁平化的层次结构

历史

ISIS是ISO定义的OSI协议栈中无连接网络服务CLNS的一部分,用于动态路由数据包。CLNS由以下3个协议构成:

  • CLNP:类似TCP/IP中的IP协议,CLNP为OSI的传输层服务
  • ISIS:中间系统(路由器)间的路由协议,类似于IP中的OSPF
  • ESIS:主机系统与中间系统间的协议,就像IP中的ARP等

场景应用

  • 园区网特点:区域多样、策略多变、调度精细,使用OSPF
    • 应用型网络,主要面向企业网用户。
    • 路由器数量偏少,动态路由的LSDB库容量相对偏少,三层路由域相对偏少。
    • 有出口路由的概念,对内部外部路由划分敏感。
    • 地域性跨度不大,带宽充足,链路状态协议开销对带宽占用比偏少。
    • 路由策略和策略路由应用频繁多变,需要精细化的路由操作。
    • OSPF的多路由类型(内部/外部),多区域类型(骨干/普通/特殊),开销规则优良(根据带宽设定),网络类型多样(最多五种类型)的特点在园区网得到了极大的发挥。
  • 骨干网特点:区域扁平、收敛极快、承载庞大,使用ISIS+BGP
    • 服务型网络,由ISP(互联网服务提供商)组建,并为终端用户提供互联服务。
    • 路由调度占据绝对统治地位,路由器数量庞大。
    • 架构层面扁平化,要求IGP作为基础路由为上层BGP协议服务。
    • LSDB规模宏大,对链路收敛极度敏感,线路费用高昂。
    • 追求简单高效,扩展性高,满足各种客户业务需求(IPV6/IPX)。
    • IS-IS的快速算法(PRC得到加强),简便报文结构(TLV),快速邻居关系建立,大容量路由传递(基于二层开销低)等一系列特点在骨干网有着天然的优势。

OSPF和ISIS的共同特征

  • 维护一个链路状态数据库,基于SPF算法
  • 都利用hello包形成和维护邻居关系
  • 使用区域的概念来构成层次化的拓扑结构
  • 都提供在区域间进行地址汇总的能力
  • 无类路由协议
  • 都选举一个指定路由器来描述广播性网络
  • 认证能力

OSPF和ISIS的差异

差异性 ISIS OSPF
网络方式 少,2种 多,5种
开销方式 复杂 简便,参考带宽100M
区域类型 少,2种
路由报文类型 简单 多样
路由收敛速度 很快
扩展性 一般
路由负载能力 超强
  • 网络类型和开销方式:
    IS-IS协议只支持两种网络类型,且所有带宽默认开销值都是一样的,OSPF协议支持四种网络类型,且会根据不同的带宽设定相应的开销值,对帧中继,按需链路等网络类型有很好的支持。
  • 区域类型:
    IS-IS协议分L1/L2区域,L2区域是骨干区域有全部明细路由。L1去往L2只有默认路由。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)。
  • 邻居关系建立:
    邻居关系建立主要是通过HELLO包交互并协商各种参数,包括电路类型(level-1/level-2),Hold time,网络类型,支持协议,区域号,系统ID,PDU长度,接口IP等。
  • 链路信息交换:
    与OSPF不同,ISIS交互链路状态的基本载体不是LSA(link state advertisement),而是LSP(link state PDU);交互的过程没有OSPF协议那样经历了多个阶段,主要是通过CSNP和PSNP两种协议报文来同步,请求以及确认链路状态信息(承载的是链路状态信息摘要),而链路状态信息的详细拓扑和路由信息是由LSP报文传递。
  • 路由计算:
    SPF计算和OSPF基本一样的,但ISIS算法分离了拓扑结构和IP网段,加快了网络收敛速度。

ISIS地址结构

  • NSAP是OSI协议中用于定位资源的地址,相当于OSI的网络层协议CLNP的地址(类似IP地址的概念)
    • 由IDP和DSP组成,IDP和DSP的长度都是可变的,NSAP总长度最多是20字节,最少是8字节
      • IDP相当于IP地址中的主网络号,是由ISO规定的,由AFI的IDI两部分组成,AFI表示地址分配机构和地址格式(长度固定为1B),IDI用来标识域
      • DSP相当于IP地址中的子网号和主机地址,由HighOrderDSP、SystemID、SEL三部分组成,HighOrderDSP用来分割区域,SystemID用来区分主句,SEL用来指示服务类型
        • AreaAddress(AreaID)由IDP和DSP中的HighOrderDSP组成,既能够标识路由域,也能够标识路由域中的区域,它们一起被称为区域地质,类似OSPF中的区域编号AreaID,同一Level1区域内的所有路由器必须具有相同的区域地址,Level2区域内的路由器可以具有不同的区域地址
        • SystemID用来在区域内唯一标识主机或路由器,在设备的实现中,它的长度固定为48bit(6字节),一般情况先,使用设备的RouterID转换为SystemID
        • SEL的作用类似于IP中的“协议标识符”,不同的传输协议对应不同的SEL,在IP上SEL均为00,长度固定为1B(8bit)
  • NET是一类特殊的NSAP(SEL=00),在路由器上配置ISIS时,只需要考虑NET即可
    • 网络实体名称NET指的是设备本身的网络层的意思,可以看做是一类特殊的NSAP(SEL=00),NET的长度与NSAP相同,最多为20字节,最少为8字节,在路由器上配置ISIS时,只需要考虑NET即可,NSAP不必去关注
    • 在配置ISIS过程中,NET最多只能配置3个,在配置多个NET时,必须保证他们的SystemID都相同
      没有NET地址ISIS无法运行,该地址包含了区域ID和系统ID,而他本质上是一个ISO地址,最后的SEL等同于TCP的端口号,永远等于00
TCP/IP协议栈 IP协议 IP地址 OSPF AreaID+RouterID
OSI系统 CLNP协议 NSAP地址 ISIS NET标识符

ISIS地址结构
最短长度8B:1B的AFI + 6B的SystemID + 1B的SEL
ISIS地址例子
用ISIS做网络设计需要注意:保证L2路由器连续
术语对照表

关于SystemID

  • 一个中间系统(路由器)至少有一个NET,华为设备最多支持3个
  • 同一个Area的中间系统必须有相同的AreaID(Level1必须一样,Level2可以不一样)
  • 每个中间系统在一个Area中必须有一个唯一的SystemID
  • 一个domain中的两个Level2中间系统不能有相同的SystemID
  • NSAP至少为8字节,最多为20个字节
  • 对于传统IP应用程序而言,1字节定义AFI(标识二进制DSP语法的地址域),最少2字节定义实际区域信息(IDI+HighOrder+DSP),6字节定义系统ID和1字节的NSEL,故NSAP地址最少为10字节

ISIS整体拓扑

ISIS整体拓扑
Level-1路由器部署在非骨干区域Level-2路由器和Level-1-2(类似ABR,ISIS默认设置)路由器部署在骨干区域每一个非骨干区域都通过Level-1-2路由器与骨干区域相连

  • 在OSPF中,每个链路只属于一个区域;而在IS-IS中,每个链路可以属于不同的区域OSPF基于接口,即一个设备上的多个接口可以属于不同的Area;ISIS基于设备,即一个设备只能属于一个Level
  • 在IS-IS中,单个区域没有物理的骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域
  • 在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域来转发。

ISIS路由器分类

  • 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-1区域建立的条件
      • 要求Area号必须一致
      • Level-1路由器可以和Level-1路由器建立Level-1的邻居
      • Level-1路由器可以和Level-1-2路由器建立Level-1的邻居
  • Level-2路由器
    • Level-2路由器负责区域间的路由,他可以和同一或者不同区域的Level-2路由器或者其他区域的Level-1-2路由器形成邻居关系
    • Level-2路由器维护一个Level-2的LSDB,该LSDB包含ISIS区域内的所有路由信息
    • 所有Level-2级别(即形成Level-2邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信,路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性
    • Level-2区域建立的条件
      • Area号可以不一致
      • Level-2路由器可以和Level-2路由器建立Level-2的邻居
      • Level-2路由器可以和Level-1-2路由器建立Level-2的邻居
  • Level-1-2路由器(默认)
    • 同时属于Level-1和Level-2的路由器
    • 可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻居关系,也可以和其他区域的Level-2和Level-1-2路由器形成Level-2邻居关系
    • Level-1路由器必须通过Level-1-2路由器才能连接至其他区域
    • Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由
      既有Level-1又有Level-2的情况下,Level-1-2必须和Level-1的AreaID保持一致,否则无法建立邻居,导致无法进行通信

Level-1-2路由器之间建立什么样的邻居?

区域号不同:一个,Level-2区域
区域号相同:两个,Level-1区域和Level-2区域

ISIS报文类型

Hello PDU(IIH)(hello报文)

  • 用于邻居发现,协商参数并建立邻居关系,后期充当保活报文。
  • ISIS目前只支持点到点和广播两种网络类型。
  • 广播网中的Level-1 IS-IS使用Level-1 LAN IIH;广播网中的Level-2 IS-IS使用Level-2 LAN IIH;非广播网络中则使用P2P IIH。它们的报文格式有所不同。P2P IIH中相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段以及表示DIS和伪节点System ID的LAN ID字段。
  • 在广播网络中,ISIS通过MAC地址来标识邻居(OSPF是通过RID来标识的);在P2P中,是通过系统ID来标识邻居的,通过电路ID来标识自己的哪个接口与对端相连
    LSDB-DIS

Level-1 LAN IIH

组播MAC:0180-c200-0014
L1和L2的帧格式

Level-2 LAN IIH

组播MAC:0180-c200-0015

P2P IIH

非广播网络中则使用P2P IIH,但是其没有表示DIS(虚节点)的相关字段
P2P的帧格式

LSP PDU(链路状态报文)

  • 用于交换链路状态信息,相当于OSPF的LSU
  • Level–1 LSP由Level-1路由器传送,Level–2 LSP由Level-2路由器传送,Level-1-2路由器则可传送以上两种LSP

Level-1 LSP

LSP报文

Level-2 LSP

SNP PDU(序列号报文)

  • 用于维护LSDB的完整与同步,且为摘要信息

CSNP(全序列号报文)

  • 类似于OSPF的DBD信息,用来同步LSDB
  • DIS定期泛洪CSNP(10秒)
Level-1 CSNP
Level-2 CSNP

PSNP(部分序列号报文)

  • 在广播网络中,类似于OSPF的LSR;在P2P网络中,类似于OSPF的LSR和LSAck
  • 非DIS设备向DIS发送PSNP,用于请求非DIS设备上缺少的LSDB中的详细路由信息
Level-1 PSNP
Level-2 PSNP

ISIS网络类型

ISIS支持的网络类型

  • 点对点链路,例如PPP和HDLC不选举DIS
  • 广播链路
    • DIS:指定中间系统,为了在广播网络中实现更高效的数据库同步
    • 伪节点

DIS

  • 在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS,Level-1和Level-2的DIS是分别选举的
  • 可以为不同级别的DIS选举设置不同的优先级
  • 优先级为0的路由器也参与DIS的选举,只是具有最小可能成为DIS,且DIS选举支持抢占
  • 同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器之间也会形成邻接关系,但LSDB的同步仍然依靠DIS来保证
  • DIS用来创建和更新伪节点,并负责生成伪节点的链路状态协议数据单元LSP,用来描述这个网络上有哪些网络设备
  • IS-IS中DIS发送Hello时间间隔为10/3秒,而其他非DIS路由器发送Hello间隔为10秒
  • ISIS的LSP的更新时间为900秒,Hold time时间为1200秒,是从大往小减的
  • ISIS系统中没有DIS也能完成数据库同步

为什么DIS不需要备份的DIS?

  1. DIS支持抢占
  2. DIS 发送Hello消息的时间为 10/3秒
  3. ISIS主要用在运营商网络中,而运营商网络一般很少会更换设备,所以影响不大

DIS的选举

  1. 比较优先级,越高越优,默认优先级为64,取值范围(0-127)
  2. 如果优先级相同,比较MAC地址,越大越优

基本原理

广播邻接关系建立

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

广播

  • 在广播网络上,使用LAN IIH报文来建立邻接关系。有两种类型的LAN IIH:L1 LAN IIH(组播MAC:01-80-C2-00-00-14)和L2 LAN IIH (组播MAC:01-80-C2-00-00-15) 。
  • Level-1路由器通过交互L1 LAN IIH报文来建立邻接关系;Level-2路由器通过交互L2 LAN IIH报文来建立邻接关系;Level-1-2路由器会同时交互L1 LAN IIH报文和L2 LAN IIH报文来建立邻接关系。
    广播邻接关系建立
    以两台L2路由器在广播链路上建立邻居关系为例:
  1. R1组播发送Level-2 LAN IIH(组播MAC:01-80-C2-00-00-15),此报文中无邻居标识。
  2. R2收到此报文后,将自己和R1的邻居状态标识为Initial。然后,R2再组播向R1回复Level-2 LAN IIH,此报文中标识R1为R2的邻居。
  3. R1收到此报文后,将自己与R2的邻居状态标识为Up。然后R1再组播向R2发送一个标识R2为R1邻居的Level-2 LAN IIH。
  4. R2收到此报文后,将自己与R1的邻居状态标识为Up。这样,两个路由器成功建立了邻居关系。
    因为是广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。Hello报文中包含Priority字段,Priority值最大的将被选举为该广播网的DIS

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

IS-IS两个邻居路由器只要相互交换HELLO数据包就认为相互形成了邻接关系;而OSPF中,两台路由器进入2-Way状态则认为形成了邻居关系,但是只要进入Full状态才被认为进入完全邻接关系。
IS-IS中,优先级为0的路由器亦然可以参与DIS选举;而OSPF汇总优先级为0表示不参与选举。
IS-IS中,DIS是基于抢占的;OSPF中DR/BDR已经选举不得抢占。

P2P

在P2P连路上,邻接关系建立不同于广播链路,分为两次握手机制和三次握手机制(默认)
P2P邻接关系建立

  1. 两次握手2-way(容易存在单通的风险,即链路两端分别为Up和Down)
    只要路由器收到对端发来的Hello报文,就单方面宣布邻居为Up状态,建立邻居关系
  2. 三次握手3-way(默认方式)
    通过三次发送P2P的Hello PDU最终建立邻居关系,类似广播邻居关系建立
    修改命令:isis ppp-negotiation 2-way/3-way

DIS和DR的对比

类比点 ISIS-DIS OSPF-DR
选举优先级 0优先级也可以参与选举 0优先级不参与选举
选举等待 时间 2个Hello间隔20/3s 40s
备份 有,BDR
邻接关系 所有路由器相互都是邻接关系 DRother之间是2-way关系
抢占性 支持抢占 不支持
作用 周期发送CSNP,保障MA网络LSDB同步 主要为了减少LSA泛洪

链路状态信息载体

ISIS TLV:TLV的含义:类型Type、长度Length、值Value,实际上是一个数据结构,这个结构包含这三个字段。

  • 使用TLV结构建立报文的好处是灵活性和扩展性好,采用TLV使得报文的整体结构稳定,增加新特点只需要增加新TLV即可,无需改变整个报文的整体结构
  1. LSP PDU
    用于交换链路状态信息
    1. 实节点LSP
    2. 伪节点LSP(只在广播链路存在)
  2. SNP PDU
    用于维护LSDB的完整与同步,且为摘要信息
    1. CSNP,用于同步LSP
    2. PSNP,用于请求和确认LSP

LSP交互过程

广播网络

LSP交互不需要确认
CSNP报文在广播网络中的作用:确认机制,相当于ACK
PSNP报文在广播网络中的作用:请求(LSR)
广播网络LSP交互过程

  1. 新加入的路由器R3已经与R2(DIS)、R1建立邻居关系
  2. R3使用组播地址发送自己的LSP
  3. R2收到R3的LSP之后,会将R3加入LSDB中,并等待CSNP报文定时器超时(10s)并发送CSNP报文,进行该网络的LSDB同步
  4. R3收到DIS发来的CSNP后,对比自己的LSDB,然后向R2发送PSNP用来请求自己没有的LSP
  5. R2收到R3发来的PSNP之后,将R3请求的LSP发送给R3

在广播网络中设备的LSDB更新过程如下

  1. DIS接收到LSP,在数据库中搜索对应的记录,若没有该LSP,则将其加入数据库,并广播新数据库内容
  2. 序列号越大越优:若收到的LSP序列号大于本地LSP的序列号,就替换为新报文,并广播新数据库内容;若收到的LSP序列号小本地LSP的序列号,就向入端接口发送本地LSP报文
  3. RemainingLifetime剩余生存时间越小越优:若两个序列号相等,则比较RemainingLifetime。若收到的LSP的RemainingLifetime小于本地LSP的Remaining Lifetime,就替换为新报文,并广播新数据库内容;若收到的LSP的Remaining Lifetime大于本地LSP的Remaining Lifetime,就向入端接口发送本地LSP报文。
  4. Checksum越大越优:若两个序列号和RemainingLifetime都相等,则比较Checksum。若收到的LSP的Checksum大于本地LSP的Checksum,就替换为新报文,并广播新数据库内容;若收到的LSP的Checksum小于本地LSP的Checksum,就向入端接口发送本地LSP报文。
  5. 若两个序列号、Remaining Lifetime和Checksum都相等,则不转发该报文

P2P网络

LSP交互需要确认
PSNP报文在P2P网络中的作用:作为ACK应答以确认收到的LSP,用来请求所需的LSP
在P2P链路上,CSNP只会发送一次
P2P网络LSP交互过程
实际抓包过程:第一阶段R1和R2各发一个LSP;第二阶段R1和R2各发送一个PSNP;第三阶段R1发送LSP,R2发送CSNP进行确认

在P2P网络中设备的LSDB更新过程如下

序列号越大越优:若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认;若收到的LSP比本地的序列号更大,则将这个新的LSP存入自己的LSDB,再通过一个PSNP报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居
RemainingLifetime剩余生存时间越小越优:若收到的LSP序列号和本地相同,则比较Remaining Lifetime,若收到LSP的Remaining Lifetime小于本地LSP的Remaining Lifetime,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Remaining Lifetime大于本地LSP的Remaining Lifetime,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认
Checksum越大越优:若收到的LSP和本地LSP的序列号以及Remaining Lifetime都相同,且都不为0,则比较Checksum,若收到LSP的Checksum大于本地LSP的Checksum,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的Checksum小于本地LSP的Checksum,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认
若收到的LSP和本地LSP的序列号、Remaining Lifetime和Checksum都相同,则不转发该报文

ISIS中的ABR生成默认路由(ATT=1)的条件:一边为Level-1,另外一边为Level-2
ISIS中Level-2可以学习到Level-1中的路由,但是Level-1无法学习到Level-2的路由

LSP产生的原因

  1. 邻居Up或Down
  2. IS-IS相关接口Up或Down
  3. 引入的IP路由发生变化
  4. 区域间的IP路由发生变化
  5. 接口被赋了新的metric值
  6. 周期性更新

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

  1. 将接收的新的LSP合入到自己的LSDB数据库中,并标记为flooding
  2. 发送新的LSP到除了收到该LSP的接口之外的接口
  3. 邻居再扩散到其他邻居。

路由算法

设备默认接口开销值都是10

SPF计算过程

  1. 单区域LSDB同步完成
  2. 生成全网拓扑结构图
  3. 以本节点为根生成最短路径树
  4. 默认跨越每个节点的开销一样

ISIS的计算特点

  1. 在本区域收到的LSP更新,如果是部分拓扑的变化执行的SSPF内路由器第一次启动的时候执行的是Full-SPF算法
  2. 如果只是路由信息的变法,执行的是PRC算法
  3. 由于采用拓扑与网络分离的算法,路由收敛速度得到了加强

ISIS路由计算的开销方式

  1. Narrow模式:设备默认模式开销都是10,手工配置接口开销取值范围为1-63
  2. Wide模式:设备默认开销模式都是10,手工配置接口开销取值范围为1-16777215
    进程下执行auto-cost enable,两种模式都会参考接口带宽计算开销值,但是参考准则有差异
    接口视图下配置开销值:isis cost 60

区域间路由

区域间路由

路由渗透

通常情况下,Level-1区域内的路由通过Level-1路由器进行管理。所有的Level-2和Level-1-2路由器构成一个连续的骨干区域。Level-1区域必须且只能与骨干区域相连,不同的Level-1区域之间并不相连。Level-1-2路由器将学习到的Level-1路由信息装进Level-2 LSP,再泛洪LSP给其他Level-2和Level-1-2路由器。
因此,Level-1-2和Level-2路由器知道整个IS-IS路由域的路由信息。但是,为了有效减小路由表的规模,在缺省情况下,Level-1-2路由器并不将自己知道的其他Level-1区域以及骨干区域的路由信息通报给它所在的Level-1区域。这样,Level-1路由器将不了解本区域以外的路由信息,可能导致与本区域之外的目的地址通信时无法选择最佳的路由。
简而言之,路由渗透解决非骨干区域访问骨干区域时,因为不知道明细路由而导致的次优路径问题

isis 1
import-route isis level-2 into level-1  # 将Level 2的路由渗透到Level1

ISIS路由过载

ISIS过载标志位是指ISIS LSP报文中的OL字段。对设备设置过载标志位后,其它设备在进行SPF计算时不会使用这台设备做转发,只计算该设备上的直连路由(一般用于承载BGP的核心ISIS)
如果因为设备进入异常状态导致系统进入过载状态,此时系统将删除全部引入或渗透的路由信息
如果因为用户配置导致系统进入过载状态,此时会根据用户的配置决定是否删除全部引入或渗透路由

过载原因

  • 当系统因为各种原因无法保存新的LSP,以致无法维持正常的LSDB同步时,该系统计算出的路由信息将出现错误。在这种情况下,系统就可以自动进入过载状态,即通过该设备到达的路由不计算,但该设备的直连路由不会被忽略

  • 除了设备异常可导致自动进入过载状态,也可以通过手动配置(isis 1 && set-overload)使系统进入过载状态。当网络中的某些IS-IS设备需要升级或维护时,需要暂时将该设备从网络中隔离。此时可以给该设备设置过载标志位,这样就可以避免其他设备通过该节点来转发流量

ISIS收敛特性

  • 快速收敛

    • 增量最短路径优先算法ISPF:是指当网络拓扑改变的时候,只对受影响的节点进行路由计算,而不是对全部节点重新进行路由计算,从而加快了路由的计算。
      • 只对受影响的节点进行路由计算
      • 仅第一次计算全部节点
    • 部分路由计算PRC:是指当网络上路由发生变化的时候,只对发生变化的路由进行重新计算。 PRC的原理和ISPF相同,都是只对发生变化的路由进行重新计算。不同的是,PRC不需要计算节点路径,而是根据ISPF算出来的SPT来更新路由。
    • 智能定时器:在进行SPF计算和产生LSP的时候用到的一种智能定时器。该定时器首次超时时间是一个固定的时间。如果在定时器超时前,又有触发定时器的事件发生,则该定时器下一次的超时时间会增加。
    • LSP快速扩散:此特性可以加快LSP的扩散速度
  • 按优先级收敛
    IS-IS按优先级收敛是指在大量路由情况下,能够让某些特定的路由(例如匹配指定IP前缀的路由)优先收敛的一种技术。通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。

ISIS认证

分类

  • 接口认证:是指使能ISIS协议的接口以指定方式和密码对Level-1和Level-2的Hello报文进行认证,针对Hello报文做的认证,会影响ISIS邻居,也会影响路由有以下两种设置
    • 发送带认证TLV的认证报文,本地对收到的报文也进行认证检查
    • 发送带认证TLV的认证报文,但是本地对收到的报文不进行认证检查
  • 区域认证:是指运行ISIS的区域以指定方式和密码对Level-1的SNP和LSP报文进行认证针对Level-1的SNP和LSP做的认证,不会影响ISIS邻居,但是会影响Level-1的LSDB的同步,仅影响Level-1的路由,不会影响Level-2的路由
  • 路由域认证:是指运行ISIS的路由域以指定方式和密码对Level-2的SNP和LSP报文进行认证,针对Level-2的LSP和SNP的认证,不会影响ISIS邻居,但是会影响Level-2的LSDB的同步,仅影响Level-2的路由,不影响Level-1的路由可以设置为SNP和LSP分开认证:
    • 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都进行认证检查
    • 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文携带认证TLV,但不对收到的SNP报文进行检查
    • 本地发送的LSP报文携带认证TLV,对收到的LSP报文进行认证检查;发送的SNP报文不携带认证TLV,也不对收到的SNP报文进行认证检查
    • 本地发送的LSP报文和SNP报文都携带认证TLV,对收到的LSP报文和SNP报文都不进行认证检查

报文认证方式

  • 明文认证
  • MD5认证
  • Keychian认证:通过配置随时间变化的密码链表来进一步提升网络的安全性

认证信息的携带形式

ISIS通过TLV的形式携带认证信息,认证TLV的类型为10,具体格式如下:

  • Type:ISO定义认证报文的类型值为10,长度为1字节
  • Length:指定认证TLV值的长度,长度1字节
  • Value:指定认证的具体内容,其中包括了认证的类型和认证的密码,长度为1~254字节,其中认证的类型为1字节,具体定义如下:
    • 0:保留的类型
    • 1:明文认证
    • 54:MD5认证
    • 255:路由域私有认证方式

度量值

在早期的ISO10589中,使能IS-IS协议的接口下最大只能配置值为63(默认是10)的开销值,此时认为ISIS开销类型为narrow

窄度量值

  • 128号TLV(IP Internal Reachability TLV):用来携带路由域内的IS-IS路由信息
  • 130号TLV(IP External Reachability TLV):用来携带路由域外的IS-IS路由信息
  • 2号TLV(IS Neighbors TLV):用来携带邻居信息

宽度量值

OSPF与ISIS协议都被扩展以便携带MPLS TE接口参数,对于ISIS协议来说,使用以下两种新的TLV:

  • 135号TLV(Extended IP Reachability TLV):用来替换原有的IP reachability TLV,携带ISIS路由信息,它扩展了路由开销值的范围,并可以携带sub TLV
  • 22号TLV(IS Extended Neighbors TLV):用来携带邻居信息
    接收和发送的类型详细列表

ISIS有邻居却没有路由的情况

  1. 度量值类型不相同或者不兼容
  2. ISIS设置了区域认证或者路由域认证

LSP分片扩展

当ISIS要发布的链路状态协议数据报文PDU中的信息量太大时,IS-S路由器将会生成多个LSP分片,用来携带更多的ISIS信息。
ISIS LSP分片由LSP ID中的LSP Number字段进行标识,这个字段的长度是1字节。因此,一个IS-IS进程最多可产生256个LSP分片,携带的信息量有限。在RFC3786中规定,IS-IS可以配置虚拟的SystemID ,并生成虚拟IS-IS的LSP报文来携带路由等信息。
lsp-fragments-extend命令用来使能IS-IS路由器的LSP分片扩展功能,为了使IS-IS路由器生成扩展LSP分片,应通过命令virtual-system至少配置一个虚拟系统ID

基本概念

  • 初始系统(Originating System):初始系统是实际运行ISIS协议的路由器。允许一个单独的ISIS进程像多个虚拟路由器一样发布LSP,而“Originating System”指的是那个“真正”的IS-IS进程。
  • 系统ID(Normal System-ID):初始系统的系统ID。
  • 虚拟系统(Virtual System):由附加系统ID标识的系统,用来生成扩展LSP分片。这些分片在其LSP ID中携带附加系统ID。
  • 附加系统ID(Additional System-ID):虚拟系统的系统ID,由网络管理器统一分配。每个附加系统ID都允许生成256个扩展的LSP分片。附加系统ID和系统ID一样,在整个路由域中必须唯一
  • 24号TLV(IS Alias ID TLV):用来表示初始系统与虚拟系统的关系。

工作原理

在IS-IS中,每个系统ID都标识一个系统,每个系统都最多可生成256个LSP分片。通过增加附加系统ID,可以最多配置50个虚拟系统,从而使得ISIS进程最多可生成13056个LSP分片
使能分片扩展功能之后,如果存在由于报文装满而丢失的信息,系统会提醒重启IS-IS。重启之后,初始系统会尽最大能力装载路由信息,装不下的信息将放入虚拟系统的LSP中发送出去,并通过24号TLV来告知其他路由器此虚拟系统和自己的关系。

工作模式

LSP分片工作模式
  • Mode-1:用于网络中的部分路由器不支持LSP分片扩展特性的情况
    RouterB是不支持分片扩展的路由器,RouterA设置为Mode-1模式的分片扩展,RouterA1和RouterA2是RouterA的虚拟系统,RouterA将一部分路由信息放入RouterA1和RouterA2的LSP报文中向外发送。RouterB收到RouterA,RouterA1和RouterA2的报文时,认为对端有三台独立的路由器,并进行正常的路由计算。同时RouterA到RouterA1和RouterA2的开销都是0,所以,RouterB到RouterA的路由开销值与RouterB到RouterA1路由开销值都相等
  • Mode-2:用于网络中所有路由器都支持LSP分片扩展特性的情况
    RouterB是支持分片扩展的路由器,RouterA设置为Mode-2模式的分片扩展,RouterA1和RouterA2是RouterA的虚拟系统,RouterA将一部分路由信息放入到RouterA1和RouterA2的LSP报文中向外发送。当RouterB收到RouterA1和RouterA2的LSP时,通过IS Alias ID TLV知道他们的初始系统是RouterA,则把RouterA1,RouterA2所发布的信息都视为RouterA的信息。

管理标记

管理标记特性允许在IS-IS域中通过管理标记对IP地址前缀进行控制,可以达到简化管理。其用途包括控制不同级别和不同区域间的路由引入,以及在同一路由器上运行的IS-IS多实例(即我们说的Tag)
使能管理标记时,必须使能IS-IS wide metric属性
circuit default-tag命令用来配置指定IS-IS进程下所有接口的管理标记值。

# AR1
route-policy TAG permit no 10
if-match tag 100
isis
import-route isis level-2 into level-1 filter-policy route-policy TAG #将携带tag值为100的路由渗透到Level-1
# AR2
int lo 0
ip addr 22.22.22.22 32
isis enable
isis tag-value 100 # 给该条路由设置tag值为100

默认路由的下放

isis
import-route static
default-route-advertise always [ level-1 | level-2 | level-1-2 ]

接口开销

bandwidth-reference命令用来设置IS-IS接口开销自动计算功能中所使用的带宽参考值。
接口的开销值= (bandwidth-reference/接口带宽值)×10
当通过该公式计算的接口开销值大于16777214时,接口仍按照开销值为16777214参与路由计算,即接口开销值不会大于16777214。

故障诊断

故障排除流程

  1. 检查接口是否在ISIS中使能
  2. 基本配置是否正确
  3. 相应接口级别是否配置正确
  4. 路由器区域是否相同
  5. 相邻接口IP地址是否处于相同子网中
  6. 系统ID是否重复
  7. 是否开启了认证,认证配置是否正确
  8. 接口是否发送标准hello报文
    不同网段需要建邻居,需要在相应接口下配置忽略IP:int s1/0/0 && isis peer-ip-ignore。以太口虽然可以改为p2p链路,从而建立邻居,学习到相应路由,但是无法ping通。

实验

实验一:配置ISIS

配置ISIS
#.......................................配置IP地址
# SW1
sys
sys SW1
# AR1
sys
sys AR1
int lo 0
ip addr 1.1.1.1 32
int g0/0/0
ip addr 172.16.10.1 24
# AR2
sys
sys AR2
int lo 0
ip addr 2.2.2.2 32
int g0/0/0
ip addr 172.16.10.2 24
# AR3
sys
sys AR3
int lo 0
ip addr 3.3.3.3 32
int g0/0/0
ip addr 172.16.10.3 24
int g0/0/1
ip addr 14.1.1.1 24
# AR4
sys
sys AR4
int lo 0
ip addr 4.4.4.4 32
int g0/0/0
ip addr 14.1.1.4 24
int s1/0/0
ip addr 45.1.1.4 24
# AR5
sys
sys AR5
int lo 0
ip addr 5.5.5.5 32
int s1/0/0
ip addr 45.1.1.5 24
#...............................................................配置ISIS
# ISIS不支持进程下宣告,只能在接口上宣告
# AR1
isis # 默认进程号为1
is-name AR1  # 配置设备名称(可选项),便于记忆和查看邻居
# is-level level-1
net 49.0123.1111.1111.1111.00
int g0/0/0
isis enable # 默认进程号为1
int g1/0/0
isis enable 
int lo 0
isis enable
# AR2
isis 
is-name AR2
# is-level level-1
net 49.0123.2222.2222.22222.00
int g0/0/0
isis enable 
int lo 0
isis enable
# AR3
isis 
is-name AR3
# is-level level-1
net 49.0123.3333333333333.00  # 配置SystemID时中间可以不用".",但是必须使用12个数字(即6B)
int g0/0/0
isis enable 
int lo 0
isis enable
# AR4
isis 
is-name AR4
# is-level level-2
net 49.0045.444444444444.00
int g0/0/0
isis enable 
int lo 0
isis enable
int s1/0/0
isis enable
# AR5
isis 
is-name AR5
# is-level level-2
net 49.0045.555555555555.00
int lo 0
isis enable
int s1/0/0
isis enable
# .................................................查看ISIS邻居\路由\j接口宣告情况
# AR1/2/3/4/5
dis isis peer
dis ip rou pro isis
dis isis int 

实验二:查看ISIS下放的默认路由(ATT=1)

查看ATT=1的默认路由
# AR1
sys
sys AR1
isis 
is-name AR1  
is-level level-1
net 49.0123.1111.1111.1111.00
int lo 0
ip addr 1.1.1.1 32
isis enable
int g0/0/0
ip addr 172.16.10.1 24
isis enable
# AR2
sys
sys AR2
isis 
is-name AR2
net 49.0123.2222.2222.2222.00
int lo 0
ip addr 2.2.2.2 32
isis enable
int g0/0/0
ip addr 172.16.10.2 24
isis enable
int g0/0/1
ip addr 24.1.1.2 24
isis enable
# AR3
sys
sys AR3
isis 
is-name AR3
net 49.0123.3333.3333.3333.00
int lo 0
ip addr 3.3.3.3 32
isis enable
int g0/0/0
ip addr 172.16.10.3 24
isis enable
int s1/0/0
ip addr 34.1.1.3 24
isis enable
# AR4
sys
sys AR4
isis 
is-name AR4
is-level level-2
net 49.0045.4444.4444.4444.00
int lo 0
ip addr 4.4.4.4 32
isis enable
int g0/0/0
ip addr 24.1.1.4 24
isis enable
int g0/0/1
ip addr 45.1.1.4 24
isis enable
int s1/0/0
ip addr 34.1.1.4 24
isis enable
# AR5
sys
sys AR5
isis 
is-name AR5
is-level level-2
net 49.0045.5555.5555.5555.00
int lo 0
ip addr 5.5.5.5 32
isis enable
int g0/0/0
ip addr 45.1.1.5 24
isis enable

# 查看默认路由
# AR1
dis isis lsdb
dis ip rou pro isis

实验三:ISIS综合实验

ISIS综合实验
要求:

  • 基础配置:
    • R1\R2\R3是Level-1路由器,R6是Level-2路由器。SystemID为0000.0000.000x。ISIS的进程号为1
    • 通告相关接口,网段10.0.x.0/24暂不通告
  • 网络改造:
    • R4和R6、R5和R6之间不能有DIS选举
    • R1\R2\R3共享网络中,要求R3为DIS,需要在R1和R2上配置,且优先级设置尽量小但仍可以参加DIS选举
  • 路由信息发布:
    • R6引入10.0.x.0/24网段,并标记为100
    • 要求区域47.0001能够通过R4学到10.0.x.0/24网段明细,且必须保持这些路由的标记为100
  • 路由信息的接收:
    • R2只允许通过缺省路由方位区域47.0002的网络,不能使用ACL和前缀列表
  • 路由选择:
    • R3上有两条默认路由,分别是到R4和R5的,现在需要让数据转发只能走R5
  • 安全设置:
    • 区域47.0001的所有路由器发送LSP和SNP需要进行认证,认证类型为MD5,密码为huawei
    • Level-2路由器发送的IIH需要进行认证,认证类型为MD5,密码为huawei
  • 路由汇总:
    • 将AR6上的10.0.x.0/24汇总成10.0.0.0/8,并且带tag为100
# ..............................基础配置
# AR1
sys
sys AR1
isis 
is-name AR1
is-level level-1
net 47.0001.111111111111.00
int lo 0
ip addr 1.1.1.1 32
isis enable
int g0/0/0
ip addr 192.168.10.1 24
isis enable
# AR2
sys
sys AR2
isis 
is-name AR2
is-level level-1
net 47.0001.222222222222.00
int lo 0
ip addr 2.2.2.2 32
isis enable
int g0/0/0
ip addr 192.168.10.2 24
isis enable
# AR3
sys
sys AR3
isis 
is-name AR3
is-level level-1
net 47.0001.333333333333.00
int lo 0
ip addr 3.3.3.3 32
isis enable
int g0/0/0
ip addr 192.168.10.3 24
isis enable
int s1/0/0
ip addr 34.1.1.3 24
isis enable
int s1/0/1
ip addr 35.1.1.3 24
isis enable
# AR4
sys
sys AR4
isis 
is-name AR4
net 47.0001.444444444444.00
int lo 0
ip addr 4.4.4.4 32
isis enable
int g0/0/0
ip addr 46.1.1.4 24
isis enable
int s1/0/0
ip addr 34.1.1.4 24
isis enable
# AR5
sys
sys AR5
isis 
is-name AR5
net 47.0001.555555555555.00
int lo 0
ip addr 5.5.5.5 32
isis enable
int g0/0/0
ip addr 56.1.1.5 24
isis enable
int s1/0/0
ip addr 35.1.1.5 24
isis enable
# AR6
sys
sys AR6
isis 
is-name AR6
is-level  level-2
net 47.0002.666666666666.00
int lo 0
ip addr 6.6.6.6 32
isis enable
int g0/0/0
ip addr 46.1.1.6 24
isis enable
int g0/0/1
ip addr 56.1.1.6 24
isis enable
int lo 10
ip addr 10.0.0.0 24
int lo 11
ip addr 10.0.1.0 24
int lo 12
ip addr 10.0.2.0 24
int lo 13
ip addr 10.0.3.0 24

# ....................................网络改造
# AR4
int g0/0/0
isis circuit-type p2p
isis ppp-negotiation 3-way only
# AR5
int g0/0/0
isis circuit-type p2p
isis ppp-negotiation 3-way only
# AR6
int g0/0/0
isis circuit-type p2p
isis ppp-negotiation 3-way only
int g0/0/1
isis circuit-type p2p
isis ppp-negotiation 3-way only
# AR1
int g0/0/0
isis dis-priority 0
# AR2
int g0/0/0
isis dis-priority 0
#.....................................路由信息发布
# AR6
acl 2001
rule permit source 10.0.0.0 0.0.3.255
q
route-policy Import-DIR permit node 10
if-match acl 2001
apply tag 100
isis
import-route direct route-policy Import-DIR level-2
cost-style wide
# AR1/2/3/4/5
isis
cost-style wide
# AR4
route-policy Tag permit node 10
if-match tag 100
q
isis
import-route isis level-2 into level-1 filter-policy route-policy Tag
# .............................................路由信息接收
# AR2
router-policy Deny_tag deny node 10
if-match tag 100
q
isis
filter-policy
route-policy Deny_tag import
#...............................................路由选择
# AR3
isis
nexthop 35.1.1.5 weight 1  # nexthop用来配置等价路由的优先级,weight(1~254)值越小越优
#...............................................安全设置
# AR1/2/3/4/5
isis
area-authentication-mode md5 huawei
# AR4/AR5
int g0/0/0
isis authentication-mode md5 huawei
# AR6
int g0/0/0
isis authentication-mode md5 huawei
int g0/0/1
isis authentication-mode md5 huawei
# .....................................路由汇总
# AR6
isis 
summary 10.0.0.0 255.0.0.0 level-2 tag 100