学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)

五、IS-IS报文

1、IS-IS报文格式

IS-IS报文是直接封装在数据链路层的帧结构中的

PDU(Protocol Data Unit,协议数据单元):

报文头(IS-IS Header)

变长字段(Variable Length Fields )。

IS-IS Header:

通用头部(PDU Common Header)

专用头部(PDU Specific Header)

对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别。

2、IS-IS通用头部详解 

PDU可以分为两个部分,报文头和变长字段部分。其中头部又可分为通用头部和专用头部。对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别。

通用头部:所有报文都会存在该头部 并且格式都是一样的。

 

Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,固定为0x83。

Length IndicatorIS-IS头部的长度(包括通用头部和专用头部),以Byte为单位。

Version/Protocol ID Extension:版本/协议标识扩展,固定为0x01。

System ID LengthNSAP地址或NET中System ID区域的长度。值为0时,表示System ID区域的长度为6 Byte。

R(Reserved):保留,固定为0。                    Version固定为0x01。

Max.Areas支持的最大区域个数。设置为1~254的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区域地址数。

3、IS-IS报文类型

类型

全称

备注

IIH(Hello报文)

ISIS Hello PDU

建立和维护邻居关系

LSP(链路状态报文)

Link State PDU

传输链路状态信息

SNP(序列号报文)

Sequence Numbers PDU

描述数据库中的LSP

(1)PDU类型

IS-IS的PDU有4种类型:Hello报文(3),LSP(2),SNP(CSNP(2),PSNP(2))。

类型值

PDU类型

简称

15

Level-1 LAN IS-IS Hello PDU

L1 LAN IIH

16

Level-2 LAN IS-IS Hello PDU

L2 LAN IIH

17

Point-to-Point IS-IS Hello PDU

P2P IIH

18

Level-1 Link State PDU

L1 LSP

20

Level-2 Link State PDU

L2 LSP

24

Level-1 Complete Sequence Numbers PDU

L1 CSNP

25

Level-2 Complete Sequence Numbers PDU

L2 CSNP

26

Level-1 Partial Sequence Numbers PDU

L1 PSNP

27

Level-2 Partial Sequence Numbers PDU

L2 PSNP

(2)Hello报文 (IIH报文(IS-to-IS))

Hello报文主要用于邻居发现,协商参数并建立和维持邻居关系,称为IIH(IS-to-IS Hello PDU)

1)Hello报文分类

根据链路和邻居级别又可以分为三种:

(1)L1 Hello报文(Level-1 IIH)。   用于在广播型链路上建立L1的邻居。

(2)L2 Hello报文(Level-2 IIH)。   用于在广播型链路上建立L2的邻居。

(3)P2P Hello报文(P2P IIH)。      用于在P2P链路上建立L1和L2的邻居。

发送哪种报文是由ISIS中间系统决定的(IS决定,就是路由器自己),通过在ISIS Header中的PDU Type进行标识

IIH描述了形成的是哪种邻居关系,邻居关系实际由ISIS Header中的PDU Type和ISIS Hello的Circuit字段共同决定。

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

Hello报文10s发送一次,邻居失效时间为3倍的发送间隔(30s)

但是当选举DIS后,DIS路由器会10/3s周期性发送Hello报文,非DIS路由器还是10s发送一次

当非DIS路由器在10s没有收到DIS发的Hello报文,则认为DIS失效

当DIS路由器/非DIS路由器在30s没有收到非DIS路由器发送的Hello报文,则认为邻居失效

3)Hello报文详情

IIH报文需要通过填充字段,用于邻居两端协商发送报文的大小。

1)广播多路网络  

广播:LAN IIH组播发送,分为L1、L2两种(Level-1 LAN IIH、Level-2 LAN IIH)。

2)P2P网络   

在P2P网络中,使用P2P IIH(IS-IS Hello)。但是没有表示DIS(虚节点)的相关字段。

 

 

P2P IIH中相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段以及表示DIS和伪节点System ID的LAN ID字段。

(3)LSP链路状态报文

链路状态报文LSP(Link State PDU)用于交换完整的链路状态信息(携带完整信息)。 (类似于OSPF中的LSU报文)

