Panoramica del Bidirectional Forwarding Detection (BFD)

In questa pagina viene descritto il Bidirectional Forwarding Detection (BFD) per il router Cloud.

BFD (RFC 5880, RFC 5881) è un protocollo di rilevamento delle interruzioni del percorso di forwarding supportato dalla maggior parte dei router commerciali. Con il protocollo BFD per il router Cloud, puoi abilitare la funzionalità BFD all'interno di una sessione BGP per rilevare interruzioni del percorso di forwarding, ad esempio eventi di collegamento. Questa funzionalità rende le reti ibride più resilienti.

Quando esegui il peering con Google Cloud dalla tua rete on-premise utilizzando Dedicated Interconnect o Partner Interconnect, puoi abilitare BFD per il rilevamento rapido degli errori di collegamento e del failover del traffico a un link alternativo con una sessione BGP di backup. In questo modo, BFD fornisce un percorso di connettività di rete ad alta disponibilità in grado di rispondere rapidamente ai guasti dei collegamenti.

Vantaggi del modello BFD

Il protocollo BFD configurato con impostazioni predefinite rileva gli errori in 5 secondi, rispetto ai 60 secondi del rilevamento degli errori basato su BGP. Con l'implementazione di BFD sul router Cloud, il tempo di rilevamento end-to-end può essere di soli 5 secondi.

BFD è un protocollo hello a lunghezza fissa in cui ogni estremità di una connessione trasmette periodicamente pacchetti su un percorso di forwarding.

BFD è un protocollo di rilevamento basato su UDP che fornisce un metodo a basso costo per rilevare gli errori nel percorso di forwarding tra due router adiacenti. Ciò include il rilevamento degli errori nelle interfacce, nei collegamenti dati e nei piani di forwarding. Puoi abilitare il protocollo BFD a livello di protocollo di routing.

Limitazioni BFD

Puoi abilitare BFD solo nelle sessioni BGP configurate per i collegamenti VLAN in Dedicated Interconnect o Partner Interconnect. Il protocollo BFD non è supportato nelle sessioni BGP configurate per i tunnel VPN ad alta disponibilità o per l'appliance router, che fa parte del Network Connectivity Center.

Istituzione sessione BFD

Per stabilire una sessione BFD, configura BFD su entrambi i peer BGP: un router Cloud e un router on-premise che esegue BFD. Dopo aver abilitato il BFD per il protocollo di routing BGP sul router, viene creata una sessione BFD, i timer BFD vengono negoziati e i peer BFD iniziano a inviare pacchetti di controllo BFD l'uno all'altro all'intervallo negoziato.

Inviando avvisi di rilevamento rapido degli errori al BGP sul router locale per avviare il processo di ricalcolo della tabella di routing, BFD contribuisce a ridurre notevolmente il tempo complessivo di convergenza della rete.

Il seguente diagramma mostra una rete semplice con due router che eseguono BGP e BFD. Questi numeri rappresentano il processo di definizione delle sessioni BFD:

  1. Il vicino BGP è configurato.
  2. BGP invia una richiesta al processo BFD locale per avviare una sessione di vicini BFD con il peer/router BGP.
  3. La sessione del vicino BFD con il router vicino BGP viene stabilita.
Creazione di una sessione BFD.
Creazione della sessione BFD (fai clic per ingrandire)

BFD durante un evento di errore

La figura seguente mostra cosa accade quando si verifica un errore nella rete.

In modalità di solo controllo BFD, il router Cloud e il router on-premise inviano periodicamente pacchetti di controllo BFD l'uno all'altro. Se il numero di pacchetti di controllo in una riga configurata nell'impostazione bfd multiplier sul router Cloud non viene ricevuto dall'altro router, la sessione viene dichiarata non disponibile. Si verifica quindi quanto segue:

  1. Si verifica un errore nel collegamento tra Google Cloud e il router on-premise.
  2. La sessione di vicini BFD con il router vicino BGP è stata rimossa.
  3. BFD notifica al processo BGP locale che il vicino BFD non è più raggiungibile.
  4. Il processo BGP locale interrompe la relazione BGP con i vicini.

