IS-IS Routing Protocol Fundamental Explained
Contents
What is ISIS Protocol
- IS-IS is an interior gateway protocol, designed for use within an administrative domain or network.
- IS-IS is a link-state routing protocol, operating by reliably flooding link state information throughout a network of routers: Each IS-IS router independently builds a database of the network’s topology, aggregating the flooded network information. Like the OSPF protocol, IS-IS uses Dijkstra’s algorithm for computing the best path through the network. Packets (datagrams) are then forwarded, based on the computed ideal path, through the network to the destination.
- I/IS-IS runs on top of the Data Link Layer
- The purpose of IS-IS was to make possible the routing of datagrams using the ISO-developed OSI protocol stack called CLNS.
IS-IS was originally devised as a routing protocol for CLNP, but has been extended to include IP routing; the extended version is sometimes referred to as Integrated IS-IS.
Each IS-IS router distributes information about its local state (usable interfaces and reachable neighbors, and the cost of using each interface) to other routers using a Link State PDU (LSP) message. Each router uses the received messages to build up an identical database that describes the topology of the AS.
Address Structure of IS-IS
In OSI, the NSAP is used to locate resources. An NSAP is composed of the Initial Domain Part (IDP) and the Domain Specific Part (DSP). IDP is the counterpart of network ID in an IP address, and DSP is the counterpart of the subnet number and host address in an IP address.
As defined by the ISO, the IDP consists of the Authority and Format Identifier (AFI) and Initial Domain Identifier (IDI). AFI specifies the address assignment mechanism and the address format; the IDI identifies a domain.
Please refer to the following article for more details:
IS-IS Areas and Router Level
ISIS Areas:
In OSPF, any of the router’s interfaces can be assigned to a particular area. The Area definition in IS-IS is different: every single router belongs to an Area (not the interface).
This idea was originated from the initial creation of IS-IS to route Connectionless Network Protocol (CLNP) where the address belongs to a device (Router), whereas in Internet Protocol (IP), the address belongs to the particular interface.
The area ID which a router is part of is included in the Network Entity Title (NET) address, please refer to following guide about NSAP address format.
This will lead us to discuss Router level in IS-IS:
ISIS Router Levels:
- Level 1 (L1) Router:
✅ IS-IS Level-1 router establishes neighbor relationships with Level-1 and Level-1-2 routers in the same area.
✅An IS-IS Level 1 router has the link state information of its own area for all the intra-area topology. L1 is the only router to send L1 Hellos.
✅To route packets to other areas, it uses the closest Level 2 capable (L1/L2) router.
- Level 1-2 (L1/L2) Router:
✅ Neighborship: Level 1-2 router can:
– Establish Level-1 neighbor relationships with the Level-1 and Level-1-2 routers in the same area
– or establish Level-2 neighbor relationships with the Level-2 and Level-1-2 routers in different areas.
✅ L1/L2 router maintains two link state database information and a Shortest Path First (SPF) calculations runs separately for each DB:
– Level 1 link state database
– Level 2 link state database
ISIS Level 1-2 router can be compared to ABR in OSPF.
- Level 2 (L2) Router:
✅ Level-2 router establishes neighbor relationships with the Level-2 and Level-1-2 routers in the same or in different areas.
✅ An IS-IS Level 2 router has the link state information for the intra-area as well as inter-area routing.
Please refer to the following post for Basic IS-IS configuration including multiple Area and routing level:
IS-IS Network Types
IS-IS supports the following types of networks:
- Broadcast network
- Point-to-point (P2P) network
If one end is configured with “isis network point-to-point” and other end is default network type, the hellos are discarded and adjacency does not come up.
✅ Network type must match on both the ends.
Unlike OSPF Protocol, IS-IS does not have other network types like non-broadcast and point-to-multipoint. For each type of network, a different type of IS-IS Hello (IIH) packet is exchanged to establish adjacency:
- On point-to-point networks: point-to-point IIHs are exchanged
- On broadcast networks: Level 1 or Level 2 LAN IIHs are exchanged.
IS-IS Adjacency
IS-IS Hello and Adjacency establishment
IS-IS sends a hello packet out every configured interface to discover IS-IS neighbor routers. The hello packet contains information, such as the authentication, area, and supported protocols, which the receiving interface uses to determine compatibility with the originating interface.
IS-IS packets are multicast on LAN:
- For Level-1 Router, the packets are sent to 01-80-C2-00-00-14
- For Level-2 ISs, the packets are sent to 01-80-C2-00-00-15
IS-IS adjacency can be either broadcast or point-to-point.
- Hello Packet: The IS-IS hello packets (referred to as IIH (IS-IS Hello)) need to be exchanged periodically between 2 routers to establish adjacency. Based on the negotiation, one of them will be selected as DIS (Designated IS) based on Priority field in the IIH.
- On Broadcast network: This hello packet will be sent separately for Level-1 or Level-2. as a result, if two router are both L1/L2 Router, two independent adjacency are formed, for L1 and for L2.
- On Point to point interfaces: one type of Hello packets are sent, and include both L1 and L2 router information.
- On Broadcast network: This hello packet will be sent separately for Level-1 or Level-2. as a result, if two router are both L1/L2 Router, two independent adjacency are formed, for L1 and for L2.
After forming adjacency, router exchange routing information to build the link-state database through link-state update messages (LSPs):
- LSP( link-state packet): This contains the actual route information. This LSP can contain many type–length–values (TLVs).
- CSNP (Complete Sequence Number Protocol): This packet will be sent only by the DIS. By default for every 10 seconds, CSNP packet will be transmitted by DIS. This will contain the list of LSP IDs along with sequence number and checksum.
- PSNP (Partial sequence number PDUs): If the router which receives CSNP packet finds some discrepancy in its own database, it will send an PSNP request asking the DIS to send specific LSP back to it.
The CSNP and PSNP packets control the distribution of LSPs. they serve to synchronize LSDBs between routers in the same area.
Below table illustrate each packet type for IS-IS adjacency and route update for Broadcast and point to point Network 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 | |
CSNP | Level-1
Complete SNP | 24 |
Level-2
Complete SNP | 25 | |
PSNP | Level-1
Partial SNP | 26 |
Level-2
Partial SNP | 27 |
By default, the router sends a periodic LSP refresh every “LSP interval”: 10 minutes and the LSPs remain in the link-state database for “LSP lifetime”: 20 minutes. If the router does not receive an LSP refresh before the end of the LSP lifetime, the router deletes the LSP from the database.
IS-IS Adjacency Requirements
1- For L1 Adjacency, it’s required to have the same Area number.
Note: IS-IS Router level and adjacency
* L1/L2 routers form L1 and L2 adjacencies with each other in their area or another area.
* L2 routers form L2 adjacencies with L2 and L1-L2 routers in their area or another area.
2- Same Authentication is required (if used).
3- The system ID must be unique to each router.
The Hello and Hold timer doesn’t need to match, each router expects the hello packet to be received based on the hello time configured in the neighboring router.
IS-IS Timers
- Hello Timer: By default every 10 seconds
It can be modified for convergence purposes via command: “isis hello-interval x” under the interface configuration mode.
- Hold timer: by default, it’s 3 x Hello timer (30 seconds)
The multiplier (3) can be changed via the command below under the interface configuration:
“isis hello-multiplier y”
Note: IS-IS MTU
If you configure transient mode for hello packets, these hello packets do not include the excess padding used before IS-IS establishes adjacencies. If the MTU value on adjacent routers changes, IS-IS can detect this change and send padded hello packets for a period of time. IS-IS uses this feature to detect mismatched MTU values on adjacent routers.
IS-IS Adjacency States
- Down state: it indicates that there is no Hello packet received from the neighbor during Hold time (default 30 sec)
- Initializing state: it indicates that the Hello packet was received from the neighbor and the neighbor didn’t receive Hello from local router.
You potentially will ask, how do the local router know if the neighbor received Hello or not. simply, its based on “IS Neighbor” field in the ISIS Hello PDU.
- UP state: indicate that both neighbors received ISIS Hello PDU from each other successfully and agreed on the ISIS parameters in Hello PDU.
IS-IS packet format and TLVs
Integrated IS-IS uses TLV parameters to carry information in Link State Packets (LSPs). The TLVs make IS-IS extendable. IS-IS can therefore carry different kinds of information in the LSPs. As defined by ISO 10589, IS-IS supports only the Connectionless Network Protocol (CLNP). However, IS-IS was extended for IP routing in RFC 1195 with the registration of TLV 128 which contains a set of 12-octet fields to carry IP information.
In the IS-IS Protocol Data Unit (PDU), there is a fixed and a variable part of the header. The fixed part of the header contains fields that are always present, and the variable part of the header contains the TLV which permits the flexible encoding of parameters within link state records.
Each IS-IS PDU mentioned in above table has an 8-byte header
Length indicator: Specifies the length of the PDU Header in bytes.
Version: This is set to 1.
ID Length: This indicates System ID field of NSAP addresses.
- 0 indicates a System ID field of 6 bytes. A Cisco router requires the System ID field of 6 bytes.
- 255 indicates a System ID field of 0 bytes.
PDU Type: This field contains the PDU Type Number indicating the type of PDU.
Please refer to the following article which include the ISIS adjacency detailed packet capture:
Reference: