OSPF Packet Types Knowledge Base

OSPF Packet Types

All OSPF packets share a common OSPF Header of 24-bytes. This header allows the receiving router to validate and process the packets. The format of common OSPF header is-

Version- 2 (1-byte)
Type- It specifies the type of OSPF packet. There are 5 different types of OSPF packets. (1-byte)

1- Hello packet
2- Database Descriptor packet

3- Link State Request packet
4-

Link State Update packet
5- Link State Acknowledgment packet

Packet Length- Total length of the OSPF packet (2-bytes)
Router ID- The Router ID of the advertising router
Area ID- 32-bit Area ID assigned to the interface sending the OSPF packet (4-bytes)
Checksum- Standard IP Checksum of OSPF packet excluding Authentication field (2-bytes)
AuType- Authentication Type (2-bytes) No Password
1- Plain-text password
2- MD5 authentication

Authentication- Authentication data to verify the packet’s integrity (8-bytes)

1. Hello Packet:

Hello packets are OSPF packet Type 1. These packets are multicast periodically to 224.0.0.5 multicast address on all interfaces (unicast on virtual-links) enabling dynamic discovery of neighbors and maintain neighbor relationships. On broadcast and NBMA networks, Hello packets are used to elect DR and BDR.

Network Mask-Subnet mask of the advertising OSPF interface. For unnumbered point-to-point interfaces and virtual-links, it is set to 0.0.0.0 (4-bytes)
HelloInterval- Interval at which Hello packets are advertised. By default, 10 seconds for point-to-point link and 30 seconds for NBMA/Broadcast links (2-bytes)
Options- The local router advertises its capabilities in this field. (1-byte)
Rtr Pri-The Priority of the local router. It is used for DR/BDR election. If set to 0, the router is ineligible for the election. (1-byte)
RouterDeadInterval-The Dead Interval as requested by the advertising router. By default, 40 seconds for point-to-point link and 120 seconds for NBMA/Broadcast links (4-bytes)
Designated Router- The IP address of the current DR. Set to 0.0.0.0 if no DR is elected yet. (4-bytes)
Backup Designated Router- The IP address of the current BDR. Set to 0.0.0.0 if no BDR is elected yet. (4-bytes)
Neighbor- The Router IDs of all OSPF routers from whom a valid Hello packet have been seen on the network.

The following is a sample packet capture of an OSPF Hello packet.

The fields Area ID, HelloInterval, RouterDeadInterval and Authentication information (AuType & Authentication) should match on neighbors to form adjacency.

2. Database Descriptor packet:

For link-state routing protocol, it is required that the link-state databases for all routers remain synchronized. The synchronization starts as soon as the adjacency is formed between neighbors. OSPF uses Database Descriptor (DBD) packets for this purpose.

The DBD packets are OSPF packet Type 2. The OSPF router summarizes the local database and the DBD packets carry a set of LSAs belonging to the database. When a neighbor sees an LSA that is more recent than its own database copy, it requests this newer LSA from the neighbor.

Interface MTU- Contains the MTU value of the outgoing interface. For virtual-links, this field is set to 0x0000. (2-bytes)
Options- Same as Options field in a Hello packet (1-byte)
I- Initial Bit. Indicates this is the first in the series of DBD packets (1-bit)
M-More bit. Indicates whether the DBD packet is the last in the series of packets. Last packet has a value of 0, while all previous packets have a value of 1. (1-bit)
MS- Master/ Slave bit. Master=1, Slave=0 (1-bit)
DD Sequence Number-Used to sequence the collection of DBD packets. The initial value should be unique. The sequence number then increments by 1 until the complete database description has been sent.(4-bytes)
LSA Header- This field contains the LSA headers describing the local router’s database. (variable length)

During the DBD packet exchange, a Master/ Slaverelationship is established between the neighbors. The router with the highest Router ID becomes the Master and initiates DBD packet exchange. The Interface MTU should match on neighbors otherwise FULL adjacency is not reached.

The following packet capture shows a sample OSPF database. The DBD packets contain LSA header which contain the summary of this database i.e the Type of LSA, Link State ID, Advertising router, etc. The neighbors then request further information about these LSAs using Link State Request packets.

3. Link State Request packet:

The Link State Request (LSR) packet is an OSPF packet Type 3. After DBD packets exchange process, the router may find it does not have an up-to-date database. The LSR packet is used to request pieces of neighbor database that is more up-to-date.

LS Type- Type of LSA requested (4-bytes)
Link State ID- Depends upon the type of LSA (4-bytes)
Advertising Router- Router ID of the requesting router (4-bytes)

The following packet capture shows the LSR sent for Router-LSA (Type-1) to an OSPF neighbor after DBD packet exchange process is over.

4. Link State Update packet:

Link State Update (LSU) packets are OSPF packet Type 4. These packets implement the flooding of LSAs. Each LSA contains routing, metric and topology information to describe a portion of OSPF network. The local router advertises LSA within an LSU packet to its neighboring routers. In addition, the local router advertises the LSU packet with information in response to an LSR packet.

# LSAs- Number of LSAs within an LSU packet (4-bytes)
LSAs- The complete LSA is encoded within this field. The LSU may contain single or multiple LSAs.

The following output shows what the router responds to LSR.

5. Link State Acknowledgment packet:

Link State Acknowledgment (LSAck) packets are OSPF packet Type 5. OSPF requires acknowledgment for the receipt of each LSA. Multiple LSAs can be acknowledged in a single LSAck packet.