IS-IS Packets
In ISO terminology, packets are referred to as Protocol Data Units (PDUs). There are 3 categories of IS-IS packets:
Each packet category consists of various types of packets; each type is assigned a Type Number. All IS-IS packets are multicast on LAN. For Level-1 ISs, the packets are sent to 01-80-C2-00-00-14, and for Level-2 ISs, the packets are sent to 01-80-C2-00-00-15.
The following table shows IS-IS packet types:
Generic IS-IS Packet Header
Each IS-IS PDU mentioned in above table has an 8-byte header. The following packet capture shows the basic format:
IS-IS Hello PDU
IS-IS Hello packets are used to discover neighbors on a link. Once the neighbors are discovered, they act as keepalive messages to maintain the adjacency. IS-IS standard recommends that IS-IS Hello packets must be padded to within one octet less than the size of the MTU.
There are two types of Hello packets: LAN Hellos and Point-to-point Hellos. LAN Hellos are of further two types- Level-1 and Level-2 LAN Hellos. Both LAN Hellos are identical in format. The following packet capture shows a Level-1 LAN Hello packet.
A Hello message carries other TLVs like-
IS-IS Link State PDU (LSP)
Like OSPF LSA, IS-IS uses LSPs to distribute and exchange routing information between IS-IS nodes. An IS-IS router floods an LSP throughout an area to identify its adjacencies and their states, and address prefixes that it can reach. L1 and L2 LSP packet formats are same.
The following packet capture shows a L1 LSP.
A L1 and L2 LSP packets contain other TLVs apart from Area Address(es), Protocols Supported, IP Interface Address(es) like-
A L2 LSP packet also contains the following TLVs-
IS-IS Sequence Number PDU (SNP)
SNPs are used to maintain IS-IS LSDB by describing some or all of the LSPs in the database. The DIS periodically multicast Complete SNP (CSNP) to describe all the LSPs in the Pseudonode database. L1 CSNPs are sent to all Level-1 ISs multicast address 01-80-C2-00-00-14, while L2 CSNPs are sent to all Level-2 ISs multicast address 01-80-C2-00-00-15.
If there is a large database, all LSPs cannot be described in a single CSNP. Hence, there is Start LSP ID and End LSP ID fields. If a single CSNP carries all the information, the start LSP ID field is set to 0000.0000.0000.00-00 and end LSP ID is set to FFFF.FFFF.FFFF.FF-FF.
The following packet capture shows a L2 CSNP.
A Partial SNP (PSNP) is similar to CSNP except that it describes only some LSPs rather than the entire database. On a P2P network, PSNP is used to acknowledge received LSPs. On a LAN network, PSNP is used to request missing or latest LSPs. There are L1 PSNPs and L2 PSNPs.
Both SNPs carry the following TLV-