ISIS

基础概念

OSI 七层模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)

TCP/IP 四层模型(物理层、数据链路层、网络层、传输层、应用层)

在 OSI 模型将具有报文转发的网络节点,叫做IS,即中间系统的意思,类似于 TCP/IP 模型中路由器

在 OSI 模型中将没有路由能力或者报文转发能力的设备叫做 ES,即端系统的意思,类似于 TCP/IP 模型中终端

IS-IS 协议叫做中间系统到中间系统,早期时服务于 OSI 参考模型的 IGP 协议

IS-IS 基于 OSI 模型,OSPF 基于 TCP/IP 模型

IS-IS 用于支持 CLNP 协议,而 OSPF 中用于支持 IP 协议

CLNP 无连接的网络服务,作用类似于 TCP/IP 模型中的 IP 协议,都是用来进行逻辑寻址的网络层协议

IS-IS 路由计算过程:

建立邻居关系

同步 LSDB 数据库

执行 SPF 路由计算

ISIS 详解

地址结构:十六进制数配置

ISIS的NSAP(网络访问服务名称)和NET(网络实体名称)都是指用来唯一标识ISIS路由域中的路由器,而通常用NET表示,类似于OSPF的RouterID,但是ISIS的NET必须手工配置

ISIS的NET名称 areaID+systemID+sel;举例:

49.0001.0000.0000.0001.00

49.0000.0001.0000.0000.0001.00

49.0000.0000.0001.00

ISIS 和 OSPF 区域对比:

ISIS和OSPF类似可以划分多区域,但是OSPF是以路由器的接口进行划分,某个路由器可以属于多个区域,而ISIS是以路由器整体进行划分,某个路由器只能属于一个区域

OSPF的骨干区域是Area0,ISIS没有物理上的骨干区域,骨干区域是一个由所有具备 Level2 和 Level1-2 功能的路由器的一个逻辑集合(连续的区域)。

ISIS中路由器、链路接口类型都分为三个类型

Level1:内部路由器,只能在ISIS的域内互通;要求区域 ID 一致

Level2:跨域路由器,可以在ISIS的所有区域互通;不要求区域 ID 一致

Level1-2:区域边界路由器,Level1路由器可以通过该路由器访问其他区域,类似于OSPF的中ABR。

邻居关系的建立的要求:

  1. Level1:Level1 的路由器只能建立 Level1 的邻居关系,但是要求两端区域 ID 一致
  2. Level2 :Level2 的路由器只能建立 Level2 的邻居关系,但是不要求两端区域 ID 一致
  3. Level1-2:Level1-2 的路由器即能建立 Level1 的邻居关系(要求区域 ID 一致),也能建立 Level2 的邻居关系(不要求区域 ID 一致)

默认情况下,华为设备启用 ISIS 协议之后,就是一台 Level1-2

ISIS 两种网络类型:

在 ISIS 中网络类型由链路层协议进行判断,当链路层协议是以太网的时候网络类型为广播型

当链路层协议是 HDLC 或者 PPP 的时候网络类型为 P2P 类型,目前 ISIS 不支持 P2MP 和 NBMA 网络类型

OSPF 在 MA 网络中会选举 DR 和 BDR,ISIS 在 MA 网络中会选举 DIS

DR 和 DIS 共同的特点:

  1. 在 SPF 计算的时候,都当做虚拟的节点,用于简化 MA 网络的逻辑拓扑,减轻算法的负担
  2. 都是用于减少 LSA/LSP 泛洪
  3. ISIS 中 DIS 发送 CSNP 报文,用于在 MA 网络中同步 LSDB

OSPF DR 的特点:

  1. DR 优先级默认等于 1
  2. 当 DR 优先级为 0 的时候不参与 DR 和 BDR 的选举
  3. DR 和 BDR 不支持抢占
  4. DR 和 BDR 的优先级最高为 255

ISIS DIS 的特点:

  1. DIS 优先级默认等于 64
  2. 当 DIS 优先级为 0 的时候依然参加选举
  3. ISIS 中,没有备份 DIS 的概念
  4. ISIS DIS 的优先级最高为 127

