
IS-IS路由协议使用了4大类报文:IIH报文,LSP报文,PSNP,CSNP报文,还有9种具体的报文。
IIH用来维护和建立邻居关系,LSP用于交换链路状态信息,SNP通过描述全部或部分链路数据库中的LSP同步LSDB。
每种报文的通用报头(前8字节)是一样的,但是专用报头根据报文的不同而不同,每种报文所支持的TLV也不同

报文头部
每种报文都有一个特定的类型号,在IS-IS的报文头部中有一个报文类型字段(PDU type),此字段中的所包含的信息就是IS-IS报文的类型号,路由器就是以此来进行识别。


只要记住PDU类型就好,路由器通过识别类型号来识别收到的报文类型,就比如我上方收到的是15那么就是L1的IIH包

LAN IIH报文格式
PS:L1和L2的IIH报文格式是相同的,只是报文头部的PUD类型值不同

Reserved:保留的6比特位
Circuit type电路类型:01表示L1路由器,10表示L2路由器,11表示L1-2路 由器,00被忽略
Source ID(源ID):发送IIH报文的路由系统的ID
保持时间(Holding time):在此时间内没有收到邻居发来的IIH包,则终止已建立的邻居关系,isis接口默认发送IIH报文时间为10秒,isis保持时间为IIH报文间隔的3倍
PDU length(PDU长度):整个报文的长度
Priority(优先级):接口DIS优先级
LAN ID(局域网ID):由DIS的SysID与1字节的伪节点ID组成,LAN ID用来区分同一台DIS上的不同LAN
Variable Length Fielder(可变长度域):报文中由多个TLV3元组成

IIH点到点报文格式

大部分与LAN IIH报文格式相同,但在点到点IIH报文中没有优先级,因为点到点链路上不需要选举DIS
Local Circuit ID(本地电路ID):替代了LAN ID字段 ,是由发送IIH报文的路由器分配给这条电路的标识

LSP

PDULength(PDU长度)
Remaining Lifetime(剩余生存时间):死亡时间,
LSP ID:用来标识不同的LSP和生成LSP的源路由器,LSP路由包括3部分“系统ID(6字节)”,“伪节点标识符(1字节)”,“分片标识符(1字节)”
Sequency Number(序列号):只要是让路由器能够识别一个LSP的新旧版本
CheckSum(校验和):用于检测被破坏的LSP或者还没有从网络中清除的过期LSP
P(区域修复):仅与L2 LSP有关,表示路由器是否支持修复区域分割,当P位被设置为1时,表示始发路由支持自动修复区域分段的情况
ATT(区域关联):一般由L1/2路由器产生,用于控制L1区域对L2区域的路由学习情况,L1区域中的路由器收到来自L1-2路由器发送来的ATT置位时,会创建一条指向L1-2的默认路由,以便数据可以被路由到其他区域
OL(超载):过载标志位,表示内存不足从而导致LSDB不完整,如果被置位,就表示路由器发生了超载,并且不会在网络中进行防洪,其他路由器收到设置了OL位的LSP时,在计算路径时不会考虑此LSP
IS Type(LS 类型):生成的LSP的路由器的级别,用来指名是L1的路由器还是L2的路由器,也表示收到次LSP的路由放在L1 LSDB还是L2 LSDB中,01(L1),11(L2)

SNP
SNP报文分为CSNP和PSNP两者都包含本地LSDB中的LSP摘要信息,其中,CSNP包含所有的LSP摘要信息,PSNP只列举了最近收到的一个或多个LSP的序号,它能对一个或多个LSP进行确认,当发现LSDB不同步时,也用PSNP报文来请求邻居发送新的LSP