IS-IS协议分析与配置

本文简要分析IS-IS协议的原理和应用,利用GNS3仿真器搭建环境,对IS-IS协议进行实验配置,供学习记录。GNS3仿真环境中运行的是Cisco IOS镜像,比CPT更加接近真实环境,而且CPT也不支持ISIS协议。

初次使用GNS3踩了个坑,用的镜像配置起来是正常的,但是ISIS协议却配不通,折腾了几天换了个镜像就好了,所以使用GNS3一定要确保镜像正常,不然事倍功半浪费时间。

按照作用于AS的范围,常见路由协议可划分为两类:

  • 内部网关协议 (Interior Gateway Protocols, IGP):具体包括RIP、OSPF、IS-IS、EIGRP等,一般由单个ISP运营于一个AS内,有统一的自治系统号,目前大型企业内部多使用OSPF、IS-IS,小型企业内部使用RIP或静态路由
  • 外部网关协议 (Exterior Gateway Protocols, EGP):BGP是目前唯一使用的一种EGP协议,它是AS间的路由协议,一般用于不同ISP之间交换路由信息,以及大型企业、政府等具有较大规模的私有网络

下面对内部网关协议IS-IS进行介绍:

一、基本原理

IS-IS (Intermediate System-to-Intermediate System) 也是一种链路状态路由协议,最初设计用来应用于CLNP网络 (Connectionless Network Protocol,无连接网络协议,OSI体系中的网络层协议,类似TCP/IP模型中的IP协议),后因TCP/IP迅速发展和广泛应用,IS-IS对此进行了扩充和修改,使它能够同时应用在TCP/IP和OSI。

与OSPF协议相似,IS-IS同样使用最短路径优先算法 (Shortest Path First, SPF, 也称为Dijkstra算法) 生成最短路径树并构造路由表,其路径开销 (Cost) 计算基于接口的带宽,相比于OSPF,IS-IS更加适用于如ISP、数据中心等规模和承载量更大、区域类型相对简单、层次扁平化的大型网络。

IS-IS同样将AS划分成多个逻辑区域,分为骨干区域和非骨干区域,但其不再使用编号区分骨干区域和非骨干区域,而是基于路由器的级别 (Level)。IS-IS报文工作在链路层,每个区域中所有路由器通过组播 (Level-1: 01-80-C2-00-00-14, Level-2: 01-80-C2-00-00-15) 的方式维护着一个相同的链路状态数据库 (Link State DataBase, LSDB),LSDB存放着接口的相关信息 (IP地址、带宽以及所连接的邻居等),IS-IS路由器通过各自的LSDB进行路由计算。

(一) 路由器类型

IS-IS中的路由器按层次划分:

  • Level-1 (L1):负责区域内路由,它只与同一区域的L1和L1-2路由器形成L1邻居关系,维护一个L1的LSDB,该LSDB只包含本区域的路由信息,到区域外的报文要转发给最近的L1-2路由器。

  • Level-2 (L2):负责区域间路由,可以与同一区域的L2路由器,或者不同区域的L1-2路由器形成L2邻居关系,维护一个L2的LSDB,该LSDB包含区域间的路由信息,负责在不同区域间通信,路由域中的L2路由器必须是物理连续的,以保证骨干网的连续性。

  • Level-1-2 (L1-2):同时属于L1和L2的路由器,可以与同一区域的L1和L1-2路由器形成L1邻居关系,也可以与不同区域的L2和L1-2路由器形成L2的邻居关系。L1路由器必须通过L1-2路由器才能连接至其他区域。L1-2路由器维护两个链路状态数据库,L1的链路状态数据库用于区域内路由,L2的链路状态数据库用于区域间路由。

(二) 区域类型

与OSPF相同,分为骨干区域和非骨干区域,L2邻居关系的路由器 (L2和L1-2路由器) 构成骨干区域,L1邻居关系的路由器 (L1和L1-2路由器) 构成非骨干区域,非骨干区域必须通过L1-2路由器与骨干区域相连,IS-IS协议中没有虚链路的概念,骨干区域与非骨干区域在物理上都必须是一个整体。
在这里插入图片描述
非骨干区域只维护自身区域的LSDB,骨干区域维护自身以及非骨干区域的LSDB,骨干区域和非骨干区域联系的唯一纽带就是L1-2路由器,当信息在骨干和非骨干区域之间传输时,L1-2路由器充当信息中转枢纽,具体如下:

  • 骨干区域访问非骨干区域时,L1-2路由器将L1级别的路由作为自身直连的节点进行描述,并通过L2级别的LSP在L2区域进行泛洪,因此骨干区域上的路由器知道非骨干区域的路由信息;
  • 非骨干区域访问骨干区域时,L1-2路由器下发一条访问骨干区域的缺省路由指向路由器自身,缺省路由通过ATT比特位进行标记,由非骨干区域路由器计算得到。

注意:骨干区域和区域并不是一个概念,L1-2路由器可以划分到L1区域也可以划分到L2区域,但L1-2和L2路由器一起构成了一个连续的骨干区域。

(三) NSAP地址转换

ISO网络和IP网络的网络层地址的编址方式不同,IP网络的三层地址是常见的IPv4地址或IPv6地址,而ISO网络层地址称为NSAP (Network Service Access Point,网络服务接入点),即便现在是集成IS-IS,但是使用NSAP地址这项还是保留了下来,NSAP由IDP与DSP两个部分组成,如下图所示:
在这里插入图片描述

  • IDP (Initial Domain Part):相当于IP地址中的主网络号 (网段),由AFI (Authority and Format ID) 与IDI (Inter-Domain ID) 两部分组成,AFI表示地址分配机构和地址格式,IDI表示AFI的子域
  • DSP (Domain Specific Part):相当于IP地址中的子网号和主机地址,它由High Order DSP、System ID和SEL三个部分组成,High Order DSP用来分割区域,System ID用来区分主机,一般要保持全局唯一性,相当于OSPF中的Router-ID,SEL用来指示服务类型,在IP网络中SEL为00。

IDP和DSP中的High Order DSP一起组成区域地址,用于标识IS-IS划分的区域,相当于OSPF中的区域编号,一般情况下,一个路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同,有时为了支持区域的平滑合并、分割及转换,在设备的实现中,一个IS-IS进程下最多可配置3个区域地址。

IP地址向NSAP转换方法,一般设置环回接口 (Loopback Interface) 地址,将32位Lookback地址补齐成48位,分割后再补齐获得,具体如下图所示:(实际上在配置时可以有不同方法,但需要满足字节长度要求和全局唯一性)
在这里插入图片描述
区域地址 (AREA ID) 最前边1个字节AFI为组织格式标识符,代表一个独立的组织机构,49表示OSI协议的私有地址,39表示ISO国家代码,47表示ISO国际代码,后两个字节IDI为初始域标识符,代表AFI的子域,0001为区域编号。

(四) 网络类型

基于链路层网络协议,IS-IS支持两种网络类型:
(注意网络类型不同于物理拓扑,其划分主要基于网络在链路层运行的协议)

  • 点到点网络 (Point to Point, P2P):链路层协议如PPP和HDLC,此类网络不用进行DIS的选举,直接形成邻接关系
  • 广播多路访问网络 (Broadcast Multi-Access, BMA):链路层协议如以太网 (IEEE 802.3),可以 (泛洪) 发送广播和组播报文,需要进行DIS的选举

(五) DIS

在广播多路访问网络中,IS-IS需要在每个区域所有的路由器中选举一个作为DIS (Designated Intermediate System),用于创建伪节点并负责生成伪节点的链路状态协议数据单元LSP (Link State Protocol Data Unit),用来描述这个网络上的设备信息,同一区域内的路由器会通过DIS周期性 (10/3s) 发送CSNP来同步LSDB,路由器之间只有邻居关系,而在OSPF中,邻居关系的路由器不一定用于同步LSDB,只有在DROTHER与DR和BDR建立邻接关系才同步LSDB。
在这里插入图片描述
伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。伪节点用DIS的System ID和一个字节的Circuit ID (非0值) 标识,伪节点可以减小LSP大小,提高SPF计算速度。

DIS的选举通过比较优先级,当有多个IS-IS路由器时,优先级高的选为DIS,与OSPF不同的是,优先级为0的路由器也参与DIS的选举,而且DIS没有备份;如果优先级相同则通过比较SNPA大小,SNPA大的选为DIS,在局域网中SNPA为MAC地址。

(六) 路由器状态

OSPF根据同步LSDB的阶段来划分路由器状态,而IS-IS路由器仅根据邻居关系建立过程区分三种路由器状态:

  • Down:没有收到邻居HELLO包时的状态
  • Initiated:收到邻居HELLO包,但是在HELLO包中没有发现自身信息
  • Up:收到邻居HELLO包,并发现自身信息,随后会进行DIS选举

(七) 工作过程

以常见的BMA类型网络为例,IS-IS基本工作过程如下:

① 建立邻居关系:IS-IS路由器初始化时,所有相邻路由器之间通过HELLO报文发现并建立邻居关系,邻居关系的路由器状态为Up;

② 同步LSDB:互为邻居关系的路由器首先选举出DIS,刚加入区域的路由器会发送LSP,DIS收到LSP后将相应信息加入自身LSDB,然后定期向邻居路由器发送完全序列号数据包 (Complete Sequence Number Packets, CSNP),CSNP中包括LSP的摘要信息,包括接口地址、带宽、邻居等链路状态信息,如果收到CSNP的路由器发现数据包中LSP描述没有自身信息,则会返回特殊序列号数据包 (Partial Sequence Numbers PDU, PSNP),DIS收到PSNP后会发送相应的LSP,直到单个区域内所有的路由器都形成相同的LSDB;

③ 构建路由表:同一个区域内的路由器会结合自身LSDB信息,使用SPF算法生成最短路径树,构建出各自的区域内路由表;L1-2路由器将L1级别的路由作为自身直连的节点进行描述,并通过L2级别的LSP在L2区域进行泛洪,因此骨干区域上的路由器既有自身区域又有非骨干区域的路由信息,而非骨干区域路由器只有自身区域的路由信息,当其访问骨干区域时,L1-2路由器下发一条访问骨干区域的缺省路由指向路由器自身。

④ 路由信息维护:一方面,当路由器的邻居状态发生改变,或是自身路由信息发生变化时,会触发LSP更新;另一方面,DIS会周期性发送CSNP,当区域中有路由器状态发生变化时会返回PSNP请求LSP以完成LSDB的同步。LSDB完成同步后,如果路由信息更新则会重新计算生成新的路由表项。

(八) 优缺点分析

优点:
  • 收敛速度快,能够在最短的时间内将路由变化传递到整个自治系统
  • 支持大量网络节点和网络平移、分割、合并,适用于超大规模网络
  • 采用路径开销 (Cost) 作为度量标准,路径开销计算基于接口的带宽
  • 划分区域进行管理,减少大规模网络中协议运行的流量和开销
  • 协议相对OSPF更加简化,配置简单
缺点:
  • 支持网络类型有限

二、实验配置

(一) 实验拓扑

以BMA型网络为例,拓扑如下:
在这里插入图片描述R1、R2、R3、R4所在区域Area ID为49.0001
R5、R6、R11、R12所在区域Area ID为49.0002
R7、R8、R9、R10所在区域Area ID为49.0003

(二) 配置命令

(基础配置略过,只记录路由相关配置部分)

# R1、R2、R3、R4都是L2路由器,配置命令相似,以R1配置为例
# R1、R2、R3、R4所在区域Area ID为49.0001
R1(config)# interface loopback 1    // 配置环回接口,接口地址用于配置NSAP中的SYSTEM ID
R1(config-if)# ip address 10.10.11.1 255.255.255.0
R1(config-if)# exit
R1(config)# router isis
R1(config-router)# net 49.0001.0100.1001.0001.00  // 配置NSAP,同一个区域的AREA ID是相同的,这里骨干区域ID设为49.0001
R1(config-router)# is-type level-2-only           // 配置IS-IS路由器类型 (缺省为Level-1-2)
R1(config-router)# exit
R1(config)# interface fa0/0
R1(config-if)# no shutdown
R1(config-if)# ip address 1.1.1.1 255.255.255.0
R1(config-if)# ip router isis                     // 在接口开启IS-IS路由功能
R1(config-if)# exit
R1(config)# interface fa0/1
R1(config-if)# no shutdown
R1(config-if)# ip address 4.4.4.1 255.255.255.0
R1(config-if)# ip router isis
R1(config-if)# exit
R1(config)# interface fa1/0
R1(config-if)# no shutdown
R1(config-if)# ip address 5.5.5.1 255.255.255.0
R1(config-if)# ip router isis
R1(config-if)# exit


# R5、R7、R9、R11都是L1-2路由器,配置命令相似,以R5配置为例
# R5、R11所在区域Area ID为49.0002,R7、R9所在区域Area ID为49.0003
R5(config)# interface loopback 1   
R5(config-if)# ip address 10.10.11.5 255.255.255.0
R5(config-if)# exit
R5(config)# router isis
R5(config-router)# net 49.0002.0100.1001.0005.00    // 配置NSAP,同一个区域的AREA ID相同
R5(config-router)# is-type level-1-2              
R5(config-router)# exit
R5(config)# interface fa0/0
R5(config-if)# no shutdown
R5(config-if)# ip address 5.5.5.2 255.255.255.0
R5(config-if)# ip router isis              
R5(config-if)# exit
R5(config)# interface fa0/1
R5(config-if)# no shutdown
R5(config-if)# ip address 6.6.6.1 255.255.255.0
R5(config-if)# ip router isis
R5(config-if)# exit


# R6、R8、R10、R12都是L1路由器,配置命令相似,以R6配置为例
# R6、R12所在区域Area ID为49.0002,R8、R10所在区域Area ID为49.0003
R6(config)# interface loopback 1    
R6(config-if)# ip address 10.10.11.6 255.255.255.0 
R6(config-if)# exit
R6(config)# router isis
R6(config-router)# net 49.0002.0100.1001.0006.00    // 配置NSAP,同一个区域的AREA ID相同
R6(config-router)# is-type level-1             
R6(config-router)# exit
R6(config)# interface fa0/0
R6(config-if)# no shutdown
R6(config-if)# ip address 6.6.6.2 255.255.255.0
R6(config-if)# ip router isis                   
R6(config-if)# exit

配置后可用命令查看路由信息:

# 查看isis配置信息
Router# show isis ?

# 查看所有路由表项
Router# show ip route

# 查看IS-IS路由表项
Router# show ip route isis

# 查看IP路由协议配置参数和运行情况
Router# show ip protocols

可见骨干区域路由器 (L2、L1-2) 路由信息中有全网的路由信息,而非骨干区域路由器 (L1) 路由信息中只有本区域的路由信息,以及指向0.0.0.0的默认路由表项。

如果一次性需要配置多个路由器,可以先将命令逐行写出,然后复制粘贴就可以一次性完成配置,如下所示:
在这里插入图片描述

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值