Introduction to IS-IS

IS-IS is an IGP, link-state routing protocol, similar to OSPF. It forms neighbor adjacencies, has areas, exchanges link-state packets, builds a link-state database and runs the Dijkstra SPF algorithm to find the best path to each destination, which is installed in the routing table.

Back when OSPF and IS-IS were developed, IP wasn’t the dominant protocol that it is today. When people think of OSI they automatically think of the OSI-model but back then, ISO (International Organization for Standardization) also created something similar to IP and UDP called CLNP (Connectionless-mode Network Protocol) and CLNS (Connectionless-mode Network Service).

ISO also uses some different terminology, for example:

  • Router = Intermediate system
  • Host = End system

Unlike OSPF which was developed by the IETF (Internet Engineering Task Force), IS-IS was originally developed by DEC for CLNS, not IP and this is why it’s called IS-IS (Intermediate System – Intermediate System).

Later, IS-IS was adapted so that it could also route IP and is then called integrated IS-IS.

Nowadays, we use IP everywhere so you might wonder why we care about this. When working with IS-IS, you will see some references to CLNP/CLNS here and there. For example, when configuring a router ID (called a Network Entity Title), it has to be configured with the NSAP (Network Service Access Point Address) format. NSAP is similar to an IP address, and it is not automatically configured so we have to understand its format.

IS-IS also rides directly on top of an Ethernet header, using its own header format. It’s not encapsulated in an IP packet like other routing protocols (OSPF and EIGRP) are:

IS-IS PDU Addressing Ethernet

IS-IS is a highly scalable routing protocol, which is why it is used often on large service provider network backbones. In this lesson I will give you an overview of what IS-IS is and how it works.

Areas and Router Roles

IS-IS uses different areas where the entire router sits in an area, not just one of its interfaces like with OSPF. There is no backbone area, the backbone is formed by a string of routers.

There are three types of routers:

  • Level 1 system: this is an intra-area router, it only knows what the local area looks like and will only learn prefixes from its own area. It creates a level 1 link-state database and SPF tree for the area.
  • Level 2 system: this is a backbone router that knows all intra-area and inter-area routes. It creates a level 2 link-state database and SPF tree for the backbone.
  • Level 1-2 system:  this is a router that performs both roles. It creates a separate level 1 and 2 link-state database and two SPF trees, one for each database.
Level 1-2 is the default on Cisco IOS routers.

Similar to other routing protocols like OSPF and EIGRP, IS-IS routers will send hello packets. When you send and receive hello packets, you will form a neighbor adjacency. Routers will only form neighbor adjacencies with routers that use the same level.

Let’s look at some examples to help you visualize this. Let’s start with a single area:

is-is single area level 1 routers adjacency

Above we have two routers in a single area. There is only one area so these two routers are configured as level 1 routers. These two routers will form a level 1 neighbor adjacency. Let’s add a second area:

is-is two areas level 1 2 routers adjacency

Level 1  routers only know what the local area looks like. If a level 1 router wants to reach something outside of its area, it has to use a level 2 router. In each area, we configure one router as a level 1-2 router.

These level 1-2 routers will establish two neighbor adjacencies:

  • Level 1 neighbor adjacency with the router in the same area.
  • Level 2 neighbor adjacency with the router in the other area.

Here is one more example, a larger topology that gives a good overview of the different router levels and adjacencies:

is-is multiple areas adjacencies

Above you see two interesting things:

  • The router in area 4 is a level 2 backbone router. There are no level 1 routers in area 4 so we don’t need a level 1-2 router there.
  • Area 3 has two level 1-2 routers. These routers will form two neighbor adjacencies with each other:
    • Level 1 adjacency
    • Level 2 adjacency

The level two routers form a continuous string of backbone routers:

is-is backbone string

LSPs (Link State Packets)

Let’s talk about how IS-IS exchanges routing information. It uses LSPs (Link State Packet) which is similar to OSPF’s LSAs. In the LSP you will find:

  • One or more prefixes
  • Adjacent neighbors
  • Metric
Don’t confuse the LSP with MPLS’ LSP (Label Switched Path), they use the same acronym.

