Showing posts with label route convergence. Show all posts
Showing posts with label route convergence. Show all posts

Saturday, July 5, 2008

EIGRP - Tuning Convergence Times

Unlike OSPF, EIGRP hello and hold timers (hold timer is like dead timer in ospf) do not have to match between neighbors. It would make sense that if you want fast convergence in one direction you would want it the other direction as well. However, for this example, we are going to tune convergence one way.

The Network:

R1----FR----R2
|-----R3-----|

R1-R2 are connected via frame relay on 12.0.0.0/8
R1-R3 = 13.0.0.0/8
R2-R3 = 23.0.0.0/8

Each router has a loopback advertised into EIGRP. We are testing from R2's loopback 2.2.2.2 to R1's 1.1.1.1. Eigrp hello/hold timers on frame-relay interfaces are 60 and 180 seconds respectively. This means for traffic from R2 to R1 to failover and use R3 it would take 3 minutes to failover!

That would look like this:

R2#ping 1.1.1.1 source 2.2.2.2 repeat 1000

Type escape sequence to abort.
Sending 1000, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!................................

You get the idea.

Let's adjust the timers on R1's frame-relay interface, in this case serial 1/2:

R1(config)#int s1/2
R1(config-if)#ip hello-interval eigrp 1 5
R1(config-if)#ip hold-time eigrp 1 15

If we shut down R1's s1/2 interface it should take R2 15 seconds to realize R1 is down and switch over to R3's path to 1.1.1.1.

Let's try it out:

R2#ping 1.1.1.1 source 2.2.2.2 repeat 500

Type escape sequence to abort.
Sending 500, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

switch to R1:

R1(config)#int s1/2
R1(config-if)#shut

Back to R2:

......!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!
Success rate is 98 percent (493/500), round-trip min/avg/max = 4/32/112 ms

As you can see, this was much faster than the default timers and we only lost 7 pings.

Monday, June 2, 2008

OSPF - configuring the shortest hello interval

For super fast convergence in ospf, you can change the ospf timers to the minimal setting. This will turn out to be a dead time of 1 second and a sub-second hello time.

Topology:

R1 --- R2

R1:

R1(config)#int s1/0
R1(config-if)#ip ospf dead-interval minimal hello-multiplier 3

Notice the hello interval is now 333 milliseconds:

R1#show ip ospf interface s1/0
Serial1/0 is up, line protocol is up
Internet Address 172.12.12.1/24, Area 0
Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 333 msec, Dead 1, Wait 1, Retransmit 5
oob-resync timeout 40
Hello due in 217 msec
Supports Link-local Signaling (LLS)
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 0 msec, maximum is 4 msec
Neighbor Count is 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)

R2:

R2(config)#int s1/0
R2(config-if)#ip ospf dead-interval ?
<1-65535> Seconds
minimal Set to 1 second

R2(config-if)#ip ospf dead-interval minimal ?
hello-multiplier Set multiplier for Hellos

R2(config-if)#ip ospf dead-interval minimal hello-multiplier ?
<3-20> Number of Hellos sent within 1 second

R2(config-if)#ip ospf dead-interval minimal hello-multiplier 3

R1#show ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 704 msec 172.12.12.2 Serial1/0
R1#show ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 936 msec 172.12.12.2 Serial1/0
R1#show ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 636 msec 172.12.12.2 Serial1/0

As you can see with the "show ip ospf neighbor" command, the dead time counts down from 1 second and is reset every 333 msec when it receives a hello.

Changing the dead interval on R1 reverts the hello time back to the default:

R1(config)#int s1/0
R1(config-if)#ip ospf dead-interval 50

R1#show ip ospf int s1/0
Serial1/0 is up, line protocol is up
Internet Address 172.12.12.1/24, Area 0
Process ID 1, Router ID 1.1.1.1, Network Type POINT_TO_POINT, Cost: 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 50, Wait 50, Retransmit 5
oob-resync timeout 50
Hello due in 00:00:04
Supports Link-local Signaling (LLS)
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 0 msec, maximum is 4 msec
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 2.2.2.2
Suppress hello for 0 neighbor(s)

Pretty easy command, but it still helps labbing it, now I should never forget it...