10

IS-IS协议的内容介绍-栗子老师的博客

 4 years ago
source link: https://blog.51cto.com/13817711/2492842
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

IS-IS协议

IS-IS(Intermediate System to Intermediate System)最初是国际标准化组织ISO(the International Organization for Standardization)为它的无连接网络协议CLNP(ConnectionLess Network Protocol)设计的一种动态路由协议
为了提供对IP的路由支持,IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,称为集成化IS-IS(Integrated IS-IS或Dual IS-IS 资料中所指的IS-IS,如不加特殊说明,均指集成IS-IS)
IS-IS属于内部网关协议,用于自治系统内部。IS-IS是一种链路状态协议,使用SPF算法(Shortest Path First)进行路由计算
由于IS-IS的简便性及扩展性强的特点,目前在大型ISP的网络中被广泛地部署
IS-IS协议报文在数据链路层传输,但是属于网络层协议

IS-IS协议的内容介绍

路由计算过程

① 邻居关系建立
邻居关系建立主要是通过HELLO包交互并协商各种参数
② 链路信息交换
与OSPF不同,ISIS交互链路状态的基本载体不是LSA(link state advertisement),而是LSP(link state PDU);交互的过程没有OSPF协议那样经历了多个阶段,主要是通过CSNP报文和PSNP报文两种协议报文来同步,请求以及确认链路状态信息(承载的是链路状态信息摘要),而链路状态信息的详细拓扑和路由信息是由LSP报文传递
③ 路由计算
SPF计算和OSPF基本一样的,但ISIS算法分离了拓扑结构和IP网段,加快了网络收敛速度(ISIS协议的优化)

IS-IS协议的内容介绍

网络服务访问点NSAP(Network Service Access Point)是OSI协议中用于定位资源的地址。NSAP的地址结构它由IDP(Initial Domain Part)和DSP(Domain Specific Part)组成。IDP和DSP的长度都是可变的,NSAP总长最多是20个字节,最少8个字节 习惯上配置为10B 由16进制进行表示
① IDP相当于IP地址中的主网络号。它是由ISO规定,并由AFI(Authority and Format Identifier)与IDI(Initial Domain Identifier)。AFI表示地址分配机构和地址格式,IDI用来标识域
② DSP相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域,System ID用来区分主机,SEL用来指示服务类型
③ AFI(1字节) IDI(2字节) HODSO(0-10字节) SID(6字节) NSEL(1字节)

IS-IS协议的内容介绍

Area ID(Area address)

① 既能够标识路由域,也能够标识路由域中的区域。因此,它们一起被称为区域地址,相当于OSPF中的区域编号(其中49代表路由域,0001表示区域)
② 一般情况下,一个路由器只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。为了支持区域的平滑合并、分割及转换,在设备的实现中,一个IS-IS进程下最多可配置3个区域地址必须保证他们的system id都相同

System ID

用来在区域内唯一标识主机或路由器。在设备的实现中,它的长度固定为48bit(6字节)
在实际应用中,一般使用Router ID与System ID进行对应。假设一台路由器使用接口Loopback0的IP地址168.10.1.1作为Router ID,则它在IS-IS中使用的System ID可通过如下方法转换得到
① 将IP地址168.10.1.1的每个十进制数都扩展为3位,不足3位的在前面补0,得到168.010.001.001
② 将扩展后的地址分为3部分,每部分由4位数字组成,得到1680.1000.1001。重新组合的1680.1000.1001就是System ID
③ 实际System ID的指定可以有不同的方法,但要保证能够唯一标识主机或路由器

作用类似IP中的协议标识符,不同的传输协议对应不同的SEL。在IP上SEL均为00
NET地址,这个地址服务于IP环境,其中SEL=00

NET地址

网络实体名称NET(Network Entity Title)指的是设备本身的网络层信息,可以看作是一类特殊的NSAP(SEL=00)。NET的长度与NSAP的相同,最多为20个字节,最少为8个字节。在路由器上配置IS-IS时,只需要考虑NET即可,NSAP可不必去关注

