IS-IS协议基础

前言

ISIS是国际标准化组织ISO为他的网络层协议CLNP设计的一个动态路由协议,最初是用在OSI七层网络模型架构之中,而后为了适应TCP/IP网络架构对IS-IS进行的扩充和修改,使得IS-IS协议能同时适应TCP/IP和OSI的网络架构,修订后的IS-IS被称为集成化IS-IS,我们后续说的IS-IS都指的是集成化的IS-IS。
和OSPF一样,IS-IS也是基于链路状态使用最短路径算法进行路由计算的一种IGP协议,因此我们不可避免的将OSPF和IS-IS产生比较。这两者最大的不同或者说特点就是OSPF适用于园区网,或者说是局域网。而IS-IS更使用于骨干网,或者说是广域网。当然你说局域网能用IS-IS嘛?肯定是可以的,同样广域网或者说骨干网也同样可以使用OSPF,但是可以用不代表合适,那么怎么使用OSPF和ISIS才合适呢我们来接着往下看。

ISIS工作原理

IS-IS的工作过程与我们的OSPF很相似,如下图所示:
在这里插入图片描述
同样也是建立邻居关系,然后同步各自的一个链路信息数据库,根据数据库里的信息通过SFP算法计算出路由,然后填入我们的IP路由表中。
由于我们的IS-IS是基于OSI模型设计的,因此IS-IS配置时得需要OSI的网络层地址结构中的NSAP地址

NSAP地址

在这里插入图片描述
我们上图也用了一张表格来表示IS-IS与OSPF大体上的区别,虽然都是路由协议,不过ISIS基于OSI架构所设计,对应了我们TCP/IP中的OSPF路由协议,而同样的OSPF使用的是TCP/IP中的IP协议,而IS-IS使用的却是OSI中的CLNP协议,这里的CLNP类似于IP协议,是属于OSI架构中的网络层协议,而IP协议使用的IP地址在OSI中也有对应的NSAP地址。所以我们在学习ISIS之前先简单来看下NSAP地址的结构。

整个NSAP地址的结构可以大体上分为两部分:

IDP(类似IP地址中的网络号)AFI表示地址分配机构和地址的格式,需要付费使用49为私有
IDI用来标识域
DSP(类似IP地址中的子网号和主机号)High Order DSP用来分割区域
System ID用来标识区域中的设备
SEL类似协议标识符,不同协议对应不同的SEL

而在我们以太网环境中使用ISIS更多的是使用的NET类型NSAP,所谓的NET类型指的是NSAP的SEL字段为00,如:
在这里插入图片描述
其中AFI+IDI+High Order DSP组成了Area ID,类似我们OSPF中的区域,而System ID就类似我们OSPF中的router ID用来标识设备在ISIS中的身份,最后的SEL默认为00.
一个设备最多可以配置三个区域地址(area ID)
在实际应用中,一般使用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 的指定可以有不同的方法,但要保证能够唯一标识主机或路由器。

路由器的分类

ISIS有三种路由器类似我们OSPF中的IR,ABR,ASBR

Level-1路由器只能创建Level-1的LSDB
Level-2路由器只能创建Level-2的LSDB
Level-1-2路由器配置ISIS时默认使用的路由器类型,能同时创建Level-1和Level-2的LSDB

Level-1类似我么OSPF中的IR,只维护本区域内的LSDB,它只与属于同一区域的 Level-1 和 Level-1-2 路由器形成邻居关系,想要去往其他区域就得通过我们的Level-1-2,Level-1-2类似我们OSFP中的ABR,作为区域间访问的关键。Level-2类似我们OSPF中骨干网络中的IR,不同的是在ISIS中给这类设备新定义一个类型Level-2用作传输其他区域的路由信息,它可以与同一或者不同区域的 Level-2 路由器或者其它区 域的 Level-1-2 路由器形成邻居关系,Level-2维护一个Level-2的LSDB包含了区域间的路由信息,同时属于 Level-1 和 Level-2 的路由器称为 Level-1-2 路由器,它可以与同一区域的 Level-1 和 Level-1-2 路由器形成 Level-1 邻居关系,也可以与其他区域的 Level-2 和 Level-1-2 路由器形 成 Level-2 的邻居关系。Level-1-2路由器维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。

