An introduction to IS-IS – Part 1

IS-IS is new to the CCIE v5. It’s not something that I have touched on in the past, so let’s jump in and have a play around.

We have a simple topology (using GNS3 ER Alpha 1.0) of four routers connected via a switch:

ISIS simple topology
R1#sh ip int bri | i up
FastEthernet0/0        10.200.1.1      YES manual up                up
Loopback0              1.1.1.1         YES manual up                up
R1#sh cdp neigh | beg Device
Device ID    Local Intrfce     Holdtme    Capability  Platform  Port ID
R2           Fas 0/0            168         R S I     3745      Fas 0/0
R3           Fas 0/0            159         R S I     3745      Fas 0/0
R4           Fas 0/0            152         R S I     3745      Fas 0/0
R1#

R2#sh ip int bri | i up
FastEthernet0/0        10.200.1.2      YES manual up                up
Loopback0              2.2.2.2         YES manual up                up
R2#sh cdp neigh | beg Device
Device ID    Local Intrfce     Holdtme    Capability  Platform  Port ID
R3           Fas 0/0            127         R S I     3745      Fas 0/0
R1           Fas 0/0            154         R S I     3745      Fas 0/0
R4           Fas 0/0            120         R S I     3745      Fas 0/0
R2#

R3#sh ip int bri | i up
FastEthernet0/0        10.200.1.3      YES manual up                up
Loopback0              3.3.3.3         YES manual up                up
R3#sh cdp neigh | beg Device
Device ID    Local Intrfce     Holdtme    Capability  Platform  Port ID
R2           Fas 0/0            168         R S I     3745      Fas 0/0
R1           Fas 0/0            126         R S I     3745      Fas 0/0
R4           Fas 0/0            152         R S I     3745      Fas 0/0
R3#

R4#sh ip int bri | i up
FastEthernet0/0        10.200.1.4      YES manual up                up
Loopback0              4.4.4.4         YES manual up                up
R4#sh cdp neigh | beg Device
Device ID    Local Intrfce     Holdtme    Capability  Platform  Port ID
R2           Fas 0/0            140         R S I     3745      Fas 0/0
R3           Fas 0/0            131         R S I     3745      Fas 0/0
R1           Fas 0/0            158         R S I     3745      Fas 0/0
R4#

We have connectivity between the routers, so we can start configuring IS-IS.

IS-IS is similar to OSFP in that it forms adjacencies and uses different areas, where OSPF has nssa, stub etc which control how routes are passed, or not passed between areas. IS-IS has levels, which follow the same concept. There are three levels, 1, 1-2, and 2. By default a Cisco router will be at level 1-2. A level 1 router will form an adjacency with another level 1 router, or a level 1-2 router. A level 2 router will only form an adjacency with a level 1-2 router, or another level 2 router.

Let’s see this in action, setting R1 as level 1, and leaving the other routers at their default.

We will need to specify the ISIS area under the routing process. The area is referred to as a NET (Network Entity Type), and is formed of an area, system ID, and the selector. The Selector is always 00. The area specifies the AFI (Authority and Format Identifier), for this example we are using 49. The next set of digits are the system ID. For this we are using 0001 followed by the loopback interface IP surrounded by zeros (010.010.010.010 for R1, 020.020.020.020 for R2 etc). The net’s for R1, R2, R3 and R4 will be 49.0001.010.010.010.010.00, 49.0001.020.020.020.020.00, 49.0001.030.030.030.030.00, and 49.0001.040.040.040.040.00 respectively.

The configuration for R1 looks like this:

R1(config)#router isis
R1(config-router)#is-type level-1
R1(config-router)#passive-interface lo0
R1(config-router)#net 49.0001.010.010.010.010.00
R1(config)#int lo0
R1(config-if)#ip router isis
R1(config-if)#int fa0/0
R1(config-if)#ip router isis
R1(config-if)#exit

I am not going to specify an is-type level for R2, R3 or R4 as we want it to take the defaults and see what happens, but the logic and commands are the same (albeit for different net commands).

With our commands in place we can check out our neighbors, and our routing table:

R1#sh isis neigh

System Id     Type Interface  IP Address    State Holdtime Circuit Id
R2            L1   Fa0/0      10.200.1.2    UP    24       R4.02
R3            L1   Fa0/0      10.200.1.3    UP    22       R4.02
R4            L1   Fa0/0      10.200.1.4    UP    8        R4.02
R1#sh ip route | beg Gate
Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     2.0.0.0/32 is subnetted, 1 subnets
i L1    2.2.2.2 [115/20] via 10.200.1.2, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
i L1    3.3.3.3 [115/20] via 10.200.1.3, FastEthernet0/0
     4.0.0.0/32 is subnetted, 1 subnets