LSP通用报头

1)LSP分类

从报文角度LSP分为两种:

1、Level-1 LSP由Level-1 IS-IS传送,用于描述非骨干区域链路状态表

2、Level-2 LSP由Level-2 IS-IS传送,用于描述骨干区域链路状态表

Level-1-2 IS-IS则可传送以上两种LSP。L1和L2LSP的区别只存在于报文级别上,但是具体的内容没有差别。

从用途角度LSP分为:

1、实节点LSP。相当于OSPF Type1 LSA,每台运行IS-IS协议的路由器都会产生,用于描述自身直连链路状态。

2、伪节点LSP。相当于OSPF Type 2 LSA,广播型链路上由DIS产生,用于描述广播型链路。

2)L1、L2 LSP报文详情

LSP报文中主要字段的解释如下:

ATT字段:用来标识该路由是L1/L2路由器发送的。

当Level-1-2 IS-IS在Level-1区域内传送Level-1 LSP时,如果Level-1 LSP中设置了ATT位,则表示该区域中的Level-1 IS-IS可以通过此Level-1-2 IS-IS通往外部区域。

OL(LSDB Overload)字段:过载标志位。

对路由器设置过载位后,其它路由器在进行SPF计算时不会考虑这台路由器

当路由器内存不足时,系统自动在发送的LSP报文中设置过载标志位

IS Type字段:用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)。

从用途或者说从发布者,LSP报文分为两种:

   实节点LSP:P2P与广播型网络都产生,类似OSPF的1类LSA,每台ISIS路由器都会产生用于描述自身直连的链路状态。

   伪节点LSP:只有广播型网络会产生,类似OSPF的2类LSA(每条广播型链路产生一条)

伪节点LSP相当于OSPF Type 2LSA,广播型链路上由DIS产生,用于描述广播型链路。

在伪节点LSP中,只包含邻接信息而不包含路由信息。

4)LSP包含信息

IS-IS LSP区分

IS-IS协议通过LSP ID唯一区分一条LSP

LSP ID一共8Byte,由三个部分:system-id、伪结点标识符、分片标识符组成

system-id用于标识LSP的产生路由器,类似于OSPF的Advertised Router。

伪节点标识符:用于描述IS-IS路由器的真实链路信息,

当伪节点标识符为0时,代表此LSP为实结点LSP;当伪节点标识符不为0时,代表此LSP为伪结点LSP,此时system-id为链路上DIS的system-id。

分片标识符:用于描述同一态IS-IS路由器产生的不同LSP。

若需要描述的连路由信息很多,一条LSP无法承载时,就会使用此字段进行分片。

LSP ID system-id与伪节点标识符之间使用点号隔开,伪节点标识符和分片标识符之间使用短杠隔开。

 

LSP ID=system id+伪节点标识符-分片标识符

System id标识产生此LSP的路由器(类似于OSPF的Advertised Router)  6字节

伪节点标识符:标识LSP的类型。1字节

00:代表实节点LSP(1类LSA)

非00:代表伪节点LSP(2类LSA)

分片标识符:当LSP携带的内容过多而产生分片,对分片进行的编号。  1字节(当IS-IS要发布的链路状态协议数据报文PDU(Protocol Data Unit)中的信息量太大时,IS-IS路由器将会生成多个LSP分片,用来携带更多的IS-IS信息。)

OSPF报文依靠IP报文来分片,ISIS需要自己分片

设备启用ISIS后,会自动为接口分配一个接口ID(节点标识符)

[Huawei]dis isis interface

Interface information for IsIS(l)

Interface     Id       IPV4.State             IPV6.State    MTU      Type DIS

GE0/0/0       001           UP                     Down     1497 L1/L2    NO/NO

GE0/0/1       002           UP                     Down     1497 L1/L2    NO/NO

(4)DIS(伪节点)

在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS

DIS(designated intermediate system,指定中间系统/伪节点)在广播网络中由DIS创建的一台虚拟路由器。

DIS用来创建和更新伪节点(Pseudonodes),并负责生成伪节点的LSP,用来描述这个网络上有哪些网络设备。

伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。在IS-IS中,伪节点用DIS的System ID和Circuit ID(非0值)标识

