isis报文格式
IS-IS的PDU格式
1. PDU头格式
IS-IS报文是直接封装在数据链路层的帧结构中的。PDU(Protocol Data Unit,协议数据单元)可以分为两个部分,报文头和变长字段部分。其中报文头又可分为通用报头和专用报头。对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别,如图1-5所示。
图1-5 PDU格式
2. 通用报头格式
所有的PDU都有相同的通用报头格式,如图1-6所示。
图1-6 PDU头格式
主要字段的解释如下:
· Intradomain Routing Protocol Discriminator(域内路由协议鉴别符):设置为0x83。
· Length Indicator(长度标识符):PDU头部的长度(包括通用报头和专用报头),以字节为单位。
· Version/Protocol ID Extension(版本/协议标识扩展):设置为1(0x01)。
· ID Length(标识长度):NSAP地址和NET的ID长度。
· R(Reserved,保留):设置为0。
· PDU Type(PDU类型):详细信息请参考表1-1。
· Version(版本):设置为1(0x01)。
· Maximum Area Address(最大区域地址数):支持的最大区域个数。
表1-1 PDU类型对应关系表
类型值 |
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 |
3. Hello
Hello报文用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs)。其中,广播网中的Level-1路由器使用Level-1 LAN IIH,广播网中的Level-2路由器使用Level-2 LAN IIH;点到点网络中的路由器则使用P2P IIH。
它们的报文格式有所不同。广播网中的Hello报文格式如图1-7所示(浅蓝色部分是通用报文头)。
主要字段的解释如下:
· Reserved/Circuit Type:高位的6比特保留,值为0。低位的2比特表示路由器的类型(00保留,01表示L1,10表示L2,11表示L1/2)。
· Source ID:发送Hello报文的路由器的System ID。
· Holding Time:保持时间。在此时间内如果没有收到邻居发来的Hello报文,则中止已建立的邻居关系。
· PDU Length:PDU的总长度,以字节为单位。
· Priority:选举DIS的优先级。
· LAN ID:包括System ID和一字节的伪节点ID。
点到点网络中的Hello报文格式如图1-8所示(浅蓝色部分是通用报文头)。
从图中可以看出,P2P IIH中的多数字段与LAN IIH相同。不同的是没有Priority和LAN ID字段,而多了一个Local Circuit ID字段,表示本地链路ID。
4. LSP报文格式
LSP用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP。Level-1路由器传送Level-1 LSP,Level-2路由器传送Level-2 LSP,Level-1-2路由器则可传送以上两种LSP。
两类LSP有相同的报文格式,如图1-9所示(浅蓝色部分是通用报文头)。
主要字段的解释如下:
· PDU Length:PDU的总长度,以字节为单位。
· Remaining Lifetime:LSP的存活时间,以秒为单位。
· LSP ID:由三部分组成,System ID、伪节点ID(一字节)和LSP的分片号(一字节)。
· Sequence Number:LSP的***。
· Checksum:LSP的校验和。
· P(Partition):分区位。仅与L2 LSP有关,表示路由器是否支持自动修复区域分割。
· ATT(Attach):连接位。由L1/L2路由器产生,但仅与L1 LSP有关,表示产生此LSP的路由器(L1/L2路由器)与多个区域相连接。
· OL(Overload):过载标志位。表示本路由器因内存不足而导致LSDB不完整。其它路由器在得知这一信息后,就不会再利用这台路由器转发需要经过它传送的数据流,但到此路由器直连地址的报文仍然可以被转发。如图1-10所示,假设正常情况下Router A到Router C的报文都是经过Router B转发,但如果Router B的OL位置1,则Router A会认为Router B的路由不完整,从而将报文通过Router D、Router E转发给Router C,但到Router B直连地址的报文不受影响。
· IS Type:生成LSP的路由器的类型。
5. SNP格式
SNP(Sequence Number PDUs,时序报文)用于确认邻居之间最新接收的LSP,作用类似于确认(Acknowledge)报文,但更有效。
SNP包括CSNP(Complete SNP,全时序报文)和PSNP(Partial SNP,部分时序报文),进一步又可分为Level-1 CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP。
CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB的同步。在广播网络上,CSNP由DIS定期发送(缺省的发送周期为10秒);在点到点链路上,CSNP在邻居关系建立时会发送,只发送一次。
CSNP的报文格式如图1-11所示(浅蓝色部分是通用报文头)。
PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认。当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。
PSNP的报文格式如图1-12所示:
6. CLV
PDU中的变长字段部分是多个CLV(Code-Length-Value)三元组。其格式如图1-13所示:
不同PDU类型所包含的CLV是不同的,如表1-2所示。
表1-2 PDU类型和包含的CLV名称
CLV Code |
名称 |
所应用的PDU类型 |
1 |
Area Addresses |
IIH、LSP |
2 |
IS Neighbors(LSP) |
LSP |
4 |
Partition Designated Level-2 IS |
L2 LSP |
6 |
IS Neighbors(MAC Address) |
LAN IIH |
7 |
IS Neighbors(SNPA Address) |
LAN IIH |
8 |
Padding |
IIH |
9 |
LSP Entries |
SNP |
10 |
Authentication Information |
IIH、LSP、SNP |
128 |
IP Internal Reachability Information |
LSP |
129 |
Protocols Supported |
IIH、LSP |
130 |
IP External Reachability Information |
L2 LSP |
131 |
Inter-Domain Routing Protocol Information |
L2 LSP |
132 |
IP Interface Address |
IIH、LSP |
其中,Code值从1到10的CLV在ISO 10589中定义(有2类未在上表中列出),其它几种CLV在RFC 1195中定义。
参考:H3C官网
获取更多学习资料,欢迎加入技术讨论群:662736393
如有问题,可私信或联系QQ:167748928
如果你看到了这里,百哥想请你帮个小忙:
1.帮我点赞,喜欢,收藏三连,方便你最快找到百哥,也让更多的人真正爱上ICT技术,学好ICT技术
2.关注百哥,这是一个会陪你至少10年的技术号,定期分享ICT技术。