ISIS is a link-state IGP protocol. It gathers routing information from adjacent neighbors and uses the SPF algorithm to determine the best paths to destinations.
I wouldn’t like to focus on the theory because you can find it in many sources.
Let’s configure ISIS protocol based on the following topology:
Configure IP addresses of physical and loopback interfaces on all routers (it is omitted here):
<1> dis ip interface brief
Interface IP Address/Mask Physical Protocol
Ethernet0/0/8 10.0.0.1/30 up up
LoopBack0 1.1.1.1/32 up up(s)
<2> dis ip interface brief
Interface IP Address/Mask Physical Protocol
Ethernet2/0/0 10.0.0.2/30 up up
GigabitEthernet0/0/0 20.0.0.1/30 up up
GigabitEthernet0/0/1 10.0.2.2/30 up up
LoopBack0 2.2.2.2/32 up up(s)
<3> dis ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.2.1/30 up up
GigabitEthernet0/0/1 30.0.0.1/30 up up
LoopBack0 3.3.3.3/32 up up(s)
<4> dis ip interface br
Interface IP Address/Mask Physical Protocol
Ethernet4/0/0 40.0.0.1/30 up up
GigabitEthernet0/0/0 20.0.0.2/30 up up
GigabitEthernet0/0/1 30.0.0.2/30 up up
LoopBack0 4.4.4.4/32 up up(s)
<5> dis ip interface brief
Interface IP Address/Mask Physical Protocol
Ethernet0/0/8 40.0.0.2/30 up up
LoopBack0 5.5.5.5/32 up up(s)
Configure ISIS globally, on loopback and physical interfaces (router 2 as an example):
[2]isis
[2-isis-1]network-entity 10.0020.0200.2002.00
[2]interface LoopBack 0
[2-LoopBack0]isis enable
[2]interface Ethernet2/0/0
[2-Ethernet2/0/0]isis enable
[2]interface GigabitEthernet0/0/0
[2-GigabitEthernet0/0/0]isis enable
[2]interface GigabitEthernet0/0/1
[2-GigabitEthernet0/0/1]isis enable
It should be noted at this point that routers 1, 2 and 3 are in area 10 and routers 4 and 5 in area 20. Additionally you should remember about hierarchical structure of ISIS. In our case router 1 works as level-1, routers 2 and 3 work as level-1-2 (by default) and routers 4 and 5 as level-2. Level-1 is an equivalent of the stub area in OSPF. Level-1 routers have only a defult route to external destinations.
[1]isis
[1-isis-1]is-level level-1
[2]isis
[2-isis-1]is-level level-1-2
[3]isis
[3-isis-1]is-level level-1-2
[4]isis
[4-isis-1]is-level level-2
[5]isis
[5-isis-1]is-level level-2
Let’s verify this configuration:
[1]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0010.0100.1001.00-00* 0x0000000d 0x936 667 84 0/0/0
0020.0200.2002.00-00 0x00000013 0x5d55 705 127 1/0/0
0020.0200.2002.02-00 0x00000009 0xb1e5 705 55 0/0/0
0020.0200.2002.03-00 0x00000009 0xd901 705 55 0/0/0
0030.0300.3003.00-00 0x00000010 0x699b 596 100 1/0/0
0020.0200.2002.02-00
0020.0200.2002 - source ID
02 - pseudonode ID
00 - LSP number
ISIS Level-1 router:
- has the link state information of the local area
- finds the nearest level 1-2 router based on ATT bit of the LSP
- generates a default route through the nearest level-1-2 router to visit the destinations outside this area.
[2]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0010.0100.1001.00-00 0x0000000e 0x737 1030 84 0/0/0
0020.0200.2002.00-00* 0x00000014 0x5b56 1087 127 1/0/0
0020.0200.2002.02-00* 0x0000000a 0xafe6 1087 55 0/0/0
0020.0200.2002.03-00* 0x0000000a 0xd702 1087 55 0/0/0
0030.0300.3003.00-00 0x00000011 0x679c 931 100 1/0/0
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0020.0200.2002.00-00* 0x00000016 0xdb0 1087 163 0/0/0
0020.0200.2002.01-00* 0x0000000a 0x1f56 1086 55 0/0/0
0020.0200.2002.02-00* 0x0000000a 0xafe6 1086 55 0/0/0
0030.0300.3003.00-00 0x00000014 0x6801 930 159 0/0/0
0030.0300.3003.02-00 0x0000000a 0xa48b 930 55 0/0/0
0040.0400.4004.00-00 0x00000010 0x5165 434 138 0/0/0
0040.0400.4004.03-00 0x00000009 0x9435 434 55 0/0/0
0050.0500.5005.00-00 0x0000000d 0xaa58 985 84 0/0/0
ISIS Level-1-2 router:
- forms adjacency with both level-1-2 and level-2 routers
- contains both level-1 and level-2 LSDBs
- sets ATT bit in the level-1 LSP originated by itself
- contains routing information of the whole network.
[4]display isis lsdb
Database information for ISIS(1)
--------------------------------
Level-2 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
-------------------------------------------------------------------------------
0020.0200.2002.00-00 0x00000016 0xdb0 1034 163 0/0/0
0020.0200.2002.01-00 0x0000000a 0x1f56 1034 55 0/0/0
0020.0200.2002.02-00 0x0000000a 0xafe6 1034 55 0/0/0
0030.0300.3003.00-00 0x00000014 0x6801 880 159 0/0/0
0030.0300.3003.02-00 0x0000000a 0xa48b 880 55 0/0/0
0040.0400.4004.00-00* 0x00000010 0x5165 385 138 0/0/0
0040.0400.4004.03-00* 0x00000009 0x9435 385 55 0/0/0
0050.0500.5005.00-00 0x0000000d 0xaa58 936 84 0/0/0
ISIS Level-2 router:
- forms adjacency with both level-2 and level-1-2 routers
- gathers LSPs of all routers in backbone area
- contains all routing information of the whole routing domain.
Let’s look at ISIS routing tables:
[1]dis isis route
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-1 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
0.0.0.0/0 10 NULL Eth0/0/8 10.0.0.2 A/-/-/-
10.0.0.0/30 10 NULL Eth0/0/8 Direct D/-/L/-
20.0.0.0/30 20 NULL Eth0/0/8 10.0.0.2 A/-/-/-
30.0.0.0/30 30 NULL Eth0/0/8 10.0.0.2 A/-/-/-
3.3.3.3/32 20 NULL Eth0/0/8 10.0.0.2 A/-/-/-
2.2.2.2/32 10 NULL Eth0/0/8 10.0.0.2 A/-/-/-
10.0.2.0/30 20 NULL Eth0/0/8 10.0.0.2 A/-/-/-
1.1.1.1/32 0 NULL Loop0 Direct D/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
A default route must exist in the Level-1 routing table and the next hop is a Level-1-2 router.
[2]dis isis route
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-1 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
0.0.0.0/0 10 NULL
10.0.0.0/30 10 NULL Eth2/0/0 Direct D/-/L/-
20.0.0.0/30 10 NULL GE0/0/0 Direct D/-/L/-
30.0.0.0/30 20 NULL GE0/0/1 10.0.2.1 A/-/L/-
3.3.3.3/32 10 NULL GE0/0/1 10.0.2.1 A/-/L/-
2.2.2.2/32 0 NULL Loop0 Direct D/-/L/-
10.0.2.0/30 10 NULL GE0/0/1 Direct D/-/L/-
1.1.1.1/32 10 NULL Eth2/0/0 10.0.0.1 A/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
ISIS(1) Level-2 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.0.0.0/30 10 NULL Eth2/0/0 Direct D/-/L/-
20.0.0.0/30 10 NULL GE0/0/0 Direct D/-/L/-
30.0.0.0/30 20 NULL
40.0.0.0/30 20 NULL GE0/0/0 20.0.0.2 A/-/-/-
3.3.3.3/32 10 NULL
2.2.2.2/32 0 NULL Loop0 Direct D/-/L/-
10.0.2.0/30 10 NULL GE0/0/1 Direct D/-/L/-
5.5.5.5/32 20 NULL GE0/0/0 20.0.0.2 A/-/-/-
1.1.1.1/32 30 NULL
4.4.4.4/32 10 NULL GE0/0/0 20.0.0.2 A/-/-/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
Level-1-2 routers contain both level-1 and level-2 routing tables.
[5]dis isis route
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-2 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.0.0.0/30 30 NULL Eth0/0/8 40.0.0.1 A/-/-/-
20.0.0.0/30 20 NULL Eth0/0/8 40.0.0.1 A/-/-/-
30.0.0.0/30 20 NULL Eth0/0/8 40.0.0.1 A/-/-/-
40.0.0.0/30 10 NULL Eth0/0/8 Direct D/-/L/-
3.3.3.3/32 20 NULL Eth0/0/8 40.0.0.1 A/-/-/-
2.2.2.2/32 20 NULL Eth0/0/8 40.0.0.1 A/-/-/-
10.0.2.0/30 30 NULL Eth0/0/8 40.0.0.1 A/-/-/-
5.5.5.5/32 0 NULL Loop0 Direct D/-/L/-
1.1.1.1/32 30 NULL Eth0/0/8 40.0.0.1 A/-/-/-
4.4.4.4/32 10 NULL Eth0/0/8 40.0.0.1 A/-/-/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
A Level-2 router must have all Level-1 and Level-2 routes. We can see it better in IP routing tables:
[1]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 ISIS-L1 15 10 D 10.0.0.2 Ethernet0/0/8
1.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
2.2.2.2/32 ISIS-L1 15 10 D 10.0.0.2 Ethernet0/0/8
3.3.3.3/32 ISIS-L1 15 20 D 10.0.0.2 Ethernet0/0/8
10.0.0.0/30 Direct 0 0 D 10.0.0.1 Ethernet0/0/8
10.0.0.1/32 Direct 0 0 D 127.0.0.1 Ethernet0/0/8
10.0.0.3/32 Direct 0 0 D 127.0.0.1 Ethernet0/0/8
10.0.2.0/30 ISIS-L1 15 20 D 10.0.0.2 Ethernet0/0/8
20.0.0.0/30 ISIS-L1 15 20 D 10.0.0.2 Ethernet0/0/8
30.0.0.0/30 ISIS-L1 15 30 D 10.0.0.2 Ethernet0/0/8
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
[2]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 20 Routes : 20
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 ISIS-L1 15 10 D 10.0.0.1 Ethernet2/0/0
2.2.2.2/32 Direct 0 0 D 127.0.0.1 LoopBack0
3.3.3.3/32 ISIS-L1 15 10 D 10.0.2.1 GigabitEthernet0/0/1
4.4.4.4/32 ISIS-L2 15 10 D 20.0.0.2 GigabitEthernet0/0/0
5.5.5.5/32 ISIS-L2 15 20 D 20.0.0.2 GigabitEthernet0/0/0
10.0.0.0/30 Direct 0 0 D 10.0.0.2 Ethernet2/0/0
10.0.0.2/32 Direct 0 0 D 127.0.0.1 Ethernet2/0/0
10.0.0.3/32 Direct 0 0 D 127.0.0.1 Ethernet2/0/0
10.0.2.0/30 Direct 0 0 D 10.0.2.2 GigabitEthernet0/0/1
10.0.2.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
10.0.2.3/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
20.0.0.0/30 Direct 0 0 D 20.0.0.1 GigabitEthernet0/0/0
20.0.0.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
20.0.0.3/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
30.0.0.0/30 ISIS-L1 15 20 D 10.0.2.1 GigabitEthernet0/0/1
40.0.0.0/30 ISIS-L2 15 20 D 20.0.0.2 GigabitEthernet0/0/0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
[5]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 ISIS-L2 15 30 D 40.0.0.1 Ethernet0/0/8
2.2.2.2/32 ISIS-L2 15 20 D 40.0.0.1 Ethernet0/0/8
3.3.3.3/32 ISIS-L2 15 20 D 40.0.0.1 Ethernet0/0/8
4.4.4.4/32 ISIS-L2 15 10 D 40.0.0.1 Ethernet0/0/8
5.5.5.5/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.0.0.0/30 ISIS-L2 15 30 D 40.0.0.1 Ethernet0/0/8
10.0.2.0/30 ISIS-L2 15 30 D 40.0.0.1 Ethernet0/0/8
20.0.0.0/30 ISIS-L2 15 20 D 40.0.0.1 Ethernet0/0/8
30.0.0.0/30 ISIS-L2 15 20 D 40.0.0.1 Ethernet0/0/8
40.0.0.0/30 Direct 0 0 D 40.0.0.2 Ethernet0/0/8
40.0.0.2/32 Direct 0 0 D 127.0.0.1 Ethernet0/0/8
40.0.0.3/32 Direct 0 0 D 127.0.0.1 Ethernet0/0/8
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
ISIS cost for all interfaces is 10 by default. It can be changed manually by isis cost command.
Some other usefull maintenance commands:
[1]dis isis peer verbose
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI (priority for DIS election)
-------------------------------------------------------------------------------
0020.0200.2002 Eth0/0/8 0020.0200.2002.03 Up 9s L1 64
MT IDs supported : 0(UP)
Local MT IDs : 0
Area Address(es) : 10
Peer IP Address(es) : 10.0.0.2
Uptime : 03:04:27
Adj Protocol : IPV4
Restart Capable : YES
Suppressed Adj : NO
Peer System Id : 0020.0200.2002
Total Peer(s): 1
[1]display isis interface verbose
Interface information for ISIS(1)
---------------------------------
Interface Id IPV4.State IPV6.State MTU Type DIS
Eth0/0/8 001 Up Down 1497 L1/L2 No/No
Circuit MT State : Standard
Description : HUAWEI, AR Series, Ethernet0/0/8 Interface
SNPA Address : 00e0-fc03-2b68
IP Address : 10.0.0.1
IPV6 Link Local Address :
IPV6 Global Address(es) :
Csnp Timer Value : L1 10 L2 10
Hello Timer Value : L1 10 L2 10
DIS Hello Timer Value : L1 3 L2 3
Hello Multiplier Value : L1 3 L2 3
LSP-Throttle Timer : L12 50
Cost : L1 10 L2 10
Ipv6 Cost : L1 10 L2 10
Priority : L1 64 L2 64
Retransmit Timer Value : L12 5
Bandwidth-Value : Low 100000000 High 0
Static Bfd : NO
Dynamic Bfd : NO
Fast-Sense Rpr : NO
Interface Id IPV4.State IPV6.State MTU Type DIS
Loop0 001 Up Down 1500 L1/L2 --
Circuit MT State : Standard
Circuit Parameters : passive
Description : HUAWEI, AR Series, LoopBack0 Interface
SNPA Address : 0000-0000-0000
IP Address : 1.1.1.1
IPV6 Link Local Address :
IPV6 Global Address(es) :
Csnp Timer Value : L12 10
Hello Timer Value : 10
DIS Hello Timer Value :
Hello Multiplier Value : 3
Cost : L1 0 L2 0
Ipv6 Cost : L1 0 L2 0
Retransmit Timer Value : L12 5
LSP-Throttle Timer : L12 50
Bandwidth-Value : Low 0 High 0
Static Bfd : NO
Dynamic Bfd : NO
Fast-Sense Rpr : NO
[1]dis isis error
Statistics of error packets for ISIS(1)
---------------------------------------
LSP packet errors:
Longer LSP : 0 Smaller LSP : 0
Mismatched Level : 0 Invalid Sysid : 0
Zero Sequence Number : 0 Illegal IS Type : 0
Zero Checksum : 0 Incorrect Checksum : 0
Bad Authentication : 0 Bad Auth Count : 0
More Protocol TLV : 0 Bad Nbr TLV : 0
Bad Extended IS TLV : 0 Bad IF Addr TLV : 0
Bad Reach TLV : 0 Bad Inter Domain TLV : 0
Mismatched Area Id(L1) : 0 Bad TLV Length : 0
Bad Alias TLV : 0 Bad Area TLV : 0
Bad SRLG TLV : 0 Unknown Adjacency : 0
Bad Protocol ID : 0 Bad Version : 0
Zero Lifetime : 0 Bad Ext Reach TLV : 0
Bad TE Router ID TLV : 0 Bad TE Sub TLV : 0
Hello packet errors:
Bad Packet Length : 0 Reserved CircType : 0
Repeated System ID : 0 Bad Circuit Type : 0
Longer packet : 0 More Area Addr : 0
Longer Area Addr : 0 Bad Area Addr TLV : 0
More IF Addr : 0 Bad Formatted IF TLV : 0
More Nbr SNPA(LAN) : 0 Invalid Sysid : 0
Bad TLV Length : 0 Zero HoldingTime : 0
Unusable IP Addr : 0 Repeated IPv4 Addr : 0
Mismatched Area Addr(L1): 0 Mismatched Proto : 0
SNPA Conflicted(LAN) : 0 Mismatched Level : 0
Mismatched Max Area Addr: 0 Bad Authentication : 0
More Auth TLV : 0 3-Way Option Error(P2P) : 0
No Area Addr TLV : 0 Bad Protocol ID : 0
Bad Version : 0 Invalid IPv6 Addr : 0
More IPv6 IF Addr : 0 Duplicate IPv6 Addr : 0
More Optional Checksum : 0 Bad Optional Checksum : 0
--------------------------------------------------------------------
<1> debugging isis adjacency
May 7 2013 16:17:06.629.1-05:13 1 ISIS/6/ISIS:
ISIS-1-ADJ: Use level-1 IIH enconde cache to send IIH, Eth0/0/8.(IS15_2679)
May 7 2013 16:17:06.629.2-05:13 1 ISIS/6/ISIS:
ISIS-1-ADJ: Sending Lan L1 Hello on Eth0/0/8, to SNPA 0180.c200.0014.(IS15_6941)
May 7 2013 16:17:07.319.1-05:13 1 ISIS/6/ISIS:
ISIS-1-IIH: Set L1 holdtime on Eth0/0/8 for NBR 0020.0200.2002 as 9(IS21_968)
In this post I focused only on basic ISIS configuration. This protocol is widely used among ISPs. I will spend more time in the future to show you more functions and ISIS configuration examples.
Read More »