ISIS DIS 选举规则:

  1. 首先比较 DIS 优先级,优先级大的设备成为 DIS
  2. 当优先级相同的时候,比较接口的 MAC 地址,越大越优先

OSPF DR 选举规则:

  1. 首先比较 DR 优先级,优先级大的设备成为 DR
  2. 当优先级相同的时候,比较 Router-id,越大越优先

ISIS仅支持广播网络(MA)和点到点网络(P2P)。OSPF支持广播网络(MA)、非广播多路访问(NBMA)、点到点(P2P)、点到多点(P2MP)

OSPF 和 ISIS 报文类型的区别

OSPF有5种报文类型:Hello(邻居)、DD(摘要)、LSA(请求)、LSU(更新)、LSAck(确认)

ISIS的报文类型:IIH(邻居)、LSP(链路状态报文)、CSNP(完全序列号报文)、PSNP(部分序列号报文)

IIH(邻居)Hello 报文,在广播链路上用于用于建立邻居关系

LSP(链路状态报文)描述链路状态信息,类似于 OSPF 中的 LSU

CSNP(完全序列号报文)用于描述 LSDB 中所有 LSP 摘要信息,类似于 OSPF 中 DD 报文

PSNP(部分序列号报文)用于对 LSP 请求或者确认的作用,类似于 OSPF 中的 LSR 和 LSACK

ISIS 邻居状态:和 OSPF 邻居状态建立同理

链路级别:

在华为设备中,默认启用了 ISIS 的链路为 Level1-2 的链路,通过命令:在接口下:ISIS circuit-level1 //可以修改链路的级别

  1. 当路由器为 Level1 的路由器时,无论链路级别为多少,始终只会发送 Level1 的 Hello 报文
  2. 当路由器为 Level2 的路由器时,无论链路级别为多少,始终只会发送 Level2 的 Hello 报文
  3. 当路由器为 Level1-2 的路由器时,Hello 报文的发送与链路级别存在关系,发送结果取交集

ISIS 中 Hello 报文的发送时间间隔为 10s,死亡时间为 30s

ISIS 中的机制

ISIS 如何确定一条唯一的 LSP 呢?使用 LSP-ID

  1. System-id:产生此 LSP 路由的系统 ID
  2. 伪节点标识符:如果取值为 00,代表该 LSP 为实节点LSP,如果取值为 非00,则代表该 LSP 为伪节点 LSP
  3. 分片标识符:长度为一个字节,用于描述 LSP 的分片

如何确定一条 LSP 的新旧:

  1. 比较 LSP 的序列号
  2. 比较(holdtime)老化时间,如果为 0,则代表最新用于删除一条 LSP,如果不都为 0 则选择更新的一个(holdtime 值更大的)
  3. 比较校验和,越大越优

ISIS 的更新机制:

  1. 触发更新
  2. 周期更新:每个 ISIS 路由器每隔 900s,都会周期性更新一次自身产生的 LSP

ISIS LSP 的 老化机制:

即,每个 LSP 产生的时候都有 1200s 的 holdtime 时间,随着时间递减,当 LSP holdtime 时间减为 0 的时候将会删除一条 LSP

LSP 类型分为两种:

  1. 实节点 LSP:每个启用 ISIS 路由的路由器都会产生实节点 LSP,用于描述自身的链路状态信息
  2. 伪节点 LSP:由 DIS 产生,用于描述 MA 网络上的邻居信息

ISIS 的链路状态信息

Level1 的路由器只维护 Level1 的链路状态信息

Level2 的路由器只维护 Level2 的链路状态信息

Level1-2 的路由器,既维护 Level1 的链路状态信息,也维护 Level2 的链路状态信息

Level1 的路由器使用 Level1 LSP 描述自身所有的链路状态,无论链路级别

Level2 的路由器使用 Level2 LSP 描述自身所有的链路状态,无论链路级别

Level1-2 的路由器链路状态的描述和链路级别有关,取交集

查看 ISIS 链路状态信息:dis isis lsdb