i L1    4.4.4.4 [115/10] via 10.200.1.4, FastEthernet0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.200.1.0 is directly connected, FastEthernet0/0
R1#ping 4.4.4.4

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/45/60 ms
R1#

R1 looks good, and we can have a quick look at R3 and see the same results:

R3#sh ip route | beg Gate
Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
i L1    1.1.1.1 [115/10] via 10.200.1.1, FastEthernet0/0
     2.0.0.0/32 is subnetted, 1 subnets
i L1    2.2.2.2 [115/20] via 10.200.1.2, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
C       3.3.3.3 is directly connected, Loopback0
     4.0.0.0/32 is subnetted, 1 subnets
i L1    4.4.4.4 [115/10] via 10.200.1.4, FastEthernet0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.200.1.0 is directly connected, FastEthernet0/0
R3#ping 2.2.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/43/104 ms
R3#

R1 is at our deired level, and the others have defaulted to 1-2

R1#sh clns neighbors

System Id    Interface  SNPA              State  Holdtime  Type Protocol
R2           Fa0/0      c402.3838.0000    Up     27        L1   IS-IS
R3           Fa0/0      c403.0620.0000    Up     29        L1   IS-IS
R4           Fa0/0      c404.59b0.0000    Up     7         L1   IS-IS
R1#

R3#sh clns neighbors

System Id    Interface  SNPA              State  Holdtime  Type Protocol
R1           Fa0/0      c401.2864.0000    Up     25        L1   IS-IS
R2           Fa0/0      c402.3838.0000    Up     27        L1L2 IS-IS
R4           Fa0/0      c404.59b0.0000    Up     8         L1L2 IS-IS
R3#

Let’s change R3’s level to level 2 only and see what happens.

With IS-IS a level 1 router will not receive packets from a level 2 router. It works the other way around though and a Level 2 router will receive level -1 routes, through a level 1-2 router.

R3(config)#router isis
R3(config-router)#is-type ?
  level-1       Act as a station router only
  level-1-2     Act as both a station router and an area router
  level-2-only  Act as an area router only

R3(config-router)#is-type level-2-only
R3(config-router)#exit
R3(config)#exit
R3#

After a few moments for the timers to refresh we can check R1’s routing table, and we would not expect to see any of R3’s routes:

R1#sh ip route | beg Gate
Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     2.0.0.0/32 is subnetted, 1 subnets
i L1    2.2.2.2 [115/20] via 10.200.1.2, FastEthernet0/0
     4.0.0.0/32 is subnetted, 1 subnets
i L1    4.4.4.4 [115/10] via 10.200.1.4, FastEthernet0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.200.1.0 is directly connected, FastEthernet0/0
R1#

That’s exactly what we are expecting. R2 should be able to see R3’s routes though:

R2#sh ip route | beg Gate
Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
i L1    1.1.1.1 [115/10] via 10.200.1.1, FastEthernet0/0
     2.0.0.0/32 is subnetted, 1 subnets
C       2.2.2.2 is directly connected, Loopback0
     3.0.0.0/32 is subnetted, 1 subnets
i L2    3.3.3.3 [115/20] via 10.200.1.3, FastEthernet0/0
     4.0.0.0/32 is subnetted, 1 subnets
i L1    4.4.4.4 [115/10] via 10.200.1.4, FastEthernet0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.200.1.0 is directly connected, FastEthernet0/0
R2#

Perfect. And just to confirm, we will check the adjacencies using the command “sh clns neighbors”:

R2#sh clns neigh

System Id    Interface  SNPA              State  Holdtime  Type Protocol
R1           Fa0/0      c401.2864.0000    Up     26        L1   IS-IS
R3           Fa0/0      c403.0620.0000    Up     25        L2   IS-IS
R4           Fa0/0      c404.59b0.0000    Up     8         L1L2 IS-IS
R2#

R1#sh clns neigh

System Id   Interface  SNPA              State  Holdtime  Type Protocol
R2          Fa0/0      c402.3838.0000    Up     22        L1   IS-IS
R4          Fa0/0      c404.59b0.0000    Up     7         L1   IS-IS
R1#

So R2 can form an adjacency with R3 but R1 cannot. In part 2 we will look at connecting two different areas.