目录

IS-IS前世今生

IS-IS指的是什么

OSI模型与TCP/IP模型的网络层协议

IS-IS与OSPF比较

ISIS网络概念

IS-IS如何标识不同的网络设备

ISIS路由器的分类/角色

IS-IS网络类型

IS-IS工作过程

第一步 建立邻居关系

邻居建立Hello报文讲解

广播和P2P类型的邻居建立过程

ISIS邻居建立状态

第二步 同步LSDB数据库

LSDB同步SNP和LSP报文讲解

DIS介绍 

广播和P2P类型的LSDB同步过程 

第三步 进行SPF路由计算

ISIS报文封装

ISIS静默接口


IS-IS前世今生

IS-IS指的是什么

IS  指的是中间系统(路由器、运行了IS-IS协议的设备)

ES  指的是终端系统(PC、平板、打印机等)

IS-IS指的就是中间系统与中间系统进行路由信息的交换方式

OSI模型与TCP/IP模型的网络层协议

网络层协议的作用

用于网络设备的编址以及寻址

OSI模型网络层是CLNP协议(无连接网络协议)

TCP/IP模型的网络层是IP协议

IS-IS最初就是为CLNP协议设计的一种基于链路状态的使用最短路径算法的动态路由协议

  • 即IS-IS最先是为OSI模型服务的,不过由于IS-IS扩展性强的原因,通过扩展能够支持TCP/IP模型的IP协议
  • 现在IS-IS称为集成IS-IS,是多栈路由协议,它支持CLNP,IPv4、IPv6等
  • IS-IS由于节省设备资源、扩展性强,学习难度低,很快在ISP市场得到了很多应用

IS-IS与OSPF比较

路由计算算法

IS-IS与OSPF都使用SPF算法

都是基于接口的路由协议(即一台设备上的不同接口可以运行不同的路由协议进程)

为谁工作

  • IS-IS最初是为CLNP协议工作,现在也可以为IP协议工作
  • OSPF只是为IP协议工作

所属层次

  • IS-IS是工作在链路层之上的网络层协议(即IS-IS相对于网络层是独立的一个协议)
  • OSPF是工作在网络层之上的路由协议(即OSPF是基于网路层封装的,不过不能说是传输层协议,只能说和传输层一个层次)

ospf静默接口的端口处于什么状态_网络

 应用场景

ospf静默接口的端口处于什么状态_链路_02


ISIS网络概念

IS-IS如何标识不同的网络设备

ISIS协议通过NET地址标识网络设备

OSPF协议是通过 area id+router id对设备进行标识的

IS-IS协议则通过NET地址(area id+system id+00)来对设备进行标识

NET地址是什么(网络实体标识符)

IP协议是通过IP地址进行网络服务访问的,NSAP协议是通过NSAP地址进行网络访问的

ospf静默接口的端口处于什么状态_OSPF_03

 而NET地址就是一类特殊的NASP(即SEL=00的NSAP地址就代表NET地址,用来标识IS-IS设备)

ospf静默接口的端口处于什么状态_链路_04

注意:在配置IS-IS过程中,NET最多配置3个,并且它们的System ID都要相同

ISIS配置的区域ID是以整个设备为单位的(即一台设备只可以运行在一个区域)
OSPF配置的区域ID是以端口为单位的    (即一台设备可以运行在多个区域)

ISIS路由器的分类/角色

IS-IS中路由器分为三类

L1路由器   只维护L1的LSDB;只能和同区域 L1/L1-2 路由器 建立邻居

L2路由器   只维护L2的LSDB;可以和同区域/不同区域的 L2/L1-2路由器 建立邻居

L1-2路由器  维护L1的LSDB,也维护L2的LSDB;可以和同区域的L1、同/不同区域的L2路由器建立邻居;   连接L1和L2设备

注意:华为设备默认路由器为L1-2

IS-IS网络类型

IS-IS只支持两种网络类型:P2P、广播;不同网络类型的邻居建立方式、LSDB同步方式不同

PPP、HDLC链路默认是P2P网络类型

发送的所有报文的目的地址都是组播地址09:00:2B:00:00:05

以太网、FDDI链路默认是广播网络类型

发送的所有报文的目的地址都是组播地址

L1路由器发送的地址为01:80:C2:00:00:14

L2路由器发送的地址为01:80:C2:00:00:15


IS-IS工作过程

第一步 建立邻居关系

邻居建立Hello报文讲解

邻居建立报文——Hello报文

Hello报文分类

Hello报文细分为三种类型,主要用于邻居关系建立

P2P Hello报文   在P2P链路上建立L1/L2邻居关系

L1 Hello报文     在广播链路上建立L1的邻居关系

L2 Hello报文     在广播链路上建立L2的邻居关系

