In ISO terminology, packets are referred to as Protocol Data Units (PDUs). There are 3 categories of IS-IS packets:
  • IS-IS Hello Packets (IIHs): These packets establish and maintain adjacencies between IS-IS neighbors.
  • Link State PDUs (LSPs): These packets are responsible to distribute routing information between IS-IS nodes.
  • Sequence Number PDUs (SNPs): These packets control the distribution of LSPs. SNPs provide mechanism to synchronize LSDBs between routers in the same area.
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:

 Category
 Packet Type
 Type Number
 Hello
 LAN Level-1 Hello
 15
  LAN Level-2 Hello
 16
  Point-to-point Hello
 17
 LSP Level-1 LSP
 18
  Level-2 LSP
 20
 SNP Level-1 Complete SNP
 24
  Level-2 Complete SNP
 25
  Level-1 Partial SNP
 26
  Level-2 Partial SNP
 27


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 Packets - hkdog - CCIERS HKdogs zone

  • Interdomain Routeing Protocol Discriminator: This is a network layer identifier assigned to IS-IS. Its value is 0x83 in hexadecimal.
  • PDU Header Length: Specifies the length of the PDU Header in bytes.
  • Version: This is set to 1.
  • System ID Length: This indicates System ID field of NSAP addresses.
    • 0 indicates a System ID field of 6 bytes. A Cisco IOS router requires the System ID field of 6 bytes, hence, this field will always be set to 0.
    • 255 indicates a System ID field of 0 bytes. 
  • PDU Type: This field contains the PDU Type Number indicating the type of PDU.
  • Version2: This is also set to 1.
  • Maximum Area Addresses: This indicates the number of area addresses permitted for the IS area.
    • 0 indicates the IS only supports three area addresses (by default). 
    • Any number inclusive of 1 and 254 indicates the number of areas allowed.

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.

IS-IS Packets - hkdog - CCIERS HKdogs zone

  • Circuit Type: This indicates the type of router.
    • 01: Level-1
    • 10: Level-2
    • 11: Level-1-2
  • Source ID: Originator of the Hello packet.
  • Holding Timer: Period a neighbor should wait for a Hello before declaring the neighbor dead.
  • PDU Length:  Length of the entire PDU in bytes.
  • Priority: Carries a value between 0 and 127 which is used for DIS (Designated IS) election on a LAN network. The default value is 64.
  • LAN ID: This is the System ID plus the Pseudonode ID.
A Hello message carries other TLVs like-
  • Area Address(es): This TLV contains the area address(es) configured on the router. A router can be configured with multiple area addresses. Cisco IOS supports a maximum of 3 area addresses.
  • IS Neighbor(s): This TLV is used only in LAN Hellos. Level-1 LAN Hellos list L1 neighbors only, and Level-2 LAN Hellos list L2 neighbors only. It carries the MAC address of the neighbors on the LAN.
  • Protocols Supported: This TLV carries the Network Layer Protocol ID (NLPID) of the protocols supported. IP is 0x81.
  • IP Interface Address(es): This TLV contains the IP address of the interface out which the PDU was sent. 
  • Padding: This TLV is used to pad a Hello PDU to atleast its minimum allowed size. Cisco IOS sets all these bits to zero.


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.

IS-IS Packets - hkdog - CCIERS HKdogs zone

  •  PDU Length: Length of the entire PDU in bytes.
  • Remaining Lifetime: Number of seconds before an LSP is considered expired. Cisco IOS uses 20 mins (1200 seconds).
  • LSP ID: It is the System ID, the Pseudonode ID and the LSP number of the LSP.
  • Sequence Number: It is the sequence number of the LSP.
  • Checksum: It is the checksum of the contents of the LSP.
  • Partition Repair (P-bit): This bit is not supported in Cisco IOS. 
  • Attachment (ATT): This is a 4-bit field, however, Cisco IOS uses only 1 bit to indicate if the originating router is attached to more than one areas.
  • Overload (OL) bit: If the originating router is experiencing a memory over-utilization, it will set this bit to 1. The receiving router will then not use this router as the transit.
  • IS Type: This indicates whether the originating router is a L1 or L2.
    • 01- Level-1
    • 11- Level-2
A L1 and L2 LSP packets contain other TLVs apart from Area Address(es), Protocols Supported, IP Interface Address(es) like-
  • IP Internal reachability: This TLV contains the IP addresses/masks within the routing domain that are directly connected to the advertising router. It also includes the metric associated with the prefix. 
  •  IS Reachability: This TLV lists the originating router's IS-IS neighbors (including Pseudonodes) and the metrics of the router's link to each of its neighbors.
A L2 LSP packet also contains the following TLVs-
  •  IP External reachability: This TLV lists the IP addresses/ masks external to the routing domain, which can be reached via one of the originating router's interface. 
  • Inter-domain Routing Protocol Information: This TLV allows L2 LSP to transparently carry information from external routing protocols through IS-IS domain.

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.

IS-IS Packets - hkdog - CCIERS HKdogs zone


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-
  • LSP Entries: This TLV summarizes an LSP by listing its Remaining Lifetime, LSP ID, Sequence Number and Checksum.

IS-IS TLV Codepoints
http://www.iana.org/assignments/isis-tlv-codepoints/isis-tlv-codepoints.xhtml