OSPF – Open Shortest Path First

OSPF (Open Shortest Path First) is a link state routing protocol. Because it is an open standard, it is implemented by a variety of network vendors. OSPF will run on most routers that doesn’t necessarily have to be Cisco routers (unlike EIGRP which can be run only on Cisco routers).

Here are the most important features of OSPF:

  • a classless routing protocol
  • supports VLSM, CIDR, manual route summarization, equal cost load balancing
  • incremental updates are supported
  • uses only one parameter as the metric – the interface cost.
  • the administrative distance of OSPF routes is, by default, 110.
  • uses multicast addresses 224.0.0.5 and 224.0.0.6 for routing updates.

Routers running OSPF have to establish neighbor relationships before exchanging routes. Because OSPF is a link state routing protocol, neighbors don’t exchange routing tables. Instead, they exchange information about network topology. Each OSFP router then runs SFP algorithm to calculate the best routes and adds those to the routing table. Because each router knows the entire topology of a network, the chance for a routing loop to occur is minimal.

Each OSPF router stores routing and topology information in three tables:

Neighbor table – stores information about OSPF neighbors

Topology table – stores the topology structure of a network

Routing table –  stores the best routes

OSPF neighbors

OSPF routers need to establish a neighbor relationship before exchanging routing updates. Neighbors are dynamically discovered by sending Hello packets out each OSPF-enabled interface on a router. Hello packets are sent to the multicast IP address of 224.0.0.5.

The process is explained in the following figure:

ospf hellos

Routers R1 and R2 are directly connected. After OSFP is enabled both routers send Hellos to each other to establish a neighbor relationship. You can verify that the neighbor relationship has indeed been established by typing the show ip ospf neighbors command.

show ip ospf neighbor

In the example above, you can see that the router-id of R2 is  2.2.2.2. Each OSPF router is assigned a router ID. A router ID is determined by using one of the following:

1.    using the router-id command under the OSPF process.
2.    using the highest IP address of the router’s loopback interfaces.
3.    using the highest IP address of the router’s physical interfaces.

The following fields in the Hello packets must be the same on both routers in order for routers to become neighbors:

  • subnet
  • area id
  • hello and dead interval timers
  • authentication
  • area stub flag
  • MTU

By default, OSPF sends hello packets every 10 second on an Ethernet network (Hello interval). A dead timer is four times the value of the hello interval, so if a routers on an Ethernet network doesn’t receive at least one Hello packet from an OSFP neighbor for 40 seconds, the routers declares that neighbor to be down.

OSPF neighbor states

Before establishing a neighbor relationship, OSPF routers need to go through several state changes. These states are explained below.

1. Init state – a router has received a Hello message from the other OSFP router
2. 2-way state – the neighbor has received the Hello message and replied with a Hello message of his own
3. Exstart state – beginning of the LSDB exchange between both routers. Routers are starting to exchange link state information.
4. Exchange state – DBD (Database Descriptor) packets are exchanged. DBDs contain LSAs headers. Routers will use this information to see what LSAs need to be exchanged.
5. Loading state – one neighbor sends LSRs (Link State Requests) for every network it doesn’t know about. The other neighbor replies with the LSUs (Link State Updates) which contain information about requested networks. After all the requested information have been received, other neighbor goes through the same process
6. Full state – both routers have the synchronized database and are fully adjacent with each other.

OSPF areas

OSPF uses the concept of areas. An area is a logical grouping of contiguous networks and routers. All routers in the same area have the same topology table, but they don’t know about routers in the other areas. The main benefits of creating areas is that the size of the topology and the routing table on a router is reduced, less time is required to run the SFP algorithm and routing updates are also reduced.

Each area in the OSPF network has to connect to the backbone area (area 0). All router inside an area must have the same area ID to become OSPF neighbors. A router that has interfaces in more than one area (area 0 and area 1, for example) is called Area Border Router (ABR). A router that connects an OSPF network to other routing domains (EIGRP network, for example) is called Autonomous System Border Router (ASBR).NOTE
In OSPF, manual route summarization is possible only on ABRs and ASBRs.

To better understand the concept of areas, consider the following example.

ospf areas

All routers are running OSPF. Routers R1 and R2 are inside the backbone area (area 0). R3 is an ABR, because it has interfaces in two areas, namely area 0 and area 1. Router R4 and R5 are inside area 1. Router R6 is an ASBR, because it connects OSFP network to another routing domain (an EIGRP domain in this case). If the R1’s directly connected subnet fails, router R1 sends the routing update only to R2 and R3, because all routing updates all localized inside the area.NOTE
The role of an ABR is to advertise address summaries to neighboring areas. The role of an ASBR is to connect an OSPF routing domain to another external network (e.g. Internet, EIGRP network…).