路由器分类

在OSPF协议里面也有一些比较特殊的路由器:如ABR路由器、ASBR路由器、区域内部路由器、骨干路由器等 代表这该设备可以执行不同的功能和角色
在IS-IS协议里面一共只有三种不同角色的路由器:level-1路由器、level-2路由器、level-1-2路由器 默认情况下 华为设备默认都是level-1-2角色
① level-1路由器只具有level-1的功能
② level-2路由器只具有level-2的功能
③ level-1-2路由器只具有level-1和level-2的功能

#
isis 100
 is-level level-1       修改为level-1路由器
#

Level-1路由器

Level-1只能与属于同一区域的Level-1和Level-1-2路由器形成邻居关系,只负责维护Level-1的链路状态数据库,该LSDB包含本区域内的路由信息,到本区域外的报文转发给最近的Level-1-2路由器

IS-IS协议的内容介绍

 注意点:
① 能够和level-1建立起关系的只能在同一个区域里面的设备

Level-2路由器

Level-2路由器负责区域间的路由,它可以与相同或者不同区域的Level-2路由器或者不同区域的Level-1-2路由器形成邻居关系。Level-2路由器维护一个Level-2的LSDB,该LSDB包含区域间的路由信息

IS-IS协议的内容介绍

 注意点:
② level-2路由器可以和同一个区域的level-2路由器建立起关系
③ level-2路由器可以和不同一个区域的level-2路由器建立起关系
④ level-2路由器可以和同一个区域的level-1-2路由器建立起关系
⑤ level-2路由器可以和不同一个区域的level-1-2路由器建立起关系

Level-1-2路由器

Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由 Level-1-2路由器可以与同一区域的Level-1形成Level-1邻居关系,也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻居关系
 注意点:
⑥ level-1-2路由器可以和同一个区域的level-1路由器建立起关系
⑦ level-1-2路由器可以和同一个区域的level-2路由器建立起关系
⑧ level-1-2路由器可以和不同一个区域的level-2路由器建立起关系
⑨ level-1-2路由器可以和同一个区域的level-1-2路由器建立两个关系
⑩ level-1-2路由器可以和不同一个区域的level-1-2路由器建立起level-2关系

① 不同区域间,只能建立Level-2的邻接关系
② Level-2路由器可以与Level-2路由器建立邻接关系
③ Level-1-2路由器可以与Level-2路由器建立邻接关系
④ Level-1-2路由器可以与Level-1-2路由器建立邻接关系

IS-IS的拓扑结构

IS-IS协议的区域边界在整个Router,OSPF协议的区域边界在Router的接口
为了支持大规模的路由网络,IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构
一般来说,将Level-1路由器部署在非骨干区域,Level-2路由器和Level-1-2路由器部署在骨干区域。每一个非骨干区域都通过Level-1-2路由器与骨干区域相连
下图是一个运行IS-IS协议的网络,它与OSPF的多区域网络拓扑结构非常相似。整个骨干区域不仅包括Area1中的所有路由器,还包括其它区域的Level-1-2路由器

IS-IS协议的内容介绍
IS-IS协议的内容介绍

下图是IS-IS的另外一种拓扑结构图。在这个拓扑中,Level-2级别的路由器没有在同一个区域,而是分别属于不同的区域。此时所有物理连续的Level-1-2和Level-2路由器就构成了IS-IS的骨干区域

IS-IS协议的内容介绍

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

区域内算法

 SPF计算过程
① 单区域LSDB同步完成
② 生成全网拓扑结构图
③ 以本节点为根生成最短路径树
④ 默认跨越每个节点开销一样

IS-IS协议的内容介绍

 ISIS路由计算的开销方式
IS-IS在计算路由时 是不基于链路计算cost值的 没经过一跳 cost数值都加上10
① Narrow模式(设备默认模式开销都是10,手工配置接口开销取值范围为1-63)
② Wide模式(设备默认模式开销都是10,手工配置接口开销取值范围是1-16777215)
进程下加入auto-cost enable命令,Narrow模式和Wide模式都会参考接口带宽大小计算开销值,只是参考准则有少许差异 缺省情况 模式为Narrow模式
③ 使能IS-IS自动计算接口的开销

