OSPF DR/BDR – Designated Router Election, LSA Flooding & Adjacency Optimisation
1. The Problem DR/BDR Solves
In OSPF, routers that share a network segment must form adjacencies — synchronised Link State Database (LSDB) relationships — before they can exchange routing information. On a broadcast multi-access network (like an Ethernet LAN), every router can hear every other router. Without any special mechanism, every router would form a full adjacency with every other router on the same segment.
Without DR/BDR — 5 routers on one Ethernet segment:
R1 ━━━━━━ R2 All 5 routers form full adjacencies
┃ ╲ ╱ ┃ with every other router
┃ ╲ ╱ ┃
┃ ╲ ╱ ┃ Adjacency count = N×(N-1)/2
┃ ╱ ╲ ┃ = 5×4/2 = 10 adjacencies
┃ ╱ ╲ ┃
┃ ╱ ╲ ┃ Each adjacency requires:
R3 ━━━━━━ R4 • Hello/DBD/LSR/LSU/LSAck exchange
╲ ╱ • Separate LSDB synchronisation
╲ ╱ • Ongoing keepalive traffic
R5 → 10 full adjacencies = massive overhead
With DR/BDR — same 5 routers:
R2 (DR) R3, R4, R5 are DROTHER
↗ ↑ ↖ They only form Full adjacency with DR and BDR
/ | \ They form 2-Way (not Full) with each other
/ | \
R1 R4 R5 Adjacency count = 2×(N-2) + 1 = 7 full adjacencies
\ | / (each DROTHER → DR and → BDR)
\ | / Plus DR ↔ BDR = 1
↘ ↓ ↙ Total Full adjacencies: 7 ← significant reduction
R1 (BDR)
Related pages: OSPF Overview | OSPF Neighbor States | OSPF Single-Area Config | OSPF Areas & LSAs | OSPF Single-Area Lab | OSPF Multi-Area Lab
2. Adjacency Math — With and Without DR/BDR
The reduction in full adjacencies is the core reason DR/BDR exists. The formula for full mesh adjacencies (no DR) is N×(N-1)/2.
| Routers (N) | Without DR/BDR N×(N-1)/2 |
With DR/BDR 2(N-2)+1 |
Adjacencies Saved |
|---|---|---|---|
| 3 | 3 | 3 | 0 (no benefit for 3 routers) |
| 5 | 10 | 7 | 3 |
| 10 | 45 | 17 | 28 |
| 20 | 190 | 37 | 153 |
| 50 | 1225 | 97 | 1128 |
3. DR, BDR, and DROTHER — Roles Defined
| Role | What It Is | Full Adjacency With | Sends LSUs To | Receives LSUs From |
|---|---|---|---|---|
| DR (Designated Router) |
The elected "hub" router on the segment. Central point for all OSPF LSA exchange. Represents the segment in the LSDB as a Network LSA (Type 2). | All routers on segment (DR + BDR + all DROTHERs) | All routers via 224.0.0.5 (AllSPFRouters multicast) | DROTHERs (sent to 224.0.0.6 AllDRRouters) |
| BDR (Backup Designated Router) |
Standby DR — listens to all exchanges, maintains full LSDB, ready to take over instantly if DR fails. Does not actively distribute LSAs while DR is alive. | All routers on segment (same as DR) | Takes over DR's role on DR failure | All LSUs sent by DROTHERs to 224.0.0.6 |
| DROTHER | Any router that is neither DR nor BDR. The majority of routers on a segment are DROTHERs. | Only DR and BDR (Full); with other DROTHERs only 2-Way | DR and BDR only via 224.0.0.6 (AllDRRouters multicast) | DR via 224.0.0.5 (DR redistributes to all) |
OSPF Multicast Addresses
| Multicast Address | Name | Who Listens | Who Sends |
|---|---|---|---|
| 224.0.0.5 | AllSPFRouters | All OSPF routers on the segment | DR (when distributing LSAs to all routers) and Hello packets |
| 224.0.0.6 | AllDRRouters | Only DR and BDR | DROTHERs (when sending LSUs to DR/BDR) |
4. OSPF Network Types — Where DR/BDR Applies
| Network Type | DR/BDR Used? | Typical Interface | Hello / Dead Timers | Notes |
|---|---|---|---|---|
| Broadcast | Yes | Ethernet (GigabitEthernet, FastEthernet) | 10s / 40s | Default on Ethernet; DR/BDR elected automatically; supports multicast |
| NBMA (Non-Broadcast Multi-Access) |
Yes | Frame Relay, ATM (legacy) | 30s / 120s | No multicast support — neighbors must be manually configured; DR election still occurs |
| Point-to-Point | No | Serial (HDLC, PPP), GRE tunnels | 10s / 40s | Only two routers; DR/BDR unnecessary; always goes directly to Full state |
| Point-to-Multipoint | No (default) | Frame Relay hub-and-spoke (manually set) | 30s / 120s | Treats each PVC as a separate P2P link; no DR/BDR; avoids NBMA complexity |
| Loopback | No | Loopback interface | N/A | Always advertised as host route /32 |
ip ospf network <type> on the interface. For example,
configuring ip ospf network point-to-point on an Ethernet
interface disables DR/BDR election entirely — useful when only two routers
are connected on that segment.
5. DR/BDR Election Algorithm — Step by Step
The election occurs per segment when OSPF first starts. Once a DR and BDR are elected, they remain in place unless they fail — this is the non-preemption rule (covered in Section 6).
Election algorithm (runs during OSPF initialisation):
Step 1: Wait for the dead interval (to hear from all routers on segment)
Default: 40 seconds on Ethernet
Step 2: Compare OSPF interface priority values
Range: 0–255 Default: 1
Priority 0 = router is INELIGIBLE (never becomes DR/BDR)
HIGHEST priority wins
Step 3: If priority is tied → compare Router IDs
Highest Router ID wins
Step 4: Router with highest wins = DR
Router with second highest = BDR
All remaining = DROTHER
Router ID selection (highest wins):
1st: Manually configured → router ospf 1 / router-id 4.4.4.4
2nd: Highest loopback IP → interface Loopback0 / ip address 3.3.3.3 255.255.255.255
3rd: Highest active interface IP
See: OSPF Overview — Router ID Selection
Election Example — 4 Routers on a Segment
| Router | OSPF Priority | Router ID | Election Result | Reasoning |
|---|---|---|---|---|
| R1 | 200 | 1.1.1.1 | DR | Highest priority (200) → wins DR regardless of RID |
| R2 | 100 | 2.2.2.2 | BDR | Second-highest priority (100) → BDR |
| R3 | 1 | 4.4.4.4 | DROTHER | Lower priority than R1/R2; highest RID among DROTHERs but priority takes precedence |
| R4 | 0 | 3.3.3.3 | DROTHER (ineligible) | Priority 0 = permanently excluded from DR/BDR election |
Tiebreaker Example — Equal Priorities
| Router | OSPF Priority | Router ID | Election Result |
|---|---|---|---|
| R1 | 1 (default) | 1.1.1.1 | DROTHER |
| R2 | 1 (default) | 2.2.2.2 | BDR (second-highest RID) |
| R3 | 1 (default) | 3.3.3.3 | DR (highest RID) |
6. Non-Preemption — The Critical Behaviour to Understand
OSPF DR/BDR elections are non-preemptive. Once a DR and BDR are elected, they keep their roles even if a new router with a higher priority or RID joins the segment later. This is one of the most important and most tested DR/BDR concepts.
Non-preemption scenario: Initial state (R1=DR, R2=BDR, R3=DROTHER — all priority 1): R1 (RID 1.1.1.1, priority 1) → DR R2 (RID 2.2.2.2, priority 1) → BDR R3 (RID 3.3.3.3, priority 1) → DROTHER R4 joins with priority 255, RID 4.4.4.4: Expected? You might think R4 should become DR. Actual behaviour: R4 becomes DROTHER. R1 stays DR. R2 stays BDR. R4's superior priority is IRRELEVANT as long as R1 and R2 are alive. Why? Stability — constant DR re-elections would disrupt the network. Every re-election triggers LSDB re-synchronisation and convergence events. To force R4 to become DR: Method 1: Reload R1 and R2 (they must leave and re-join the segment) Method 2: Use "clear ip ospf process" on all routers to force new election Method 3: Plan ahead — set R4's priority BEFORE connecting it to the segment
7. DR/BDR Failure and Recovery Behaviour
Normal operation: R1(DR) ←→ R2(BDR) ←→ R3(DROTHER) ←→ R4(DROTHER) All DROTHERs send LSUs to DR and BDR via 224.0.0.6 DR distributes to all via 224.0.0.5 Scenario A — DR (R1) fails: ┌─────────────────────────────────────────────────────┐ │ 1. R2 (BDR) detects DR failure via Dead timer expiry │ │ 2. R2 IMMEDIATELY becomes the new DR │ │ (no new election needed — BDR was already ready) │ │ 3. New BDR election runs among DROTHER routers only │ │ R3 or R4 wins BDR based on priority/RID │ │ 4. Network continues routing without interruption │ └─────────────────────────────────────────────────────┘ Result: R2=DR, R3 or R4=BDR, remaining=DROTHER Non-preemption still applies — if R1 recovers, it becomes DROTHER Scenario B — BDR (R2) fails: ┌───────────────────────────────────────────────────────┐ │ 1. DR (R1) continues operating normally │ │ 2. No DR re-election triggered │ │ 3. New BDR election runs among DROTHER routers only │ │ 4. Winning DROTHER becomes new BDR │ └───────────────────────────────────────────────────────┘ Result: R1=DR (unchanged), R3 or R4=new BDR Scenario C — DROTHER fails: No election impact. DR and BDR continue operating. Network topology changes trigger LSU exchange as normal.
8. LSA Flooding Optimisation by DR
The DR's most important function is to act as the central distribution point for Link State Advertisements (LSAs) on the segment. Without DR, every router would flood every LSA to every neighbour, causing exponential retransmission.
LSA flooding WITHOUT DR (5 routers, each floods independently): R3 detects link change → sends LSU to R1, R2, R4, R5 R1 receives, floods back to R2, R4, R5 R2 receives from R3 AND R1, floods to R4, R5 again... Each router floods independently → duplicate LSAs → inefficiency LSA flooding WITH DR: Step 1: R3 detects link change Step 2: R3 sends LSU to 224.0.0.6 (AllDRRouters — only DR/BDR receive) Step 3: DR receives, sends LSAck back to R3 Step 4: DR floods LSU to 224.0.0.5 (AllSPFRouters — all routers receive) Step 5: All routers (including BDR and DROTHERs) update LSDB Step 6: All routers send LSAck to 224.0.0.6 (DR/BDR acknowledge receipt) Result: Each LSA is flooded exactly ONCE from DR — no duplicates BDR also receives and stores all LSAs, ready to take over as DR
Type 2 Network LSA — DR's Advertisement
The DR generates a special Type 2 (Network) LSA for the broadcast segment it manages. This LSA lists all routers attached to the segment and allows the rest of the OSPF domain to understand the segment's topology without each individual router advertising it separately.
- Only the DR generates the Type 2 Network LSA for the segment
- If the DR changes, the new DR generates a new Type 2 LSA
- The DR uses its own Router ID as the Link State ID in the Type 2 LSA
- See OSPF Areas and LSAs for the complete LSA type reference
9. OSPF Adjacency States — 2-Way vs Full
Understanding which routers reach which state with which neighbours is essential
for reading show ip ospf neighbor output correctly.
OSPF neighbour state progression (simplified): Down → Init → 2-Way → Exstart → Exchange → Loading → Full For DROTHER ↔ DR or DROTHER ↔ BDR: Goes all the way to → FULL (complete LSDB synchronisation) For DROTHER ↔ DROTHER: Stops at → 2-WAY (bidirectional hellos confirmed; NO LSDB exchange) For any Point-to-Point link: Always goes to → FULL (no DR/BDR involved)
| Neighbour Pair | State Reached | LSDB Exchanged? | Why |
|---|---|---|---|
| DROTHER ↔ DR | Full | Yes | Full adjacency required for LSA exchange through DR |
| DROTHER ↔ BDR | Full | Yes | BDR must have complete LSDB to take over on DR failure |
| DR ↔ BDR | Full | Yes | DR and BDR must be synchronised for seamless failover |
| DROTHER ↔ DROTHER | 2-Way | No | DROTHERs route traffic through DR; no direct LSDB sync needed |
See OSPF Neighbor States for a detailed walkthrough of all OSPF states (Down through Full).
10. Configuration — Influencing DR/BDR Election
! ── Set OSPF interface priority ────────────────────────────────────────── ! Higher priority = more likely to become DR (range 0-255, default 1) ! Priority 0 = never eligible for DR or BDR Router(config)# interface GigabitEthernet0/0 Router(config-if)# ip ospf priority 200 ! Highest → will become DR after election Router(config)# interface GigabitEthernet0/1 Router(config-if)# ip ospf priority 100 ! Second → will become BDR after election Router(config)# interface GigabitEthernet0/2 Router(config-if)# ip ospf priority 0 ! Zero → DROTHER only; never DR or BDR ! ── Set Router ID (for tiebreaking) ────────────────────────────────────── ! Highest RID wins when priority is tied ! Configure BEFORE starting OSPF for deterministic RID Router(config)# router ospf 1 Router(config-router)# router-id 10.0.0.1 ! Explicitly set RID ! ── Force re-election after priority change ─────────────────────────────── ! Priority changes do NOT take effect immediately (non-preemption rule) ! Must clear OSPF process on ALL routers in the segment to force new election Router# clear ip ospf process ! Warning: This resets ALL OSPF adjacencies on the router ! Yes/No prompt: yes ! ── Change OSPF network type (disables DR/BDR on Ethernet) ─────────────── Router(config)# interface GigabitEthernet0/0 Router(config-if)# ip ospf network point-to-point ! Disables DR/BDR on this interface ! Useful when only 2 routers share an Ethernet segment ! ── NBMA manual neighbor configuration ──────────────────────────────────── ! On NBMA networks (Frame Relay), multicast is not available ! Must manually specify neighbors and their priorities Router(config)# router ospf 1 Router(config-router)# neighbor 10.0.0.2 priority 100 ! Specify neighbour IP and priority
11. Verification Commands — Full Output Reference
! ── View all OSPF neighbors with DR/BDR roles ────────────────────────────
Router# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
4.4.4.4 255 FULL/DR 00:00:35 10.1.1.4 GigabitEthernet0/0
2.2.2.2 100 FULL/BDR 00:00:38 10.1.1.2 GigabitEthernet0/0
3.3.3.3 0 2WAY/DROTHER 00:00:32 10.1.1.3 GigabitEthernet0/0
! Reading this output:
! Neighbor ID = Router ID of the neighbour
! Pri = OSPF priority of the neighbour
! State = Adjacency state / Role (FULL/DR, FULL/BDR, 2WAY/DROTHER)
! Dead Time = How long until dead timer expires (counts down from 40s)
! Address = Neighbour's IP on the shared segment
! Interface = Our local interface
! ── View DR/BDR info for a specific interface ─────────────────────────────
Router# show ip ospf interface GigabitEthernet0/0
GigabitEthernet0/0 is up, line protocol is up
Internet Address 10.1.1.1/24, Area 0, Attached via Network Statement
Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DROTHER, Priority 1
Designated Router (ID) 4.4.4.4, Interface address 10.1.1.4 ← DR info
Backup Designated Router (ID) 2.2.2.2, Interface address 10.1.1.2 ← BDR info
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:05
Supports Link-local Signaling (LLS)
Neighbor Count is 3, Adjacent neighbor count is 2
Adjacent with neighbor 4.4.4.4 (Designated Router) ← Full with DR
Adjacent with neighbor 2.2.2.2 (Backup Designated Router) ← Full with BDR
! Key fields to note:
! State DROTHER → this router is neither DR nor BDR
! Designated Router: shows DR's RID and IP address
! Adjacent neighbor count: 2 (only Full with DR and BDR, not with 3.3.3.3)
! Neighbor Count: 3 (sees 3 neighbours; 2-Way with the DROTHER)
! ── Verify Router ID ──────────────────────────────────────────────────────
Router# show ip ospf
Routing Process "ospf 1" with ID 1.1.1.1
...
! ── Check OSPF routing information ───────────────────────────────────────
Router# show ip route ospf
Router# show ip ospf database ! View full LSDB including Type 2 Network LSAs
12. NBMA Networks and DR/BDR
Non-Broadcast Multi-Access (NBMA) networks (historically Frame Relay and ATM) present a special challenge: multiple routers share the same logical network but the physical medium does not support multicast or broadcast. This breaks OSPF's automatic neighbour discovery (which relies on multicast Hello packets to 224.0.0.5).
NBMA hub-and-spoke (Frame Relay):
Hub (R1) — typically becomes DR
╱ ╲
Spoke1 Spoke2
(R2) (R3)
Problem: R2 and R3 can reach R1 (hub) via PVCs
But R2 and R3 CANNOT directly reach each other
(no PVC between them — NBMA asymmetry)
DR election on NBMA creates a problem:
If R2 or R3 becomes DR, the hub (R1) cannot reach the DR directly
Solution: Force the hub (R1) to be DR by giving it highest priority
! NBMA configuration — Hub router (R1) becomes DR Router-Hub(config)# router ospf 1 Router-Hub(config-router)# neighbor 10.0.0.2 priority 0 ! Spoke1 excluded from DR election Router-Hub(config-router)# neighbor 10.0.0.3 priority 0 ! Spoke2 excluded from DR election ! On hub interface — set high priority to ensure hub is DR Router-Hub(config)# interface Serial0/0 Router-Hub(config-if)# ip ospf priority 100 ! Hub becomes DR ! On spoke interfaces — set priority 0 to prevent spokes from becoming DR Router-Spoke1(config)# interface Serial0/0 Router-Spoke1(config-if)# ip ospf priority 0 ! On spoke routers — manually specify the hub as OSPF neighbour Router-Spoke1(config)# router ospf 1 Router-Spoke1(config-router)# neighbor 10.0.0.1 ! Hub's NBMA IP
13. Common Troubleshooting Scenarios
| Symptom | Likely Cause | Diagnostic & Fix |
|---|---|---|
| Router stuck in 2-Way state with all neighbours on broadcast network | No DR/BDR has been elected — all routers may have priority 0, or election failed | show ip ospf interface Gi0/0 — verify State; check all
routers don't have priority 0; clear ip ospf process to
force re-election |
| Wrong router is DR despite setting high priority | Non-preemption — priority change after election has no effect; the current DR stays until it fails | Use clear ip ospf process on all routers in the segment
simultaneously to force a new election with the new priorities |
All routers show DROTHER in show ip ospf neighbor |
Possible mismatch in OSPF area, hello/dead timers, authentication, or subnet mask — neighbors are not forming properly | show ip ospf interface on all routers — verify Area ID,
timers, and authentication match; check
OSPF
Neighbour Adjacency Troubleshooting |
| OSPF adjacency flapping on NBMA network | Spoke cannot reach DR directly; asymmetric PVC topology; hub not configured as DR | Set hub priority to highest; set spoke priority to 0;
manually configure neighbors with neighbor command |
| Slow convergence after DR failure | BDR promotion is fast but new BDR election among DROTHERs takes a full wait timer (40 seconds) | Tune OSPF timers: reduce dead/hello intervals; consider BFD (Bidirectional Forwarding Detection) for faster failure detection |
14. Key Points & Exam Tips
- DR/BDR exists only on broadcast and NBMA network types. Point-to-point and point-to-multipoint links have no DR/BDR.
- Without DR/BDR: adjacencies = N×(N-1)/2. With DR/BDR: Full adjacencies = 2(N-2)+1. For 5 routers: 10 without, ~7-8 with.
- Election order: (1) Highest OSPF interface priority (0–255, default 1). (2) Highest Router ID (tiebreaker). Priority 0 = never eligible.
- Non-preemption: Once elected, DR/BDR keep their roles even if a
higher-priority router joins. A new election only occurs when DR or BDR fails.
Use
clear ip ospf processto force re-election. - DROTHER adjacency states: DROTHER ↔ DR = Full. DROTHER ↔ BDR = Full. DROTHER ↔ DROTHER = 2-Way (not Full).
- Multicast: DROTHERs send LSUs to 224.0.0.6 (AllDRRouters — only DR/BDR receive). DR floods to 224.0.0.5 (AllSPFRouters — all receive). Hellos use 224.0.0.5.
- DR failure: BDR immediately becomes DR (no election). New BDR elected from DROTHERs. BDR failure alone: DR stays. New BDR elected from DROTHERs.
- DR generates the Type 2 Network LSA representing the broadcast segment in the LSDB.
- Set priority with
ip ospf priority <0-255>on the interface. Verify withshow ip ospf interface <int>andshow ip ospf neighbor. - NBMA: Must manually configure neighbors because no multicast; force hub to be DR with highest priority and spokes to priority 0.
Related pages: OSPF Overview | OSPF Neighbor States | OSPF Single-Area Config | OSPF Areas & LSAs | show ip route | OSPF Single-Area Lab | OSPF Multi-Area Lab | Troubleshooting OSPF Adjacency