IS-IS Packets
Before delving into other concepts behind the IS-IS protocol, you need to understand the fundamentals of IS-IS packets and packet formats. This knowledge aids in the understanding of the capabilities of the protocol and how it works. Connectionless protocols, such as CLNP and IP, transmit data in little chunks known as packets. In ISO 10589, packets are referred to as protocol data units (PDU). This book refers to them as packets in conformity with IP terminology. Multiple packet types are used in connectionless environments, with data and routing information packets being predominant.
This section briefly reviews the types of packets used in the IS-IS protocol and their general format. IS-IS packets have three categories: hello packets, link-state packets, and sequence number packets. Hello packets are used to establish and maintain adjacencies between IS-IS neighbors. Link-state packets are used to distribute routing information between IS-IS nodes. Sequence number packets are used to control distribution of link-state packets, essentially providing mechanisms for synchronization of the distributed Link-State databases on the routers in an IS-IS routing area.
Hello packets have the following subcategories:
LAN Level 1 hello packets (PDU Type 15)
LAN Level 2 hello packets (PDU Type 16)
Point-to-point hello packets (PDU Type 17)
Link-state packets have the following subcategories:
Level 1 link-state packets (PDU Type 18)
Level-2 link-state packets (PDU Type 20)
Finally, sequence number packets have the following subcategories:
Level 1 complete sequence number packets (PDU Type 24)
Level 2 complete sequence number packets (PDU Type 25)
Level 1 partial sequence number packets (PDU Type 26)
Level 2 partial sequence number packets (PDU Type 27)
IS-IS Packet Formats
Each type of IS-IS packet is made up of a header and a number of optional variable-length fields containing specific routing-related information. Each variable-length field has a 1-byte type label that describes the information it contains. The value of the variable-length field is the specific information it contains. Typically, the value is composed of repeated blocks of similar information, the length of which is specified in a 1-byte length field. Type, length, and value form a tuple (TLV), which has become a synonym for variable-length fields. The types of variable-length fields are actually specified as numeric code values. Both current IS-IS specifications, ISO 10589 and RFC 1195, use code in rather than type, but TLV has gained more popularity than CLV in current networking literature because it is used in other protocol specifications.
The different types of IS-IS packets have a slightly different composition of the header fields but the first eight fields, each 1-byte long, are repeated in all packets (see Figure 3-2). Each type of packet then has its own set of additional header fields, which are then followed by TLVs. The additional header fields vary in composition, length, and order of the information. Figure 3-2 shows the generic packet format and the common fields shared by all IS-IS packets.
Figure 3-2 IS-IS header fields.
Intradomain Routing Protocol DiscriminatorThis is the network layer identifier assigned to IS-IS, as specified by ISO 9577. Its value is 10000011 (binary), 0x83 (hexadecimal), or 131 (decimal).
Length IndicatorLength of the packet header fields in octets.
Version/Protocol ID ExtensionCurrently has a value of 1.
ID LengthIndicates length of the source ID (SysID) field. A value of 0 implies a length of 6 bytes; a value of 255 implies 0 length. Other possible values are 1 to 8 for actual length in bytes.
PDU TypeSpecifies the type of IS-IS packet. The three types of IS-IS packets are hello packets, link-state packets (LSPs), and sequence number packets (SNPs).
VersionThe value is 1.
ReservedUnused bits. Set to 0s.
Maximum Area AddressesValues between 1 and 254 for actual number. A value of 0 implies a maximum of three addresses per area.
The Type, Length, and Value attributes of TLV fields have the following meaning:
TypeA number code for a specific TLV. ISO10589 uses the word code in place of type. However, type seems to be preferred in IETF and Cisco literature on IS-IS.
LengthLength specifies the total length of the TLV.
ValueValue indicates the content of the TLV.
All packets in each category of packet type have similar information in the header. The TLV fields are appended to the header to make up the entire packet. Each type of packet supports only specific TLV fields, which might optionally be present in a real packet. This topic is explored further later in this chapter.
Table 3-1 lists TLVs specified in ISO 10589.
Table 3-1 ISO 10589 TLVs
TLV |
Type |
Description |
Area Address |
1 |
Area address(es) of source node |
Intermediate System Neighbors |
2 |
Neighboring routers and pseudonodes (appended to the link-state packet) |
End System Neighbors |
3 |
Connected workstations |
Partition Designated Level 2 Intermediate System |
4 |
Level 2 neighbors that interconnect pieces of a partitioned area with a virtual link over the Level 2 area |
Prefix Neighbors |
5 |
Reachable NSAP prefixes (not including local area prefixes) |
Intermediate System Neighbors |
6 |
LAN-connected routers from which IS-IS hello packets have been received (appended to LAN hello) |
Not Specified |
7 |
|
Padding |
8 |
Padding for hello packets to maximum transmission unit (MTU) |
LSP Entries |
9 |
Link-state information |
Authentication Information |
10 |
Information for IS-IS packet authentication |
Enhancements to the original IS-IS protocol as specified in IS0 10589 are normally achieved through the introduction of new TLV fields. Enhancements, attained in this manner include TLVs introduced by RF1195 for Integrated IS-IS and recent modifications to support Multiprotocol Label Switching (MPLS) Traffic Engineering. Table 3-2 lists the TLVs introduced by RFC 1195. Note that a key strength of the IS-IS protocol design lies in the ease of extension through the introduction of new TLVs rather than new packet types.
Table 3-2 RFC 1195 TLVs
TLV |
Type |
Description |
IP Internal Reachability Information |
128 |
Intradomain IS-IS routes |
Protocols Supported |
129 |
Protocol identifiers of supported network layer protocols (for example, IP and CLNP) |
IP External Reachability Information |
130 |
Routes external to the IS-IS domain, such as those imported from other sources via redistribution |
Interdomain Routing Protocol Information |
131 |
For transparent distribution of interdomain routes |
IP Interface Address |
132 |
IP address of the outgoing interface |
Authentication Information |
133 |
IS-IS packet authentication (similar to Type 10, but doesn't define authentication Type 255) |