ISIS 不同区域间的访问

骨干区域如何访问非骨干区域:

默认情况下,Level1-2 的路由器会将 Level1 的路由,以叶子的形式放入自身产生的 Level2 LSP 中

非骨干区域如何访问骨干区域:

非骨干区域内部的路由器,通过缺省路由访问骨干区域

ISIS 区域间防环机制:

  1. Level1-2 的路由器忽略对 ATT bit 的计算
  2. 无论任何 Cost 值,Level1 的路由总是优于 Level2 的路由
  3. 无论任何 Cost 值,Level2 的路由总是优先于 Level1* 的路由

针对 OSPF 来说,区域间路由计算使用的是链路状态计算和距离矢量计算

针对 ISIS 来说,ISIS 的路由计算,是一个区域的链路状态计算

ISIS 基本配置:

  1. 创建 ISIS 进程,进入 ISIS 进程

Huawei\] **isis** \[*process-id*

参数process-id用来指定一个IS-IS进程。如果不指定参数process-id,则系统默认的进程为1

  1. 配置网络实体名称(NET)

Huawei-isis-1\] **network-entity** *net*

配置 NET,通常情况下只配置一个 NET。一个IS-IS进程中区域地址最多可配置3个,所以NET最多也只能配3个。在配置多个NET时,必须保证它们的System ID都相同

  1. 配置全局 Level 级别

Huawei-isis-1\] **is-level** {**level-1** \|**level-1-2** \|**level-2**}

缺省情况下,设备的Level级别为level-1-2

  1. 进入接口视图

Huawei\]**interface** *interface-type interface-number*

参数interface-type为接口类型,参数interface-number为接口编号

  1. 在接口上使能 ISIS 协议

Huawei-GigabitEthernet0/0/1\] **isis enable** \[ *process-id*

配置该命令后,IS-IS将通过该接口建立邻居、扩散LSP报文

  1. 配置接口 Level 级别

Huawei-GigabitEthernet0/0/1\] **isis circuit-level** \[**level-1** \|**level-1-2** \|**level-2**

缺省情况下,接口的Level级别为level-1-2,除了特殊情况下,一般不修改

  1. 设置接口的网络类型为 P2P

Huawei-GigabitEthernet0/0/1\]**isis circuit-type p2p**

缺省情况下,接口网络类型根据物理接口决定

  1. 恢复接口的缺省网络类型

Huawei-GigabitEthernet0/0/1\] **undo isis circuit-type**

  1. 修改接口的 DIS 优先级

Huawei-GigabitEthernet0/0/1\] **isis dis-priority** *priority* \[**level-1** \|**level-2**

缺省情况下,IS-IS接口DIS优先级为64,该命令用来指定挑选对应层次 DIS 时接口的优先级

配置案例

查看路由器的路由信息:dis isis route

相关推荐
white-persist2 小时前
【vulhub weblogic CVE-2017-10271漏洞复现】vulhub weblogic CVE-2017-10271漏洞复现详细解析
java·运维·服务器·网络·数据库·算法·安全
Strange_Head2 小时前
《Linux系统网络协议》用 C 语言写一个最小 HTTP Server 与 Client——网络篇
网络·网络协议·http
KhalilRuan2 小时前
什么是KCP?QUIC?Websocket?
网络·websocket·网络协议
Arva .2 小时前
RabbitMQ
网络·分布式·rabbitmq
kim_puppy3 小时前
TCP的三次握手,四次挥手
java·网络·tcp
Rsun045513 小时前
ConfigurableListableBeanFactory跟ApplicationContext作用
网络·网络协议·rpc
弹简特3 小时前
【JavaSE-网络部分06】TCP 纯高性能优化机制:延迟应答・捎带应答【传输层】
网络·tcp/ip·性能优化·捎带应答·延迟应答
MOYIXIAOWEIWEI4 小时前
VMware-centos7更改静态ip
网络·网络协议·tcp/ip
不会写DN4 小时前
使用 sync.Once 解决 Go 并发场景下的重复下线广播问题
开发语言·网络·golang