IS-IS协议

一、ISIS历史起源

OSPF协议的缺点
  • OSPF初次运行时,泛洪LSA,会造成网络震荡,设备开销过大
  • 骨干区域和边界路由器(ABR)等路由器性能消耗过大
  • OSPF扩展性差
  • OSPF的承载大量路由条目的能力较差(LSA信息大)

OSPF路由算法的详细说明 ospf计算路由_网络类型

1.早期IS-IS是基于OSI七层模型的CLNP协议开发,为了支持IP网络,设计了集成化的IS-IS

2.集成化IS-IS是基于数据链路层的,同时支持多种上层网络协议(IPv4、IPv6、CLNP)

二、应用场景

ISIS现应用于大型网络或者运营商网络

OSPF现应用于中大型网络或者企业网络、园区网络等场景

ISIS的简便性和扩展性强

  • 扩展性强是因为ISIS协议报文基于TLV结构(Type+Length+Value)

OSPF路由算法的详细说明 ospf计算路由_OSPF路由算法的详细说明_02

1.园区网:

  • OSPF协议
  • 收敛速度快
  • 丰富的网络类型支持多样化的业务
  • 采用层次化架构组网设备性能差异较大
  • 使用设备:三层交换机+路由器+防火墙

2.骨干网:

  • IS-IS协议
  • 收敛速度快
  • 承载能力强
  • 采用扁平化架构组网,设备性能差异不大
  • 使用设备:路由器(基本都是)

SPF

OSPF路由算法的详细说明 ospf计算路由_网络类型_03

  1. FULL-SPF算法:设备一开始还原拓扑时执行
  2. I-SPF(增量)算法:但设备结点发生变化时执行
  3. PRC(部分路由计算)算法:但设备的叶子信息发生变化时执行,IS-IS对于PRC的算法支持更好(支持了路由的拓扑的分离,而OSPF不支持)

三、IS-IS工作流程

OSPF路由算法的详细说明 ospf计算路由_数据库_04

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地址)

OSPF路由算法的详细说明 ospf计算路由_OSPF路由算法的详细说明_05

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网络)

五、路由器类型

OSPF路由算法的详细说明 ospf计算路由_网络类型_06

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基于路由器进行划分区域

OSPF路由算法的详细说明 ospf计算路由_网络类型_07

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

OSPF路由算法的详细说明 ospf计算路由_数据库_08

  • 作用:
  • 在描述拓扑时,充当伪节点
  • 在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报文

OSPF路由算法的详细说明 ospf计算路由_OSPF路由算法的详细说明_09

  • 在不同网络类型下,发送不同的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
  • 影响邻居关系建立的因素
  1. 网络类型
  • P2P不选举DIS,MA选举DIS
  1. 路由器类型
  • L1和L2无法建立邻居关系,L1和L2建立邻居关系发送hello报文使用的组播不同
  • L1-2与L1-2可以建立邻居关系,L1-2使用两种组播地址发送hello报文
  • L1-2与L2或L1可以建立邻居关系
  1. 区域ID(level 1区域必须唯一)
  2. System id(必须唯一)
  3. 认证信息
  4. 最大区域数要一致
  • 一台设备可以配置多个area id(3个)
  • 用于平滑过度(在不影响数据传输和路由表条目的情况下,实现对网络拓扑的修改)
  1. MTU必须一致(报文中的PDU length体现)
  • MA网络每一份HELLO报文都会进行padding填充
  • P2P网络只填充一份
  1. 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头部:
  1. LSP ID
  2. seq Num (0x0000001-0xFFFFFFFF 越大越优)
  3. checksum(越大越优)
  4. holdtime
  • LSP的生存时间1200s(1200s~0s)
  • 当时间经过900s后,会进行周期更新
  1. flag位
  • LSP内容

3.CSNP/PSNP报文

CSNP:完全序列号报文

OSPF路由算法的详细说明 ospf计算路由_OSPF_10

  • 携带所有LSP头部(摘要)的信息
  • 作用:描述数据库

类似OSPF的DD报文

PSNP:部分序列号报文

  • 携带部分LSP头部的信息
  • 用于请求、确认收到LSP

类似OSPF的LSR,LS ACK报文

十一、邻居建立过程

  • P2P网络类型存在两次握手和三次握手建立邻居关系
  • 两次握手(2-way)
  • 收到对方的hello报文后,进入UP状态
  • 特点:快,可靠性不高,容易出现单通故障;

OSPF路由算法的详细说明 ospf计算路由_数据库_11

  • 三次握手(3-way)
  • 收到对方的hello报文,邻居列表包含自身的system id,则从init状态进入up状态

OSPF路由算法的详细说明 ospf计算路由_OSPF_12

  • MA网络只存在三次握手建立邻居关系
  • 三次握手
  • 收到对方的hello报文,邻居列表包含自身接口的MAC地址
  • P2P默认为三次握手,可修改
interface s1/0/0
isis ppp-negotiation 3-way only		//只支持三次握手机制(only:只支持)

为什么只有P2P的网络类型支持2-way?

  • 由底层的PPP协议提供一定的可靠性保障,而以太网协议不行

十二、数据库同步过程

1.P2P网络类型同步过程

OSPF路由算法的详细说明 ospf计算路由_网络类型_13

1.设备交互CSNP报文描述数据库

2.比较自身数据库,如果发现缺少的LSP,则发送PSNP报文进行请求

3.根据PSNP报文携带的LSP头部信息,回应LSP报文

4.设备收到LSP报文后会回复PSNP报文进行确认

2.MA网络类型同步过程

OSPF路由算法的详细说明 ospf计算路由_网络类型_14

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的对比

OSPF路由算法的详细说明 ospf计算路由_数据库_15

OSPF路由算法的详细说明 ospf计算路由_OSPF路由算法的详细说明_16

OSPF路由算法的详细说明 ospf计算路由_网络类型_17

dididi