Visão geral da detecção de encaminhamento bidirecional (BFD, na sigla em inglês)

Esta página descreve a Detecção de encaminhamento bidirecional (BFD, na sigla em inglês) do Cloud Router.

O BFD (RFC 5880, RFC 5881 em inglês) é um protocolo de detecção de interrupção de caminho de encaminhamento compatível com a maior parte dos roteadores comerciais. Com o BFD para o Cloud Router, é possível ativar a funcionalidade do BFD em uma sessão do BGP para detectar interrupções no caminho de encaminhamento, como eventos de vinculação de links. Esse recurso torna as redes híbridas mais resilientes.

Ao fazer peering com o Google Cloud a partir da rede local usando a Interconexão dedicada ou o Partner Interconnect, é possível ativar o BFD para detecção rápida de falhas de link e failover de tráfego para um link alternativo que tem um sessão de BGP do backup. Dessa forma, o BFD fornece um caminho de conectividade de rede de alta disponibilidade que pode responder rapidamente às falhas de vinculação.

Benefícios do BFD

O BFD com as configurações padrão detecta falha em cinco segundos, em comparação com 60 segundos para detecção de falha baseada em BGP. Com a BFD implementada no Cloud Router, o tempo total da detecção pode ser de cinco segundos.

O BFD é um protocolo hello de comprimento fixo em que cada extremidade de uma conexão transmite pacotes periodicamente por meio de um caminho de encaminhamento.

O BFD é um protocolo de detecção baseado em UDP que fornece um método de baixa sobrecarga para detectar falhas no caminho de encaminhamento entre dois roteadores adjacentes. Isso inclui a detecção de falhas em interfaces, links de dados e planos de encaminhamento. É possível ativar a BFD no nível do protocolo de roteamento.

Limitações do BFD

Só é possível ativar o BFD em sessões do BGP configuradas para anexos da VLAN na Interconexão dedicada ou na Interconexão por parceiro. O BFD não é compatível com sessões do BGP configuradas para túneis de VPN de alta disponibilidade ou para o dispositivo roteador, que faz parte do Network Connectivity Center.

Estabelecimento da sessão BFD

Para estabelecer uma sessão do BFD, configure o BFD nos dois pares do BGP: um Cloud Router e o roteador local executando o BFD. Depois de ativar o BFD para o protocolo de roteamento do BGP no roteador, uma sessão do BFD será criada, os timers do BFD serão negociados e os pares do BFD começarão a enviar pacotes de controle do BFD entre si no intervalo negociado de dados.

Ao enviar avisos rápidos de detecção de falhas para o BGP no roteador local para iniciar o processo de novo cálculo da tabela de roteamento, o BFD contribui para uma redução significativa do tempo geral de convergência de rede.

O diagrama a seguir mostra uma rede simples com dois roteadores que executam o BGP e o BFD. Esses números representam o processo de estabelecimento da sessão BFD:

  1. O vizinho do BGP está configurado.
  2. O BGP envia uma solicitação ao processo BFD local para iniciar uma sessão de vizinho do BFD com o roteador do BGP de peering/vizinho.
  3. A sessão de vizinho BFD com o roteador vizinho do BGP é estabelecida.
Estabelecimento da sessão BFD.
Estabelecimento da sessão BFD (clique para ampliar)

BFD durante um evento de falha

A figura a seguir mostra o que acontece quando ocorre uma falha na rede.

No modo somente controle do BFD, o Cloud Router e seu roteador local enviam periodicamente pacotes de controle do BFD entre si. Se o número de pacotes de controle em uma linha definido na configuração bfd multiplier no Cloud Router não for recebido pelo outro roteador, a sessão será declarada. O seguinte acontece:

  1. Uma falha no link ocorre entre o Google Cloud e o roteador local.
  2. A sessão de vizinho BFD com o roteador vizinho do BGP está eliminada.
  3. O BFD notifica o processo local do BGP de que o vizinho BFD não está mais acessível.
  4. O processo do BGP local interrompe a relação de vizinho do BGP.

Se houver um caminho alternativo disponível, os roteadores começarão a convergir imediatamente para ele.

BFD durante um evento de falha.
BFD durante um evento de falha (clique para ampliar)

Impedimento de BFD

O Cloud Router implementa o amortecimento da BFD internamente para suprimir o efeito negativo das quedas de sessão do BFD frequentes no BGP. O amortecimento BFD usa parâmetros padrão que não podem ser modificados pelo usuário.

O amortecimento da BFD usa um sistema de penalidade. O valor de pênalti começa em 0 e aumenta para 1 no primeiro flap. Após a primeira flape, a penalidade é dobrada sempre que outra BFD ocorre. Quando a penalidade excede o valor limite de 4, o BFD suprime notificações do BGP. Se não houver flap nesse período, a penalidade será reduzida a meio a cada 10 minutos.

O BFD permite notificações novamente para o BGP depois que a penalidade é inferior ao limite de reutilização de 4.

O intervalo máximo de supressão para notificações BFD para o BGP é de uma hora. Isso garante que as notificações de sessão BFD não sejam atenuadas permanentemente.

Modo assíncrono do BFD

O Cloud Router é compatível com um modo assíncrono de operação em que os sistemas envolvidos enviam periodicamente pacotes de controle do BFD entre si. Se um número configurado desses pacotes em uma linha não for recebido pelo outro sistema, a sessão será declarada como inativa.

O modo de demanda da operação BFD não é compatível. Para o modo de pacotes, o BFD é compatível com o modo somente de controle. echo não é compatível.

