OSPF_Base_Topology

This conversation really begins with the interface on which OSPF is operating on, and the Layer 2 encapsulation that it is being used on the interface, like above over my NBMA I am running Frame-Relay as the Layer 2 encapsulation.

From this information alone OSPF knows whether it can Broadcast across the network, if it is a Point-to-Point network (Two routers), and whether it should attempt to elect a DR / BDR for that network.

Speaking of which, here is a list of those network types, and their default timer values:

Network Type                 Hello / Dead time (Default)     Packet Type Created

  • Non-Broadcast        –                  30 / 120                          Unicast
  • Broadcast                  –                  10 / 40                            Multicast
  • Point-to-Point           –                  10 / 40                            Multicast
  • Point-to-Multipoint  –                  30 / 120                          Multicast
  • Point-to-Multipoint
    Non-Broadcast            –                 30 / 120                           Unicast
  • Of all of these network types above, only Broadcast and Non-Broadcast types will try to elect a DR/BDR
  • To verify your OSPF interface types on any router, “sh ip ospf int” on the router

That being said, lets take a look at R2, as I have hooked up a Point-to-Point connection over  R2’s S0/1 to R1’s S0/0/1, so lets first take a look at the “brief” look at interfaces:

R2#sh ip ospf int bri
Interface    PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Se0/0        1     0                             172.12.123.2/24    64    DROTH 0/0
Fa0/0        1     23                           172.12.23.2/24       1     BDR   1/1
Se0/1        1     100                        100.100.100.2/30   64    P2P   1/1
R2#

That tells me right away that we have an NBMA Spoke off S0/0 (DROTH), Fa0/0 is a Broadcast or Non-Broadcast network type as it has become the BDR of the network, and S0/1 couldn’t be much more obvious with its P2P “network state”

Enjoy that small output chunk while it lasts, cause now we are going for the whole ball of wax, with the command “sh ip ospf int” to look at a few different network types on this router:

R2#sh ip ospf int
Serial0/0 is up, line protocol is up

  Internet Address 172.12.123.2/24, Area 0
  Process ID 1, Router ID 2.2.2.2, Network Type NON_BROADCAST, Cost: 64
  Transmit Delay is 1 sec, State DROTHER, Priority 0
  No designated router on this network
  No backup designated router on this network

  Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5
    oob-resync timeout 120
    Hello due in 00:00:25
  (Removed extra output for clarity)
FastEthernet0/0 is up, line protocol is up

  Internet Address 172.12.23.2/24, Area 23
  Process ID 1, Router ID 2.2.2.2, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State BDR, Priority 1
  Designated Router (ID) 3.3.3.3, Interface address 172.12.23.3
  Backup Designated router (ID) 2.2.2.2, Interface address 172.12.23.2

  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
   oob-resync timeout 120
Hello due in 00:00:23
(Output removed for Clarity)

Serial0/1 is up, line protocol is up

  Internet Address 100.100.100.2/30, Area 100
  Process ID 1, Router ID 2.2.2.2, Network Type POINT_TO_POINT, Cost: 64
  Enabled by interface config, including secondary ip addresses
  Transmit Delay is 1 sec, State POINT_TO_POINT
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:03
 (Removed extra output for clarity)
R2#

Out of the things highlighted, one thing that stuck out to me is that under the POINT_TO_POINT network is that it doesn’t even mention No DR / BDR set because there is no such need for either on this type of network.

So I highlighted in Blue the three different interface types, including their output as far as we care (I cut it off at certain points where it was just ‘extra’ stuff), and highlighted in red the different things to note such as Network Type / Timers / Cost / DR and BDR info.

So in regards to the above networks, I’d like to discuss the two main types we are going to see both in the lab and out in the wild, Broadcast and Non-Broadcast network types:

Broadcast:

  • Default network type for LAN interfaces (as seen on my Ethernet Segment)
  • Elects DR / BDR also seen in the output for the FastEthernet0/0 interface
  • Hello / Dead intervals of 10/40
  • Broadcast media like Ethernet means if you put one packet on the wire every node will see it that is on that wire, so it will get responses for the DR / BDR election

