首页 > 其他分享 >路由协议ISIS第3篇---报文结构

路由协议ISIS第3篇---报文结构

时间:2022-12-29 19:13:28浏览次数:42  
标签:ISIS Level 报文 ID --- LSP PDU 路由器

ISIS报文结构


因为IS-IS协议是基于链路层的,所以IS-IS报文直接封装在链路层报文中。所有的IS-IS报文由三部分组成:IS-IS通用头,PDU固定专用头和PDU TLV,其中IS-IS通用头是8个字节,这部分所有的IS-IS报文都包含;PDU固定专用头由不同的PDU决定(这点与OSPF类似),不同类型的PDU长度不一致,详见各类PDU的报文结构;PDU TLV是变化的,由不同PDU携带的TLV决定。

IS-IS通用头格式
所有的PDU都有相同的通用头部,通用头部的格式如下:

Intra-domain Routing Protocol Discriminator: 用于标识网络层协议数据单元,在IS-IS中,该字段值固定为0x83;
Length Indicator: 标识固定头部的长度。固定头部长度由两部分组成,IS-IS通用头和PDU固定头;
Version/Protocol ID Extension: 固定是1;
ID Length: 标识system id的长度;

  • 0 表示system ID长度是6个字节
  • 255 表示system ID的长度是0
  • 1~8 ID的长度

PDU type: 用来标识PDU类型,IS-IS PDU可以分为3大类:IIH、LSP和SNP,详细如下:

IS-IS PDU 报文类型 类型号 全称 作用
IIH 15 Level 1 LAN IS to IS Hello PDU 在广播网络上发现、保活层一邻居
16 Level 2 LAN IS to IS Hello PDU 在广播网络上发现、保活层二邻居
17 Point-to-Point IS to IS Hello PDU 在点对点网络上发现、保活层一、层二邻居
LSP 18 Level 1 Link State PDU 在层一区域内发布路由信息
20 Level 2 Link State PDU 在层二区域内发布路由信息
SNP 24 Level 1 Complete Sequence Numbers PDU 向层一邻居通告自己数据库缩略描述信息
25 Level 2 Complete Sequence Numbers PDU 向层二邻居通告自己数据库缩略描述信息
26 Level 1 Partial Sequence Numbers PDU 向层一邻居请求或确认LSP报文
27 Level 2 Partial Sequence Numbers PDU 向层二邻居请求或确认LSP报文

Version: 固定是1;
Maximum Area Address: 最大区域地址数,目前该字段固定是0,表示最多支持3个区域地址。

Hello

在IS-IS中也称为IIH(is-is hello),用于建立和维护邻居关系。有Level-1 IIH/Level-2 IIH/P2P IIH三种,三种PDU的专用头部都存在一些区别。
LAN IIH的报文结构如下:

reserved/circuit type:高位的6bit保留,低位的2bit表示路由器的类型(01表示Level-1,10表示Level-2,11表示Level-1-2);
source ID:发出hello报文的路由器的systemID;
holding time:保持时间,在此时间内没有收到邻居发来的hello报文则中止已经建立的邻居关系;
PDU length:PDU的总长度,单位是字节,指包含通用头,PDU专属固定头和TLV可变部分的总长度;
priority:选举DIS的优先级,越大越优;
LAN ID:包括DIS的systemID和一字节的伪节点。

P2P IIH的报文结构:

与LAN IIH的区别是没有了priority和LAN ID,而多了local circuit ID。表示的是本地链路ID。

LSP

用于交换链路状态信息,Level-1和Level-2 LSP报文结构是一样的,如下:

PDU length:PDU的总长度,同hello报文里面的长度一样;
remaining lifetime:LSP的生存时间,以秒为单位;
LSP ID:由三部分组成,systemID、伪节点ID、LSP分片后的编号(一个字节);
sequence number:LSP的序列号;
P:partition repair,1bit,仅与Level-2 LSP有关,表示路由器是否支持自动修复区域分割;
ATT:attachment,4bit,由Level-1-2路由器产生,用来指明始发路由器是否与其他区域相连,虽然此标志也存在于Level-1和Level-2的LSP中,但实际上只与Level-1-2有关,表明相连区域所使用的度量方式。从右到左这4位分别表示:

  • 第4位,缺省度量;
  • 第5位,时延度量;
  • 第6位,代价度量;
  • 第7位,差错度量。

OL:LSDB overload,1bit,过载标志位,设置了过载标志位的LSP虽然还是会在网络中扩散,但是在计算超载路由器的路由时不会采用。也就是说该路由器设置了过载位之后,其他的路由器进行SPF计算的时候不会考虑这台路由器。当路由器内存不足时,系统会自动发送过载位置1的LSP。
IS type:2bit,生成LSP的路由器的类型(01表示Level-1,11表示Level-2)。

SNP

CSNP

是SNP(sequence number PDU)的一种,SNP用来描述全部或者部分数据库的LSP来同步个LSDB,从而维护LSDB。
CSNP包含LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。在广播网络上,CSNP由DIS定期发送;在P2P链路上,CSNP只在第一次建立邻居关系的时候发送。
报文结构如下

source ID:发出SNP报文的路由器的system ID;
start LSP ID:CSNP报文中第一个LSP的ID值;
end LSP ID:CSNP报文中最后一个LSP的ID值。

PSNP

SNP报文的另外一种就是PSNP,它只列举最近收到的一个或者多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。和CSNP一样,PSNP在报头中利用LSP ID,sequence number,remaining lifetime,LSP checksum来描述LSP。它的主要功能:

  • 在点到点链路上路由器用来相互交换作为ACK应答以确认收到某个LSP;
  • 用来请求发送最新的LSP,当路由器从邻近接收到CSNP时,注意到CSNP丢失了部分数据库(或者自己的比较旧),路由器发送PSNP来请求最新的LSP;
    报文结构

source ID:发出SNP报文的路由器的system ID;

TLV

以上是IS-IS报文结构中固定的部分,除了固定的部分,每个报文还会携带TLV传递信息。
而且IS-IS协议规定,对于不能识别的TLV的动作是忽略,而不是丢弃。
IS-IS定义的TLV类型及作用表:

TLV Code 名称 所应用的PDU类型 作用
1 Area Addresses IIH、LSP
2 IS Neighbors(LSP) LSP
4 Partition Designated Level2 IS L2 LSP
6 IS Neighbors(MAC Address) LAN IIH
7 IS Neighbors(SNPA Address) LAN IIH
8 Padding IIH 填充
9 LSP Entries SNP LSP摘要信息
10 Authentication Information IIH、LSP、SNP
128 IP Internal Reachability Information LSP 表示内部路由信息
129 Protocols Supported IIH、LSP 表示支持的网络协议NLPID(Network Layer Protocol Identifiers) ipv4-0xcc ipv6-0x8e
130 IP External Reachability Information L2 LSP 表示外部路由信息,因此只有L2携带,格式同内部是一样的。
131 Inter-Domain Routing Protocol Information L2 LSP
132 IP Interface Address IIH、LSP 表示接口的IP地址

标签:ISIS,Level,报文,ID,---,LSP,PDU,路由器
From: https://www.cnblogs.com/haixiaohai/p/16992848.html

相关文章