Il processo di adiacenza

OSPF è un protocollo link-state (IP protocol 89) che scopre i vicini scambiando pacchetti Hello sull’indirizzo multicast 224.0.0.5 (AllSPFRouters). Due router diventano neighbor quando ciascuno si riconosce nell’Hello dell’altro (stato 2-Way), ma raggiungono l’adiacenza completa (Full) solo dopo aver sincronizzato il Link-State Database attraverso le fasi ExStart → Exchange → Loading, durante le quali si scambiano i DBD (Database Description) e le LSA richieste.

Perché l’Hello venga accettato e l’adiacenza si formi, alcuni parametri devono coincidere sull’interfaccia condivisa:

Parametro Deve combaciare? Note
Area ID Interfaccia nella stessa area
Subnet / netmask Sì (su broadcast) Non verificata sui link point-to-point
Hello / Dead timer Broadcast 10/40 s, non-broadcast 30/120 s
Authentication Tipo e chiave
Stub flag / area type Entrambi stub, o entrambi normali
MTU Verificata nel DBD (fase Exchange)

Il Router-ID deve invece essere univoco: due router con lo stesso RID non formano adiacenza.

Network type: point-to-point e broadcast

Il network type dell’interfaccia determina il comportamento delle adiacenze.

  • Point-to-point (default su interfacce seriali/subinterface P2P): un solo vicino possibile, nessuna elezione, adiacenza diretta. La netmask non viene controllata, quindi un mismatch di prefisso può passare inosservato.
  • Broadcast (default su Ethernet): elezione di DR e BDR per ridurre le adiacenze e centralizzare il flooding. I router non-DR (DROTHER) formano Full solo con DR e BDR, restando in 2-Way tra loro — comportamento normale, non un guasto.

L’elezione DR/BDR segue la OSPF priority (default 1): vince la priorità più alta; a parità, il Router-ID più alto. Una priorità di 0 esclude il router dall’elezione. L’elezione è non-preemptive: un router acceso dopo non spodesta un DR già eletto. Il DR usa 224.0.0.6 (AllDRouters) per ricevere gli aggiornamenti.

Struttura ad aree e LSA principali

OSPF è gerarchico: l’area 0 (backbone) collega tutte le altre. Un ABR (Area Border Router) sta su più aree; un ASBR ridistribuisce rotte esterne. Ogni tipo di LSA ha uno scope di flooding preciso:

Tipo Nome Generato da Scope
1 Router LSA Ogni router Intra-area
2 Network LSA DR del segmento multi-access Intra-area
3 Summary LSA ABR Inter-area
4 ASBR Summary ABR Verso l’ASBR
5 AS External ASBR Tutto il dominio (tranne stub/NSSA)

Il Type 1 descrive router e stato dei suoi link; il Type 2 è emesso dal DR e lista i router sul segmento broadcast; il Type 3 propaga i prefissi di un’area verso le altre (l’ABR li riannuncia, non li flooda tal quali); il Type 5 trasporta rotte redistribuite (es. da BGP o static).

Le aree stub bloccano i Type 5 (e i Type 4): l’ABR inietta una default route tramite un Type 3. Le totally stubby bloccano anche i Type 3, lasciando solo il default. Le NSSA ammettono rotte esterne tramite Type 7 (convertite in Type 5 dall’ABR) ma continuano a rifiutare i Type 5 nativi.

Trappole tipiche d’esame

  • Adiacenza bloccata in ExStart/Exchange → quasi sempre MTU mismatch: i router non riescono a scambiare i DBD. La soluzione corretta è allineare l’MTU o usare ip ospf mtu-ignore sull’interfaccia.
  • Neighbor fermo in Init/mai formatomismatch di Hello/Dead timer, area ID o authentication. Ricorda che sui link broadcast anche subnet/netmask devono coincidere, mentre sui point-to-point la maschera non è verificata.
  • Route esterne assenti in un’area → è configurata come stub: non accetta Type 5. Se servono le external mantenendo il filtraggio, la risposta è NSSA (Type 7), non stub.
  • Due DROTHER restano in 2-Way → comportamento atteso su segmento broadcast, non un problema da risolvere.
  • DR “sbagliato” dopo un reload → l’elezione è non-preemptive: per forzare il DR desiderato si agisce sulla OSPF priority e si resetta il processo con clear ip ospf process, non basta il RID più alto.