- IPv4 – RFC 2328 v2
- IPv6 – RFC 5340 v3
- Uses Shortest Path First Algorithm.
- Guarantees a loop free topology by using SPF and Area 0.
- Standards
- Can be used by multiple vendors.
- Convergence
- Very Fast
- Tracks Neighbor adjacencies actively.
- Event driven incremental updates.
- Efficient updating
- Non-OSPF updates do not process the updates on link.
- Uses multicast and unicast for updates.
- Link metrics are based upon bandwidth of interfaces.
- Security
- Supports clear text, MD5, SHA, IPsec for authentication.
- Extensibility
- Application support through ‘opaque LSA’
OSPF Operations:
- Step1:
- Uses Hello packets to find neighbors on links.
- Protocol 89
- Sends information via multicast
- 224.0.0.5 – all OSPF speaking routers
- 224.0.0.6 – DR/BDR communication
- Hello packets have data that both speakers must agree upon to form adjacency
- agreement and adjacency has formed, OSPF database gets exchanged between both parties.
Adjacency Attributes:
- Router-ID
- Chosen via manual configuration, highest active loopback IP, then highest active interface IP.
- Interface IP addresses
- OSPFv2 will use the interface primary IP (IPv4)
- OSPFv3 will use the interface link local IP (IPv6)
Attributes that have to match:
- Area
- Hello and dead timers
- Network address (between two nodes)
- Interface MTU
- OSPF network type
- Authentication
Hellos:
- Sent out every hello interval (timer)
- Contains the following data
- RID
- Area
- Subnet mask
- Interface priority
- Hello and Dead timers
- Authentication information
- DR/BDR addresses
- RID of other neighbors on the link
Adjacency States
- Down
- No hellos have been received.
- Attempt
- Hello has been sent to neighbor, nothing received back.
- Init
- Received hello, no acknowledgement of hello that’s been sent.
- 2-Way
- Have received neighbor hello and acknowledgement of local hello already sent out.
- ExStart
- Beginning of adjacency
- Higher router ID is master and chooses DB sequence number
- Exchange
- Link state database sent through DBD packets.
- Loading
- Link state requests sent to ask for more info about particular LSA.
- Full
- Adjacency has formed, DBs are synchronized.
- Step2:
- Beginning of path selection.
- Each LSA includes a cost attribute for each link.
- Paths added to RIB are paths with lowest cost end to end.
- ECMP is allowed.
- Default cost value is 100Mbps / link bandwidth.
- For bandwidth 10Gbps and higher, the reference bandwidth command needs to be used.
- Step3:
- Neighbor tracking is from here on out completed via hellos and LSAs
- Hellos for tracking neighbor changes.
- HelloInterval is what defines how often hellos are sent out for tracking. 10 and 30 seconds depending on network/interface type.
- DeadInterval
- Time router declares neighbor dead if it does not receive a hello.
- LSAs for tracking topology changes.
- If new LSA is received, the LSDB sequence number, Age, and checksum are compared to make sure everything is up to date.
- When change occurs, LSAs are flooded out all OSPF speaking interfaces – no split horizon. Self-originated LSAs are just dropped.
- Hellos for tracking neighbor changes.
- Neighbor tracking is from here on out completed via hellos and LSAs