OSPF_Base_Topology

This will be our topology for most of Review, though I am currently leaving Area 34 and Area 15 out of the equation since we aren’t really worried about those for review.

  • You can create a process and an Area by configuring OSPF directly on an interface, rather than making the process and adding the network statement, by issuing the command: “ip ospf (proc ID #) area (area #)” as such:

R1(config)#
R1(config)#int s0/0/0
R1(config-if)#ip ospf 1 area 0
R1(config-if)#exit
R1(config)#do sh ip proto
*** IP Routing is NSF aware ***

Routing Protocol is “ospf 1”
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Router ID 100.100.100.2
  Number of areas in this router is 1. 1 normal 0 stub 0 nssa
  Maximum path: 4
  Routing for Networks:
  Routing on Interfaces Configured Explicitly (Area 0):
    Serial0/0/0
  Routing Information Sources:
    Gateway         Distance      Last Update
  Distance: (default is 110)

So it has created the OSPF Process 1, created an Area 0 and put that S0/0/0 interface in it, so anything off this interface with the same Parameters will form a neighbor relationship.

So lets go one step further and quickly config the spokes, which you’ll see me set the OSPF interface priority to 0 as needed on any Spoke in an OSPF Hub and Spoke network so they don’t become the BDR or DR, because all their communication has to go through the Hub:

R2(config)#
R2(config)#int s0/0
R2(config-if)#ip ospf pri 0
R2(config-if)#router ospf 1
R2(config-router)#network 172.12.123.0 0.0.0.255 area 0
R2(config-router)#
ASR#3
[Resuming connection 3 to r3 … ]
R3(config)#int s0/2
R3(config-if)#ip ospf pri 0
R3(config-if)#router ospf 1
R3(config-router)#network 172.12.123.0 0.0.0.255 area 0
R3(config-router)#

Back on R1 we still have not seen any adjacencies over these incredibly slow links, which even though they’re slow, it should have formed by now so something is up and that something is the static neighbor statements required for this network type:

R1(config)#router ospf 1
R1(config-router)#neighbor 172.12.123.2
R1(config-router)#neighbor 172.12.123.3
R1(config-router)#
*May 16 18:34:28.875: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Serial0/0/0 from LOADING to FULL, Loading Done
*May 16 18:34:28.895: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on Serial0/0/0 from LOADING to FULL, Loading Done

So that was the long way of saying, if you configure OSPF directly on an interface, it will create the Process # and Area # you define and put that interface in it.

  • The interface participating cannot be Passive, as just like with EIGRP, it will not send Hello packets, and discard incoming Hello packets received
  • Has two neighborship classes: 2-way and Fully Adjacent Neighbors
  • ATTEMPT is a state for NBMA Spoke routers, as they don’t participate in the DR/BDR election, but will form functioning neighbor relationships
  • Configured directly on the interface with OSPF interface commands or added to OSPF via “network” which will detect the interface

Now for routers to form full Adjacencies, the following Criteria must match in their Hello packets to each other:

  • Area #
  • Hello/Dead timer values
  • Subnet Mask
  • Stub Area Flag
  • Authentication

Which the last two are only applicable if you have them set, otherwise the top 3 bullet points are required to match on a regular no frills added OSPF network.

The dead interval is basically telling the protocol how many Hello’s it can miss from a neighbor before it is considered down, and dynamically changes if the Hello interval is increased or decreased to be 4 x the value of the Hello value.

  • One thing to consider when changing Hello intervals, they must be changed between all neighbors or the Adjacency will drop

I am not a fan of the next piece of knowledge in relation to the CCNP because it seems so obscure, but just so you know it, you can set your Hello intervals to parts of a second by using the command:

  • “ip ospf dead-interval minimal hello-multiplier multiplier”

That is a mouthful, lets take a look at what that does on R1 I have standing by to test such odd commands as this:

R1(config-router)#int s0/0/0
R1(config-if)#ip ospf dead-interval minimal ?
  hello-multiplier  Set multiplier for Hellos

R1(config-if)#ip ospf dead-interval minimal hello-multiplier ?
  <3-20>  Number of Hellos sent within 1 second

R1(config-if)#ip ospf dead-interval minimal hello-multiplier 4 ?
  <cr>

R1(config-if)#ip ospf dead-interval minimal hello-multiplier 4

Which means the OSPF Dead Interval “minimal” of 1 second, is then divided by the numerical value after the key command modifier “hello-multiplier” which I set to 4, so this should respectively have its Hello / Dead timers set to 250ms/1s:

R1(config-if)#do sh ip ospf int s0/0/0
Serial0/0/0 is up, line protocol is up
  Internet Address 172.12.123.1/24, Area 0
  Process ID 1, Router ID 100.100.100.2, Network Type NON_BROADCAST, Cost: 64
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           64        no          no            Base
  Enabled by interface config, including secondary ip addresses
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 100.100.100.2, Interface address 172.12.123.1
  No backup designated router on this network
  Timer intervals configured, Hello 250 msec, Dead 1, Wait 1, Retransmit 5
    oob-resync timeout 40
    Hello due in 208 msec

So if just remember, if you see an interface command with dead-interval minimal and something about hello-multiplier you are sending Hellos in increments determined by the division of the # value configured.

Also “sh ip proto” will not be a verification command to see timers, you must look at the interface to see what its timers are, as their defaults fluctuate per interface type (and whats configured on that specific interface) – So use “sh ip ospf int s0/0/0” or whatever your interface your checking is.

Also in case this is on the exam, this is what my “sh ip ospf nei” looked like after issuing the command:

R1(config-if)#do sh ip ospf nei

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           0   FULL/DROTHER    38208 msec    172.12.123.2    Serial0/0/0
3.3.3.3           0   FULL/DROTHER    36368 msec    172.12.123.3    Serial0/0/0
R1(config-if)#

Which they of course eventually dropped over the slow serial links once they got a Hello from each neighbor with different timers set on them.

Given the whole Hello-Multiplier command, I think it’s important also to discuss that the Hello timer will not dynamically adjust if you change the Dead timer as demonstrated:

Before changing Dead Timer

R1(config-if)#do sh ip ospf int s0/0/0
Serial0/0/0 is up, line protocol is up
  Internet Address 172.12.123.1/24, Area 0
  Process ID 1, Router ID 100.100.100.2, Network Type NON_BROADCAST, Cost: 64
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           64        no          no            Base
  Enabled by interface config, including secondary ip addresses
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 100.100.100.2, Interface address 172.12.123.1
  No backup designated router on this network
  Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5

After changing Dead Timer

R1(config-if)#ip ospf dead-interval 20
R1(config-if)#do sh ip ospf int s0/0/0
Serial0/0/0 is up, line protocol is up
  Internet Address 172.12.123.1/24, Area 0
  Process ID 1, Router ID 100.100.100.2, Network Type NON_BROADCAST, Cost: 64
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           64        no          no            Base
  Enabled by interface config, including secondary ip addresses
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 100.100.100.2, Interface address 172.12.123.1
  No backup designated router on this network
  Timer intervals configured, Hello 30, Dead 20, Wait 20, Retransmit 5

So keep that in mind, only the Dead Timer dynamically changes, but the Hello timer needs to be adjusted by either a hello-interval change or the hello-multiplier command.

So the “hello-interval” option will get your Hellos down to 1 second, but to get into sub-seconds you need to use the “dead-interval minimal hello-multiplier #” command.

Since that seems quite possible to see on exam day, its good to know that front to back, not to beat a dead horse on that one.