Let’s take a closer look at how IS-IS uses LSPs to exchange routing information. Let’s start with two routers that are configured to use IS-IS but there is no neighbor adjacency yet:

is-is routers area 12 level 1

Each router will create an LSP (illustrated with the green jigsaw) . In the LSP we find the directly connected networks that are advertised in IS-IS. A few seconds later, these routes become neighbors:

is-is routers area 12 level 1 adjacency

R1 and R2 are in the same area so they will establish a level 1 neighbor adjacency. These routers will flood their LSPs within the area so that everyone knows about all LSPs in the area. The two routers add each others LSP in their database. These routers can now run SPF on their level 1 database and figure out the shortest path to each destination.

IS-IS uses something called the DIS / Pseudonode which is similar to OSPF’s DR/BDR to reduce unneeded flooding.

Let’s say we want to connect area 12 to another area, this means we need a level 2 router. Let’s convert R2 into a level 1-2 router so I can show you what will happen. At this moment, we start with a clean slate so there is no neighbor adjacency between R1 and R2:

is-is routers area 12 level 1-2

R2 now has a second database, the level 2 database. Besides its level 1 database and level 1 LSP, it now also has a level 2 database. It generates a level 2 LSP and all prefixes for interfaces that are directly connected and advertised in IS-IS.

Each IS-IS router only creates a single LSP for each level. This LSP carries multiple prefixes.

A few seconds later, R1 and R2 form a level 1 neighbor adjacency:

is-is routers area 12 level 1-2 adjacency

Once again, R1 and R2 will exchange their level 1 LSPs. R2 receives the level 1 LSP from R1 and it copies new prefixes from its level 1 database to the LSP in the level 2 database. In my example, that is 1.1.1.1/32 from R1.

Let’s continue this story. I will add a second area now, similar to area 12. There is no connection yet between the two areas but the routers have formed a level 1 neighbor adjacency within the area:

is-is routers two areas level 1-2 adjacency

As you can see above, R4 has learned about the 3.3.3.3/32 prefix from R3 and copies this prefix from the LSP in the level 1 database to its own LSP in the level 2 database.

Now we will create a connection between the two areas and enable IS-IS on this link Something exciting will happen:

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Full Access to our 651 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

567 Sign Ups in the last 30 days

satisfaction-guaranteed
100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!

Forum Replies

  1. Dear Rene,

    Great stuff to read.
    Can you please bit more elaborate CSNP and PSNP with examples its good if you capture it in Wireshare as well.

    Thanks
    Waqar

  2. Hi Rene,
    I have little bit confusion about CLNP (Connectionless-mode Network Protocol) and CLNS (Connectionless-mode Network Service). Could you please help me to understand it more easily ? Thx

    br//zaman

  3. Hello Mohammad.

    Think about the CSNP as a packet that contains all of the LSPs from the current database. If this packet is sent to another router, the recipient will have a complete list of LSPs, in other words, it will have the sending router’s current view of the network. These packets are similar to OSPF database description packets.

    The PSNP is a partial list of LSPs. This is sent as a response to a specific request for specific information (for specific prefixes). This can be used to request an LSP (or LSPs) and also to acknowledge the recipt of an LS

    ... Continue reading in our forum

  4. Hello Mohammad Zaman

    CLNS is the OSI based service that provides connectionless network services, that is, connectivity between nodes. It essentially provides capabilities in an OSI network environment similar to those provided by IP and UDP together. UDP is mentioned here and not TCP because CLNS is strictly a best-effort service. CLNP is the actual protocol that is used to implement it.

    ISO (the governing body that defines these standards) makes a distiction between the service offered to higher layers (CLNS) and the protocol used to implement it (CLNP).

    ... Continue reading in our forum

  5. Thanks Rene for answer,

    The AFI or NSEL must be 1 byte in binary and it’s represented by two decimal digit in NETs format, and we can have 255 as maximum decimal number from 1 byte, and with two decimal digit we can have 99 as maximum number, so my question is why it’s represented by two digit not three so we can reach maximum number with 1 byte (255) ??

20 more replies! Ask a question or join the discussion by visiting our Community Forum