IS-IS协议详解
2026-02-08
网络
00
请注意,本文编写于 55 天前,最后修改于 5 天前,其中某些信息可能已经过时。

目录

前言
一、IS-IS协议的相关概念
二、IS-IS协议的特点
三、IS-IS的拓扑结构
L1路由器
L2路由器
L1-2路由器
四、IS-IS协议的网络服务访问点
IDP
DSP
五、IS-IS协议的网络类型
六、IS-IS协议的报文类型
通用头部
LAN Hello报文格式
P2P Hello报文格式
LSP报文格式
SNP报文格式
七、IS-IS协议邻居关系的建立
广播链路中邻居关系的建立
P2P链路中邻居关系的建立
八、IS-IS LSP的 泄洪机制
九、IS-IS LSDB同步
广播链路中LSDB的同步过程
P2P链路中LSDB的同步过程
十、IS-IS协议验证和路由渗透
十一、常用配置命令
配置IS-IS的基本功能
配置IS-IS协议的安全性

前言

​ 这次作为总结的是IS-IS协议。其实对于IS-IS协议,是跟OSPF协议是差不多的,类似于简化版的存在吧。OSPF协议更加倾向于复杂的网络环境,配置比较灵活;而IS-IS协议则适合大型网络环境,更加易于管理。

一、IS-IS协议的相关概念

CLNS (Connectionless Network Service)

​ 提供无连接的数据传输服务,在数据传输之前不需要建立连接。CLNS是OSI模型中网络层的服务,它与IP协议类似,都是无连接的

CLNP (Connectionless Network Protocol)

​ OSI参考模型中网络层的一种无连接的网络协议,与IP协议具有相似的特性

终端系统 (EndSystem, ES)

​ 相当于TCP/IP模型中的主机。终端系统不直接参与IS-IS协议的处理,而是使用ES-IS协议与中间系统进行通信

中间系统 (Intermediate System, IS)

​ 具有数据包转发能力的网络节点,相当于TCP/IP模型中的路由器。IS是IS-IS协议中生成和传播路由信息的基本单元

路由域 (Routing Domain, RD)

​ 多个IS通过相同的路由协议交换路由信息的区域

区域 (Area)

​ 路由域的逻辑划分,IS-IS协议使用区域来划分网络,以便更有效地管理和传播路由信息

LSDB (Link State Database)

​ 网络内所有链路状态信息的集合。每个IS至少有一个LSDB,IS-IS使用SPF算法利用LSDB计算最佳路由

链路状态分组 (Link State Packet, LSP)

​ 每个IS生成的包含其所有链路状态信息的数据包。IS收集区域内所有LSP以构建自己的LSDB

子网连接点 (Subnetwork Point of Attachment, SNPA)

​ 是与三层地址对应的二层地址。在以太网接口中,SNPA通常设置为接口的MAC地址。SNPA用于区分设备上的不同接口

序列号分组 (Sequence Number Packets,SNP)

​ 用于确保IS-IS协议的LSDB同步和使用最新LSP计算路径。部分序列号分组 (PSNP) 用于确认和请求丢失的链路状态信息;完整序列号分组 (CSNP) 用于定期通告LSDB中的完整LSP列表

二、IS-IS协议的特点

  • **维护LSDB和SPF算法:**IS-IS协议维护了一个链路状态数据库(LSDB),并使用最短路径优先(SPF)算法来计算最佳路由。
  • **Hello报文:**IS-IS协议使用Hello报文来建立和维护邻居关系。
  • **分层结构:**为了支持大规模的路由网络,IS-IS协议在自治系统(AS)内采用两级分层结构,包括骨干区域(Level 1)和非骨干区域(Level 2)。
  • **路由聚合:**IS-IS协议在区域之间可以使用路由聚合来减轻路由器的负担。通过聚合,可以减少路由器之间交换的路由信息量,从而提高效率
  • **支持VLSM和CIDR:**IS-IS协议支持可变长度子网掩码(VLSM)和无类别域间路由(CIDR),允许更灵活的IP地址分配和汇总。它还可以基于接口、区域和路由域进行验证,支持明文验证、MD5验证和Keychain验证
  • **网络类型支持:**IS-IS协议支持广播多路访问(BMA)和点对点(P2P)两种网络类型。在BMA网络中,通过选举指定DIS来管理和控制网络中的泛洪
  • **路由优先级和度量:**IS-IS协议的路由优先级为15,支持宽度量(Wide Metric)和窄度量(Narrow Metric)。路由度量的类型包括默认度量、延迟度量、开销度量和差错度量。默认情况下,IS-IS协议采用默认度量,接口的链路开销为10,但管理员可以根据需要调整这些度量
  • **快速收敛:**IS-IS协议收敛快速,适用于大型网络。当网络拓扑发生变化时,IS-IS能够迅速计算新的路由并通知所有路由器,从而最小化网络中断

三、IS-IS的拓扑结构

​ 与OSPF协议的网络拓扑结构不同,IS-IS协议没有DR、ABR、ASBR的概念,取而代之的是Level-1、Level-2。同时IS-IS协议只有两个区域,分为:非骨干区域、骨干区域。

L1路由器

​ 负责区域内的路由,只与属于同一区域的L1路由器和L1-2路由器形成邻居关系,与属于不同区域的L1路由器不能形成邻居关系。如图所示,路由器R1和R2只形成L1的邻居关系。L1路由器只负责维护L1的LSDB,该LSDB包含本区域的路由信息,本区域外的报文转发给最近的L1-2路由器

L2路由器

​ 负责区域间的路由,可以与同一区域不同的L2路由器和其他区域的L1-2路由器形成邻居关系。如图所示,路由器R4和R5只形成L2的邻居关系。L2路由器维护了一个L2的LSDB,该LSDB包含区域间的路由信息。所有L2(形成L2邻居关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中的L2路由器必须是物理连续的,以保证骨干网的连续性。只有L2路由器才能直接与区域外的路由器交换数据报文或路由信息

L1-2路由器

​ 同时属于L1和L2的路由器,既可以与同一区域的L1路由器和L1-2路由器形成L1邻居关系,也可以与其他区域的L2路由器和L1-2路由器形成L2的邻居关系。如图所示,路由器R3和R4分别形成L1和L2的邻居关系。L1路由器必须通过L1-2路由器才能连接至其他区域。L1-2路由器维护两个LSDB,L1的LSDB用于区域内路由,L2的LSDB用于区域间路由

四、IS-IS协议的网络服务访问点

NSAP是CLNS的地址,类似于IP包头中的IP地址。但与IP地址不同的是,CLNS地址代表的不是接口而是节点。IS-IS协议的LSP通过NSAP地址来标识路由器,并建立拓扑表和底层的IS-IS路由选择树,因此即使纯粹的IP环境也必须有NSAP地址

注:IDP相当于IP地址中的主网络号,DSP相当于IP地址中的子网号和主机地址

IDP

​ 由ISO规定,并由AFI(Authority and Format Identifier)与IDI(Initial Domain Identifier)两部分组成。AFI表示地址分配机构和地址格式,IDI用来标识域

DSP

​ 由High Order DSP、System ID和SEL(NSAP Selector)三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL(NSAP Selector)用来指示服务类型

在NSAP中,有一个可以看作是特殊NSAP的存在--NET

NET是OSI协议栈中设备的网络层信息,主要用于路由计算,由区域地址和System ID组成,长度与NSAP相同,最长为20Byte,最短为8Byte。在IP网络中运行IS-IS时,只需要配置NET,根据NET地址设备可以获取到Area ID和System ID

五、IS-IS协议的网络类型

​ 在前面说过,IS-IS的网络类型只有两种:广播型、P2P类型

​ 在广播型的网络中,IS-IS协议需要在所有的路由器中选举一台路由器作为DIS。DIS用来创建和更新伪节点,并负责生成伪节点的LSP。注:伪节点时用来模拟广播网络的虚拟节点,非真实路由器

​ 在建立邻居关系后,路由器会等待两个Hello报文间隔,再进行DIS(指定中间系统)的选举。L1和L2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级

DIS的选举

​ 首先,优先级为0的路由器也会参与DIS的选举;其次,当有新的路由器加入,并符合成为DIS的条件时,这台路由器会被选中成为新的DIS,原有的伪节点被删除,即DIS选举具有抢占性;最后,同一网段中的同级别的路由器之间会形成邻居关系,所有的非DIS之间也会形成邻居关系。IS-IS广播网络中所有的路由器之间都形成了邻居关系,但LSDB(链路状态数据库)的同步仍然依靠DIS来保证。

六、IS-IS协议的报文类型

​ 相比于OSPF协议,IS-IS协议使用了三大类报文:Hello报文LSP报文SNP报文,共计9种具体的报文,每种报文都有一个特定的类型号

通用头部

域内路由选择协议标识符 (Intradomain Routing Protocol Discriminator)

​ 这是ISO 9577分配给IS-IS协议的一个固定的值,用于标识网络层协议数据单元(PDU)的类型。对于IS-IS协议报文而言,该字段的值为0x83

长度标识符 (Length Indicator)

​ 标识报文头部字段的长度(单位为字节)

版本/协议ID扩展 (Version/Protocol ID Extension)

​ 当前设置为1

ID长度 (ID Length)

​ 表示系统ID的长度,单位为字节

保留 (Reserved, R) 位

​ 没有使用的位,始终为0

PDU类型 (PDU Type)

​ 5比特的字段,标识IS-IS协议报文的类型。L1和L2 LAN的Hello报文类型值分别为15和16,P2P链路的Hello报文类型值为17,L1和L2的LSP报文类型值分别为18和20,L1和L2的CSNP报文类型值分别为24和25,L1和L2的PSNP报文类型值分别为26和27

版本 (Version)

​ 当前值为1

保留 (Reserved)

​ 当前设置为全0

最大区域地址数 (Maximum Area Address)

​ IS-IS区域所允许的最大区域地址数,值为0时表示最多支持的区域地址数为3

LAN Hello报文格式

电路类型 (Circuit Type)

​ 2比特字段,用于指示路由器的类型。01:L1路由器;10:L2路由器;11:L1-2路由器;00:该报文被忽略

源ID (Source ID)

​ 发送Hello报文的路由器的系统ID

保持时间 (Holding Time)

​ 指定如果在这段时间内没有收到邻居发送来的Hello报文,则终止已建立的邻居关系。默认情况下,IS-IS接口发送Hello报文的间隔时间是10秒,保持时间是发送Hello报文间隔时间的3倍

PDU长度 (PDU Length)

​ 整个报文的长度,单位为字节

优先级 (Priority)

​ 接口的DIS(指定中间系统)优先级,用来选举DIS。优先级的值越大,路由器成为DIS的可能性越大,默认值是64。如果优先级的值相同,则MAC地址最大的路由器被选举为DIS

LAN ID

​ 由DIS的系统ID和1字节的伪节点ID组成。LAN ID用来区分同一台DIS上的不同LAN

可变长度域 (Variable Length Fields)

​ 报文中的可变长度域部分由多个TLV(Type-Length-Value)三元组构成。每种IS-IS协议报文都会支持特定的TLV字段,不同报文类型所包含的TLV是不同的,这些TLV字段在报文中是可选的,所以该部分长度是可变的。常见的TLV类型包括:区域地址(值为1)、IS邻居(用邻居路由器MAC地址标识,值为6)、认证信息(值为10)、支持的协议(值为129)、IP可达性(值为128)、IP接口地址(值为132)

P2P Hello报文格式

​ 其实,P2P Hello报文和LAN Hello报文格式大致相同,区别就是P2P报文没有了优先级字段,同时用本地电路ID字段代替了LAN ID字段。本地电路ID是由发送Hello报文的路由器分配给这条电路的标识,且在路由器的接口上是唯一的

LSP报文格式

​ LSP报文中分为两种报文,一种是L1 LSP报文,一种是L2 LSP报文。它们各自承载了IS-IS协议不同层次的路由选择信息,但都共用一个LSP报文格式

PDU长度

​ 指整个报文的长度,单位为字节

剩余生存时间 (Remaining Lifetime)

​ LSP在到期前的生存时间。当剩余生存时间为0时,LSP将从LSDB(链路状态数据库)中被删除

LSPID

​ 用来标识不同的LSP和生成LSP的源路由器。LSPID由三部分组成:系统ID(6字节)、伪节点标识符(1字节)、LSP分片号(1字节)

序列号

​ 一个32位的无符号数,主要作用是让路由器能够识别LSP的新旧版本

校验和

​ 主要用于检查被破坏的LSP或者还未从网络中清除的过期LSP

区域修复 (Partition Repair, P)

仅与L2 LSP报文有关,表示路由器是否支持自动修复区域分割。当P位被设置为1时,表明始发路由器支持自动修复区域的分段情况

区域关联 (Attachment, ATT)

​ L1-2路由器在其生成的L1 LSP报文中设置该字段,以通知同一区域中的L1路由器与其他区域相连。当L1区域中的路由器收到ATT位被置位的L1 LSP报文后,它将创建一条指向L1-2路由器的默认路由,以便数据可以被路由到其他区域。ATT位虽然在L1 LSP报文和L2 LSP报文中均有定义,但只会在L1 LSP报文中被置位,且只有L1-2路由器会设置该字段

超载 (Overload, OL)

​ 表示本路由器因内存不足而导致LSDB不完整。如果该位被置位,就表示路由器发生了超载。设置了OL位的LSP不会进行网络泛洪,并且当其他路由器收到设置了OL位的LSP后,在计算路径信息时不会考虑此LSP,因此最终计算出来的到达目的地的路径将绕过超载的路由器

IS类型 (IS Type)

​ 生成LSP的路由器的类型,表示LSP是来自L1路由器还是L2路由器,也表示收到此LSP的路由器将把此LSP放到L1 LSDB还是L2 LSDB中。其中,字段值为01表示L1路由器,为11表示L2路由器,00与10未使用

SNP报文格式

​ SNP报文也分为CSNP报文和PSNP报文。它们都包含了路由器本地LSDB中LSP的摘要信息。而他们的区别就是:CSNP报文包含的是所有LSP的摘要信息;PSNP报文只列举了最近收到的一条或多条LSP的序号,能一次对多个LSP进行确认。

七、IS-IS协议邻居关系的建立

​ OSPF协议是建立邻接关系后,才能建立邻居关系。而IS-IS协议跟OSPF协议不同,IS-IS协议是建立邻接关系就等于是建立了邻居关系,对于IS-IS协议来说,两者是等价的

广播链路中邻居关系的建立

  1. 路由器R1通过组播方式(组播MAC地址为0180.C200.0015 )发送L2 LAN IH ( IS-IS Hello)报文,此报文中无邻居标识
  2. 路由器R2收到此报文后,将自己与路由器R1的邻居状态标识为初始( Initial),路由器R2再向路由器R1回复L2 LAN IIH报文,此报文中标识路由器R1为路由器R2的邻居
  3. 路由器R1收到此报文后,将自己与路由器R2的邻居状态标识为up,路由器R1再向路由器R2发送一个标识路由器R2为路由器R1邻居的L2 LAN IIH报文
  4. 路由器R2收到此报文后,将自己与路由器R1的邻居状态标识为up。这样,两台路由器就成功建立了邻居关系。 成功建立了邻居关系

P2P链路中邻居关系的建立

在P2P链路中,IS-IS协议邻居关系的建立分为两次握手机制和三次握手机制。

​ **两次握手机制:**只要路由器收到对端发送来的Hello报文,就单方面宣布邻居处于Up状态建立邻居关系

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

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

​ **三次握手机制:**通过发送3次P2P的IS-IS Hello报文最终建立起邻居关系,类似于广播邻居关系的建立,如图2-12所示。P2P的IS-IS Hello报文中携带了一个新的TLV(类型为240)来记录对端的系统ID,该TLV的名称为点到点邻接状态(Point-to-Point Adjacency State)

  1. 只有同一层次的相邻路由器才有可能成为邻居
  2. 对于L1路由器来说,区域ID必须一致
  3. 链路两端IS-IS接口的网络类型必须一致
  4. 链路两端IS-IS接口的地址必须处于同一网段
  5. 如果配置了认证,则认证参数必须匹配
  6. 最大区域地址数字段的值必须一致,默认值是0,表示支持3个区域地址

八、IS-IS LSP的 泄洪机制

​ LSP报文的泛洪是指当一台路由器向相邻路由器通告自己的LSP后,相邻路由器再将同样的LSP报文发送到除发送该LSP的路由器外的其他邻居路由器,并这样逐级将LSP传送到整个层次内所有路由器的一种方式。

IS-IS路由器收到邻居发送的新的LSP后,处理过程如下:

​ 首先,将接收的新的LSP放入自己的LSDB中,并标记为Flooding;

​ 其次,将新的LSP发送到除接收该LSP的接口以外的接口;

​ 最后,邻居路由器再扩散到其他IS-IS邻居路由器

​ 通过这种泛洪机制,整个层次内的每一台路由器都可以拥有相同的LSP信息,并保持LSDB的同步。每一个LSP都拥有一个标识自己的4字节的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1,以后当需要生成新的LSP时,新LSP的序列号在前一个LSP序列号的基础上加1,更高的序列号意味着更新的LSP

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

​ 邻居处于Up或Down状态

​ IS-IS相关接口处于Up或Down状态

​ 引入的IP路由发生变化

​ 区域间的IP路由发生变化

​ 接口被赋予了新的度量值

​ 周期性更新

九、IS-IS LSDB同步

​ IS-IS邻居关系建立后,邻居之间将进行LSDB同步,同步过程主要由邻居间交互LSP和SNP协议报文来完成

广播链路中LSDB的同步过程

  1. 新加入的路由器R3先发送Hello报文,与该广播网络中的路由器建立邻居关系。
  2. 建立邻居关系之后,路由器R3等待LSP刷新定时器超时,并将自己的LSP发往组播地址(L1的组播地址为01-80-C2-00-00-14,L2的组播地址为01-80-C2-00-00-15)。这样,网络中所有的路由器都将收到该LSP。
  3. 网段中的DIS(指定中间系统)会把收到的路由器R3的LSP加入LSDB中,等待CSNP(完全链路状态通告)报文定时器超时并发送CSNP报文,进行该网络内的LSDB同步。
  4. 路由器R3收到DIS发送来的CSNP报文,将其自己的LSDB进行对比,并向DIS发送PSNP(部分链路状态通告)报文请求自己没有的LSP。
  5. DIS收到该PSNP报文请求后,向路由器R3发送对应的LSP报文进行LSDB同步。

​ **注:**在广播网络中,DIS周期性(默认为10s)以组播地址发送CSNP报文。因此,在广播网络中没有确认重传机制,LSDB的完整性是靠DIS周期性发送CSNP报文来保证的

IS-IS协议中的路由器如何更新其链路状态数据库(LSDB)的过程。它使用LSP(Link State Packet)来传播网络的拓扑信息

  1. 新LSP接收:当路由器R2作为DIS(Designated Intermediate System,指定中间系统)接收到来自R3的LSP时,它会在LSDB中查找是否有对应的记录。如果没有,它会将这个新的LSP加入到LSDB中,并向所有其他路由器组播这个更新
  2. 序列号比较:如果收到的LSP的序列号高于本地存储的LSP的序列号,这意味着收到了一个更新的LSP,因此会用新的LSP替换旧的,并组播更新的LSDB
  3. 剩余生存时间比较:如果两个LSP的序列号相同,路由器会检查剩余生存时间。如果收到的LSP的生存时间为0,说明它是一个即将过期的LSP,路由器会用新的LSP替换旧的,并组播更新。如果收到的LSP的生存时间不为0,而本地LSP的生存时间为0,则路由器会向发送LSP的接口发送本地的LSP
  4. 校验和比较:如果序列号和剩余生存时间都相同,路由器会通过比较校验和来确定哪个LSP是最新的。校验和更大的LSP被认为是更新的,因此会被用来替换旧的LSP,并组播更新
  5. 再次校验和比较:如果序列号和剩余生存时间都不为0且相同,路由器会再次比较校验和,以确定是否需要更新LSDB
  6. 无变化:如果收到的LSP在序列号、剩余生存时间和校验和上都与本地LSP相同,这意味着没有新的信息,因此路由器不会采取任何行动,也不会转发这个LSP

P2P链路中LSDB的同步过程

  1. 建立邻居关系:路由器R1和路由器R2首先需要建立IS-IS邻居关系。这是通过发送Hello报文来完成的,这些报文包含了路由器的标识、接口的IP地址和其他必要的信息。当两个路由器收到彼此的Hello报文并确认它们在同一区域内时,它们就成为了邻居
  2. 发送CSNP报文:建立邻居关系后,路由器会发送Complete Sequence Number Packet(CSNP)报文给对端设备。CSNP报文包含了发送路由器的所有LSP的序列号和校验和,用于询问对端路由器的LSDB是否已经同步
  3. 请求LSP:如果对端路由器的LSDB与发送的CSNP报文不同步,即存在序列号更高或校验和更大的LSP,那么对端路由器会发送Partial Sequence Number Packet(PSNP)报文来请求这些缺失的LSP。在这个例子中,路由器R2向路由器R1请求相应的LSP
  4. LSP重传定时器:当路由器R1收到路由器R2的PSNP报文请求后,它会发送请求的LSP给R2,并启动一个LSP重传定时器。这个定时器用于等待路由器R2发送PSNP报文作为收到LSP的确认
  5. 重传LSP:如果在LSP重传定时器超时后,路由器R1还没有收到路由器R2发送的PSNP报文作为应答,这意味着LSP可能没有成功到达R2。在这种情况下,路由器R1会重新发送该LSP,直到收到R2的PSNP报文确认收到LSP为止

​ **注:**PSNP报文的两种作用:作为应答已确认收到LSP;请求所需的LSP

在点对点(P2P)链路中,IS-IS路由器的链路状态数据库(LSDB)更新过程遵循以下步骤:

序列号比较

  • 如果收到的LSP的序列号小于本地LSP的序列号,这意味着本地LSP是更新的版本。在这种情况下,路由器会直接向发送LSP的邻居发送本地LSP,并等待对方通过PSNP(Partial Sequence Number Packet)报文确认收到这个更新的LSP
  • 如果收到的LSP的序列号大于本地LSP的序列号,这意味着收到的LSP是更新的版本。路由器会将这个新的LSP加入到本地LSDB中,并通过PSNP报文确认收到此LSP,然后将这个新LSP发送给除发送该LSP的路由器以外的其他邻居路由器

序列号相同,比较剩余生存时间

  • 如果收到的LSP的序列号与本地LSP的序列号相同,但收到的LSP的剩余生存时间为0,这意味着收到的LSP即将过期。路由器会将收到的LSP加入到本地LSDB中,发送PSNP报文来确认收到此LSP,然后将该LSP发送给其他邻居路由器
  • 如果收到的LSP的剩余生存时间不为0,而本地LSP的剩余生存时间为0,这意味着本地LSP即将过期。路由器会直接向发送LSP的邻居发送本地LSP,并等待对方通过PSNP报文确认收到这个更新的LSP

序列号和剩余生存时间相同,比较校验和

  • 如果收到的LSP的序列号和剩余生存时间都与本地LSP相同,但收到的LSP的校验和大于本地LSP的校验和,这意味着收到的LSP是更新的版本。路由器会将收到的LSP加入到本地LSDB中,发送PSNP报文来确认收到此LSP,然后将该LSP发送给其他邻居路由器
  • 如果收到的LSP的校验和小于本地LSP的校验和,这意味着本地LSP是更新的版本。路由器会直接向发送LSP的邻居发送本地LSP,并等待对方通过PSNP报文确认收到这个更新的LSP

序列号、剩余生存时间和校验和都相同

  • 如果收到的LSP在序列号、剩余生存时间和校验和上都与本地LSP相同,这意味着收到的LSP与本地LSP完全相同,没有新的信息。在这种情况下,路由器不会对收到的LSP采取任何行动,也不会进行转发

十、IS-IS协议验证和路由渗透

​ IS-IS协议验证是基于网络安全性的要求而实现的一种验证要求,通过在IS-IS协议报文中增加验证字段来对报文进行验证。当本地路由器接收远端路由器发送过来的IS-IS报文时,如果发现验证密码不匹配,则将收到的报文丢弃,达到自我保护的目的

根据报文的种类,验证有:

  • 接口验证:使能IS-IS协议的接口以指定方式和密码对L1 Hello报文和L2 Hello报文进行验证
  • 区域验证:运行IS-IS协议的区域以指定方式和密码对L1 SNP报文和L1 LSP报文进行验证
  • 路由域验证:运行IS-IS协议的路由域以指定方式和密码对L2 SNP报文和L2 LSP报文进行验证

根据报文的验证方法,验证有:

  • 明文验证:一种简单的验证方式,将配置的密码直接加入保卫呢,这种验证方式安全性较低
  • MD5验证:对配置的密码使用MD5算法之后再加入报文,提高密码的安全性
  • Keychain验证:通过验证随时间变化的密码链表来进一步提高网络的安全性

​ 通常情况下,L1区域内的路由通过L1路由器进行管理,所有的L2路由器和L1-2路由器构成一个连续的骨干区域。L1区域必须且只能与骨干区域相连,不同的L1区域之间并不相连。L1-2路由器将学习到的L1路由信息装入L2 LSP,再泛洪LSP给其他L2路由器和L1-2路由器。因此,L1-2路由器和L2路由器知道整个IS-IS路由域的路由信息。

​ 但是,为了有效减小路由表的规模,在默认情况下,L1-2路由器并不将自己知道的其他L1区域及骨干区域的路由信息通告给其所在的L1区域的其他路由器,因此L1路由器将不了解本区域以外的路由信息,这可能导致与本区域之外的目的地址在通信时无法选择最佳的路由。为了解决上述问题,IS-IS协议提供了路由渗透功能,将L2区域的路由向L1区域渗透。

​ IS-IS协议通过路由渗透选择最佳路径的示例如图所示,路由器R1发送报文给路由器R6,选择的最佳路径应该是R1→R2→R4→R5→R6,因为这条路径上的开销值为40。但在路由器R1上查看到发送到路由器R6的报文选择的路径是R1→R3→R5→R6,其开销值为70,不是路由器R1到路由器R6的最优路由。路由器R1作为L1路由器并不知道本区域外部的路由,那么发往区域外的报文都会选择由最近的L1-2路由器产生的默认路由发送出去,所以会出现路由器R1选择次优路由转发报文的情况。

​ 如果分别在L1-2路由器R3和R4上使能路由渗透功能,则Area10中的L1路由器就会拥有经过这两个L1-2路由器通向区域外的路由信息。经过路由计算,选择的转发路径为R1→R2→R4→R5→R6,即路由器R1到路由器R6的最优路由。执行[import-route isis level-2 into level-1]命令,可实现L2区域的路由向L1区域的渗透;通过在L1-2路由器上定义ACL、路由策略、Tag等方式,可将符合条件的路由筛选出来,将其他L1区域和骨干区域的部分路由信息通告给自己所在的L1区域。

十一、常用配置命令

配置IS-IS的基本功能

展开代码
# 启动IS-IS进程,配置进程ID [Huawei]isis process-id [Huawei]isis 1 # 举例 # 设置网络实体名称NET [Huawei-isis-1]network-entity net [Huawei-isis-1]network-entity 49.0001.0000.0000.0001.00 # 举例 # 设置设备的级别。默认设备的级别为L1-2 [Huawei-isis-1]is-level {level-1 | level-1-1 | level-2} [Huawei-isis-1]is-level level-1 # 举例 # 设置IS-IS设备接收和发送路由的开销类型。默认为narrow [Huawei-isis-1]cost-style {narrow | wide | wide-compatible} [Huawei-isis-1]cost-style wide-compatible # 举例 # 配置IS-IS实例名称 [Huawei-isis-1]is-name symbolic-name [Huawei-isis-1]is-name ren # 举例 # 设置接口的电路级别 [Huawei-GigabitEthernet0/0/1]isis circuit-level {level-1 | level-1-2 | level-2} [Huawei-GigabitEthernet0/0/1]isis circuit-level level-2 # 举例 # 在接口使能IS-IS接口 [Huawei-GigabitEthernet0/0/1]isis enable process-id [Huawei-GigabitEthernet0/0/1]isis enable 1 # 举例 # 指定选举DIS时,IS-IS接口的优先级。范围0~127 [Huawei-GigabitEthernet0/0/1]isis dis-priority priority {level-1 | level-2} [Huawei-GigabitEthernet0/0/1]isis dis-priority 127 举例 # 指定IS-IS接口发送Hello报文的间隔时间 [Huawei-GigabitEthernet0/0/1]isis timer hello hello-interval {level-1 | level-2} [Huawei-GigabitEthernet0/0/1]isis timer hello 5 level-1 #举例 # 配置hello报文的发送间隔时间的倍数 [Huawei-GigabitEthernet0/0/1]isis timer holding-multiplier number {level-1 | level-2} [Huawei-GigabitEthernet0/0/1]isis timer holding-multiplier 6 level-1 # 举例

配置IS-IS协议的安全性

展开代码
# 配置IS-IS接口的验证方式 # 明文验证 [AR5-GigabitEthernet0/0/0]isis authentication-mode simple cipher ren123456 # 举例 # MD5验证 [AR5-GigabitEthernet0/0/0]isis authentication-mode md5 cipher ren123456 # 举例 # HMAC-SHA256验证 [Huawei-GigabitEthernet0/0/1]isis authentication-mode hmac-sha256 key-id 1 plain mysecretkey # 举例 # 设置区域验证 [Huawei-isis-1]area-authentication-mode md5 cipher encryptedpassword # 举例 # 设置路由域验证 [Huawei-isis-1]domain-authentication-mode md5 cipher encryptedpassword # 举例

本文作者:zzz

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!