Hello间隔(Hello报文不影响邻居的建立)

  • Hello报文10s发送一次,邻居失效时间为3倍的发送间隔(30s)
  • 但是当选举DIS后,DIS路由器会10/3s周期性发送Hello报文,非DIS路由器还是10s发送一次
  • 当非DIS路由器在10s没有收到DIS发的Hello报文,则认为DIS失效
  • 当DIS路由器/非DIS路由器在30s没有收到非DIS路由器发送的Hello报文,则认为邻居失效

ospf静默接口的端口处于什么状态_ide_05

ISIS Hello报文填充字段

标准的Hello报文会通过填充字段来使得报文达到固定的长度

P2P接口——填充字段长度等于本地生成LSP报文的长度

P2P邻居建立之前,发送带有填充字段的标准Hello报文

P2P邻居建立之后,发送不带有填充字段的小型Hello报文

广播接口——填充字段长度等于MTU的长度

邻居建立前后,都发送带有填充字段的标准Hello报文

为了简化Hello报文的收发操作,可以配置接口建立邻居之前发送Hello报文时不携带填充字段

华为设备配置 int g0/0/0 isis padding-hello    配置发送带有填充字段的hello报文(缺省配置) isis small-hello        配置发送不带有填充字段的小型hello报文

广播和P2P类型的邻居建立过程

 广播链路仅使用3次握手(同P2P的三次握手)

  • 3次握手,当邻居发送的Hello报文中没有自己的System ID,状态进入initialized
  • 当邻居发送的Hello报文中TLV 6字段有自己的MAC(因为MA网络需要依靠MAC识别对端设备,而P2P网络不需要MAC识别),设备才会由initialized状态进入up状态

ospf静默接口的端口处于什么状态_ospf静默接口的端口处于什么状态_06

P2P建立邻居的2种方式:2次握手和三次握手(默认使用3次握手,兼容两次握手)

  • 2次握手只要收到对端的Hello报文,就单方面宣布自己为up状态,容易造成单项邻居,出现路由单通;P2P的二次握手不需要TLV240,直接进入up状态

ospf静默接口的端口处于什么状态_网络_07

  • P2P的三次握手在收到对端Hello包后,需要Hello包中的TLV240字段有自己的System ID,设备才从Initialized状态进入到up状态

ISIS邻居之间强制使用三次握手实现邻居建立 华为设备配置 int g0/0/1 isis ppp-negotiation  only(只使用三次握手,不兼容二次握手)

ISIS邻居建立状态

二次握手

Down——初始状态

UP——   收到对方发来的Hello包(无论邻居列表是否有自己的System id)

三次握手

Down——初始状态

Init  —— 收到Hello包,但邻居列表无自己的System id

Up  —— 收到Hello包,邻居列表有自己的System id

第二步 同步LSDB数据库

LSDB同步SNP和LSP报文讲解

当邻居状态UP后,开始进行LSDB同步,发送以下报文(与OSPF不一致;OSPF进行LSDB同步是需要建立邻接关系,而ISIS是直接进行LSDB同步,不涉及邻居状态的改变)

LSDB同步报文1——SNP报文分类

CSNP报文(类似OSPF的DD报文)——主要用于通告链路状态数据库(LSDB)摘要

又细分为L1 CSNP、L2 CSNP两种类型

CSNP发送间隔:

在广播网络中,CSNP由DIS周期发送,每10s发送一次

在P2P网络中,CSNP只发送一次,邻居状态UP后发送一次

PSNP报文(类似OSPF的LSR或者LSACK)——用于请求和确认链路状态信息

又细分为L1 PSNP、L2 PSNP两种类型

LSDB同步报文2——LSP报文分类

LSP类似OSPF的LSU,用于邻居之间交换链路状态信息(携带完整信息)

细分为L1 LSP(L1 邻居之间发送)、L2 LSP(L2 邻居之间发送)

DIS介绍 

IS-IS同步所需要用到的角色——DIS(类似于OSPF的DR,不过作用不同)

IS-IS在广播型链路上会进行DIS选举(DIS在邻居建立之后进行),P2P网络没有DIS

DIS类似于OSPF的DR,没有BDIS

DIS的作用

DIS主要用于LSDB数据库同步

DIS分类

DIS分为L1 DIS 和 L2 DIS(L1路由器之间选举L1 DIS,L2路由器之间选举L2 DIS)

DIS如何选举

  1. DIS优先级的取值范围为0~127,默认是64,越大越优先为DIS(0可以参与选举)
  2. DIS相同,比较接口的MAC地址,MAC地址大的成为DIS

ospf静默接口的端口处于什么状态_ospf静默接口的端口处于什么状态_08

广播和P2P类型的LSDB同步过程 

P2P链路LSDB同步过程

ospf静默接口的端口处于什么状态_链路_09

  1. 两台邻居UP后,会互相发送CSNP报文携带自身LSDB的全部LSP摘要给对方
  2. R2收到CSNP后,检查自身LSDB中LSP新旧判断,发送PSNP携带自己想要的LSP摘要以及需要更新的LSP摘要
  3. R1收到PSNP后,根据摘要通过LSP报文发送完整的链路状态信息
  4. 如果RT2没有发送PSNP对LSP做确认
  5. 5s后RT1会对LSP会重新传送
  6. RT2收到后再回复PSNP做确认

