OSPF is one of the most commonly used routing protocol nowadays. It is an OPEN standard protocol, so you can read everything about it in RFC2328. I recommend to look at it if you have problem to grab facts and are still asking why it behaves like this. Or read my blog and maybe it can help you understand these „why?“ questions, which am I still asking and cannot sleep if something is unclear to me.
OSPF is very complex protocol, including lots of design concepts, packet types and phases. Lets start with basic terminology and operations.
OSPF belongs to the group of link-state routing protocols. Link-state routing protocols send triggered updates when a network change occurs, t hey send periodic updates at long time intervals like 30 minutes. In OSPF this is known as paranoid update.
When a link-state change occurs the router that the change detected sends a link-state advertisement (LSA) to all its neighbors using multicast address (in case of OSPF its is 188.8.131.52-6). Each routing device sends the LSA to all other neighbours, stores the LSA and update the database and also the routing table if necessary.
Routers running link-state protocol collect routing information from all other routers and each router independently calculates its best path to all destinations in the network, using Djisktras algorithm.
In OSPF we recognize 3 types of records for information:
- Neighbor table – here OSPF store information about all its neighbors
- Database or Topology table – here OSPF store all the other routers and its directly connected networks. The router recognize this through LSAs, which are flooded through the network. LSAs are stored into LSDB or link-stade database.
- Routing table – routers holds all the paths to destinations in LSDB. They calculates the very best paths from its LSDB. LSDB must be consistent (the same) in every router within same area.
The memory resources required to maintain all these tables are the main drawback of the link-state protocols. However because all routers contain information’s about the whole topology they can independently choose the best loop-free path to destination, not by „routing by rumors“ as is done in distance vector protocols. Recall that the routers running distance vector routing protocol rely on the routing decisions from theirs neighbors.
Summary of OSPF features:
- Open Standard
- Classless (doesnt support auto-summ)
- Supports VLSM, FLSM, CIDR, manual summary (manual summ. at ABR/ASBR only)
- Incremental/triggered updates
- Updates are sent as multicast (184.108.40.206, 224.0.06 – for DR sending to others)
- Easy metri (10to8/bandwidth)
- Equal cost LB via 4 equal paths (unequal not supported)
- Auto neighbor discovery
- Hierarchical network design
- Sends periodic updates, known as paranoid update or link-state refresh every 30 minutes
- Maintains similar DB across all the routers within same area
Here you can find OSPF cheatsheet. Its very good summary info to have on the table 😉