执行命令isis [ process-id ],进入IS-IS视图
执行命令bandwidth-reference value,配置计算带宽的参考值 缺省情况下,带宽参考值为100,单位是Mbit/s
执行命令auto-cost enable [ compatible ],使能自动计算接口的开销值

① 只有当开销类型为wide或wide-compatible时,使用命令bandwidth-reference配置的带宽参考值才是有效的,此时各接口的开销值=(bandwidth-reference/接口带宽值)×10
② 当开销类型为narrow、narrow-compatible或compatible时,各个接口的开销值根据如下表来确定

IS-IS协议的内容介绍

区域间路由

 区域49.0001访问区域49.0002
① L1/2路由器RTA产生ATT置位为1的LSP
② L1路由器收到ATT为1的LSP会产生下一跳指向L1/2路由器的默认路由
 区域49.0002访问区域49.0001
① L1/2路由器RTA会把区域49.0001的明细路由以叶子节点方式挂载在L2级别的LSP上面并处在Level-2的LSDB中
② L2路由器通过自己SPF计算得出访问Area49.0001的明细路由

IS-IS协议的内容介绍

 小结如下
Level-1路由器的路由特点:
① 只拥有Level-1的链路状态数据库
② 其链路状态数据库中只有本区域路由器LSP
③ 其路由表里没有其他区域的路由信息
④ 其路由表里都有一条默认路由,下一条是指向到Level-1-2路由器
Level-2路由器的路由特点
① Level-2路由器只有Level-2的链路状态数据库
② 其LSDB中有骨干区域路由器的LSP,但是没有Level-1路由器产生的LSP
③ 路由表里面有整个网络的路由信息
Level-1-2路由器的路由特点:
① Level-1-2路由器同时拥有Level-2和Level-1的链路状态数据库
② Level-1数据库包含本区域的LSP,Level-2数据库包含骨干区域LSP
③ 在自己产生的Level-1的LSP中设置了ATT比特位为1
④ 路由表里面有整个网络的路由信息

IS-IS支持的网络类型

① 点对点网络类型(如PPP、HDLC等)
② 广播多路访问网络类型(Ethernet等)
 注意点
① 对于NBMA(Non-Broadcast Multi-Access)网络,如ATM,需对其配置子接口,并注意子接口类型应配置为P2P
② IS-IS不能在点到多点链路P2MP(Point to MultiPoint)上运行

IS-IS的报文类型

 IS-IS报文有以下几种类型:HELLO PDU(Protocol Data Unit)、LSP和SNP
① Hello PDU
Hello报文用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs)类似于OSPF的Hello报文
② LSP
链路状态报文LSP(Link State PDUs)用于交换链路状态信息 类似于OSPF中的LSA
③ SNP
序列号报文SNP(Sequence Number PDUs)通过描述全部或部分数据库中的LSP来同步各LSDB(Link-State DataBase),从而维护LSDB的完整与同步
CSNP(Complete Sequence Number PDU)类似于OSPF的DD报文传递的是LSDB里所有链路信息摘要
PSNP(Partial Sequence Number PDU)类似于OSPF的LSR或LSAck报文用于请求和确认部分链路信息

邻居hello报文

 HELLO报文的作用是邻居发现,协商参数并建立邻居关系,后期充当保活报文
 IS-IS建立邻居关系和OSPF一样,通过hello报文的交互来完成。但是会根据场景分为三种类型的hello报文
① 广播网中的Level-1 IS-IS使用Level-1 LAN IIH(Level-1 LAN IS-IS Hello),目的组播MAC为:0180-c200-0014
② 广播网中的Level-2 IS-IS使用Level-2 LAN IIH(Level-2 LAN IS-IS Hello),目的组播MAC为:0180-c200-0015
③ 非广播网络中则使用P2P IIH(point to point IS-IS Hello)
 Hello报文的类型