为什么华为的流程和标准协议RFC定义的不一样

P2P网路中CSNP只会发送一次,当CSNP丢包,就无法建立邻居了

华为设备上先发送LSP,当LSP丢包后,5s重传,可靠性更高

PSNP的请求和回应消息是怎么区分的

通过LSP ID序列号来判断是请求报文还是确认报文

       0表示请求  非0表示确认报文

广播链路LSDB同步过程

ospf静默接口的端口处于什么状态_ospf静默接口的端口处于什么状态_10

在DIS稳定的情况下,新增R3与DIS建立邻居进行LSDB同步的过程(此时RT2已经与RT1建立邻居,LSDB完成同步)  以下讲解的是R3发送LSP的过程

  1. 新增非DIS设备与DIS建立邻居后,互相发送LSP,收到LSP后加入自身数据库(不回复PSNP做确认)
  2. DIS设备周期性10s发一次CSNP,描述自身LSP摘要信息
  3. 非DIS设备收到此CSNP,会了解到自己缺少哪些LSP以及DIS有无自己的LSP等信息,如果当发现自身缺少LSP时,发送PSNP请求(如果发现DIS没有自身的LSP,则发送LSP)
  4. DIS收到PSNP请求后,发送LSP信息
  5. 非DIS收到LSP信息后,不回复PSNP做确认,当收到下一次的CSNP报文时,如果自己还缺少LSP,就再次请求,如果不缺少LSP,就无反应

注意

  • 新增路由器和DIS一旦建立邻居,会互相发送自身LSDB的LSP
  • 非DIS路由器会和新增路由器建立邻居关系,但不会向新增的路由器发自身LSDB中的LSP,避免重复发送LSP
  • 广播网络中的PSNP只有请求作用,无确认作用
  • 广播网络中对LSP的确认是通过CSNP隐式确认的

第三步 进行SPF路由计算

ISIS接口开销默认都是10,与带宽无关,开销类型为narrow窄带

窄带路由会收宽带的LSP,但是不会进行计算

ISIS接口开销类型

开销类型为Narrow和Wide两大类;其中Wide和narrow类型下的ISIS不可以实现互通

Narrow                      发送narrow类型开销                接收narrow类型开销

Wide                          发送wide类型开销                   接收wide类型开销

Compatible                发送wide和narrow类型开销    接收wide和narrow类型开销

Narrow-compatible    发送wide和narrow类型开销    接收narrow类型开销

Wide-compatible        发送wide和narrow类型开销   接收wide类型开销

ISIS不同开销类型的范围

窄带(narrow):开销取值范围为 1~63 

宽带(wide):开销取值范围为 1~2^24 

路由开销计算方式

接口手动配置开销--可以全局更改和指定接口下更改

所有ISIS接口默认为窄带,开销为10 ,环回口为0

当接口开销类型改为宽带后,开销默认也为10  环回口为0

ISIS可以配置自动计算接口开销

ospf静默接口的端口处于什么状态_网络_11

ISIS接口开销配置 

华为配置 isis cost 1                         接口下配置;手动配置单个ISIS接口开销为1 circuit-cost 1                      ISIS视图下配置;手动配置所有ISIS接口开销为1 cost-style wide                     ISIS视图下配置;将开销类型改为宽带 bandwidth-reference [100Mbt/s]      ISIS视图下配置;配置参考带宽 auto-cost enable                    ISIS视图下配置;使能自动计算接口的开销值

计算所需TLV

TLV 132   携带携带接口的IPv4地址,用于计算下一跳

窄带

       TLV 2   携带拓扑信息

       TLV 128 携带内部路由信息

       TLV 130 携带外部路由信息

宽带

       TLV 22    携带拓扑信息

       TLV 135 携带路由信息

SPF计算过程

  1. 单区域LSDB同步完成
  2. 生成全网拓扑结构图
  3. 以本节点为根生成最短路径树

ISIS报文封装

ISIS封装在数据链路层

广播——被封装在802.3帧中

P2P——被封装在PPP链路中(PPP链路无MAC地址)

ospf静默接口的端口处于什么状态_网络_12

数据链路层的封装格式

以太网II帧(常见的)

IEEE 802.3帧(BPDU、ISIS就封装在802.3帧中)

PPP

HDLC

ATM等


ISIS静默接口

作用同OSPF的静默接口

ISIS接口配置为静默接口后,此接口会禁止发送和接收协议报文

当用户希望本地ISIS的路由信息不被其他网络中的设备获得,并且本地设备不接受其他设备发布的路由信息时,可以禁止ISIS接口发送与接收协议报文

注意事项

接口静默之后,接口的直连路由可以发布出去

但是Hello报文被阻塞,无法建立邻居关系

配置命令

华为设备配置 int g1/0/0   配置静默接口的前提是此接口加入到ISIS中  isis enable 1  isis silent