OSPF LSAs and LSDB flooding Tutorial

Hi there,
I could not get the idea of the age field in the LSA!!
I know that: Once the LSA has aged out, this means it’s become too old and it should be updated.
So, what happened exactly after this step???
Please, correct me if I’m wrong.

Hello Abdel

OSPF routers keep track of how “old” an LSA is within the OSPF database. They have an Age counter that counts up every second and is reset to zero when a newer LSA arrives. Any LSAs that exceed an age of 1 hour (3600 seconds) will be flushed or removed from the database. This maximum age value is called MaxAge and cannot be changed. Once that takes place, nothing specific happens. The LSA is simply removed.

An OSPF router that actively has an LSA in its database will periodically send out an updated LSA at the very least every 30 minutes to ensure that the MaxAge time is not reached.

Now how is the age field used in all of this? The age field within the LSA contains an age value that the sending router wants to impose on the database of the neighboring OSPF routers. A sending router can choose to send an age equal to MaxAge (3600 seconds), making all receiving routers flush out the LSA from their databases. This kind of update is used to refresh the LSDB, and is sometimes called a paranoid update.

I hope this has been helpful!

Laz

Hello Rene,
Suppose a router learn about a new lsa, than after adding it to its lsdb, when will it flood to the other routers, like after what time?

Thanks,
Jugal Modi

Hello Jugal

As soon as a router learns about a new LSA, it will immediately add it to its own LSDB and then flood it out of all OSPF-enabled interfaces (except the interface on which the LSA was received). There is no specific time delay, the flooding usually happens immediately.

The flow chart you see in the lesson is the following:


As soon as you get to the “Add to LSDB” step, the next set of steps (the brown boxes) happen immediately. That is, Add to LSDB → Send LSAck → Flood LSA → Run SPF. There is no specified delay.

I hope this has been helpful!

Laz

Hi Rene
Thank you for the great article. It says:

Begins with 0x80000001 and ends at 0x7FFFFFFF.

But hsould it say: "and ends at 0x8FFFFFFF?
Otherwise the end would be lower than the start.

Same again later in the article:

If we reach the last sequence number 0x7FFFFFFF, it will wrap around and start again at 0x80000001.

I guess it should be as well “the last sequence number 0x8FFFFFFF”?

Hello Cedric

I understand how this may seem strange, but the values are actually correct. This is because the sequence numbers used are “signed”. That is they have either a positive (“+” sign) or negative (“-” minus sign) value. You can find out more about how these values are represented in this NetworkLessons note on the topic.

I hope this has been helpful!

Laz

Hi,

How we change default LSA expiration timer (30 mins)? And how it affects our design? I mean ;

  1. Is there a scenario that maybe i want OSPF to converge more quickly so consequently I might change expiration timer as less(<30).
  2. Maybe I want to reduce the overhead of OSPF so consequently I might change expiration timer as more (>30)?

Thank you.

Hello Görgen

First of all, there are two related timers with OSPF which should be clarified here. There’s the LSRefreshTime which is the timer you mentioned in your post which by default is 30 minutes. This is the timer that Rene mentions in the lesson, which is the interval at which OSPF will flood an LSA to ensure the LSDB stays up to date. The MaxAge is the maximum age an LSA can attain within the LSDB, which is 60 minutes. After this interval, the LSA will be purged from the LSDB. The MaxAge timer is reset every time an LSA is received. More about these can be seen in the following section of the OSPF RFC:

Now after doing a bit of research, I have found that on Cisco devices, you cannot change these values. Other vendors allow you to modify these, however, the benefits of doing so are few. There are other parameters that you can change to fulfill the needs of your OSPF topology. You can find quite a bit of information in this thread of the Cisco Community Forum:

I hope this has been helpful!

Laz

Hi Team,

How will it be notified to the neighbor that the LSA has expired and got flushed out?

Hello Sathish

First of all, let me clarify Rene’s statement here.

  • LSA Aging Timer: Each LSA in OSPF does indeed have an aging timer, represented by the link-state age field. The maximum age for an LSA is 60 minutes. When the age of an LSA reaches 60 minutes without being refreshed, it is considered stale and removed from the link-state database.
  • Refreshing LSAs: OSPF routers will refresh LSAs periodically before they reach the maximum age, typically every 30 minutes. This is the 30 minutes that Rene mentioned in the lesson. This means that although an LSA has a validity of 60 minutes, it is re-advertised and refreshed every 30 minutes to prevent it from expiring.
  • Sequence Number: When the router that originated the LSA resends it (due to refresh or a topology change), it increases the sequence number to ensure the newer LSA is recognized by other routers, avoiding confusion with older ones.

Now, the refreshing of the LSA can only be achieved by the router that generated the LSA! The timer is measured within that router, and when 30 minutes elapse, it resends the LSA.

For a router that has received an LSA from the originator (or from another router that has already received it), the LSA’s age field starts counting up. If the LSA isn’t refreshed or updated within 60 minutes (its maximum age), the LSA will expire on that router and be removed from its link-state database. It doesn’t ask for an update, or inform any other router that the LSA has expired, it simply removes it from the database. Does that make sense?

I hope this has been helpful!

Laz