IS-IS协议
一、ISIS历史起源
OSPF协议的缺点
- OSPF初次运行时,泛洪LSA,会造成网络震荡,设备开销过大
- 骨干区域和边界路由器(ABR)等路由器性能消耗过大
- OSPF扩展性差
- OSPF的承载大量路由条目的能力较差(LSA信息大)
1.早期IS-IS是基于OSI七层模型的CLNP协议开发,为了支持IP网络,设计了集成化的IS-IS
2.集成化IS-IS是基于数据链路层的,同时支持多种上层网络协议(IPv4、IPv6、CLNP)
二、应用场景
ISIS现应用于大型网络或者运营商网络
OSPF现应用于中大型网络或者企业网络、园区网络等场景
ISIS的简便性和扩展性强
- 扩展性强是因为ISIS协议报文基于TLV结构(Type+Length+Value)
1.园区网:
- OSPF协议
- 收敛速度快
- 丰富的网络类型支持多样化的业务
- 采用层次化架构组网设备性能差异较大
- 使用设备:三层交换机+路由器+防火墙
2.骨干网:
- IS-IS协议
- 收敛速度快
- 承载能力强
- 采用扁平化架构组网,设备性能差异不大
- 使用设备:路由器(基本都是)
SPF
- FULL-SPF算法:设备一开始还原拓扑时执行
- I-SPF(增量)算法:但设备结点发生变化时执行
- PRC(部分路由计算)算法:但设备的叶子信息发生变化时执行,IS-IS对于PRC的算法支持更好(支持了路由的拓扑的分离,而OSPF不支持)
三、IS-IS工作流程
1.建立邻居关系
- IS-IS只存在邻居关系,没有邻接关系
- 存在两种邻居关系
- L2邻居关系
- L1邻居关系
2.同步数据库
- 数据库存放LSP(Link State PDU:链路状态协议单元)(类似OSPF的LSA)
- 不同网络类型数据库同步过程不一样
3.执行SPF算法
4.计算最优路由放入路由表
四、地址结构
ISIS使用NSAP地址通信,初期是为了承载OSI系统的CLNP协议的shiy通信,为了适应TCP/IP协议栈,修改了NSAP地址的内容(变为NET地址),使得可以承载在IP协议之上工作
ISIS在TCP/IP协议栈下采用NET地址,NET地址是一个特殊的NSAP(NSAP地址中 字段SEL=00,为NET地址)
1.NSAP地址时OSI协议栈中网络层使用的地址
2.IS-IS利用特殊的NSAP地址来表示 区域ID+系统ID
3.NSAP = IDP(网络位) + DSP(主机位)
- IDP = AFI + IDI
- DSP = High Order DSP + System ID + SEL
- High Order DSP:可扩展字段,可以用来支持IPv6地址
4.IS-IS采用NET地址(特殊的NSAP)地址:
- area ID + System ID + SEL
- area ID:1~13B
- system ID:6B
- 唯一标识一台IS-IS路由器
- 每台设备只能有一个(类似router-id)
- SEL:1B
system ID长度固定,area ID长度可变
5.配置IS-IS的NET地址:
- 49.0001.0000.0000.0001.00
- area id:49.0001
- system id:0000.0000.0001
- SEL:00(表示支持IP网络)
五、路由器类型
1.Level-1路由器
- 只创建L1区域的数据库
- 只能于L1和L1-2设备建立邻居关系
- 只有L1区域的明细路由
2.Level-2路由器
- 只创建L2区域的数据库
- 只能与L2和L1-2设备建立邻居关系
- 拥有所有区域的明细路由
3.Level-1-2路由器(默认类型)
类似OSPF的ABR设备
- 创建L1和L2数据库
- 可以和所有设备类型建立邻居关系
- 拥有所有区域的明细路由
- 会将L1区域的路由自动填充到L2区域中
六、区域划分
IS-IS基于路由器进行划分区域
1.骨干区域(level 2区域)
- 由L2设备和L1-2设备组成
- 拥有所有区域的明细路由
- 区域ID可以不一致
2.非骨干区域(level 1区域)
- 由L1设备和L1-2设备组成
- 拥有自身区域的明细路由
- 通过指向L1-2设备的默认路由进行访问
- 区域ID必须一致
如果出现骨干区域被分割,没有修复方案
七、IS-IS的配置
基本配置
//isis进程下配置:
isis 1 //激活isis进程
network-entity 49.0001.0000.0000.0001.00 //指定区域ID+系统ID
is-level level x(1/2) //设置路由器类型
//接口下配置
interface g0/0/0
isis enable 1 //宣告接口
检查命令
display ip routing-table //检查路由表
display isis interface //查看宣告进isis的接口
display isis lsdb //检查数据库
display isis peer //检查邻居关系
可选配置
interface g0/0/0
isis circuit-level level-1 //设置接口只发送L1报文
##接口视图下
isis dis-priority xxx(1-127) //配置端口DIS优先级
isis cost 20 //直接修改接口开销
isis circuit-type P2P //修改接口网络类型为P2P
##isis进程下配置
import-route ospf/direct/static... //引入外部路由
auto-cost enable //修改开销计算方式为自动计算
八、网络类型
P2P网络
- 底层链路为串行链路时,默认为P2P网络类型(不选举DIS)
- 底层数据链路层为FR(帧中继网络,在该网络中,中心结点需要手动创建子接口),默认为P2P网络类型
MA网络
- 底层链路为以太网链路时,默认为MA网络(E选举DIS)
##查看命令
display isis brief
网络类型不同,建立的邻居关系不同
P2P:支持2-way/3-way建立邻居关系,默认3-way
MA:只支持3-way建立邻居关系
九、DIS
- 作用:
- 在描述拓扑时,充当伪节点
- 在MA网络类型下,进行数据库同步
- 选举规则:
- 先比较优先级(范围0~127,默认64,越大越优,优先级为0正常参与选举)
- 优先级相同,再比较接口的MAC地址(越大越优)
- 与OSPF DR的区别:
- DIS选举完成后可以抢占,DR选举完成后不可被抢占
- IS-IS只有邻居关系
- 选举规则不一样:DR优先级为0不能参与选举,优先级范围不同
- 没有备份机制:没有BDR
- 选举时间不同:DIS为20s
circuit id:标识MA网络中的伪节点,格式DIS-system ID + 一个1byte的非00字段
十、IS-IS的报文
ISIS报文基于数据链路层
1.hello报文
- 在不同网络类型下,发送不同的HELLO报文
- P2P:P2P IIH报文
- MA:
- L1 LAN IIH报文(01-8-c2-00-00-14)
- L2 LAN IIH报文(01-8-c2-00-00-15)
- 作用:
- 发现邻居(组播发送报文)
- 用于建立邻居关系(协商参数)
- 维护邻居(周期发送 10s发送一次,30s超时时间)
- 修改网络类型
interface g0/0/0
isis circuit-type P2P //修改接口网络类型为P2P
- 影响邻居关系建立的因素
- 网络类型
- P2P不选举DIS,MA选举DIS
- 路由器类型
- L1和L2无法建立邻居关系,L1和L2建立邻居关系发送hello报文使用的组播不同
- L1-2与L1-2可以建立邻居关系,L1-2使用两种组播地址发送hello报文
- L1-2与L2或L1可以建立邻居关系
- 区域ID(level 1区域必须唯一)
- System id(必须唯一)
- 认证信息
- 最大区域数要一致
- 一台设备可以配置多个area id(3个)
- 用于平滑过度(在不影响数据传输和路由表条目的情况下,实现对网络拓扑的修改)
- MTU必须一致(报文中的PDU length体现)
- MA网络每一份HELLO报文都会进行padding填充
- P2P网络只填充一份
- MA网络中互联接口在同一网段,P2P中互联接口不需要在同一网段
- hello报文中不携带掩码
hello报文的作用:发现、协商、维护ISIS的邻居关系
3*hello时间=holding time(类似OSPF dead time)
2.LSP报文
用于携带IS-IS的路由和拓扑信息
1.根据作用分类
- 实节点LSP
- 每台设备为每个区域产生一条
- 描述设备自身的接口,邻居等链路状态信息
- 伪节点LSP
- 每个DIS设备为每个MA网络产生一条
- 只携带MA网络的拓扑信息
2.根据传递范围分类
- L2 LSP
- 只在L2区域传递
- 由L2、L1-2设备产生
- L1 LSP
- 只在L1区域传递
- 由L1、L1-2设备产生
3.LSP ID是唯一标识一条LSP
- system id + 伪节点标识符 + 分片标识符
- 伪节点标识符为00----------- 实节点LSP
- 伪节点标识符非00-----------伪节点LSP(只在广播链路存在)
4.LSP的组成:头部+内容
- LSP头部:
- LSP ID
- seq Num (0x0000001-0xFFFFFFFF 越大越优)
- checksum(越大越优)
- holdtime
- LSP的生存时间1200s(1200s~0s)
- 当时间经过900s后,会进行周期更新
- flag位
- LSP内容
3.CSNP/PSNP报文
CSNP:完全序列号报文
- 携带所有LSP头部(摘要)的信息
- 作用:描述数据库
类似OSPF的DD报文
PSNP:部分序列号报文
- 携带部分LSP头部的信息
- 用于请求、确认收到LSP
类似OSPF的LSR,LS ACK报文
十一、邻居建立过程
- P2P网络类型存在两次握手和三次握手建立邻居关系
- 两次握手(2-way)
- 收到对方的hello报文后,进入UP状态
- 特点:快,可靠性不高,容易出现单通故障;
- 三次握手(3-way)
- 收到对方的hello报文,邻居列表包含自身的system id,则从init状态进入up状态
- MA网络只存在三次握手建立邻居关系
- 三次握手
- 收到对方的hello报文,邻居列表包含自身接口的MAC地址
- P2P默认为三次握手,可修改
interface s1/0/0
isis ppp-negotiation 3-way only //只支持三次握手机制(only:只支持)
为什么只有P2P的网络类型支持2-way?
- 由底层的PPP协议提供一定的可靠性保障,而以太网协议不行
十二、数据库同步过程
1.P2P网络类型同步过程
1.设备交互CSNP报文描述数据库
2.比较自身数据库,如果发现缺少的LSP,则发送PSNP报文进行请求
3.根据PSNP报文携带的LSP头部信息,回应LSP报文
4.设备收到LSP报文后会回复PSNP报文进行确认
2.MA网络类型同步过程
1.MA网络下所有设备向外发送LSP
2.选举DIS设备,由DIS设备进行周期(10s)发送CSNP报文
3.设备收到CSNP报文,对比自身数据库
- 发现自身缺少的LSP,发送PSNP请求,由DIS进行回应对应的LSP
- 发现DIS设备缺少自身的LSP,则直接发送LSP报文给DIS设备
3.P2P和MA网络同步过程的区别
- CSNP报文在P2P网络中只发送一次,在MA网络由DIS设备10s发送一次
- MA网络没有确认机制,由DIS来保证数据库同步
- P2P网络类型没有收到PSNP确认,会每5s重新传递LSP,直到收到PSNP确认为止
十三、路由计算
- IS-IS计算开销时,基于接口计算开销:
- 每个接口开销默认为10,可修改
- 可以在进程下,修改开销的计算方式为自动计算;
- 根据带宽计算
- 需要每一台设备配置
接口视图下配置
interface g0/0/1
isis cost 20 //直接修改接口开销
//isis进程下配置
isis 1
auto-cost enable //修改开销计算方式为自动计算
- IS-IS的路由优先级为15
- IS-IS引入路由后,该路由开销值为64
十四、区域间路由
- L1设备访问其他区域时,需要根据L1-2设备发送的ATT置位LSP产生的默认路由访问
- 默认路由由L1设备自身产生(而不是L1-2设备发送默认路由给L1设备)
- ATT置位的LSP,需要满足三个条件:
- 设备类型为L1-2路由器
- 存在L1的邻居关系和L2的邻居关系
- 与L2的邻居区域ID必须
- 路由渗透
- 解决次优路径*(图)
- 在L1-2设备上操作
isis 1
import-route isis level-2 into level-1 //将level-2的路由渗透进level-1区域
十五、ISIS与OSPF的对比
dididi