ISIS的报文类型
IS-IS报文有以下几种类型:HELLO PDU(Protocol Data Unit)、LSP和SNP。
Hello PDU
Hello报文用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs)。其中,广播网中的Level-1 IS-IS使用Level-1 LAN IIH;广播网中的Level-2 IS-IS使用Level-2 LAN IIH;非广播网络中则使用P2P IIH。它们的报文格式有所不同。P2P IIH中相对于LAN IIH来说,多了一个表示本地链路ID的Local Circuit ID字段,缺少了表示广播网中DIS的优先级的Priority字段以及表示DIS和伪节点System ID的LAN ID字段。
LSP
链路状态报文LSP(Link State PDUs)用于交换链路状态信息。LSP分为两种:Level-1 LSP和Level-2 LSP。Level-1 LSP由Level-1 IS-IS传送,Level-2 LSP由Level-2 IS-IS传送,Level-1-2 IS-IS则可传送以上两种LSP。
LSP报文中主要字段的解释如下:
ATT字段:当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)字段:过载标志位。
设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过过载路由器的路由时不会被采用。即对路由器设置过载位后,其它路由器在进行SPF计算时不会使用这台路由器做转发,只计算该节点上的直连路由。
IS Type字段:用来指明生成此LSP的IS-IS类型是Level-1还是Level-2 IS-IS(01表示Level-1,11表示Level-2)。
SNP
序列号报文SNP(Sequence Number PDUs)通过描述全部或部分数据库中的LSP来同步各LSDB(Link-State DataBase),从而维护LSDB的完整与同步。
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只在第一次建立邻接关系时发送。
PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。
IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组。TLV也称为CLV(Code-Length-Value)。
协议类型:
这是一个ISIS(中间系统到中间系统)协议的数据包。ISIS协议是一种用于IP网络中的内部网关协议,主要用于大型ISP(互联网服务提供商)网络中的路由信息交换。
数据包长度:
数据包的长度为27个字节。这表示整个数据包的规模相对较小,通常用于网络中的控制消息传递。
版本与扩展:
协议版本/ID扩展值为1。这表示使用的是ISIS协议的某个特定版本或扩展,有助于确保网络中的设备能够正确理解和处理数据包。
ID长度:
数据包中的ID长度为6个字节。这个ID通常用于标识发送数据包的设备或系统,确保数据包能够被正确地路由和传递。
PDU类型:
PDU类型为L2 HELLO(16)。HELLO消息是ISIS协议中用于邻居发现和维持的重要消息类型。L2 HELLO表示这是在链路层2级别上发送的HELLO消息,有助于在同一区域内建立和维护邻居关系。
版本与保留字段:
协议版本为1,且保留字段值为0。这表示数据包遵循的是ISIS协议的特定版本,且没有使用任何保留字段的特定值。
最大区域地址数:
数据包中可以包含的最大区域地址数为3。这表示在发送HELLO消息时,设备可以报告它所属的区域地址数量,有助于在ISIS域内正确地进行路由决策。
综上所述,这个抓包展示了一个ISIS协议的数据包,具体是一个L2层的HELLO消息。该消息用于在ISIS域内进行邻居发现和维持,数据包长度为27字节,ID长度为6字节,遵循ISIS协议的特定版本,且可以包含最多3个区域地址。这些信息对于理解ISIS协议在网络中的工作原理以及进行故障排除非常有用。
(2)Hello报文
数据包基本信息:
这是一个IS-IS(Intermediate System to Intermediate System)协议的数据包。IS-IS是用于IP网络中的路由协议,特别是在OSI(Open Systems Interconnection)网络环境中。
电路类型:Level 1和2(0x3),表示这是一个同时支持Level 1和Level 2的IS-IS电路。
保留字段:Ox00,表示该字段未被使用。
SystemID(PDU发送者):0000.0000.0001,表示发送该PDU的IS(Intermediate System)的标识符。
保持定时器:30,表示在等待下一个PDU之前,发送者将保持该PDU的时间。
PDU长度:1497,表示该PDU的总长度。
PDU内容:
优先级:64,表示该PDU的优先级。
保留字段:O,表示该字段未被使用。
SystemID(指定IS):0000.0000.0002.02,表示该PDU是发送给此IS的。
区域地址:t=1, 1=4,表示该PDU包含区域地址信息,且长度为4。
IS邻居:t=6, 1=6,表示该PDU包含IS邻居信息,且长度为6。
IP接口地址:t=132, 1=4,表示该PDU包含IP接口地址信息,且长度为4。
支持的协议:t=129, 1=1,表示该PDU声明支持的协议类型,且长度为1。
重启信号:t=211, 1=3,表示该PDU包含重启信号信息,且长度为3。
多拓扑:t=229, 1=2,表示该PDU包含多拓扑信息,且长度为2。
填充字段:t=8,且多次出现,表示该PDU包含填充字段,用于对齐或填充。
(3)LSP报文
这个抓包信息来自ISIS(中间系统到中间系统)链路状态协议的一个数据单元(PDU),以下是对该抓包的详细分析:
PDU的基本信息:
PDU的长度为86字节。
剩余生命周期为1199,表示这个PDU在网络中存在的时间还有1199个单位时间。
LSP的唯一标识:
LSP-ID为0000.0000.0001.00-00,用于唯一标识这个链路状态协议数据包。
序列号为0x00000009,用于区分同一LSP-ID下的不同数据包版本。
校验和为0xbc7c,且状态为Good,表示数据包在传输过程中没有发生错误。
支持的协议和区域地址:
PDU支持特定的协议,具体协议编号由t=129,1=1表示。
区域地址为49.0123,表示这个PDU属于编号为49.0123的区域。
IS可达性和IP接口地址:
IS可达性信息表明网络中存在其他IS,且这些IS的可达性信息被包含在这个PDU中。
IP接口地址包括1.1.1.1和12.1.1.1,这些IPv4地址用于路由和通信。
IP内部可达性:
IP内部可达性信息表明网络中存在某些IP地址或子网是可达的,这些可达性信息被包含在这个PDU中。
综上所述,这个ISIS LSP PDU包含了网络中的路由信息,包括PDU的基本信息、LSP的唯一标识、Type block字段、支持的协议和区域地址、IS可达性和IP接口地址以及IP内部可达性。这些信息对于网络设备和路由器来说至关重要,因为它们需要这些信息来了解网络的拓扑结构和路由信息,从而进行正确的路由决策。
(4)CSNP报文
从提供的抓包信息来看,这是一个通过IEEE 802.3以太网接口捕获的ISO 10589(中间系统到中间系统,ISIS)数据包。以下是对这个数据包的分析:
协议层次结构:
Frame 34:表示这是捕获的第34个帧。
132 bytes on wire (1056 bits):表示在网络上传输的数据帧总字节数为132字节(1056比特)。
132 bytes captured (1056 bits):表示捕获的数据帧字节数为132字节(1056比特)。
以太网帧:
IEEE 802.3 Ethernet:表示这是一个IEEE 802.3以太网帧。
Logical-Link Control (LLC):表示这是一个逻辑链路控制帧。
ISO 10589 (ISIS):
ISO 10589 ISIS InTRA Domain Routeing Information Exchange Protocol:表示这是一个ISO 10589(中间系统到中间系统,ISIS)协议数据包,用于域内路由信息交换。
ISO 10589 ISIS Complete Sequence Numbers Protocol Data Unit:表示这是一个完整的序列号协议数据单元。
PDU (协议数据单元) 信息:
PDU length: 115:表示协议数据单元的长度为115字节。
Source-ID: 0000.0000.0002.00:表示源ID为0000.0000.0002.00。
Start LSP-ID: 0000.0000.0000.00-00:表示起始LSP(链路状态协议)ID为0000.0000.0000.00-00。
End LSP-ID: ffff.ffff.ffff.ff-ff:表示结束LSP ID为ffff.ffff.ffff.ff-ff。
LSP (链路状态协议) 条目:
LSP entries (t=9, l=80):表示有9个类型的LSP条目,每个条目长度为80字节。
Type: 9:表示LSP条目的类型为9。
Length: 80:表示每个LSP条目的长度为80字节。
具体的LSP条目:
LSP Entry LSP-ID: 0000.0000.0001.00-00:表示一个LSP条目的ID为0000.0000.0001.00-00。
LSP Entry LSP-ID: 0000.0000.0002.00-00:表示一个LSP条目的ID为0000.0000.0002.00-00。
CSNP(Complete Sequence Numbers PDU)
作用:用于同步链路状态数据库(LSDB),由 DIS(指定中间系统) 周期性广播,包含当前区域/域内所有 LSP 的摘要信息12。
应用场景:
新路由器加入网络时,通过接收 CSNP 快速获取全网拓扑。
华为 NetEngine 5000E 等设备通过高效处理 CSNP 保障大规模网络收敛12。
2. LSP(Link-State PDU)
作用:携带路由信息的核心数据单元,描述路由器接口状态、邻居关系和链路开销,泛洪至整个区域/域内12。
关键字段:
LSP-ID:唯一标识符(如 0000.0000.0001.00-00)。
Sequence Number:用于检测新旧 LSP,防止环路。
华为实现:CloudEngine 交换机通过优化 LSP 泛洪机制降低网络负载2。
3. PSNP(Partial Sequence Numbers PDU)
作用:用于请求或确认单个 LSP,仅包含部分 LSP 摘要信息,常见于点对点链路12。
与 CSNP 区别:
CSNP 为周期性广播,PSNP 为按需触发。
华为 NE40E 等设备在点对点链路中优先使用 PSNP 提升效率2。
4. LSDB(Link-State Database)
作用:存储所有收到的 LSP,形成全网拓扑视图,是 SPF(最短路径优先)算法计算路由的基础12。
华为优化:NetEngine 8000 通过分布式 LSDB 设计支持超大规模路由表1。
总结
CSNP 和 PSNP 是 IS-IS 数据库同步的核心控制报文12。
LSP 是拓扑信息载体,通过泛洪机制构建 LSDB12。
关键协作关系
ISIS的报文类型
IS-IS报文有以下几种类型:HELLO PDU(Protocol Data Unit)、LSP和SNP。
举个例子:
CSNP 是目录:
由 DIS 广播,告诉新设备“全网有哪些 LSP”。
PSNP 是借书请求:
新设备通过 PSNP 主动索取缺失的 LSP。
LSP 是书籍内容:
携带实际链路状态信息,用于构建 LSDB。
LSDB 是图书馆:
存储所有 LSP,是路由计算的依据
实验拓扑:
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]undo info-center enable
Info: Information center is disabled.
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 12.1.1.1 24
[R1-GigabitEthernet0/0/0]q
[R1]int L
[R1]int LoopBack 0
[R1-LoopBack0]ip address 1.1.1.1 32
[R1-LoopBack0]q
[R1]isis
[R1-isis-1]network-entity 49.0123.0000.0000.0001.00 //
设置路由器的 System ID 为 49.0123.0000.0000.0001.00。
network-entity:这是 ISIS 配置模式下的一个命令,用于指定一个网络实体标识符(NET)。
49.0123.0000.0000.0001.00:
这是网络实体标识符(NET),通常由以下部分组成:
Area ID: 区域标识符,用于区分不同的 IS-IS 区域。在这个例子中,区域 ID 是 49.0123。
System ID: 系统标识符,用于唯一标识一个 IS-IS 路由器。在这个例子中,系统 ID 是 0000.0000.0001.00。
具体含义
Area ID (49.0123):
这是一个 16 位的值,用于标识 IS-IS 域中的不同区域。每个区域可以看作是一个逻辑子网,区域内的路由器共享相同的拓扑信息。
在这个例子中,49.0123 是区域 ID。
System ID (0000.0000.0001.00):
这是一个 64 位的值,用于唯一标识一个 IS-IS 路由器。它通常是路由器的 MAC 地址或手动配置的标识符。
在这个例子中,0000.0000.0001.00 是系统 ID。
作用
这个命令的作用是将指定的网络实体标识符(NET)添加到当前的 ISIS 配置中。通过这样做,路由器能够识别并与其他具有相同区域 ID 的 IS-IS 路由器进行通信和交换路由信
[R1-isis-1]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]isis enable
[R1-GigabitEthernet0/0/0]q
[R1]int LoopBack 0
[R1-LoopBack0]isis enable //启用 ISIS 路由协议
[R1-LoopBack0]q
[R1]q
<R1>display isis peer
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
-------------------------------------------------------------------------------
0000.0000.0002 GE0/0/0 0000.0000.0002.01 Up 8s L1(L1L2) 64
0000.0000.0002 GE0/0/0 0000.0000.0002.01 Up 8s L2(L1L2) 64
Total Peer(s): 2
路由器维护两个邻接关系,分别为L1和L2,其中参数含义如下:
System Id:描述邻居的系统ID。
Interface:描述通过该路由器的哪个端口与邻居建立邻接关系。
Circuit Id:电路ID。
State:状态为Up。
HoldTime:保持时间为30s,Hello包的间隔时间为10s。
Type:邻居类型。
PRI:邻居选举DIS时的优先级,默认为64。
System ID: 0000.0000.0002,通过接口 GE0/0/0,电路 ID 0000.0000.0002.01,状态是 Up,保持时间 8s,类型为 L1(L1L2),优先级 64。
System ID: 0000.0000.0002,通过接口 GE0/0/0,电路 ID 0000.0000.0002.01,状态是 Up,保持时间 8s,类型为 L2(L1L2),优先级 64。
<R1>display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000004 0x91ad 960 86 0/0/0
0000.0000.0002.00-00 0x00000007 0x6166 1115 113 0/0/0
0000.0000.0002.01-00 0x00000001 0xa4e5 979 55 0/0/0
0000.0000.0002.02-00 0x00000001 0xd5b1 1115 55 0/0/0
0000.0000.0003.00-00 0x00000005 0x7d95 1140 86 0/0/0
Total LSP(s): 5 Total LSP(s): 总共有 5 个 LSP
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
LSPID: 链路状态包标识符,唯一标识一个 LSP。
Seq Num: 序列号,用于检测旧的或重复的 LSP。
Checksum: 校验和,用于验证 LSP 的完整性。
Holdtime: 保持时间,单位为秒,表示 LSP 在被删除前应保持的时间。
Length: LSP 的长度,以字节为单位。
ATT/P/OL: 附加信息标志:
ATT: 是否已连接。
P: 是否处于分区状态。
OL: 是否过载。
*(In TLV): LSP 泄露路由。
*(By LSPID): 自身 LSP。
+-Self LSP(Extended): 扩展的自身 LSP。
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0000.0000.0001.00-00* 0x00000008 0xdc56 1147 122 0/0/0
0000.0000.0002.00-00 0x00000009 0xcdb8 1146 137 0/0/0
0000.0000.0002.01-00 0x00000001 0xa4e5 979 55 0/0/0
0000.0000.0002.02-00 0x00000001 0xd5b1 1115 55 0/0/0
0000.0000.0003.00-00 0x00000008 0x516 1140 122 0/0/0
- Total LSP(s): 5 (Total LSP(s): 总共有 5 个 LSP。)
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
<R1>display isis route
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-1 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
3.3.3.3/32 20 NULL GE0/0/0 12.1.1.2 A/-/L/-
2.2.2.2/32 10 NULL GE0/0/0 12.1.1.2 A/-/L/-
1.1.1.1/32 0 NULL Loop0 Direct D/-/L/-
12.1.1.0/24 10 NULL GE0/0/0 Direct D/-/L/-
23.1.1.0/24 20 NULL GE0/0/0 12.1.1.2 A/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
ISIS(1) Level-2 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
3.3.3.3/32 20 NULL
2.2.2.2/32 10 NULL
1.1.1.1/32 0 NULL Loop0 Direct D/-/L/-
12.1.1.0/24 10 NULL GE0/0/0 Direct D/-/L/-
23.1.1.0/24 20 NULL
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
IPV4 Destination: IPv4 目的地址。
IntCost: 内部成本,即到达目的地的内部度量值。
ExtCost: 外部成本,通常为 NULL,因为这是 Level-1 路由表。
ExitInterface: 出口接口,数据包将通过此接口转发。
NextHop: 下一跳地址。
Flags: 标志位,用于描述路由的状态和属性:
D-Direct:表示直连路由。
A-Added to URT:表示此路由被加入单播路由表。
L-Advertised in LSPS:表示此路由通过LSP发布。
S-IGP Shortcut:表示到达该前缀的路径上存在IGP-Shortcut。
U-Up/Down Bit Set:表示Up/Down比特位。
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]undo info-center enable
Info: Information center is disabled.
[Huawei]sysname R2
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 12.1.1.2 24
[R2-GigabitEthernet0/0/1]q
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 23.1.1.2 24
[R2-GigabitEthernet0/0/0]q
[R2]int L
[R2]int LoopBack 0
[R2-LoopBack0]ip address 2.2.2.2 32
[R2-LoopBack0]q
[R2]isis
[R2-isis-1]network-e
[R2-isis-1]network-entity 49.0123.0000.0000.0002.00
[R2-isis-1]q
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]isis enable
[R2-GigabitEthernet0/0/1]q
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]isis enable
[R2-GigabitEthernet0/0/0]q
[R2]int L
[R2]int LoopBack 0
[R2-LoopBack0]isis enable
[R2-LoopBack0]q
[R2]q
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]undo info-center enable
Info: Information center is disabled.
[Huawei]sysname R3
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 23.1.1.3 24
[R3-GigabitEthernet0/0/1]q
[R3]int L
[R3]int LoopBack 0
[R3-LoopBack0]ip address 3.3.3.3 32
[R3-LoopBack0]q
[R3]isis
[R3-isis-1]network-entity 49.0123.0000.0000.0003.00
[R3-isis-1]q
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]isis enable
[R3-GigabitEthernet0/0/1]q
[R3]int L
[R3]int LoopBack 0
[R3-LoopBack0]isis enable
[R3-LoopBack0]q
[R3]q
实验完成
抓包和拓扑查看分析