Lesson Contents
IS-IS only supports two network types:
- Broadcast
- Point-to-point
That’s it…much easier compared to OSPF with its different broadcast and multipoint network types.
It is possible to run IS-IS over frame-relay but there are some quirks. In this lesson, I’ll show you how to run it using a hub and spoke topology:
Above we have three routers. R1 is our hub, R2 and R3 are the spoke routers.
Configuration
If we want to ping from one router to another, we have to add some frame-relay maps (if Inverse ARP is disabled). Something like this:
R1(config)#interface Serial 0/0
R1(config-if)#frame-relay map ip 192.168.123.2 102 broadcast
R1(config-if)#frame-relay map ip 192.168.123.3 103 broadcast
R2(config)#interface Serial 0/0
R2(config-if)#frame-relay map ip 192.168.123.1 201
R2(config-if)#frame-relay map ip 192.168.123.3 201
R3(config)#interface Serial 0/0
R3(config-if)#frame-relay map ip 192.168.123.1 301
R3(config-if)#frame-relay map ip 192.168.123.2 301
This allows every router to ping each other, the broadcast parameter on the hub (R1) allows us to replicate multicast traffic over our PVCs. This allows you to run a routing protocol like OSPF or EIGRP over your frame-relay network.
This configuration, however, won’t work for IS-IS. Why? Because IS-IS doesn’t use IP as a transport protocol. It uses CLNS.
To make this work, we need to add frame-relay maps for CLNS. Here’s how:
R1(config)#interface Serial 0/0
R1(config-if)#frame-relay map clns 102 broadcast
R1(config-if)#frame-relay map clns 103 broadcast
R2(config)#interface Serial 0/0
R2(config-if)#frame-relay map clns 201 broadcast
R3(config)#interface Serial 0/0
R3(config-if)#frame-relay map clns 301 broadcast
For each PVC, we add frame-relay maps and it’s important to add the broadcast parameter on all routers. IS-IS uses the multicast “all level-1” or “all level-2” routers destination address so without this parameter, nothing will be forwarded.
The other thing we have to do is to make sure that the hub router is our DIS. There is no direct connectivity between the spoke routers so if one spoke router gets elected as the DIS, the other spoke routers won’t be able to receive information from the pseudonode.
We can achieve this by setting the priority of the hub router to a higher value:
R1(config)#interface Serial 0/0
R1(config-if)#isis priority 100
Everything is in place. The last thing to do is to enable IS-IS. Let’s start with R1:
R1(config)#router isis
R1(config-router)#net 49.0123.0000.0000.0001.00
R1(config-router)#log-adjacency-changes
R1(config)#interface Serial 0/0
R1(config-if)#ip router isis
R1(config)#interface Loopback 0
R1(config-if)#ip router isis
Here’s R2:
R2(config)#router isis
R2(config-router)#net 49.0123.0000.0000.0002.00
R2(config-router)#log-adjacency-changes
R2(config-router)#interface Serial 0/0
R2(config-if)#ip router isis
R2(config)#interface Loopback 0
R2(config-if)#ip router isis
And R3:
R3(config)#router isis
R3(config-router)#net 49.0123.0000.0000.0003.00
R3(config-router)#log-adjacency-changes
R3(config-router)#interface Serial 0/0
R3(config-if)#ip router isis
R3(config)#interface Loopback 0
R3(config-if)#ip router isis
That’s all we have to configure.
Verification
Let’s verify our work. When you are troubleshooting this, it can be useful to enable IS-IS adjacency debugging. This will tell you if hello packets are sent/received or if they are dropped because your frame-relay maps are incorrect:
R1#debug isis adj-packets Serial 0/0
IS-IS Adjacency related packets debugging is on
On our hub, here’s what you will see:
R1#
ISIS-Adj: Sending L1 LAN IIH on Serial0/0, length 1500
ISIS-Adj: Sending L2 LAN IIH on Serial0/0, length 1500
ISIS-Adj: Sending L1 LAN IIH on Serial0/0, length 1500
ISIS-Adj: Sending L2 LAN IIH on Serial0/0, length 1500
ISIS-Adj: Rec L1 IIH from DLCI 102 (Serial0/0), cir type L1L2, cir id 0000.0000.0001.01, length 1500
ISIS-Adj: Rec L2 IIH from DLCI 102 (Serial0/0), cir type L1L2, cir id 0000.0000.0001.01, length 1500
ISIS-Adj: Rec L1 IIH from DLCI 103 (Serial0/0), cir type L1L2, cir id 0000.0000.0001.01, length 1500
ISIS-Adj: Rec L2 IIH from DLCI 103 (Serial0/0), cir type L1L2, cir id 0000.0000.0001.01, length 1500
Above we see that we are sending and receiving hello packets. Let’s check if we have neighbors:
R1#show clns neighbors
System Id Interface SNPA State Holdtime Type Protocol
R2 Se0/0 DLCI 102 Up 24 L1L2 IS-IS
R3 Se0/0 DLCI 103 Up 28 L1L2 IS-IS
R2#show clns neighbors
System Id Interface SNPA State Holdtime Type Protocol
R1 Se0/0 DLCI 201 Up 8 L1L2 IS-IS
R3#show clns neighbors
System Id Interface SNPA State Holdtime Type Protocol
R1 Se0/0 DLCI 301 Up 9 L1L2 IS-IS
Both spoke routers have a neighbor adjacency with the hub router. Let’s check the routing tables:
R1#show ip route isis
2.0.0.0/32 is subnetted, 1 subnets
i L1 2.2.2.2 [115/20] via 192.168.123.2, 01:07:04, Serial0/0
3.0.0.0/32 is subnetted, 1 subnets
i L1 3.3.3.3 [115/20] via 192.168.123.3, 00:34:03, Serial0/0
R1 has two entries. What about the spoke routers?
R2#show ip route isis
1.0.0.0/32 is subnetted, 1 subnets
i L1 1.1.1.1 [115/20] via 192.168.123.1, 00:50:28, Serial0/0
3.0.0.0/32 is subnetted, 1 subnets
i L2 3.3.3.3 [115/30] via 192.168.123.1, 00:29:39, Serial0/0
R2 has two entries. The interesting thing to see in the routing table of R2 is that the route from the other spoke router is installed as a level-2 route:
R2#show ip route 3.3.3.3
Routing entry for 3.3.3.3/32
Known via "isis", distance 115, metric 30, type level-2
Redistributing via isis
Last update from 192.168.123.1 on Serial0/0, 00:00:31 ago
Routing Descriptor Blocks:
* 192.168.123.1, from 1.1.1.1, 00:00:31 ago, via Serial0/0
Route metric is 30, traffic share count is 1
I would expect to see the level-1 entry installed but it doesn’t. Let’s take a closer look: