Panoramica di Bidirectional Forwarding Detection (BFD)

Questa pagina descrive Bidirectional Forwarding Detection (BFD) per 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 BFD per router Cloud, puoi attivare la funzionalità BFD all'interno di una sessione BGP per rilevare interruzioni del percorso di inoltro, ad esempio eventi di interruzione del link. 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 attivare BFD per il rilevamento rapido del guasto del link e il failover del traffico su un link alternativo con una sessione BGP di backup. In questo modo, BFD fornisce un percorso di connettività di rete ad alta disponibilità che può rispondere rapidamente ai guasti del link.

Vantaggi di BFD

BFD configurato con le impostazioni predefinite rileva l'errore in 5 secondi, rispetto ai 60 secondi per il rilevamento degli errori basato su BGP. Con BFD implementato sul router Cloud, il tempo di rilevamento end-to-end può essere ridotto a 5 secondi.

BFD è un protocollo di saluto di lunghezza fissa in cui ogni estremità di una connessione trasmette periodicamente pacchetti lungo un percorso di inoltro.

BFD è un protocollo di rilevamento basato su UDP che fornisce un metodo a basso overhead per rilevare gli errori nel percorso di inoltro tra due router adiacenti. Sono inclusi il rilevamento di errori in interfacce, link di dati e piani di inoltro. Puoi attivare BFD a livello di protocollo di routing.

Limitazioni di BFD

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

Stabilimento della sessione BFD

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

Inviando notifiche di rilevamento rapido dei guasti a BGP sul router locale per avviare il processo di ricalcolo della tabella di routing, BFD contribuisce a ridurre notevolmente il tempo di convergenza complessivo della rete.

Il seguente diagramma mostra una rete semplice con due router che eseguono BGP e BFD. Questi numeri rappresentano la procedura di creazione della sessione BFD:

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

BFD durante un evento di errore

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

In modalità solo controllo BFD, router Cloud e il tuo router on-premise si inviano periodicamente pacchetti di controllo BFD. 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 attiva. A questo punto, si verifica quanto segue:

  1. Si verifica un errore nel collegamento tra Google Cloud e il router on-premise.
  2. La sessione del vicino BFD con il router del vicino BGP viene interrotta.
  3. BFD comunica al processo BGP locale che il vicino BFD non è più contattabile.
  4. Il processo BGP locale rimuove la relazione BGP neighbor.

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)

Smorzamento BFD

Router Cloud implementa internamente l'attenuazione BFD per eliminare l'effetto negativo dei frequenti flap delle sessioni BFD su BGP. L'attenuazione BFD utilizza parametri predefiniti che non possono essere modificati dall'utente.

L'attenuazione BFD utilizza un sistema di penalità. Il valore della 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 soglia di 4, BFD elimina le notifiche a BGP. La penalità viene dimezzata ogni 10 minuti se non si verificano flap durante questo periodo.

BFD riattiva le notifiche a BGP dopo che la penalità scende al di sotto della soglia di riutilizzo di 4.

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

Modalità asincrona BFD

Router Cloud supporta una modalità di funzionamento asincrona, in cui i sistemi coinvolti si inviano periodicamente pacchetti di controllo BFD. Se un numero configurato di questi pacchetti in una riga non viene ricevuto dall'altro sistema, la sessione viene dichiarata non disponibile.

La modalità domanda del funzionamento BFD non è supportata. Per la modalità di pacchetto, BFD supporta la modalità solo controllo; la modalità echo non è supportata.

Nella modalità di funzionamento asincrona con modalità di pacchetto solo di controllo, BFD viene eseguito sul piano di controllo e può aggiungere un leggero overhead e tempo di elaborazione della CPU.

Per impostazione predefinita, BFD è disabilitato nelle sessioni BGP del router Cloud. Per utilizzare BFD, devi attivarlo.

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 moltiplicati 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 si aspetta 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 la sessione BFD viene dichiarata non disponibile.

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

Per la configurazione di BFD, ti consigliamo quanto segue:

  • Per evitare una mancata corrispondenza del moltiplicatore BFD, configura il router on-premise e il router cloud con le stesse impostazioni BFD.
  • Per evitare i flap BFD e BGP, imposta il timeout minimo per l'expiration BFD su almeno 5000 ms in ogni direzione.

Riavvio graduale e BFD

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

Se sono abilitati sia riavvio graceful BGP sia BFD, al riavvio del router cloud viene tentato di disattivare 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. Quando il router on-premise è in modalità di riavvio graceful, 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 suo piano di controllo, router Cloud entra in modalità di riavvio graceful. Quando Cloud Router è in modalità di riavvio graceful, il router on-premise può riavviare senza influire sul traffico del piano dati.

Router Cloud imposta il bit indipendente dal piano di controllo su 0 quando stabilisce il protocollo BFD con il router peer per indicare che la relativa implementazione del protocollo BFD è dipendente dal piano di controllo. Se si verifica un errore di interfaccia, è possibile che il router peer non riesca a distinguere tra un errore BFD causato da un errore del piano di controllo o da un errore del piano dati. Ad esempio, un errore di interfaccia può causare il passaggio del router on-premise a una modalità di riavvio graceful e ritardare inutilmente il failover del traffico dal link interessato.

A causa della possibile ambiguità di errore BFD, i 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 se utilizzato con riavvio graceful 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 della modalità BFD: Active, Passive e Disabled. Se non impostate questa modalità, viene utilizzata per impostazione predefinita l'impostazione Disabled, con modalità non echo (solo pacchetti di controllo).

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

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

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

Se imposti la modalità di inizializzazione della sessione BFD su Disabled, facoltativamente puoi configurare il resto delle impostazioni BFD. Queste impostazioni vengono applicate quando riattivi BFD.

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

Descrizione L'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

1000 ms. Puoi specificare un'impostazione compresa tra 1000 ms e 30000 ms.

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

Descrizione L'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

1000 ms. Puoi specificare un'impostazione compresa tra 1000 ms e 30000 ms.

Moltiplicatore BFD

Descrizione Numero di pacchetti di controllo BFD consecutivi che devono andare persi prima che BFD dichiari che un determinato 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