Se è disponibile un percorso alternativo, i router iniziano immediatamente a convergere su di esso.

BFD durante un evento di errore.
BFD durante un evento di errore (fai clic per ingrandire)

Attenuazione BFD

Il router Cloud implementa internamente lo smorzamento BFD per sopprimere l'effetto negativo dei flap frequenti delle sessioni BFD su BGP. Lo smorzamento BFD utilizza parametri predefiniti che non possono essere modificati dall'utente.

Lo smorzamento dei BFD utilizza un sistema di penalizzazione. Il valore di penalità inizia da 0 e aumenta a 1 per il primo flap. Dopo il primo flap, la penalità raddoppia ogni volta che si verifica un altro flap BFD. Quando la penalità supera il valore della soglia di 4, BFD elimina le notifiche per BGP. La penalità si dimezza ogni 10 minuti se non si verifica alcun flap durante questo periodo.

BFD abilita nuovamente le notifiche a BGP dopo che la penalità è scesa al di sotto della soglia di riutilizzo di 4.

L'intervallo di soppressione massimo per le notifiche BFD a BGP è di 1 ora. In questo modo, le notifiche di inattività della sessione BFD non vengono smorzate definitivamente.

Modalità BFD asincrona

Il router Cloud supporta una modalità operativa asincrona, in cui i sistemi coinvolti si inviano periodicamente pacchetti di controllo BFD l'uno all'altro. Se un numero configurato di questi pacchetti in una riga non viene ricevuto dall'altro sistema, la sessione viene dichiarata non attiva.

La modalità di domanda del funzionamento BFD non è supportata. Per la modalità a pacchetto, BFD supporta la modalità solo controllo, mentre la modalità eco non è supportata.

In modalità asincrona con modalità a pacchetto di solo controllo, il protocollo BFD viene eseguito sul piano di controllo e può comportare un leggero overhead e tempi di elaborazione della CPU.

Per impostazione predefinita, BFD è disabilitato sulle sessioni BGP del router Cloud. Per utilizzare il protocollo BFD, devi abilitarlo.

Nel seguente scenario di errore, i router hanno le seguenti impostazioni:

  • L'intervallo di ricezione BFD del router Cloud è impostato su 1000 millisecondi (ms) moltiplicati per un moltiplicatore BFD di 5, per un'impostazione del timer di rilevamento di 5000 ms.
  • L'intervallo di trasmissione BFD del router peer è impostato su 1000 ms moltiplicato per un moltiplicatore BFD di 5, per un'impostazione del timer di rilevamento di 5000 ms.

Il router Cloud negozia con il router peer e prevede di ricevere pacchetti di controllo ogni 1000 ms dal router peer. Se passano 5000 ms senza che il router Cloud riceva un pacchetto di controllo, il timer di rilevamento scade e dichiara la sessione BFD non attiva.

BFD senza pacchetti eco.
BFD senza pacchetti eco (fai clic per ingrandire)

Riavvio gestito e BFD

Per ridurre al minimo l'impatto sul traffico durante gli eventi di manutenzione del software del router Cloud, ti consigliamo di abilitare il riavvio graceful di BGP.

Se sono abilitati sia il riavvio graceful di BGP sia il protocollo BFD, al riavvio del router Cloud prova a disattivare il protocollo BFD inviando un messaggio AdminDown al router on-premise. In questo caso, la sessione BGP rimane attiva sul lato on-premise e il router on-premise entra in modalità di riavvio graceful. Mentre il router on-premise è in modalità di riavvio graceful, il router Cloud può riavviarsi senza influire sul traffico del piano dati.