LSA, LSU and LSR

The LSAs (Link-State Advertisements) are used by OSPF routers to exchange topology information. Each LSA contains  routing and toplogy information to describe a part of an OSPF network. When two neighbors decide to exchange routes, they send each other a list of all LSAa in their respective topology database. Each router then checks its topology database and  sends a Link State Request (LSR) message requesting all LSAs not found in its topology table. Other router responds with the Link State Update (LSU) that contains all LSAs requested by the other neighbor.

The concept is explained in the following example:

ospf lsa lsr lsu

After configuring OSPF on both routers, routers exchange LSAs to describe their respective topology database. Router R1 sends an LSA header for its directly connected network 10.0.1.0/24. R2 check its topology database and determines that it doesn’t have information about that network. R2 then sends Link State Request message requesting further information about that network. Router R1 responds with Link State Update which contains information about subnet 10.0.1.0/24 (next hop address, cost…).

Configuring OSPF 1

OSPF basic configuration is very simple. Just like with other routing protocols covered so far (RIP, EIGRP) first you need to enable OSPF on a router. This is done by using the router ospf PROCESS-ID global configuration command. Next, you need to define on which interfaces OSPF will run and what networks will be advertised. This is done by using the network IP_ADDRESS WILDCARD_MASK AREA_ID command from the ospf configuration mode.NOTE
The OSPF process number doesn’t have to be the same on all routers in order to establish a neighbor relationship, but the Area ID has to be the same on all neighboring routers in order for routers to become neighbors.

Let’s get started with some basic OSPF configuration. We will use the following network topology:

ospf sample topology

First, we need to enable OSPF on both routers. Then we need to define what network will be advertised into OSPF. This can be done by using the following sequence of commands on both routers:

ospf configuration 1
ospf configuration 2

The network commands entered on both routers include subnets directly connected to both routers. We can verify that the routers have become neighbors by typing the show ip ospf neighbors command on either router:

show ip ospf neighbor

To verify if the routing updated were exchanged, we can use the show ip route command. All routes marked with the character O are OSPF routes. For example, here is the output of the command on R1:

show ip route ospf route

You can see that R1 has learned about the network 192.168.0.0/24 through OSPF.

Configuring OSPF 2

Although basic OSPF configuration can be very simple, OSPF provides many extra features that can get really complex. In this example, we will configure multiarea OSPF network and some other OSPF features.

Consider the following multiarea OSPF network:

ospf sample topology areas

In this example we have two OSPF areas – area 0 and area 1. As you can see from the network topology depicted above, routers R1 and R3 are in the area 0 and area 1, respectively. Router 2 connects to both areas, which makes him an ABR (Area Border Router). Our goal is to advertise the subnets directly connected to R1 and R3. To do that, the following configuration on R1 will be used:

ospf configuration areas 1

NOTE
We have used the router-id 1.1.1.1 command to manually specify the router ID of this router. OSPF process will use that RID (router-id) when communicating with other OSPF neighbors.

Because R1 connects only to R2, we only need to establish a neighbor relationship with R2 and advertise directly connected subnet into OSPF.

Configuration of R3 looks similar, but with one difference, namely area number. R3 is in the area 1.

ospf configuration areas 3

What about R2? Well, because R2 is an ABR, we need to establish neighbor relationship with both R1 and R3. To do that, we need to specify different area ID for each neighbor relationship, 0 for R1 and 1 for R2. We can do that using the following sequence of commands:

ospf configuration areas 2

Now R2 should have neighbor relationship with both R1 and R3. We can verify that by using the show ip ospf neighbor command:

show ip ospf neighbor areas

To verify if directly connected subnets are really advertised into the different area, we can use the show ip route ospf command on both R1 and R3:

show ip route ospf areas 1
show ip route ospf areas 3

Characters IA in front of the routes indicate that these routes reside in different areas.

Hope this article helpful for you. Thank You

Let’s Join our Hacking Team

We Are Indian We Are Great

Indian Cyber Army | Make IT Secure

Enjoy…Stay Happy…Stay Secure…

Hope this article helpful for you. Thank You


If You Appreciate What We Do Here On Hackonology, You Should Consider:

Hackonology is the fastest growing and most trusted community site where you can find lots of courses, articles about Technology/Hacking/Cracking. Millions of people visit Hackonology! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider it with 2-3 coffee as a token of appreciation.


Let's be a part of Hackonology Community! Join our Hacking Team

We Are Indian We Are Great