IS-IS支持的网络类型

广播链路以太网
点到点链路PPP、HDLC等

而我们OSPF支持的网络类型有P2P,P2MP,NBMA,广播,从这一点看出我们的OSPF支持的网络类型复杂,而ISIS支持的网络类型偏少。

ISIS的报文类型

ISIS有HELLO PDU、LSA PDU和 SNP PDU三种报文类型。在ISIS中链路状态信息被称为LSP,而在OSPF中链路状态信息被称为LSA。

HELLO PDUIIH(IS-to-IS Hello PDUs)用于建立和维持邻居关系,类似OSPF中的HELLO报文
LSP PDULSP(Link State PDUs)链路状态信息,类似OSPF中的LSU报文
SNP PDUSNP(Sequence Number PDUs)通过描述全部或部分数据库中的LSP来同步LSDB,SNP包括了CSNP和PSNP。CSNP类似OSPF中的DD报文,PSNP类似OSPF中的LSR,LSAck的集合。

在这里插入图片描述
HELLO报文根据不同的网络类型,格式也不同

ISIS邻居关系的建立

在邻居的建立中要遵循下列规则:
1、只有同一层次的相邻路由器才有可能成为邻居。
2、对于 Level-1 路由器来说,区域号必须一致。
3、链路两端 IS-IS 接口的网络类型必须一致。

在ISIS中邻居关系的建立按网络环境来区分
在P2P网络环境中ISIS邻居建立可以使用两次握手和三次握手
在这里插入图片描述
两次握手只要路由器收到对端发来的Hello报文,就单方面宣布邻居为up状态,建立邻居关系,不过容易存在单通风险。通过三次发送P2P的IS-IS Hello PDU最终建立起邻居关系,与广播链路邻居关系的建立情况相同。
三次握手跟我们的OSPF的建立邻居关系类似,当设备收到对方发来的HELLO报文发现邻居字段中没有自己的ID,那么设备只进入initialized状态,只有收到对端发来的HELLO报文中邻居字段有自己的ID时才会进入UP状态,以防止链路单通的情况。
MA网络环境中必须使用三次握手建立邻居关系,建立过程与P2P三次握手类似。

DIS的选举

当建立完邻居关系后,可以进行DIS的选举,DIS类似我们OSPF中的DR
DIS是指指定中间系统(Designated IS),伪节点指的是在广播网络中由DIS创建的虚拟路由器。
在广播网络中建立完邻居关系后就开始选定DIS,路由器会先等待两个 Hello 报文间隔, 再进行 DIS 的选举。Hello 报文中包含 Priority 字段,Priority 值最大的将被选举为该广播网的 DIS。若优先级相同,接口 MAC 地址较大的被选举为 DIS。

ISIS的LSP交互过程

LSP产生的原因
ISIS域内的所有路由器都会产生LSP,当网络情况发生变化时会触发新的LSP
所谓的网络情况发生变化有一下几种:
1.邻居up或者down
2.相关接口的up或者down
3.引入的IP路由发生变化
4.区域间的IP路由发生变化
5.接口被赋了新的metric值
6.周期性的更新
当路由器收到邻居发来的更新LSP会将新的LSP放入自己的LSDB中并标记为flooding,然后泛洪该新的LSP到其他的邻居,其他邻居也同样操作。

广播网络中ISIS同步LSDB的过程

在这里插入图片描述
建立邻居关系之后,RouterC 等待 LSP 刷新定时器超时,然后将自己的 LSP 发往组播地址 (Level-1:01-80-C2-00-00-14;Level-2:01-80-C2-00-00-15)。这样网络上所有的邻居都将 收到该 LSP。该网段中的 DIS 会把收到 RouterC 的 LSP 加入到 LSDB 中,并等待 CSNP 报文定时器超时 并发送 CSNP 报文,进行该网络内的 LSDB 同步。 RouterC 收到 DIS 发来的 CSNP 报文,对比自己的 LSDB 数据库,然后向 DIS 发送 PSNP 报 文请求自己没有的 LSP。DIS 收到该 PSNP 报文请求后向 RouterC 发送对应的 LSP 进行 LSDB 的同步。

