Timer Problem in IGRP
Timers govern the frequency at which the IGRP routers learn and update routing tables. These timers also affect the time required by routers to attain convergence. Timers are critical to the IGRP protocol, because they influence routing calculations and operating behavior. Different timers used in IGRP are update, invalid, flush, and hold-down. The default values of all these timers can be modified as per the requirement. However, modifications to default values should be performed with extreme caution.
You can use the timers basic update invalid holddown flush command to modify the default values of timers. The show ip protocols command is used to view the current configuration of these timers. The output of the show ip protocols command is shown in Listing 7.30.
Listing 7.30 Output of the show ip protocols Command
show ip protocols Routing Protocol is "igrp 100" Sending updates every 90 seconds, next due in 76 seconds Invalid after 270 seconds, hold down 280, flushed after 630 Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Default networks flagged in outgoing updates Default networks accepted from incoming updates IGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0 IGRP maximum hopcount 100 IGRP maximum metric variance 1 Redistributing: igrp 100 Routing for Networks: 188.8.131.52 172.16.0.0 Routing Information Sources: 172.16.1.2 100 00:00:03 172.16.2.2 100 00:00:03 Distance: (default is 100)
When an IGRP router learns about a new routing path to a destination, it is registered in the routing table with the invalid timer set to the default value of 270 seconds. Consequently, when the same route is seen in an update packet, it resets the invalid timer to 270 seconds. Assuming that the router does not receive any updates for the same route for 270 seconds, the route is designated as an unreachable route. Routers wait for 270 seconds before marking the route unreachable. To understand this concept, consider the scenario depicted in Figure 7.5, which shows an IGRP network that consists of routers R1, R2, R3, R4, and R5.
Figure 7.5: An IGRP network depicting a scenario of missing update packets.
Figure 7.5 shows the absence of the updates packets from R5 to R3 and to R2 and R4. R3 will wait for a duration that equals three times the update timer before designating the route as unreachable, as shown in the routing table of R3. The routing table of R3 is as shown in Listing 7.31.
Listing 7.31 Routing Table of R3
R3#sh ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, - candidate default U - per-user static route Gateway of last resort is not set C 192.168.1.0/24 is directly connected, Ethernet0 C 192.168.2.0/24 is directly connected, Ethernet1 C 192.168.3.0/24 is directly connected, Ethernet2 I 172.16.1.0/24 [100/273] via 192.168.1.2, 00:08:41, Ethernet0 I 184.108.40.206/24 [100/437] via 192.168.1.2, 00:07:37, Ethernet0 [100/437] via 192.168.3.2, 00:03:17, Ethernet2 I 172.16.2.0/24 [100/437] via 192.168.1.2, 00:03:18, Ethernet0 I 10.0.0.0/8 is possibly down routing [100/273] via 192.168.2.2, 00:01:27, Ethernet1
Listing 7.31 indicates that network 10.0.0.0 is unreachable because R3 is not receiving routing updates from R5. Even though routes are marked as unreachable, it is still maintained in routing tables for a certain period of time that is determined by the flush timer. To make invalid timer value less than flush timer value, use the command:
Invalid after 270 seconds, hold down 280, flushed after 630
Set the flush timer value of R3 to be less than invalid timer value as shown:
R3#timers basic update invalid holddown flush 250
This will solve the routing update problem of R3.
Flush timer value should not be more than the invalid timer value; otherwise, it will result in unpredictable routing calculation.