Now at any time these interface types can be manually changed directly on the interface, with the command as follows:

R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int fa0/0
R2(config-if)#ip ospf network ?
  broadcast            Specify OSPF broadcast multi-access network
  non-broadcast        Specify OSPF NBMA network
  point-to-multipoint  Specify OSPF point-to-multipoint network
  point-to-point       Specify OSPF point-to-point network

R2(config-if)#ip ospf network non-broadcast
R2(config-if)#
*Mar 31 00:48:58.949: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached
R2(config-if)#
ASR#3
[Resuming connection 3 to r3 … ]

*Mar 31 21:21:33.185: %SYS-5-CONFIG_I: Configured from console by console[OK]
R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#int fa0/0
R3(config-if)#ip ospf network non-broadcast
R3(config-if)#
*Mar 31 21:45:56.672: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached
R3(config-if)#

Now LAN networks and Ethernet won’t ever really have any sort of situation where this will be necessary to adjust its network type, so I’ve removed those commands from the Ethernet interfaces, however knowing and properly configuring type are important to understand when configuring over Frame-Relay.

This is because when a Cisco router detects an interface running Frame-Relay, if you try to break it up into sub-interfaces, it is going to force you to choose either a point-to-point or multipoint configuration for that sub-interface being created:

R2(config)#int s0/0.123 ?
  multipoint      Treat as a multipoint link
  point-to-point  Treat as a point-to-point link

R2(config)#int s0/0.123

So with that being said, the begin the discussion, we have to begin with its network type!

Non Broadcast:

Now when OSPF see’s an interface configured with Frame-Relay, because it cannot dig into the Frame configuration to see the extent of DLCI’s learned / configured, it just assumes this network type is a Non-Broadcast (Frame-Relay) networks.

This network type doesn’t allow for dynamic neighbor discovery, yet it does allow for a DR / BDR to be elected, and its Hello / Dead timers are 30 / 120 by default. Neighbors must be statically set on at least one router, considering its a Full-Mesh network.

Now if you configure a Non-Broadcast interface with Frame-Relay encapsulation and create a multipoint sub-interface, OSPF will treat it the same as an NBMA interface in terms of timers, and needing static neighbors configured (not dynamic).

In other words, when OSPF see’s Frame-Relay as your Layer 2 medium, it immediately assumes that it is a Full-Mesh Frame network, and that a DR / BDR should be elected because all Frame Routers have PVC’s to each other and can talk to each other.

Keep in mind, this is all in regards to a Full-Mesh PVC Frame-Network, not a Hub-and-Spoke NBMA like used in my lab, I feel that is important to note.

If you are not working with a Full Mesh network, you will want your DLCI’s pointing at your Hub(s), which is essentially a router with PVC’s to all other Frame routers, and from those routers you will then issue your Neighbor statements to your spoke routers.

In a Hub and Spoke NBMA, once you have the Layer 2 connectivity you are in good shape, but after configuring OSPF you must have a neighbor statement whether the Non-Broadcast network is Full Mesh or Hub and Spoke.

Changing a Non-Broadcast network to a Broadcast Network type

If you are somehow able to find and afford to run off a Full Mesh PVC, you can change the interface type to Broadcast, meaning firstly a lot less administrative overhead.

Neighbors can be learned dynamically (no “neighbor” statements), Hello / Dead timers are 10 / 40, all routers have PVC’s to each other so communication is not an issue at all.

Point-to-Point

Moving away from Broadcast and Non-Broadcast network types, we will take a look at the network type Point-to-Point with a few bullet points to start:

  • Does not elect DR / BDR because there is no point with only 2 routers (P2P)
  • Discovers neighbors dynamically via Multicast
  • Dead Timers are 10 / 40
  • Each Point-to-Point sub-interface created needs its own subnet

