Passa al contenuto principale

7. Bringing Up Adjacencies (Stabilimento delle adiacenze)

Questo capitolo descrive in dettaglio come i router OSPF stabiliscono e mantengono le relazioni di adiacenza. L'adiacenza è il nucleo del protocollo OSPF e determina quali router sincronizzeranno il loro database di stato dei collegamenti.

Panoramica del capitolo (Chapter Overview)

Lo stabilimento dell'adiacenza è un processo multi-fase che coinvolge:

  • Scoperta dei vicini
  • Conferma della comunicazione bidirezionale
  • Negoziazione della relazione master/slave
  • Sincronizzazione del database
  • Raggiungimento dello stato di adiacenza completa

7.1 Relazione di vicinato vs Adiacenza (Neighbor vs Adjacency)

Distinzione concettuale

ConcettoDefinizioneStato
Vicino (Neighbor)Router direttamente connesso scoperto via Hello2-Way o superiore
Adiacenza (Adjacency)Vicino che sincronizza LSDBStato Full

7.2 Macchina a stati del vicino (Neighbor State Machine)

Diagramma di transizione di stato

Down → Init → 2-Way → ExStart → Exchange → Loading → Full

(nessuna adiacenza)

Dettagli degli stati

1. Down (Inattivo)

  • Stato iniziale
  • Nessun pacchetto Hello ricevuto
  • Vicino non raggiungibile

2. Init (Inizializzazione)

  • Pacchetto Hello ricevuto dal vicino
  • Hello non elenca questo router
  • Comunicazione unidirezionale

3. 2-Way (Comunicazione bidirezionale)

  • Hello ricevuto contiene l'ID di questo router
  • Comunicazione bidirezionale stabilita
  • Punto di decisione: stabilire o meno l'adiacenza

4. ExStart (Inizio scambio)

  • Negoziazione della relazione master/slave
  • Il Router ID più grande diventa Master
  • Determina il numero di sequenza DD iniziale

5. Exchange (Descrizione del database)

  • Scambio di pacchetti Database Description (DD)
  • Descrive il contenuto della LSDB locale
  • Solo intestazioni LSA, non LSA completi

6. Loading (Caricamento)

  • Richiesta di LSA mancanti o scaduti
  • Invia Link State Request (LSR)
  • Riceve Link State Update (LSU)

7. Full (Adiacenza completa)

  • Database completamente sincronizzato
  • Stato operativo normale
  • Calcolo delle rotte possibile

7.3 Decisione di formazione adiacenza (Adjacency Formation Decision)

Matrice di decisione

Tipo di reteCon chi stabilire adiacenzaMotivo
Punto-a-puntoTutti i viciniUn solo vicino
Punto-a-multipuntoTutti i viciniTrattato come multipli punto-a-punto
BroadcastDR e BDRRidurre numero di adiacenze
NBMADR e BDRRidurre numero di adiacenze

7.4 Elezione DR e BDR (DR/BDR Election)

Algoritmo di elezione

Momento dell'elezione

  • Lo stato dell'interfaccia passa da Waiting a DR o DROther
  • Il pacchetto Hello innesca un ricalcolo

Regole di elezione

  1. Confronto di priorità

    • Router Priority = 0: non partecipa all'elezione
    • Priorità più alta è preferita
  2. Confronto di Router ID

    • In caso di priorità identica, il Router ID più grande vince
  3. Elezione in due fasi

    • Fase 1: Eleggere il BDR
    • Fase 2: Eleggere il DR

7.5 Pacchetti Database Description (Database Description Packets)

Formato pacchetto DD

Campi intestazione

CampoDimensioneDescrizione
Interface MTU16 bitDimensione MTU interfaccia
Options8 bitCapacità opzionali
Flags8 bitFlag I/M/MS
DD Sequence Number32 bitNumero di sequenza

Descrizione bit di flag

  • I (Init): Primo pacchetto DD
  • M (More): Altri pacchetti DD seguiranno
  • MS (Master/Slave): 1=Master, 0=Slave

Momento di generazione LSR

Condizioni di attivazione

  • Stato Exchange: il vicino ha LSA più recenti
  • Stato Loading: continuare a richiedere LSA mancanti
  • Stato Full: richiedere occasionalmente LSA mancanti

Scopo LSU

Scenari di utilizzo

  1. Risposta a LSR (unicast)
  2. Flooding di nuovi LSA (multicast/broadcast)
  3. Aggiornamento periodico LSA

Momento di conferma

Conferma ritardata

  • Conferma batch dopo ricezione di più LSA
  • Ritardo tipicamente < 1 secondo
  • Riduce numero di pacchetti

Conferma immediata

  • Ricezione di LSA duplicati
  • Ricezione di istanza LSA più vecchia

7.9 Manutenzione adiacenza (Adjacency Maintenance)

Ruolo del protocollo Hello

Monitoraggio continuo

  • Invio periodico di pacchetti Hello
  • Monitoraggio degli Hello dei vicini
  • Il vicino scade se nessun Hello entro Dead Interval

Intervallo Hello

  • Punto-a-punto/Broadcast: 10 secondi
  • NBMA: 30 secondi

Intervallo Dead

  • Predefinito: Hello Interval × 4
  • Punto-a-punto/Broadcast: 40 secondi
  • NBMA: 120 secondi

7.10 Esempi di formazione adiacenza (Adjacency Formation Examples)

Esempio 1: Collegamento punto-a-punto

Router A ←────────→ Router B

Passo 1: Entrambi inviano Hello
A → B: Hello (lista vicini vuota)
B → A: Hello (lista vicini vuota)

Passo 2: Confermare comunicazione bidirezionale
A → B: Hello (lista vicini contiene B)
B → A: Hello (lista vicini contiene A)
Stato: 2-Way

Passo 3: Negoziare master/slave
A → B: DD (I, M, MS=1, Seq=X)
B → A: DD (I, M, MS=0, Seq=X)
A diventa Master

Passo 4: Scambiare descrizioni database
A → B: DD (M, MS=1, Seq=X+1) [Lista intestazioni LSA]
B → A: DD (M, MS=0, Seq=X+1) [Lista intestazioni LSA]
...continuare fino al completamento dello scambio

Passo 5: Richiedere LSA mancanti
A → B: LSR [richiede LSA 1, 2, 3]
B → A: LSU [LSA 1, 2, 3]
A → B: LSAck [conferma 1, 2, 3]

Passo 6: Raggiungere stato Full
Stato: Full
Calcolo rotte possibile

Riepilogo tecnico (Technical Summary)

Meccanismi chiave

  1. Guidato da macchina a stati

    • Transizioni di stato chiare
    • 7 stati del vicino
    • Comportamento guidato da eventi
  2. Sincronizzazione affidabile

    • Meccanismo numero di sequenza
    • Conferma e ritrasmissione
    • Coordinamento master/slave
  3. Design ottimizzato

    • DR/BDR riducono adiacenze
    • Conferma batch riduce traffico
    • Sincronizzazione database per fasi

Riferimenti (References)


Nota (Note): Lo stabilimento dell'adiacenza è la base del protocollo OSPF. Comprendere le transizioni di stato e l'ordine di scambio dei pacchetti è cruciale per la risoluzione dei problemi.