a) Level-1的hello报文
b) Level-2的hello报文
c) P2P的hello报文

IS-IS协议的内容介绍

邻居关系建立

P2P链路

 在P2P链路上,分为两次握手机制(没有邻居列表)和三次握手机制
① 两次握手只要路由器收到对端发来的Hello报文,就单方面宣布邻居为up状态,建立邻居关系,不过容易存在单通风险
② 通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,与广播链路邻居关系的建立情况相同

IS-IS协议的内容介绍

以太网链路

 在广播链路上,使用LAN IIH报文执行三次握手建立邻居关系
① 当收到邻居发送的合法Hello PDU报文里面没有自己的system ID的时候,状态机进入initialized
② 只有收到邻居发过来的Hello PDU有自己的system ID才会up,排除了链路单通的风险
③ 广播网络中邻居up后会选举DIS(虚节点),DIS的功能类似OSPF的DR(指定路由器)

IS-IS协议的内容介绍

DIS的介绍

DIS是指指定中间系统(Designated IS)DIS的功能类似OSPF的DR(指定路由器) 伪节点是指在广播网络中由DIS创建的虚拟路由器
在广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举
① Hello报文中包含Priority字段,Priority值最大的将被选举为该广播网的DIS
② 若优先级相同,接口MAC地址较大的被选举为DIS
 注意:
① IS-IS中DIS发送Hello时间间隔默认为10/3秒
② 而其他非DIS路由器发送Hello间隔为10秒

IS-IS协议的内容介绍
DIS的作用

① 进行SPF计算时,都把它当成虚节点,简化MA网络的逻辑拓扑(相同点)
② 都是为了减少LSP/LSA的泛洪(相同点)
③ 在ISIS中还可以由DIS发送CSNP来同步链路的LSDB(ISIS扩展作用)

DIS和DR的区别

① 选举时优选级的比较,DIS的优先级为0也可以参与选举。OSPF中优先级为0不参与选举DR
② 选举的过程需要一定的时间,OSPF选举DR/BDR需要waiting time达40秒,过程也较为复杂,而ISIS选举DIS等待两个Hello报文间隔就可以,简单快捷
③ 选举结果ISIS只有一个DIS,但是OSPF除了有DR,还有一个BDR用做备份
④ 选举结束后,后期有新的Router加入到链路进来,如果优先级比DIS高是可抢占的,但是DR是不可抢占的
⑤ 选举完成后,ISIS网络链路内所有的路由器之间都建立的是邻接关系。OSPF中DRothers只与DR/BDR形成full邻接关系, DRothers之间只有2-way的关系

IS-IS协议的内容介绍

LSP报文

LSP PDU(Link State Protocol PDU)LSP类似于OSPF的LSA,承载的是链路状态信息,包含了拓扑结构和网络号
链路状态报文LSP(Link State PDUs)用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP
① Level-1 LSP由Level-1路由器传送
② Level-2 LSP由Level-2路由器传送
③ Level-1-2路由器则可传送以上两种LSP
LSP的刷新间隔为15分钟 老化时间为20分钟 但是一条LSP的老化除了要等待20分钟外,还要等待60秒的零老化时延 LSP重传时间为5秒
LSP报文中主要字段的解释如下
 LSP报文中包含了两个重要字段是ATT字段、IS-Type字段
① ATT字段:当Level-1-2 IS-IS在Level-1区域内传送Level-1 LSP时,如果Level-1 LSP中设置了ATT位,则表示该区域中的Level-1 IS-IS可以通过此Level-1-2 IS-IS通往外部区域S-Type用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS
② IS Type字段:用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)
协议报文都分为Level-1和Level-2两种,在MA网络中所有协议报文的目的MAC都是组播地址 实节点LSP伪节点LSP(只在广播链路存在)
① Level-1地址为:0180-C200-0014
② Level-2地址为:0180-C200-0015

SNP报文