Analogamente, se il router on-premise invia un messaggio AdminDown prima del riavvio del piano di controllo, il router Cloud entra in modalità di riavvio graceful. Mentre il router Cloud è in modalità di riavvio graceful, il router on-premise può riavviarsi senza influire sul traffico del piano dati.

Il router Cloud imposta il bit indipendente del piano di controllo su 0 quando viene stabilito il protocollo BFD con il router peer, per segnalare che la sua implementazione dipende dal piano di controllo. Se si verifica un errore di interfaccia, è possibile che il router peer non sia in grado di distinguere tra un errore BFD causato da un errore del piano di controllo o da un errore del piano dati. Ad esempio, un errore dell'interfaccia può causare l'attivazione di una modalità di riavvio graceful dal router on-premise e un ritardo inutilmente del failover del traffico dal link interessato.

A causa della possibile ambiguità degli errori BFD, diversi fornitori trattano questo scenario specifico in modo diverso e offrono impostazioni di configurazione per modificare il comportamento predefinito. Ti consigliamo di esaminare la documentazione del fornitore del router e di configurare il router on-premise per assicurarti che un evento di errore dell'interfaccia BFD con un peer BFD dipendente dal piano di controllo attivi un failover immediato quando viene utilizzato con riavvio graceful di BGP.

Impostazioni e timer BFD

Questa sezione descrive le impostazioni BFD che puoi configurare sul router Cloud.

Modalità di inizializzazione della sessione BFD

Descrizione La modalità di inizializzazione della sessione BFD per questo peer BGP.
Comando gcloud --bfd-session-initialization-mode
campo API bgpPeers[].bfd.sessionInitializationMode
Impostazione predefinita Disabled

Esistono tre impostazioni per la modalità BFD: Active, Passive e Disabled. Se non configuri questa modalità, il valore predefinito è Disabled, utilizzando la modalità senza eco (solo pacchetti di controllo).

  • Disabled (predefinito): il protocollo BFD è disabilitato per questo peer BGP.
  • Passive: il router Cloud attende che il router peer avvii la sessione BFD per questo peer BGP.
  • Active: il router Cloud avvia la sessione BFD per questo peer BGP.

Devi impostare il router su almeno un lato di una connessione (il router Cloud o il router peer) su Active. Quando configuri una sessione BGP tra due router Cloud, imposta la modalità di inizializzazione della sessione BFD di un router su Active.

Se imposti entrambe le parti su Active, le due parti inviano un pacchetto di controllo iniziale per negoziare i parametri e alla fine la sessione viene stabilita.

Se imposti la modalità di inizializzazione della sessione BFD su Disabled, puoi configurare le altre impostazioni BFD. Queste impostazioni hanno effetto quando riattivi il protocollo BFD.

Intervallo minimo di trasmissione BFD (pacchetti BFD a un peer)

Descrizione Intervallo minimo tra i pacchetti di controllo BFD trasmessi a un peer BGP.
Comando gcloud --bfd-min-transmit-interval
campo API bgpPeers[].bfd.minTransmitInterval
Impostazione predefinita

È possibile specificare un'impostazione compresa tra 1000 ms e 30000 ms.

Intervallo minimo di ricezione BFD (pacchetti BFD da un peer)

Descrizione Intervallo minimo tra i pacchetti di controllo BFD ricevuti da un peer BGP.
Comando gcloud --bfd-min-receive-interval
campo API bgpPeers[].bfd.minReceiveInterval
Impostazione predefinita

È possibile specificare un'impostazione compresa tra 1000 ms e 30000 ms.

Moltiplicatore BFD

Descrizione Il numero di pacchetti di controllo BFD consecutivi che devono andare persi prima che BFD dichiari che un peer non è disponibile.
Comando gcloud --bfd-multiplier
campo API bgpPeers[].bfd.multiplier
Impostazione predefinita

5 pacchetti. Puoi specificare un'impostazione compresa tra 5 e 16 pacchetti.

Passaggi successivi