No modo de operação assíncrona com modo somente pacote de controle, o BFD é executado no plano de controle e pode adicionar uma pequena sobrecarga e tempo de processamento da CPU.

Por padrão, o BFD está desativado nas sessões do BGP do Cloud Router. Para usar o BFD, é preciso ativá-lo.

No seguinte cenário de falha, os roteadores têm as seguintes configurações:

  • O intervalo de recebimento do BFD do Cloud Router é definido como 1.000 milissegundos (ms) multiplicado por um multiplicador de BFD de 5, para uma configuração de timer de detecção de 5.000 ms.
  • O intervalo de transmissão do BFD do roteador de peering é definido como 1.000 ms multiplicado por um multiplicador de BFD de 5, para uma configuração de timer de detecção de 5.000 ms.

O Cloud Router negocia com o roteador de mesmo nível e espera receber pacotes de controle a cada 1.000 ms do roteador de mesmo nível. Se 5.000 ms passarem sem que o Cloud Router receba um pacote de controle, seu temporizador de detecção expirará e declarará que a sessão BFD será desativada.

BFD sem pacotes de transmissão.
BFD sem pacotes eco (clique para ampliar)

Reinicialização otimizada e BFD

Para minimizar o impacto no tráfego durante eventos de manutenção de software do Cloud Router, recomendamos que você ative o Graceful Restart do BGP.

Se a reinicialização otimizada do BGP e o BFD estiverem ativados, quando o Cloud Router reiniciar, ele tentará desativar o BFD enviando uma mensagem AdminDown para o roteador local. Quando isso acontece, a sessão do BGP permanece ativa no local e o roteador local entra no modo de reinicialização normal. Enquanto o roteador local está no modo de reinicialização normal, o Cloud Router pode ser reiniciado sem afetar o tráfego do plano de dados.

Da mesma forma, se o roteador local enviar uma mensagem AdminDown antes de reiniciar o plano de controle, o Cloud Router entrará no modo de reinicialização normal. Enquanto o Cloud Router estiver no modo de reinicialização normal, o roteador local pode ser reiniciado sem afetar o tráfego do plano de dados.

O Cloud Router define o bit independente do plano de controle como 0 ao estabelecer o BFD com o roteador de peering para sinalizar que a implementação do BFD depende do plano de controle. Se ocorrer uma falha na interface, é possível que o roteador de peering não consiga distinguir entre uma falha de BFD causada por uma falha no plano de controle ou no plano de dados. Por exemplo, uma falha na interface pode fazer com que o roteador local entre no modo de reinicialização otimizada e atrasar desnecessariamente um failover de tráfego do link afetado.

Devido à possível ambiguidade de falha no BFD, diferentes fornecedores tratam esse cenário específico de maneira diferente e oferecem configurações para mudar o comportamento padrão. Recomendamos que você revise a documentação do fornecedor do roteador e configure o roteador local para garantir que um evento de falha da interface BFD com um peering do BFD dependente do plano de controle acione um failover imediato quando usado com o BGP otimizado Reiniciar.

Configurações e timers do BFD

Nesta seção, descrevemos as configurações do BFD que podem ser definidas no Cloud Router.

Modo de inicialização da sessão BFD

Descrição O modo de iniciação da sessão BFD para este peering do BGP.
Comando gcloud --bfd-session-initialization-mode
Campo da API bgpPeers[].bfd.sessionInitializationMode
Configuração padrão Disabled

Há três configurações de modo BFD: Active, Passive e Disabled. Se você não definir esse modo, o padrão será uma configuração de Disabled, usando o modo não eco (somente pacotes de controle).

  • Disabled (padrão): o BFD está desativado para este par do BGP.
  • Passive: o Cloud Router aguarda o roteador de peering iniciar a sessão BFD para esse peering do BGP.
  • Active: o Cloud Router inicia a sessão do BFD para esse peering do BGP.

Defina o roteador em pelo menos um lado de uma conexão (Cloud Router ou roteador de peering) como Active. Ao configurar uma sessão do BGP entre dois Cloud Routers, defina o modo de inicialização da sessão BFD de um roteador como Active.

Se você definir ambos os lados como Active, os dois lados enviarão um pacote de controle inicial para negociar parâmetros, e a sessão será estabelecida.

Se você definir o modo de inicialização da sessão BFD como Disabled, será possível configurar o restante das configurações do BFD. Essas configurações entram em vigor quando você reativa o BFD.

Intervalo de transmissão mínimo de BFD (pacotes BFD para um par)

Descrição Intervalo mínimo entre pacotes de controle do BFD transmitidos por um par do BGP.
Comando gcloud --bfd-min-transmit-interval
Campo da API bgpPeers[].bfd.minTransmitInterval
Configuração padrão

1.000 ms. É possível especificar uma configuração entre 1000 ms e 30.000 ms.

Intervalo de recebimento mínimo do BFD (pacotes BFD de um par)

Descrição Intervalo mínimo entre pacotes de controle do BFD recebidos por um peering do BGP.
Comando gcloud --bfd-min-receive-interval
Campo da API bgpPeers[].bfd.minReceiveInterval
Configuração padrão

1.000 ms. É possível especificar uma configuração entre 1000 ms e 30.000 ms.

Multiplicador do BFD

Descrição Número de pacotes de controle BFD consecutivos que precisam ser ignorados antes que o BFD declare que um peering está indisponível.
Comando gcloud --bfd-multiplier
Campo da API bgpPeers[].bfd.multiplier
Configuração padrão

5 pacotes. Você pode especificar uma configuração entre 5 e 16 pacotes.

A seguir