IS-IS协议
一:IS-IS基本知识
全称:中间系统-中间系统协议
属于链路状态路由协议、IGP路由协议、无类路由协议。
IS-IS协议与OSPF协议不同点?
ospf协议主要应用于企业网络
ISIS协议主要应用于ISP网络(运营商网络)
IS-IS特点:
1.注重路由的发现与计算,存在周期性更新,也存在触发式更新
2. 通过收集全网的链路状态信息,执行SPF计算后得到最优路径;
3.收敛速度极快
4.无环路,防环机制丰富
IS-IS缺点:
1.在默认情况下,isis的开销默认均为10,可以实现根据带宽进行计算,但是需要人为的设置
2.在区域设计上,以路由器为界;无区域修复的解决方案
ISIS的路由器存在三种类型:
L2:骨干区域内的设备
L1:非骨干区域内的设备
L1-2:可以同时建立起L1和L2的邻居关系;(华为默认)
L1>L2,ISIS协议路由协议优先级为15,但是ISIS协议的内部协议优先级,L1为15,L2为18;
区域设计规则:
1.骨干区域不可分割
2.非骨干区域必须围绕骨干区域而建
3.必须存在一个骨干区域
二:IS-IS协议的NET地址
NET是一类特殊的NSAP(SEL=00),在路由器上配置IS-IS时,只需要考虑NET即可。如:
49.0001. 0000.0000.0001 .00
Area ID System ID N-SEL
结构组成: area id+system id+SEL
作用:用于补全ISIS的配置信息;
area id:1-13字节的字段,作用是用于分割非骨干区域
分割非骨干区域目的:为了保护L1的设备性能。
当设备与设备之间建立L2的邻居关系时,area id可以相同也可以不同
当设备与设备之间建立L1的邻居关系时,area id必须一致(数值一致与长度一致)。
system id:系统ID(6个字节),类似于ospf的router id,只能手工设置,要求全网唯一。
SEL:协议标识位,固定为1个字节,集成化的ISIS协议SEL固定为00.
ISIS的实验配置
1,创建ISIS进程
2,设置isis的level级别
3,设置NET地址
4,将相应接口宣告进isis的进程。
二:ISIS的网络类型
P2P网络:当底层链路协议为PPP、HDLC、FR等协议时,接口被自动设置为P2P网络
注意:如果底层链路协议为FR时,需要在中心节点设备上创建子接口;
broadcast网络:当底层链路协议为以太网、IEEE 802.3等协议时,接口被自动设置为broadcast网络;
注意:1.手工修改网络类型时,只允许broadcast网络修改为P2P;
2.P2P与broadcast之间无法建立邻居关系;
三:ISIS协议的报文
hello(IIH)报文:用于发现、建立、维护isis的邻居关系
LSP报文:用于携带ISIS的详细的链路状态信息(类似于LSU报文)
CSNP报文:用于携带LSP的摘要信息,用于对比与确认;(类似于DD报文)
PSNP报文:用于请求或者确认LSP的详细信息;(类似于LSR和LS ACK报文)
ISIS报文承载于IEEE 802.3之上。赋予的优点如下
(1)协议扩展性较强,不需要依赖于IP协议
(2)依赖于mac地址进行通信
(3)安全性较高,实施攻击时需要接入同一个局域网
(4)无确认机制,不可靠
ISIS的头部信息
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn5UeZRlT0kFROBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5gTNxQTO1ATMzIzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
主要字段的解释如下:
- Reserved/Circuit Type:高位的6比特保留,值为0。低位的2比特表示路由器的类型(01表示L1,10表示L2,11表示L1/L2)。
- Source ID:发出Hello报文的路由器的System ID。
- Holding Time:保持时间。在此时间内如果没有收到邻居发来的Hello报文,则中止已建立的邻居关系。
- PDU Length:PDU的总长度,单位是字节。
- Priority:选举DIS的优先级,取值范围为0~127。数值越大,优先级越高。
- LAN ID:包括DIS的System ID和一字节的伪节点ID。
- max areas:表示本端设备可支持配置的area id的个数,默认为3。配置时需要保证system id保持一致 3个area id作用:用于实现平滑过渡。
IS-IS协议报文详解
hello报文:用于发现、建立、维护isis的邻居关系;
发现:isis的设备基于特殊组播mac地址去发现邻居:
01-80-c2-00-00-14 level 1
01-80-c2-00-00-15 level 2
建立:通过协商参数建立邻居关系
维护:周期性每10s发送hello报文,老化时间为30s;
Hello报文特殊之处:如果ISIS双方的hello时间不一致,不影响邻居关系建立同时不会进行协商。
分析:
0000.0000.0001.01
当最后一个字节为00时,表示该hello报文为实节点发送的报文(实节点1类LSA)
当最后一个字节不为00时,表示该hello报文为伪节点发送的报文(伪节点2类LSA)
IIH报文中影响邻居关系建立的因素:
(1)相同level(依赖组播地址体现)的路由器才可以建立邻居关系;
(2)system id需要保证不一致;
(3)双方设备的MTU值需要保持一致,通过填充报文的大小进行比较,P2P网络只需填充第一份Hello报文,如果是broadcast网络,每一份hello报文都会进行填充;(MTU值只能修改大于1500字节)
(4)L1的邻居关系建立时需要保证area id一致;
(5)broadcast网络中要求接口处于同一网段,P2P网络无此要求
ISIS报文为什么扩展性强,因为ISIS报文都是基于TLV结构进行承载:
T type
L length
V value
IS-IS固定报文头:Ox83
IS-IS变长字段:TLV表示
TLV(type-length-value)编码方式:
1、 编码方式高效率、扩展性好的报文编码方式;也称CLV(code-length-value)
T—type:采用不同的值定义不同类型;
L-length:整个TLV三元组的长度
V-value:本TLV的实际内容,最重要的部分
2、 TLV编码的优点:
可扩展性好,如果想增加对于新特性的支持,只需增加新的TLV类型。
影响isis邻居关系的因素有哪些?
1.路由器类型一致
2.area id在L1邻居关系时需要保持一致
3.sys id保持不一致
4.接口MTU值需要保持一致
5.MA网络的接口的网段需要保持一致。
四:isis的邻居建立过程
P2P网络默认以3-way的方式建立isis的邻居关系,可以修改为2-way建立邻居关系
判断因素是:收到本身的system id。
broadcast网络默认只能以3-way的方式建立isis的邻居关系。
判断因素是:收到本地接口的mac地址
注意:ISIS路由器只会接收来自邻居的LSP/CSNP/PSNP报文
五:同步LSDB的过程
LSP:详细的链路状态信息
CSNP:CSNP(complete sequence number packets)包括LSDB中所有LSP摘要信息,从而保持相邻路由器之间的LSDB的同步;类似于OSPF中的DD;广播网络中每10s发送一次,p-2-p网络中在刚开始建立邻居的时候发送。
PSNP报文: PSNP(partial sequence number packets)列举最近收到的一个或多个LSP序号,可以一次对多个LSP进行确认,发现LSDB不同步时,通过psnp请求邻居发送新的LSP,作用类似OSPF中的LSR和Lsack。
链路状态信息的固定字段?
用来表示一条特定的LSP信息:0000.0000.0001.00-00
system id+伪/实结点的标识位+分片标识位
用来比较LSP报文的新旧程度有哪些?
1.先比较seq序列号:从0x00000001开始,最大值为0xFFFFFFFF,数值越大越新
2.比较校验和,数值越大越新越优先
3.lifetime:从1200s倒计时,当lifetime=0s时表示该路由会被老化,
当lifetime=300s,重新生成LSP报文进行泛洪
注意:ISIS的LSP报文中的信息更加简洁,报文大小减小,可以承载更多的拓扑信息与路由信息,能更好支持路由条目多的大型网络场景
同步LSDB的过程详解
1.P2P网络
标准机制:
(1)彼此交互本身的CSNP报文进行确认;
(2)如果发现缺失,则发送PSNP报文进行请求;
(3)对方设备回应特定LSP报文;
(4)收到后再回复PSNP报文。
华为机制:
(1)直接向外泛洪本身所有的LSP报文;
(2)彼此交互本身的CSNP报文进行确认;
(3)如果发现缺失,则发送PSNP报文进行请求;
(4)对方设备回应特定LSP报文;
(5)收到后再回复PSNP报文。
华为也有重传计时器:5s
在P2P网络中,只会发送一份CSNP报文,作用是携带LSP的摘要信息,存在间接确认的作用
2.broadcast网络
DIS:只有在broadcast网络中才会选举,DIS指定路由器
DIS作用:
1,在拓扑描述充当伪节点
2,加速LSDB的同步过程
DIS特点:
1.无备份,支持抢占;
2.被选为DIS的接口的hello时间为字段缩短为3.3s,hold time为10s,周期性每10s发送CSNP报文;
DIS选举规则:
1.依赖于hello报文进行选举,先比较DIS优先级,默认为64,范围是0-127,数值越大越优先(DIS优先级为0无特殊含义)
2.则比较mac地址的大小,越大越优先。
wait time:
当邻居关系up之后,wait time开始计时,为hello时间的2倍,20s。
在wait time时间内,不抢占DIS,一旦到达wait time,如果本接口优先级高,则进行抢占。
标准机制:
(1)选举DIS
(2)当DIS周期性泛洪CSNP报文
(3)当路由器发现收到CSNP报文中包含本身缺失的LSP报文时,会泛洪PSNP报文进行请求,只有DIS会响应PSNP报文泛洪LSP报文出去;
当路由器发现收到的CSNP报文中缺失本身的LSP报文,则路由器会直接泛洪本身的LSP报文出去;
注意:在broadcast网络,是不会发送确认的PSNP报文;
华为机制:
(1)直接泛洪所有的LSP报文
(2)选举DIS
(3)当DIS周期性泛洪CSNP报文
(4)当路由器发现收到CSNP报文中包含本身缺失的LSP报文时,会泛洪PSNP报文进行请求,只有DIS会响应PSNP报文泛洪LSP报文出去
当路由器发现收到的CSNP报文中缺失本身的LSP报文,则路由器会直接泛洪本身的LSP报文出去
问:为何ISIS协议的CSNP报文在MA网络环境中是以周期更新然而在P2P网络环境中只更新一次?
我们知道ISIS的CSNP报文类似OSPF中的DBD报文,作用就是用来确认彼此(邻居)之间的的LSDB是否同步的,当邻居路由器通过CSNP报文(OSPF-DBD)获悉到该本地的LSDB中缺少哪些LSP后,此时该路由器就会向我本地发送一个PSNP的请求报文,此时我本地路由器就通过PSNP报文获悉了邻居缺少哪些LSP然后我就会给邻居更新缺少的LSP,但是我本地路由器更新了LSP后邻居是不会给我做确认的,并没有什么确认机制。我们回顾一下在OSPF中并不是这样,当邻居路由向我发送了LSR请求后,我就会通过LSR请求里的信息给予邻居缺少的LSU,同时邻居收到我的LSU后就会给我返回一个LSACK报文这时候我本地就能确定邻居收到了 我的LSU报文,但是在ISIS协议的MA网络环境里面并不是这样,我们可以理解为ISIS中更新LSP是不可靠的,为了增加可靠性在ISIS协议中是通过CSNP的周期更新来实现的。
CSNP的作用就是可以或知道彼此的LSDN中LSP是否同步,通过第一次的交互CSNP报文然后我本地路由器给你更新了LSP这时候正常情况下彼此的LSDB应该是同步了,如果周期更新CSNP的过程中我发现我们仍然没有达到同步状态,便认为刚才我给你的LSP你并没有成功接收这时我就会给你重新发送。
在P2P的网络环境里面就不是这样,当你发送了LSP后邻居成功接收后就会通过PSNP进行一个确认。所以就没有 了CSNP的周期更新
六:DIS及DIS与DR的类比
- DIS与伪节点:
- DIS是指指定中间系统(Designated IS)。
- 伪节点是指在广播网络中由DIS创建的虚拟路由器。
- DIS的特点:
- 在广播网络,需要选举DIS,所以在邻居关系建立后,路由器会等待两个Hello报文间隔再进行DIS的选举。Hello报文中包含Priority 字段,Priority值最大的将被选举为该广播网的DIS。若优先级相同,接口MAC地址较大的被选举为DIS。IS-IS中DIS发送Hello时间间隔默认为10/3秒,而其他非DIS路由器发送Hello间隔为10秒。
- 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的关系。
- 关于DIS和DR的作用:
- 进行SPF计算时,都把它当成虚节点,简化MA网络的逻辑拓扑(相同点)。
- 都是为了减少LSP/LSA的泛洪(相同点)。
- 在ISIS中还可以由DIS发送CSNP来同步链路的LSDB(ISIS扩展作用)。
六:ISIS的路由计算
ISIS的路由计算,默认开销均为10,开销方式不科学,可能存在次优路径
解决方案:
1.在接口下修改开销,在接口下使用isis cost X(1-63)
2.启用auto cost计算
(1):需要在所有的路由器上将开销方式设置为宽度量
(2):需要在所有的路由器上使用命令auto-cost enable
路由传递的规则?
1.骨干区域内拥有所有的路由信息
2.非骨干区域不会接收来自骨干区域和其他非骨干区域的明细路由,由L1-2路由产生默认路由实现访问,但是在非骨干区域中可以引入外部路由,传递给骨干区域。(最类似ospf的totally nssa区域)
如何产生默认路由?
必须满足ATT置位的条件:
1,必须由L1-2的路由器生成;
2,必须同时拥有L1和L2的邻居关系;
3,L1-2的路由器和L2路由器在建立L2的邻居关系时,area id必须不一致。
产生默认路由的影响?
提供访问的路径
增加L1-2路由的开销
容易产生次优路径
路由渗透(为了解决次优路径):在L1-2的路由器上,将L2的部分路由有选择性地引入到L1的区域内,避免次优路径产生。
总结: 1. IS-IS路由计算
a) 链路状态协议路由算法
通过可靠的扩散算法各路由器将其它路由器扩散来的拓扑信息收集起来,组成一张一致的、完整的拓扑图,依靠SPF算法来计算出自己的路由表。
2. 路由渗透:Route Leaking
a) 路由渗透
1. Level-1区域只能和level-2区域相连
2. 不同的level-1区域之间并没有相连
3. Level-1区域的路由信息通过L1/L2路由器通告给level-2,因此L1/L2和L2路由器知道整个路由域的路由信息。但是在缺省情况下,L2路由器并不将自己知道的其他LEVEL-1区域以及骨干路由的信息通告给level-1区域,这样level-1区域将不了解本区域以外的信息,可能导致对本区域以外的地址选择最佳的路由;为解决上述问题,IS-IS提供了路由渗透功能,使L2路由器可将移植的其他L1区域以及L2区域的路由信息通告给指定的L1区域。
七:ospf与ISIS的对比
ospf isis
网络类型: 4(优) 2
区域类型: 4(优) 2
开销方式: 带宽(优) 默认均为10
扩展性: 一般 强
路由承载能力: 强 更强
收敛速度: 快 极快
区域修复: vlink 无
安全性: 一般 强
1. IS-IS和OSPF协议比较总结(一)
比较点 IS-IS OSPF
最早为IP设计的 否 是
链路状态IGP 是 是
直接运行在链路上 是 否
有区域概念 是 是
适合大型网络 是 是
有指定路由器 是 是
DR选举时可确定的 是 否
抢占式的 非抢占式
优先级0 优先级0
可以参加选举 不参加选举
产生LSP描述网络结构 是 是
支持IP协议 是 是
支持非IP协议 是 否
划分区域方式 Level划分 接口划分
2. IS-IS和OSPF协议比较总结(二)
比较点 IS-IS OSPF
使用范围 大型ISP中 在企业网和isp中普遍使用
复杂度 产生更少的LSPs 产生更多的LSAs
一般使用一个区域 一般配置多个区域
可扩展性 可以支持相当大的单个区域 比较大的网络一般划分为多个区域
对流量工作的支持 扩展支持 扩展支持
可调节性 非常好 好
ospf更加适用于企业网络,企业网络设备数量多,结构复杂,对网络的收敛以及扩展性要求不高,但是对区域修复与故障响应速度要求较高
isis更加适用于运营商网络,运营商的网络设备数量少,性能强并且差异性不大,设备之间距离较长,承载路由条目数量多,收敛速度极快