IS-IS:中间系统到中间系统
ISIS协议和OSPF一样,是基于SPF算法的IGP协议,使用的是链路状态信息
基于二层数据链路层协议 IEEE802.3帧
ISIS类型:①、ISIS(只能运行在OSI参考模型)
②、集成化ISIS(可运行在TCP/IP、OSI参考模型)
ISIS使用 CLNS网络服务相当于OSPF中IP网络服务
ISIS使用NSAP地址相当于IP地址定位资源表示节点所用
在日常情况下未特殊说明所学都是集成化ISIS
当NSAP地址最后SEL取值为00时,则表示是用于TCP/IP参考模型中;NSAP则变成特殊的NSAP称为NET地址,NET地址只为ISIS协议路由计算所用;失去了NSAP地址原有定位节点的作用。
NET地址取值最大20Byte,最小8Byte(为16进制数)
NET组成:
区域ID+系统ID+SEL
区域ID:1-13Byte:表示此ISIS设备运行所在的区域
系统ID:6Byte:唯一标识一台运行了ISIS的网络设备
SEL:1Byte:标识ISIS的服务类型。在TCP/IP中固定取值为00
在华为设备中一台设备最多可以创建三个NET地址:前提是三个NET系统ID要相同
作用:平滑过渡、优雅重启(为区域ID做备份)
ISIS路由器的分类:
1、Level-1路由器:
设置成为Level-1路由器的设备维护L1级别的数据库
2、Level-2路由器:
设置成为Level-2路由器的设备维护L2级别的数据库
3、Level-1-2路由器:
设置成为Level-1-2路由器的设备维护L1和L2级别的数据库
ISIS的邻居关系的种类:
1、Level-1级别的邻居关系
2、Level-2级别的邻居关系
--------------------------------------------------
ISIS邻居建立:
1、L1和L1之间
---同区域ID:可以建立L1级别的邻居关系
---不同区域ID:不能建立邻居关系
2、L1和L1-2之间
---同区域ID:可以建立L1级别的邻居关系
---不同区域下:不能建立邻居关系
L1路由器建立邻居关系总结:
1、L1和L1、L1-2建立邻居关系必须要在同一区域
2、L1不能直接和L2建立邻居关系要通过L1-2
-----------------------------------------
2、L2和L2之间
---同区域ID:可以建立L2级别的邻居关系
---不同区域ID:可以建立L2级别的邻居关系
L2和L1-2之间
---同区域ID:可以建立L2级别的邻居关系
---不同区域下:可以建立L2级别的邻居关系
L2路由器建立邻居关系总结:
1、L2和L2、L1-2不管同区域还是不同区域都可以建立邻居关系
2、L2不能直接和L1建立邻居关系要通过L1-2
---------------------------------------------------------
L1-2路由器建立邻居关系总结:
1、L1-2路由器即可以和同区域的L1路由器建立L1级别的邻居,也可以和同区域或不同区域的L2建立L2级别的邻居关系
2、L1-2和L1-2路由器之间:
---区域相同建立一个L1和一个L2级别的邻居
---区域不同只建立一个L2级别邻居
ISIS和OSPF在应用上的区别:
OSPF支持多种不同的网络类型,所以OSPF适用在网络类型复杂的局域网中;
ISIS支持的网络类型(只支持广播、P2P)较少,所以ISIS适用在单一的骨干网中。
ISIS的工作原理:
对于ISIS而言:链路状态信息:LSP
链路状态信息数据库:LSDB
LSP(PDU):链路状态数据单元
1、运行了ISIS的设备互相发送ISIS Hello报文,建立ISIS邻居关系
2、邻居关系建立完成,设备之间同步LSP信息,构建LSDB
3、ISIS设备根据LSDB信息,执行SPF算法,计算ISIS最优路由
4、计算出的最优路由与其他路由进行比较,将最优路由放入IP路由表
ISIS的报文:
4大类9小类
1、Hello:哈喽
作用:用来发现建立维护ISIS邻居关系,选举ISIS中的DIS(指定中间系统)
Hello报文的发送时间:周期发送,普通路由器10s(死亡30s),DIS路由器3.3333s(死亡9s)
---Level-1 Hello 组播MAC:0180-C200-0014
---Level-2 Hello 组播MAC:0180-C200-0015
---P2P Hello
2、LSP:链路状态PDU
作用:用来更新ISIS设备的链路状态信息(类似OSPF中的LSU报文)
---Level-1 LSP
---Level-2 LSP
3、CSNP:完全序列号
作用:用来同步更新LSP信息(类似DD报文相邻的设备保持LSDB同步)
-----P2P网络中出现一次
-----广播网络周期发送(DIS发送10s一次:为了保障设备中间的LSDB的快速同步)
---Level-1 CSNP
---Level-2 CSNP
4、PSNP:部分序列号
作用:用来请求缺少的LSP信息。(在P2P情况下,即能做请求,也能作为收到LSP的做确认)(类似OSPF中的LSR、LSACK)
---Level-1 PSNP
---Level-2 PSNP
ISIS通用头部重要字段解释:
1、Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,固定为0x83。
2、Length Indicator:IS-IS头部的长度(包括通用头部和专用头部),以Byte为单位。
3、Version/Protocol ID Extension:版本/协议标识扩展,固定为0x01。
4、System ID Length:NSAP地址或NET中System ID区域的长度。值为0时,表示System ID区域的长度为6Byte。
5、R(Reserved):保留字段,固定为0。
6、Version:固定为0x01。
7、Max.Areas:支持的最大区域个数。设置为1~254的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区域地址数。
ISIS状态机:Down 、Init 、Up
对于ISIS而言:
建立邻居关系的方式:
两次握手/三次握手
1、P2P有两次握手和三次握手,默认三次握手
2、广播只能三次握手
场景:
1、ISIS运行在广播网络的邻居关系 建立流程:
三次握手:
①、 A 设备启动 ISIS 后,接口上开始发送 hel lo 报文,此 hel lo 报文中携带自身系统 ID ,但是邻居列表为空。
②、当 B 设备收到来自 A 设备的 hello 报文后。解封发现,邻居叫做 A ,并且 A 设备发送的 hel lo 报文中的邻居列表没有自身系 统 ID 。 B 将 A 的系统 ID 放入自身数据库。此时 B 将状态置为 init 。
③、 B 设备发送 hel lo 报文,报文中携带自身系统 ID ,邻居列表携带 A 设备系统 ID 。 A 设备收到此 hello 报文,发现报文中存在自身系统 ID ,将状态置为 UP
④ 、A 设备再次发送 hel lo 报文,此 hel lo 报文中携带 B 设备的系统 ID 。 B 设备收到后发现邻居列表中存在自身系统 ID ,将状态置为 UP
⑤、当双方邻居状态都为 UP 时,表示邻居关系建立完成,可以开始 LSDB 同步。
2、ISIS运行在P2P网络的邻居关系 建立流程:
-----二次握手时:当建立邻居的双方设备接收到Hello之后,状态变为Up,邻居关系建立完成。
缺陷:不存在确认,容易导致单通
-----三次握手时:和广播三次握手流程一致
ISIS中的DIS设备:
DIS:指定中间系统 作用:简化网路拓扑,减少LSP泛洪,减小LSDB规模
在ISIS中不管是DIS设备还是其他设备,都要建立全互联的邻居关系
DIS的选举:
1、根据ISIS接口优先级:范围0-127,默认64,优先级越大越优先,在ISIS中优先级为0也参与选举
2、如果接口优先级一致则比较设备的MAC地址,MAC越大越优
伪节点:DIS设备在进行SPF计算时产生的一个虚拟节点
作用:为了描述整个广播网络的所有网络设备,以及网络设备的系统ID;可以简化SPF算法。
ISIS中的DIS和OSPF的DR对比:
①、OSPF中有备份机制-BDR,ISIS没有
②、OSPF接口优先级为0不参与选举DR,ISIS都可以参与选举
③、OSPF选举完成DR后不可被抢占,ISIS可被抢占
④、OSPF非DR、BDR只能建立邻居关系,ISIS中的非DIS都可正常建立最高邻居关系
⑤、OSPF中DR设备的Hello报文时间和其他设备一致10s,ISIS中DIS设备Hello发送时间是普通设备的三分之一秒(3.3333s)
⑥、OSPF中DR可以减少邻接关系,ISIS中DIS不能减少邻居关系
⑦、OSPF中DR针对LSA做触发更新,ISIS中DIS周期更新10s更新LSDB中的LSP
⑧、OSPF中DR设备选举等待时间40s,DIS设备选举等待时间20s
⑨、DR和DIS都可以减少链路状态信息发送,减小LSDB的规模
ISIS在邻居建立之后LSDB同步过程:
1、在P2P网络中:
①、设备在邻居关系建立完成之后,两端设备同时发送CSNP报文(P2P网络类型中CSNP每台设备只会发一次),CSNP中带有自身的全部LSP摘要信息,当其中一台设备收到对端的CSNP与自身LSDB对比,有不一致则发送PSNP请求对端;
②、被请求的一端收到PSNP会将请求端需要的LSP信息发出(并在接口上启动重传定时器,直到到收到请求端发送的第二个PSNP用来做确认的报文为止;如没收到确认PSNP则会没过5s一致重发LSP)
③、当请求端收到LSP详细信息之后会发第二个PSNP做确认
2、在广播网络中:
抢占情况下:
①、当优先级高的设备加入网络中,Hello邻居关系建立中会识别新设备的优先级,使其变为新的DIS,其他设备会将LSP发送给DIS
②、新的DIS会开启10s的CSNP定时器,超时向外发送CSNP(包含了自身所用LSP摘要)
③、当其他设备收到CSNP与自己LSDB做比较,发送PSNP请求自己缺少的LSP信息
④、当DIS收到PSNP请求就会发送对方缺少的LSP信息
不抢占情况下:
①、当新设备加入会将自己的LSP信息泛洪所以同级别的设备,DIS收到后更新自己的LSDB
②、DIS路由器将等待定时发送CSNP
③、其他设备收到CSNP对比LSDB,使用PSNP报文向DIS请求自己缺失的LSP
④、DIS收到PSNP请求则下发其他设备需要的LSP,LSDB同步完成
ISIS的路由计算:
1、对于ISIS,骨干区域拥有全网路由信息;但是非骨干区域不能学习骨干区域的路由;所以非骨干区域去往骨干区域可以依靠缺省路由。
Level-1路由器中的缺省路由的产生:
由于Level-1-2路由器下发一条ATT置位为1的LSP给Level-1路由器,Level-1路由器收到ATT为1的LSP后,自行生成一条缺省路由,下一跳指向Level-1-2路由器。
ISIS中非骨干区域想要访问骨干区域,Level-1-2路由器下发的LSP中ATT位必须置位唯1。
ATT为1的条件:
①、产生ATT置位为1的设备必须是Level-1-2路由器
②、Level-1和Level-1-2在同一区域下,Level-2在另一个区域下
2、因为Level-1路由器使用缺省路由访问:容易造成ISIS的次优路径
解决方法:路由渗透
就是在Level-1-2上将Level-2路由器的路由渗透进Level-1区域,让Level-1路由器拥有Level-2路由器的详细路由信息
ISIS的认证种类:
①、接口认证:对Level-1、Level-2的Hello报文做认证
②、区域认证:对Level-1的CSNP、PSNP和LSP报文做认证
③、路由域认证:对Level-2的CSNP、PSNP和LSP报文做认证
认证方式有简单认证、MD5认证、Keychian认证和HMAC-SHA256认证