In fact, I had some output from a Point-to-Point link above, let us review:

Serial0/1 is up, line protocol is up

  Internet Address 100.100.100.2/30, Area 100
  Process ID 1, Router ID 2.2.2.2, Network Type POINT_TO_POINT, Cost: 64
  Enabled by interface config, including secondary ip addresses
  Transmit Delay is 1 sec, State POINT_TO_POINT
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:03
 (Removed extra output for clarity)

As mentioned above right away out of the 3 interface types listed, this doesn’t even mentioned “No Designated router on this network” or BDR section because it’s not necessary for two routers.

You can also change interface that OSPF doesn’t designate as a Point-to-Point, by using the sub-interface level command “ip ospf network point-to-point”.

Point-to-Multipoint

This is the answer to Point-To-Point Networks issue of needing a different subnet for every sub-interface, you can configure one common subnet, and multiple DLCI’s under the sub-interface so the interface knows that these bundle of DLCI’s share that same subnet.

I’m not going to set my lab up to demonstrate this necessarily, but I will demonstrate the commands to configure it here so it can at least be seen how it’s configured:

R1(config-if)#int s0/0/0.123 multipoint
R1(config-subif)#ip add 172.12.123.1 255.255.255.0
R1(config-subif)#frame interface-dlci 122
R1(config-subif)#frame interface-dlci 123
R1(config-subif)#ip ospf network point-to-multipoint
R1(config-subif)#

Note that you do need to configure your frame mappings on the sub-interface, along with defining the OSPF network type as well by issuing “ip ospf network point-to-multipoint”.

Also, a few bullet points to go along with this network type as good points to know:

  • This type of network does not Elect a DR or BDR
  • Hello and Dead timer intervals are 30 / 120
  • This network type DOES discover neighbors dynamically
  • It must be configured using sub-interfaces
  • In this network type, each router advertises LSA’s with a /32 Prefix to the FR Cloud
  • Split-Horizon does not effect this interface type, it is allowed to send updates back out the multipoint interface they were received on

The good part of adding in a multipoint sub-interface where you can, is that it limits the need for DR / BDR elections as it will not participate in such an election.

Also Broadcast networks can be configured to multipoint sub-interfaces to give them extra control, such as being able to statically set neighbors rather than dynamic discovery as well as being able to define the “Cost” to other neighbors rather than letting OSPF calculate it.

Speaking of cost, to illustrate how to configure this, let me jump on R1 to demonstrate:

R1(config-router)#neighbor 172.12.123.2 ?
  cost             OSPF cost for point-to-multipoint neighbor
  database-filter  Filter OSPF LSA during synchronization and flooding for
                   point-to-multipoint neighbor
  poll-interval    OSPF dead-router polling interval
  priority         OSPF priority of non-broadcast neighbor
  <cr>

R1(config-router)#neighbor 172.12.123.2 cost ?
  <1-65535>  metric

R1(config-router)#neighbor 172.12.123.2 cost

Note that this is done in OSPF router configuration after the sub-interface is configured!

Point-to-Mulipoint Non-Broadcast

Not going to spend a lot of time at all on this, as it has the same advantages of making a Broadcast segment a Point-to-Multipoint, you can control setting static neighbors and changing cost as you see fit. That’s all I have to really say about that subject.

How do I remember all of these different network types???

Good question, and really unless you are a genius, you don’t right at the current moment where you could regurgitate all these different facts about the network types.

However it is important to remember that “sh ip ospf (int)” will show the interface type as OSPF see’s it, that is a rock solid first troubleshooting step to lead you in the right direction.

For example if you are a P2P network sending Unicasts on one router, while a potential neighbor is a P2M is sending Multicasts, they are not going to form a neighbor relationship until one side is corrected to use the same type of traffic to bring the Adjacency up (and watch those default timers along with network types).

With that, I have officially had my fill of the OSPF Network types and differences, and I’m not sure what subject I will be touching next but I shall be back it soon!