P2P网络中的LSDB同步
在这里插入图片描述
当邻居关系建立后,RTA与RTB会立刻发送CSNP给对方,如果发现有没同步的LSP条目则发起PSNP请求,而对端则回应LSP,收到LSP更新后要回PSNP作为收到LSP的回应,RTA在发送LSP时会启动重传定时器,一旦定时器归零后没收到PSNP回应则会重新发送LSP并重新设定定时器。知道收到对端的PSNP回应。

ISIS路由计算的方式
ISIS路由计算的方式与OSPF类似,在区域内的LSDB同步完成后,以设备自己为根生成全网的拓扑结构,然后通过路由信息计算最短的路径到达区域内其他设备。默认跨越每个节点的开销为10,可修改。
ISIS路由计算的开销方式有两种:

Narrow设备默认模式开销都是10,手工配置接口开销取值范围为1~63
Wide设备默认模式开销都是10,手工配置接口开销取值范围是1~16777215

在ISIS进程下加入auto-cost enable命令,Narrow模式和Wide模式都会参考接口带宽大小计算开销值,只是参考准则有少许差异。

ISIS的计算特点:

在本区域内路由器第一次启动时执行full-SPF算法,后续收到的LSP更新,如果是部分拓扑的变化就执行iSPF算法,iSPF算法:除了第一次计算时需要计算全部节点外,每次只计算受到影响的节点,而最后生成的最短路径树SPT与原来的算法所计算的结果相同,大大降低了CPU的占用率,提高了网络收敛速度。而如果只是路由信息的变化,就执行PRC算法,PRC的原理与I-SPF相同,都是只对发生变化的路由进行重新计算。不同的是,PRC不需要计算节点路径,而是根据I-SPF算出来的SPT来更新路由。采用了局部更新的算法方式使得我们ISIS在收敛速度上更快于我们的OSPF。

ISIS区域的划分

与我们的OSPF类似,ISIS也划分了骨干区域与非骨干区域。但不同的是OSPF对区域的划分是针对接口的。也就是在OSPF中一个设备即可以属于骨干区域又可以属于非骨干区域,但是在ISIS中却不同,ISIS对区域的划分是针对设备本身的,一个设备仅只属于一个区域。
一个简单的ISIS区域如下图所示:
在这里插入图片描述
L2路由器处于骨干区域,而L1处于非骨干区域,同时L1/2也处于了非骨干区域,而图中的虚线圈起来的源表示L2与L1/2共同组成了逻辑上的骨干区域。如下图所示
在这里插入图片描述
在这个拓扑中,Level-2 级别的路由器没有在同一个区 域,而是分别属于不同的区域。此时所有物理连续的 Level-1-2 和 Level-2 路由器就构成了 IS-IS 的 骨干区域。
因此我们可以总结OSPF与ISIS在区域上的不通点:1.在OSPF中每个接口属于一个区域,而在ISIS中每个设备属于一个区域
2.在OSPF中area 0被定义为骨干区域,而在ISIS中单个区域没有骨干与非骨干的概念。所有L2与L1/2设备组成的区域即为骨干区域
3.在 IS-IS中,Level-1 和 Level-2 级别的路由都采用 SPF算法,分别生成最短路径树 SPT(Shortest Path Tree);而在 OSPF 中,只有在同一个区域内才使用 SPF 算法,区域之间的路由需要通 过骨干区域来转发。

OSPF与ISIS的差异性:

差异性IS-ISOSPF
网络类型
开销方式复杂简便
区域类型
路由报文类型简单多样
路由收敛速度很快
扩展性一般
路由负载能力超强

OSPF与ISIS术语对照表:

缩略语OSI术语IETF术语
ISIntermediate SystemRouter
ESEnd SystemHost
DISDesignated Intermediate SystemOSPF中的DR
SysIDSystem IDOSPF中的Router ID
LSPLink State PDUOSPF中的LSA
IIHIS-IS Hello PDUOSPF中的Hello报文
PSNPPartial Sequence Number PDUOSPF中的LSR或LSAck报文
CSNPComplete Sequence Number PDUOSPF中的DD报文
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值