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.
thanks for this great article. This helps my work a lot.