序列号报文SNP(Sequence Number PDUs)通过描述全部或部分数据库中的LSP来同步各LSDB(Link-State DataBase),从而维护LSDB的完整与同步
SNP包括全序列号报文CSNP(Complete SNP)和部分序列号报文PSNP(Partial SNP),进一步又可分为Level-1 CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP
 注意
① CSNP类似于OSPF的DD报文传递的是LSDB里所有链路信息摘要
② PSNP类似于OSPF的LSR或LSAck报文用于请求和确认部分链路信息

P2P网络LSDB同步过程

① 建立邻居关系之后,RTA与RTB会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP
② 假定RTB向RTA索取相应的LSP,此时向RTA发送PSNP。RTA发送RTB请求的LSP的同时启动LSP重传定时器,并等待RTB发送PSNP作为收到LSP的确认
③ 如果在接口LSP重传定时器超时后,RTA还没有收到RTB发送的PSNP报文作为应答,则重新发送该LSP直至收到RTB的PSNP报文作为确认
 P2P网络CSNP报文只发送一次,邻居建立后立即发送

IS-IS协议的内容介绍

MA网络中DIS的LSDB同步交互过程

① 假设新加入的路由器RTC已经与RTB(DIS)和RTA建立了邻居关系
② 建立邻居关系之后,RTC将自己的LSP发往组播地址(Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将收到该LSP
③ 该网段中的DIS会把收到RTC的LSP加入到LSDB中,并等待CSNP报文定时器超时(DIS每隔10秒发送CSNP报文)并发送CSNP报文,进行该网络内的LSDB同步
④ RTC收到DIS发来的CSNP报文,对比自己的LSDB数据库,然后向DIS发送PSNP报文请求自己没有的LSP(如RTA和RTB的LSP就没有)
⑤ RTB作为DIS收到该PSNP报文请求后向RTC发送对应的LSP进行LSDB的同步
 MA网络CSNP报文只由DIS组播发送,时间默认为10秒

IS-IS协议的内容介绍

链路状态信息的载体

IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组 TLV也称为CLV(Code-Length-Value)
TLV的含义是:类型(TYPE),长度(LENGTH),值(VALUE)

IS-IS协议的内容介绍

使用TLV结构构建报文的好处是灵活性和扩展性好。采用TLV使得报文的整体结构固定,增加新特点只需要增加新TLV即可。不需要改变整个报文的整体结构
网络拓扑结构和路由信息用TLV结构表现使得报文的灵活性和扩展性得到了极大的发挥
不同PDU类型所包含的TLV是不同的

IS-IS协议的内容介绍

路由***

通常情况下,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路由器将不了解本区域以外的路由信息,可能导致与本区域之外的目的地址通信时无法选择最佳的路由
为解决上述问题,IS-IS提供了路由***功能。通过在Level-1-2路由器上定义ACL(Access Control List)、路由策略、Tag标记等方式,将符合条件的路由筛选出来,实现将其他Level-1区域和骨干区域的部分路由信息通报给自己所在的Level-1区域

IS-IS协议的内容介绍

RouterA发送报文给RouterF,选择的最佳路径应该是RouterA->RouterB->RouterD->RouterE->RouterF因为这条链路上的cost值为40
但在RouterA上查看发送到RouterF的报文选择的路径是RouterA->RouterC->RouterE->RouterF,其cost值为70,不是RouterA到RouterF的最优路由
RouterA作为Level-1路由器并不知道本区域外部的路由,那么发往区域外的报文都会选择由最近的Level-1-2路由器产生的缺省路由发送出去,所以会出现RouterA选择次最优路由转发报文的情况
如果分别在Level-1-2路由器RouterC和RouterD上使能路由***功能,Aera10中的Level-1路由器就会拥有经这两个Level-1-2路由器通向区域外的路由信息。经过路由计算,选择的转发路径为RouterA->RouterB->RouterD->RouterE->RouterF,即RouterA到RouterF的最优路由

ISIS和OSPF的区别

IS-IS与OSPF差异性

 网络类型和开销方式
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)

IS-IS协议的内容介绍

术语对照表

IS-IS协议的内容介绍

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK