IS-IS协议分析
IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO (International Organization for Standardization,国际标准化组织)为它的CLNP(ConnectionLessNetwork Protocol,无连接网络协议)设计的一种动态路由协议。
随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnect,开放式系统互联)环境中,我们将扩展后的IS-IS称为集成IS-IS。
1.1、NSAP和NET
NSAP(Network Service Access Point,网络服务访问点)是OSI协议栈中用于定位资源的地址,主要用于提供网络层和上层应用之间的接口。NSAP包括IDP及DSP。
NSAP总长20字节,如下图。
其中IDP相当于IP地址中的 主网络号,由AFI和IDI组成,其中AFI表示地址分配机构和地址格式,IDI用于标识域。
DSP相当于IP地址中的子网号和主机号,由High Order DSP 、System ID、SEL组成,
High Order DSP用来分割区域,System ID用来区分主机,SEL用来指定服务类型。
NET是特殊的NSAP(SEL=00).
NET (Network Entity Title,网络实体名称)是ost协议栈中设备的网络层信息,主要用于路由计算,由区域地址((Area lD)和System lD组成,
NET的长度与NSAP的相同,最长为20Byte,最短为8Byte。
在IP网络中运行IS-IS时,只需配置NET,根据NET地址设备可以获取到Area lD以及System lD。
具体格式如下图:
NET的配置举例:
每台运行iS-ls的网络设备至少需拥有一个NET,当然,一台设备也可以同时配置多个NET,但是这些NET的System ID必须相同。
在华为的网络设备上,System lD的长度总是固定的6Byte。在一个lS-Is路由域中,设备的System lD必须唯一,为了便于管理,一般根据Router ID配置system lD。
如:NET=区域号+Router ID+SEL – 49.0001 表示区域号,01.00.0000.1001表示router-id
SEL 是 00,默认00,表示是IPv4服务。
1.2、IS-IS和OSPF区域划分区别
IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构:
Level-1路由器部署在非骨干区域。
Level-2路由器和Level-1-2路由器部署在骨干区域。
每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。
其中Level-2和Level-1-2 组成类似OSPF的area 0区域,其中Levle-1-2类似ABR,用来将骨干区域和非骨干区域之间连通,进行通信。
Level-1区域类似OSPF的非骨干区域。
IS-IS是用路由器来进行区域划分,OSPF的基于接口进行区域划分的。
1.3、IS-IS路由器分类
IS-IS将路由器分为三种:Level-1、Level-2、Level-1-2
1、Level-1
Level-1路由器是一种IS-IS区域内部路由器,它只与属于同一区域的Level-1和Level-1-2路由器形成邻接关系,这种邻接关系称为Level-1邻接关系。Level-1路由器无法与Level-2路由器建立邻接关系。
Level-1路由器只负责维护Level-1的链路状态数据库LSDB,该LSDB只包含本区域的路由信息。值得一提的是,Level-1路由器必须通过Level-1-2路由器接入IS-IS骨干区域从而访问其他区域。
2、Level–2
Level-2路由器是IS-IS骨干路由器,它可以与同一或者不同区域的Level-2路由器或者Level-1-2路由器形成邻接关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含整个IS-IS域的所有路由信息。
所有Level-2级别(即形成Level-2邻接关系)的路由器组成路由域的骨干网,负责在不同区域间通信。路由域中Level-2级别的路由器必须是物理连续的,以保证骨干网的连续性。
3、Level-1-2
Level-1-2路由器与OSPF中的ABR非常相似,它也是IS-IS骨干网络的组成部分。
Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。
同时属于Level-1和Level-2的路由器称为Level-1-2路由器,它可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻接关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻接关系。
1.4、IS-IS支持的网络类型
IS-IS会自动根据接口的数据链路层封装决定该接口的缺省网络类型, IS-IS支持两种类型的网络:
广播(Broadcast): 如Ethernet。
点到点(P2P): 如PPP、 HDLC等。
1.5、IS-IS的开销值
IS-IS使用Cost(开销)作为路由度量值,Cost值越小,则路径越优。IS-IS链路的Cost与设备的接口有关,与OSPF类似,每一个激活了IS-IS的接口都会维护接口Cost。然而与OSPF不同的是,IS-IS接口的Cost在缺省情况下并不与接口带宽相关(在实际部署时,IS-IS也支持根据带宽调整Cost值),无论接口带宽多大,缺省时Cost为10。
一条IS-IS路径的Cost等于本路由器到达目标网段沿途的所有链路的Cost总和。
IS-IS有三种方式来确定接口的开销,按照优先级由高到低分别是:
接口开销:为单个接口设置开销。
全局开销:为所有接口设置开销。
自动计算开销:根据接口带宽自动计算开销。
1.6、IS-IS报文
IS-IS的PDU有4种类型:llH(IS-lS Hello),LSP ( Link State PDU,链路状态报文),CSNP (Complete Sequence Number PDU,全序列号报文),PSNP( Partial Sequence Number PDU,部分序列号报文)。
llH:用于建立和维持邻接关系,广播网络中的Level-1 IS-IS路由器使用Level-1 LAN lIH;广播网络中的Level-2 lS-IS路由器使用Level-2 LAN lIH;点到点网络中则使用P2P IIH。
LSP:用于交换链路状态信息。LSP分为两种,Level-1 LSP、Level-2 LSP。SNP:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步。SNp包括CSNP和PSNP,进一步又可分为Level-1 CSNPLevel-2 CSNP、Level-1 PSNP和Level-2 PSNP。
1.7、IS-IS的TLV
TLV的含义是:类型(TYPE),长度(LENGTH),值(VALUE)。实际上是一个数据结构,这个结构包含了这三个字段。
使用TLV结构构建报文的好处是灵活性和扩展性好。采用TLV使得报文的整体结构固定,增加新特性只需要增加新TLV即可,不需要改变整个报文的整体结构。
二、工作原理
2.1、IS-IS邻接关系建立
IS-IS按如下原则建立邻接关系:
只有同一层次的相邻路由器才有可能成为邻接。
对于Level-1路由器来说,Area ID必须一致。
链路两端IS-IS接口的网络类型必须一致。
链路两端IS-IS接口的地址必须处于同一网段(默认情况下)。
实际过程中,IS-IS的邻接关系的建立,需要检查对方的IP地址,假如双方有某个IP地址在同一网段,就能建立邻接,不一定要主IP相同。
2.2、IS-IS链路状态数据库同步
待定1
2.3、IS-IS路由计算
待定2
拓扑如图
需求如下:
现网中有5台路由器。用户希望在这5台路由器实现网络互联,并且因为R1性能相对较低,所以还要使这台路由器处理相对较少的数据信息。同时用户希望R1可以选择最优路径访问100.0.0.1/24和200.0.0.1/24网段。
思路:在各路由器上配置IS-IS基本功能,实现网络互联。其中,配置R1为Level-1路由器,可以使这台路由器维护相对少量的数据信息。同时,配置R2和R3为Level-1/2路由器与R4和R5这两台Level-2路由器互联
1、R1配置
# 配置基本的IP地址
interface GigabitEthernet0/0/0
ip address 12.0.0.1 255.255.255.0
isis enable 1 --接口使能IS=IS
#
interface GigabitEthernet0/0/1
ip address 14.0.0.1 255.255.255.0
isis enable 1
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
isis enable 1
#
isis 1 --配置IS-IS进程 1
is-level level-1 --设置路由器等级为level-1
network-entity 49.0001.0000.0000.0001.00 --配置路由器的NET
is-name R1 --修改ISIS中配置的别名为R1
#
2、R2和R4配置(配置类似)
这里只展示R2配置
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
isis enable 1
#
interface GigabitEthernet0/0/0
ip address 12.0.0.2 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/1
ip address 23.0.0.2 255.255.255.0
isis enable 1
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
isis enable 1
#
3、R3和R5配置(配置类似)
这里只展示R3配置
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
isis enable 1
#
interface GigabitEthernet0/0/0
ip address 23.0.0.3 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/1
ip address 35.0.0.3 255.255.255.0
isis enable 1
#
isis 1
is-level level-2
network-entity 49.0002.0000.0000.0003.00
is-name R3
#
以上是IS-IS基本配置,下面是特殊的配置
1、路由引入
将R3的直连的回环接口100.0.0.1 引入到 IS-IS中
import-route direct
R5类似
测试ping通