DIS在伪节点LSP中通告LAN中的所有邻居。

    LAN中的所有路由器在它们的LSP中通告自己与伪节点的连接性。

在OSPF中DR不会和自己建立邻居,在ISIS中,DIS会和自己建立邻居。DIS类似于一个伪节点。

1)伪节点的作用

   减小路由器LSP的大小

   使路由器LSP更稳定

   使SPF计算更快

2)DIS特点

在广播网络中需要选举DIS,所以在邻居关系建立后路由器会等待两个Hello报文间隔(6s)在进行DIS选举。ISIS中DIS发送Hello时间间隔为10/3秒。(DIS是3s hello时间)

Hello报文中包含Priority字段,Priority的值最大的将被选举为该广播网中的DIS,若优先级相同,接口MAC地址最大的被选举为DIS

在一个LAN中,必须有一个路由器被选举成为DIS选举基于接口优先级DIS的选举是抢占式的

3)DIS的选举规则

Level-1和Level-2的DIS是分别选举的,用户可以为不同级别的DIS选举设置不同的优先级。

DIS的选举规则如下:

1比较接口优先级,大的优先。 默认优先级等于64。

如果所有接口的优先级一样,具有最大的MAC地址(SNPA)的路由器将当选DIS。

SNPA(sub network point of attachment):指的是MAC地址,在帧中继网络中,SNPA是local data link connection identifier(DLCI)

2比较接口mac地址,大的优先。

如果SNPA是一样的,具有最大的system ID的路由器将当选为DIS。

3比较system ID,最大的system ID的路由器优先。

DIS发送Hello PDU的时间间隔是普通路由器的1/3,这样可以确保DIS出现故障时能够被更快速地被发现。

4)IS-IS中DIS与OSPF协议中DR的区别

类比点

ISIS DIS

OSPF DR

选举条件

先比优先级再比MAC地址

先比优先级再比router id

选举优先级

所有优先级都参与选举

优先级为0,不参与选举

选举等待时间

所有优先级都参与选举

40s

hello时间

DIS是3s hello时间

SIS选举只需要6s,两个hello时间

DR是10s或30s hello时间

选举DR需要40s

备份

所有优先级都参与选举

有(BDR)

邻接关系

所有路由器互相都是邻接关系

DR和BDR建立邻接关系

DR Other之间都是邻居关系是2-way关系

抢占性

会抢占,DIS周期性的发送CSNP

不会抢占

作用

周期发送CSNP,保障MA网络LSDB同步

主要为了减少LSA泛洪

5)修改DIS优先级

interface GigabitEthernet0/0/0

ip address 10.1.35.3 255.255.255.0

isis enable 1

isis dis-priority 127 level-2

6)查看非伪节点与伪节点的LSP

(5)SNP序列号报文

序列号报文SNP(Sequence Number PDU)描述全部或部分数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步

1)SNP报文分类

SNP报文可以分为两大类、四小类:

1、CSNP(Complete  Sequence Number PDU,全序列号报文) (类似OSPF的DD报文) 主要用于通告链路状态数据库(LSDB)摘要

又细分为:

   L1 CSNP  L1级别的完全序列号PDU,类似OSPF DD报文。

L2 CSNP  L2级别的完全序列号PDU,类似OSPF DD报文。

2、PSNP(Partial Sequence Number PDU,部分序列号报文) 用于请求和确认链路状态信息

又细分为:

L1 PSNP  L1级别的部分序列号PDU,类似于OSPF的LSR和LSACK。

L2 PSNP  L2级别的部分序列号PDU,类似于OSPF的LSR和LSACK。

2)CSNP报文详情

CSNP报文:主要用于通告链路状态数据库(LSDB)摘要。

包括LSDB中所有LSP的摘要信息,路由器通过交互CSNP来判断是否需要同步LSDB,从而可以在相邻路由器间保持LSDB的同步。

CSNP分为L1和L2两种,用于描述各自的LSDB当中的所有LSP的摘要信息。

CSNP发送间隔:

广播网络(MA)上,CSNP由DIS定期发送(缺省的发送周期为10秒),增加可靠性。

