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 forwarding, ad esempio eventi di interruzione del 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 attivare BFD per il rilevamento rapido degli errori di collegamento e il 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 link.

Vantaggi della modalità 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 su 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 pacchetti periodicamente su un percorso di forwarding.

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

Limitazioni di BFD

Puoi attivare BFD solo nelle sessioni BGP che configuri per i collegamenti VLAN in Dedicated Interconnect o Partner Interconnect. BFD non è supportato nelle sessioni BGP configurate per 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 tuo 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 inviarsi a vicenda pacchetti di controllo BFD all'intervallo negoziato.

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

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 BFD vicina con il router peer/vicino BGP.
  3. La sessione del vicino BFD con il router vicino BGP è stabilita.
Stabilimento della sessione BFD.
Stabilimento 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.

Nella modalità solo controllo BFD, router Cloud e il tuo router on-premise si inviano periodicamente pacchetti di controllo BFD. Se l'altro router non riceve il numero di pacchetti di controllo consecutivi configurati nell'impostazione bfd multiplier sul router Cloud, la sessione viene dichiarata inattiva. Dopodiché, 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 vicino BGP viene interrotta.
  3. BFD comunica al processo BGP locale che il vicino BFD non è più raggiungibile.
  4. Il processo BGP locale interrompe la relazione di vicinato BGP.

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 la soppressione BFD per eliminare l'effetto negativo dei frequenti flap della sessione 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 fino 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 di soglia di 4, BFD sopprime le notifiche a BGP. La penalità viene ridotta della metà ogni 10 minuti se non si verifica alcun problema 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 è di 1 ora. Ciò garantisce che le notifiche di interruzione della sessione BFD non vengano disattivate per sempre.

Modalità asincrona BFD

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

La modalità on demand dell'operazione BFD non è supportata. Per la modalità pacchetto, BFD supporta solo la modalità di controllo; la modalità eco non è supportata.

Nella modalità di funzionamento asincrona con la modalità pacchetto solo controllo, BFD viene eseguito sul control plane 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 abilitarlo.

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

  • Gli intervalli minimi di ricezione e trasmissione BFD di Cloud Router sono impostati su 1000 millisecondi (ms).
  • Gli intervalli minimi di ricezione e trasmissione BFD del router peer sono impostati su 1000 ms.
  • Il protocollo BFD RFC 5880 negozia l'intervallo di trasmissione concordato con il valore più alto tra l'intervallo di trasmissione dal lato del mittente e l'intervallo di ricezione dal lato del destinatario. Pertanto, gli intervalli di trasmissione concordati su entrambi i lati sono 1000 ms a causa di impostazioni identiche.
  • Il calcolo del tempo di rilevamento sul router Cloud è l'intervallo di trasmissione concordato del router peer moltiplicato per il valore del moltiplicatore BFD del router peer. In questo scenario, il tempo di rilevamento è 1000 ms * 5 = 5000 ms.
  • Il calcolo del tempo di rilevamento sul router peer è l'intervallo di trasmissione concordato del router Cloud moltiplicato per il valore del moltiplicatore BFD di Cloud Router. In questo scenario, il tempo di rilevamento è 1000 ms * 5 = 5000 ms.

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

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

Quando configuri BFD, ti consigliamo di:

  • Per evitare una mancata corrispondenza del moltiplicatore BFD, configura i router on-premise e router Cloud con le stesse impostazioni BFD.
  • Per evitare sfarfallii BFD e BGP, imposta il timeout minimo scaduto di BFD non inferiore a 5000 ms in ogni direzione.

Riavvio graceful e BFD

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

Se sono abilitati sia riavvio graceful di BGP sia BFD, quando router Cloudr si riavvia, tenta 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à driavvio gracefulto. Mentre il router on-premise è in modalità di riavvio graceful, router Cloudr può riavviarsi senza influire sul traffico del data plane.

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

Router Cloud imposta il bit indipendente dal piano di controllo su 0 quando stabilisce BFD con il router peer, per segnalare che la sua implementazione di BFD dipende 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 control plane o del data plane. Ad esempio, un errore di interfaccia può causare l'avvio di una modalità di riavvio graceful controllato del router on-premise e ritardare inutilmente un failover del traffico dal link interessato.

A causa della possibile ambiguità dell'errore 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 control plane 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 su router Cloudr.

Modalità di inizializzazione della sessione BFD

Descrizione 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 imposti questa modalità, viene impostata automaticamente su Disabled, utilizzando la modalità non echo (solo pacchetti di controllo).

  • Disabled (impostazione predefinita): 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, ovvero 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 entrambi i lati su Active, i due lati inviano un pacchetto di controllo iniziale per negoziare i parametri e la sessione viene alla fine stabilita.

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

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

Descrizione Intervallo minimo in millisecondi tra due pacchetti BFD di controllo 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 30.000 ms.

Il protocollo BFD RFC 5880 imposta l'intervallo di trasmissione concordato come il valore più alto tra l'intervallo di trasmissione del router Cloud e l'intervallo di ricezione del peer. Pertanto, BFD è supportato nelle sessioni BGP anche se il dispositivo on-premise supporta solo un intervallo di ricezione minimo inferiore a 1000 ms.

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

Descrizione Intervallo minimo in millisecondi tra due pacchetti BFD di controllo 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 30.000 ms.

Il protocollo BFD RFC 5880 imposta l'intervallo di trasmissione concordato dal router peer come il valore più alto tra l'intervallo di trasmissione del peer e l'intervallo di ricezione del router Cloud. Pertanto, BFD è supportato nelle sessioni BGP anche se il tuo dispositivo on-premise supporta solo un intervallo di trasmissione minimo inferiore a 1000 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. Questo moltiplicatore viene utilizzato per calcolare il tempo di rilevamento sul lato ricevente come segue:

Tempo di rilevamento = Intervallo di trasmissione concordato * Moltiplicatore BFD

Comando gcloud --bfd-multiplier
Campo API bgpPeers[].bfd.multiplier
Impostazione predefinita

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

Per ottenere tempi di rilevamento identici in entrambe le direzioni, imposta lo stesso valore del moltiplicatore sia sul router Cloud che sul router peer.

Passaggi successivi