Perché esistono DR e BDR

Su un segmento broadcast multi-access (tipicamente una LAN Ethernet con più router OSPF) ogni router vorrebbe formare un’adiacenza FULL con tutti gli altri. Con n router si avrebbero n(n-1)/2 adiacenze e un flooding degli LSA moltiplicato inutilmente. Per evitarlo, OSPF elegge un Designated Router (DR) e un Backup Designated Router (BDR): tutti i router formano adiacenza FULL solo con DR e BDR, mentre restano in stato 2WAY fra loro. I router non eletti si chiamano DROTHER.

Il DR raccoglie e ridistribuisce le informazioni di stato del collegamento tramite l’indirizzo multicast 224.0.0.6 (AllDRouters); i DROTHER inviano i loro update al DR usando 224.0.0.6, mentre il DR fa flooding verso tutti con 224.0.0.5 (AllSPFRouters).

Il processo di elezione

L’elezione avviene confrontando, in ordine:

  1. OSPF interface priority più alta (default 1, range 0–255).
  2. A parità, Router ID più alto.

Regola chiave: l’elezione non è preemptive. Se un router con priority più alta entra in rete dopo che DR/BDR sono già stati eletti, non spodesta il DR esistente; diventa DROTHER e attenderà il prossimo evento di elezione (nuova accensione/reset delle adiacenze).

Il Router ID si determina, in ordine: valore configurato con router-id, poi l’IP più alto di una loopback attiva, infine l’IP più alto di un’interfaccia fisica attiva.

Per forzare o escludere un router si agisce sull’interfaccia:

interface GigabitEthernet0/0
 ip ospf priority 100   ! candidato forte a DR

Una priority 0 rende il router ineleggibile: non sarà mai DR né BDR su quel segmento, pur partecipando normalmente a OSPF.

Stati dell’adiacenza da conoscere

Stato Significato
DOWN Nessun Hello ricevuto dal neighbor
INIT Ricevuto Hello, ma il mio Router ID non è ancora nella lista del vicino
2WAY Comunicazione bidirezionale confermata; qui si ferma una coppia DROTHER↔DROTHER
EXSTART/EXCHANGE/LOADING Sincronizzazione dei database (DBD, LSR, LSU)
FULL Database sincronizzati: adiacenza completa (verso DR/BDR o su link point-to-point)

2WAY non è un errore. Due DROTHER che restano stabilmente in 2WAY/DROTHER è il comportamento corretto su un segmento broadcast: si sincronizzano solo con DR e BDR.

passive-interface

Il comando passive-interface sotto router ospf sopprime l’invio degli Hello su quell’interfaccia: nessuna adiacenza si forma, ma la subnet dell’interfaccia continua a essere annunciata in OSPF. È l’approccio corretto per le interfacce verso gli host/LAN utente. Sintomo tipico da diagnosi: la rete compare in tabella di routing sui vicini, ma show ip ospf neighbor non mostra alcun neighbor su quel link.

Diagnostica con le show

show ip ospf neighbor è il primo comando. Mostra Neighbor ID, Pri, State (es. FULL/DR, FULL/BDR, 2WAY/DROTHER), Dead Time e indirizzo. Il campo dopo lo slash indica il ruolo del vicino su quel segmento.

show ip ospf interface [gi0/0] rivela: Network Type (BROADCAST vs POINT_TO_POINT), chi è DR/BDR (con relativi IP), la priority locale, i timer Hello/Dead e l’area. È lo strumento per capire perché un’adiacenza non sale.

Le adiacenze non si formano quando divergono: Hello/Dead timer, Area ID, subnet mask dell’interfaccia, tipo di rete, autenticazione, o MTU (blocca in EXSTART/EXCHANGE).

Punto cruciale: point-to-point

Su un link point-to-point (es. seriale, o una Ethernet configurata con ip ospf network point-to-point) non avviene alcuna elezione: niente DR, niente BDR. I due router passano direttamente a FULL. Cercare un DR su un link p2p è concettualmente sbagliato.

Trappole tipiche d’esame

  • Scenario: su un link point-to-point ci si aspetta di vedere DR/BDR → Risposta giusta: su reti point-to-point l’elezione DR/BDR non avviene; i router vanno direttamente a FULL/ - (nessun ruolo).
  • Scenario: due router restano in 2WAY/DROTHER su una LAN e si sospetta un guasto → Risposta giusta: è il comportamento normale; i DROTHER formano FULL solo con DR e BDR, non fra loro.
  • Scenario: un router non deve mai diventare DR/BDR → Risposta giusta: impostare ip ospf priority 0 sull’interfaccia; con priority 0 il router è ineleggibile ma resta pienamente operativo in OSPF.
  • Scenario: un nuovo router con priority 200 non diventa DR anche se è la più alta del segmento → Risposta giusta: l’elezione OSPF non è preemptive; serve clear ip ospf process o un reset delle adiacenze perché venga rieletto.
  • Scenario: una LAN è annunciata ma show ip ospf neighbor non elenca vicini su quell’interfaccia → Risposta giusta: l’interfaccia è passive-interface; annuncia la rete ma non invia Hello, quindi nessuna adiacenza si forma.