点到点链路(P2P)上,CSNP只发送一次,邻居状态UP后发送一次。

L1、L2 CSNP报文通用字段

CNSP全序列号报文,描述LSDB中全部LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。 (类似OSPF的DD报文,传递的是LSDB里所有的链路信息摘要)

2)PSNP报文详情

PSNP报文:用于请求和确认链路状态信息。

PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。

广播网络(MA)中,当收到LSP时,使用PSNP对收到的LSP进行确认。

PSNP只包含部分LSP的摘要信息(与CSNP不同):

当发现LSDB不同步时,PSNP来请求邻居发送新的LSP

在点到点的网络中,当收到LSP时,使用PSNP对收到的LSP时行确认

PSNP分为L1和L2两种,用于请求LSP和确认作用。

L1、L2 PSNP报文通用字段

PSNP部分序列号报文,PSNP只列举最近收到的一个或多个LSP的序号,能够一次对多个LSP进行确认。当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。(类似OSPF的LSR和LSACK报文)

4、IS-IS常见的TLV

TLV(Type-Length-Value)是一个数据结构,包含以下三个字段类型(TYPE),长度(LENGTH),值(VALUE)。

许多报文都采用TLV,使用TLV结构构建报文的好处是灵活性和扩展性好。采用TLV使得报文的整体结构固定,增加新特点只需要增加新TLV即可。不需要改变整个报文的整体结构。

网络拓扑结构和路由信息用TLV结构表现使得报文的灵活性和扩展性得到了极大的发挥。

使用TLV的作用

使用TLV结构来构建报文,增加灵活性与扩展性。

增加新特点只需要增加新的TLV即可,不需要改变整个报文的整体结构。

(1)TLV的类型

不同的TLV存在于不同的IS-IS PDU报文中

(2)IS-IS路由器开销相关TLV

narrow风格的开销类型和wide风格的开销类型,使用不同的TLV来描述自己的路由信息,IS-IS路由器之间就是通过在TLV上的不同来判断邻居IS-IS路由器所采用的开销风格

在配置IS-IS组网时,要注意尽量使得IS-IS路由器之间开销风格一致,负责IS-IS组网时就容易出现问题。当IS-IS的开销类型与自身不兼容时不影响相互之间IS-IS邻居的建立,也会正常接收邻居的LSP报文并存入自身的LSDB中。但是本身却不计算邻居的路由信息。

1)Narrow类型下使用的TLV:(设备默认模式开销都是10,手工配置接口开销取值范围为1~63)

128号TLV(IP Internal Reachability TLV):用来携带路由域内的IS-IS路由信息

130号TLV(IP External Reachability TLV):用来携带路由域外的IS-IS路由信息

2号TLV(IS Neighbors TLV):携带拓扑信息(邻居信息)

Narrow度量值风格的LSP报文如下:

2)Wide类型下使用的TLV:(设备默认模式开销都是10,手工配置接口开销取值范围是1~16777215)

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

135号TLV(Extended IP Reachability TLV):用来替换原有的IP reachability TLV,携带IS-IS路由信息,它扩展了路由开销值的范围,并可以携带sub TLV。

22号TLV(IS Extended Neighbors TLV):携带拓扑信息(邻居信息)

Wide度量值风格的LSP报文如下:

进程下加入auto-cost enable命令,Narrow模式和Wide模式都会参考接口带宽大小计算开销值,只 是参考准则有少许差异。


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 02:52:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 02:52:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 02:52:04       57 阅读
  4. Python语言-面向对象

    2024-07-10 02:52:04       68 阅读

热门阅读

  1. React面试题之setState的执行机制

    2024-07-10 02:52:04       23 阅读
  2. 如何控制代码质量

    2024-07-10 02:52:04       22 阅读
  3. C++常用类

    2024-07-10 02:52:04       26 阅读
  4. springboot 与 ipv6

    2024-07-10 02:52:04       21 阅读
  5. UI还原度小技巧之缩放

    2024-07-10 02:52:04       27 阅读
  6. 腾讯centos mysql安装

    2024-07-10 02:52:04       21 阅读
  7. 这是你不知道的js函数this指向的十个惊人之处!

    2024-07-10 02:52:04       23 阅读