We all know that by default the metric value for the ISIS route is 10 and it keeps on adding 10 on crossing every single link. For example, if the prefix has reached the router by crossing three links them the metric value associated with the prefix should be 40. See below example here the router R4 has 192.168.40.0/30 assigned to fa0/0 interface, when this prefix reaches R1 it has the metric 40 (original metric on R4 + 3 links*10).
R4#show isis database detail R4.00-00 * 0x00000003 0xD0FE 803 0/0/0 Area Address: 49.0000 NLPID: 0xCC Hostname: R4 IP Address: 192.168.30.2 Metric: 10 IP 192.168.40.0 255.255.255.252 Metric: 10 IP 192.168.30.0 255.255.255.252 Metric: 10 IS R4.01 R1#show ip route 192.168.40.1 Routing entry for 192.168.40.0/30 Known via "isis", distance 115, metric 40, type level-1 Redistributing via isis Last update from 192.168.10.2 on GigabitEthernet1/0, 00:21:22 ago Routing Descriptor Blocks: * 192.168.10.2, from 192.168.30.2, via GigabitEthernet1/0 Route metric is 40, traffic share count is 1
Normally this metric value is transmitted in TLV 128. See below wireshark capture. We can see that when the router R4 is advertising the prefix it advertises with default metric 10 in the TVL 128.
So far, the narrow metric is working fine for me but let’s see what limitation it has. You can see in the above Wireshark capture that the narrow metric has only 6 bits for the metric value. So the maximum metric value can be 26 = 64. Since 0 is also included hence the maximum value of narrow metric can go up to 63. Now let’s see what happens if we try to implement a value larger than 63. I will configure a loopback on router 2 and try to assign it isis metric 100.
R2(config-if)#isis metric 100 Warning: for metrics greater than 63, 'metric-style wide' should be configured on level-1-2, or it will be capped at 63. R2(config-if)#
See I got a warning that metric value cannot go beyond 63 unless I enable wide metric. If I check this route on R1 the metric value should be 73 not 100 as configured on R2 .
R1#sh ip route 126.96.36.199 Routing entry for 188.8.131.52/32 Known via "isis", distance 115, metric 73, type level-1 Redistributing via isis Last update from 192.168.10.2 on GigabitEthernet1/0, 01:00:42 ago Routing Descriptor Blocks: * 192.168.10.2, from 184.108.40.206, via GigabitEthernet1/0 Route metric is 73, traffic share count is 1
Also see in wireshark capture .
So this is the most important limitation due to which we cannot run with ISIS narrow metric, In case of bigger network mostly all the prefixes crossing 5 links will have same metric and that will kill the purpose of having metric in ISIS. So the wide metric becomes a necessity.
Wide Metric :
Introducing wide metric has made ISIS relevant for so many things. Vendors are using wide metric not only for metric but other things as well like used to exchange attributes etc. You can see the application of wide metric in MPLS TE and VxLAN, OTV(overlay transport virtualization) etc.
The wide metric size is 3 (TLV 22) or 4(TLV 135) bytes long. In our old example we change the metric to wide metric and try to configure metric on loopback 1 again to see how does it work.
The command to change this is below, this needs to be changed on all router else there will be a problem in route learning. We will have the adj created but the routes will not show-up in routing table. So, lets configure wide metric on all router in the network.
R1(config)#router isis CORE R1(config-router)#metric-style wide
Once metric is configured we again go to R2 and change the metric of loopback1 to 100. This time we don’t get any warning.
R2(config)#int lo 1 R2(config-if)#isis metric 100 R2(config-if)#
If you look at the R1’s routing table for 220.127.116.11 which is looopback1’s IP address on R2 now the metric should show 110 , 100 configured and 10 for a link which it crosses.
R1#sh ip route 18.104.22.168 Routing entry for 22.214.171.124/32 Known via "isis", distance 115, metric 110, type level-1 Redistributing via isis Last update from 192.168.10.2 on GigabitEthernet1/0, 00:03:34 ago Routing Descriptor Blocks: * 192.168.10.2, from 126.96.36.199, via GigabitEthernet1/0 Route metric is 110, traffic share count is 1
Here is the wireshark capture for the LSP.