Vista geral da deteção de encaminhamento bidirecional (BFD)
Esta página descreve a deteção de encaminhamento bidirecional (BFD) para o Cloud Router.
O BFD (RFC 5880, RFC 5881) é um protocolo de deteção de indisponibilidade do caminho de encaminhamento suportado pela maioria dos routers comerciais. Com o BFD para o Cloud Router, pode ativar a funcionalidade do BFD numa sessão BGP para detetar interrupções do caminho de encaminhamento, como eventos de falha de ligação. Esta capacidade torna as redes híbridas mais resilientes.
Quando estabelece peering com Google Cloud a partir da sua rede no local através da interligação dedicada ou da interligação de parceiros, pode ativar o BFD para uma deteção rápida de falhas de links e failover do tráfego para um link alternativo que tenha uma sessão BGP de yedek. Desta forma, o BFD oferece um caminho de conetividade de rede de alta disponibilidade que pode responder rapidamente a falhas de links.
Vantagens da BFD
O BFD configurado com as predefinições deteta falhas em 5 segundos, em comparação com os 60 segundos da deteção de falhas baseada em BGP. Com o BFD implementado no Cloud Router, o tempo de deteção ponto a ponto pode ser tão curto quanto 5 segundos.
O BFD é um protocolo de boas-vindas de comprimento fixo no qual cada extremidade de uma ligação transmite pacotes periodicamente através de um caminho de encaminhamento.
O BFD é um protocolo de deteção baseado em UDP que oferece um método de deteção de falhas de baixo custo no caminho de encaminhamento entre dois routers adjacentes. Isto inclui a deteção de falhas em interfaces, links de dados e planos de encaminhamento. Pode ativar o BFD ao nível do protocolo de encaminhamento.
Limitações do BFD
Só pode ativar o BFD em sessões BGP que configurar para associações de VLANs no Dedicated Interconnect ou Partner Interconnect. O BFD não é suportado em sessões BGP configuradas para túneis de VPN de HA ou para o dispositivo de router, que faz parte do Network Connectivity Center.
Estabelecimento da sessão BFD
Para estabelecer uma sessão BFD, configure o BFD em ambos os pares BGP: um Cloud Router e o seu router no local que executa o BFD. Depois de ativar o BFD para o protocolo de encaminhamento BGP no router, é criada uma sessão BFD, os temporizadores BFD são negociados e os pares BFD começam a enviar pacotes de controlo BFD uns aos outros no intervalo negociado.
Ao enviar avisos de deteção de falhas rápidas para o BGP no router local para iniciar o processo de recálculo da tabela de encaminhamento, o BFD contribui para reduzir significativamente o tempo de convergência geral da rede.
O diagrama seguinte mostra uma rede simples com dois routers que executam BGP e BFD. Estes números representam o processo de estabelecimento da sessão BFD:
- O vizinho BGP está configurado.
- O BGP envia um pedido ao processo BFD local para iniciar uma sessão de vizinho BFD com o router de par/vizinho BGP.
- A sessão de vizinhança BFD com o router de vizinhança BGP está estabelecida.
BFD durante um evento de falha
A figura seguinte mostra o que acontece quando ocorre uma falha na rede.
No modo apenas de controlo do BFD, o Cloud Router e o seu router local enviam periodicamente pacotes de controlo do BFD entre si. Se o número de pacotes de controlo consecutivos configurados na definição bfd multiplier
no router na nuvem não for recebido pelo outro router, a sessão é declarada inativa. Em seguida, acontece o seguinte:
- Ocorre uma falha no link entre Google Cloud e o router no local.
- A sessão de vizinho BFD com o router de vizinho BGP é desativada.
- O BFD notifica o processo BGP local de que o vizinho BFD já não está acessível.
- O processo de BGP local desativa a relação de vizinhança de BGP.
Se estiver disponível um caminho alternativo, os routers começam imediatamente a convergir para esse caminho.
Amortecimento de BFD
O Cloud Router implementa a atenuação de BFD internamente para suprimir o efeito negativo das oscilações frequentes da sessão de BFD no BGP. A atenuação de BFD usa parâmetros predefinidos que não podem ser modificados pelo utilizador.
A atenuação de BFD usa um sistema de penalizações. O valor da penalidade começa em 0 e aumenta para 1 para o primeiro desvio. Após o primeiro flap, a penalização duplica cada vez que ocorre outro flap de BFD. Quando a penalidade excede o valor limite de 4, o BFD suprime as notificações para o BGP. A penalidade é reduzida em metade a cada 10 minutos se não ocorrer nenhum movimento brusco durante este período.
O BFD volta a ativar as notificações para o BGP depois de a penalização ficar abaixo do limite de reutilização de 4.
O intervalo de supressão máximo para notificações BFD para BGP é de 1 hora. Isto garante que as notificações de falha da sessão BFD não são permanentemente atenuadas.
Modo assíncrono BFD
O Cloud Router suporta um modo de funcionamento assíncrono, em que os sistemas envolvidos enviam periodicamente pacotes de controlo BFD uns aos outros. Se um número configurado desses pacotes seguidos não for recebido pelo outro sistema, a sessão é declarada como inativa.
O modo de procura da operação BFD não é suportado. Para o modo de pacotes, o BFD suporta o modo apenas de controlo; o modo de eco não é suportado.
No modo de funcionamento assíncrono com o modo de pacotes apenas de controlo, o BFD é executado no plano de controlo e pode adicionar uma ligeira sobrecarga e tempo de processamento da CPU.
Por predefinição, o BFD está desativado nas sessões de BGP do Cloud Router. Para usar o BFD, tem de o ativar.
No seguinte cenário de falha, os routers têm as seguintes definições:
- Os intervalos mínimos de receção e transmissão do BFD do Cloud Router estão definidos para 1000 milissegundos (ms).
- Os intervalos mínimos de receção e transmissão do router de pares BFD estão definidos para 1000 ms.
- O protocolo BFD RFC 5880 negoceia o intervalo de transmissão acordado para o mais elevado do intervalo de transmissão do lado do remetente e do intervalo de receção do lado do destinatário. Assim, os intervalos de transmissão acordados em ambos os lados são de 1000 ms devido a definições idênticas.
- O cálculo do tempo de deteção no router na nuvem é o intervalo de transmissão acordado do router de pares multiplicado pelo valor do multiplicador BFD do router de pares. Neste cenário, o tempo de deteção é de 1000 ms * 5 = 5000 ms.
- O cálculo do tempo de deteção no router de pares é o intervalo de transmissão acordado do router na nuvem multiplicado pelo valor do multiplicador BFD do router na nuvem. Neste cenário, o tempo de deteção é de 1000 ms * 5 = 5000 ms.
O Cloud Router negoceia com o router de pares e espera receber pacotes de controlo a cada 1000 ms do router de pares. Se passarem 5000 ms sem que o router na nuvem receba um pacote de controlo, o respetivo temporizador de deteção expira e declara que a sessão BFD está inativa.
Recomendamos o seguinte quando configurar o BFD:
- Para evitar uma incompatibilidade do multiplicador BFD, configure o seu router local e o router na nuvem com as mesmas definições BFD.
- Para evitar instabilidades do BFD e do BGP, defina o limite de tempo limite expirado mínimo do BFD para, pelo menos, 5000 ms em cada direção.
Reinício suave e BFD
Para minimizar o impacto no tráfego durante os eventos de manutenção do software do Cloud Router, recomendamos que ative o reinício gracioso do BGP.
Se o reinício gracioso do BGP e o BFD estiverem ativados, quando o Cloud Router é reiniciado, tenta desativar o BFD enviando uma mensagem AdminDown
para o router no local. Quando isto acontece, a sessão BGP permanece ativa no lado no local e o router no local entra no modo de reinício gracioso. Enquanto o router no local estiver no modo de reinício gradual, o Cloud Router pode ser reiniciado sem afetar o tráfego do plano de dados.
Da mesma forma, se o router no local enviar uma mensagem AdminDown
antes de o respetivo plano de controlo ser reiniciado, o Cloud Router entra no modo de reinício elegante.
Enquanto o Cloud Router estiver no modo de reinício gradual, o router no local pode ser reiniciado sem afetar o tráfego do plano de dados.
O Cloud Router define o bit independente do plano de controlo como 0 quando estabelece o BFD com o respetivo router de pares, para sinalizar que a respetiva implementação do BFD depende do plano de controlo. Se ocorrer uma falha de interface, é possível que o router de pares não consiga distinguir entre uma falha de BFD causada por uma falha do plano de controlo ou uma falha do plano de dados. Por exemplo, uma falha de interface pode fazer com que o router no local entre num modo de reinício controlado e atrasar desnecessariamente uma comutação por falha de tráfego a partir do link afetado.
Devido à possível ambiguidade de falhas de BFD, diferentes fornecedores tratam este cenário específico de forma diferente e oferecem definições de configuração para alterar o comportamento predefinido. Recomendamos que reveja a documentação do fornecedor do router e configure o router no local para garantir que um evento de falha da interface BFD com um par BFD dependente do plano de controlo aciona uma comutação por falha imediata quando usado com o reinício elegante do BGP.
Definições e temporizadores BFD
Esta secção descreve as definições de BFD que pode configurar no Cloud Router.
Modo de inicialização da sessão BFD
Descrição | O modo de inicialização da sessão BFD para este par BGP. |
---|---|
Comando gcloud |
--bfd-session-initialization-mode |
Campo da API | bgpPeers[].bfd.sessionInitializationMode |
Predefinição | Disabled |
Existem três definições do modo BFD: Active
, Passive
e Disabled
. Se não
definir este modo, a predefinição é uma definição de Disabled
, usando o modo sem eco
(apenas pacotes de controlo).
Disabled
(predefinição): o BFD está desativado para este par BGP.Passive
: o Cloud Router aguarda que o router de pares inicie a sessão BFD para este par BGP.Active
: o Cloud Router inicia a sessão BFD para este par BGP.
Tem de definir o router, pelo menos, num dos lados de uma ligação, ou seja, o router na nuvem ou o router de pares, como Active
. Quando configurar uma sessão BGP entre dois Cloud Routers, defina o modo de inicialização da sessão BFD de um router como Active
.
Se definir ambos os lados como Active
, os dois lados enviam um pacote de controlo inicial para negociar parâmetros e, eventualmente, a sessão é estabelecida.
Se definir o modo de inicialização da sessão BFD como Disabled
, pode, opcionalmente, configurar as restantes definições do BFD. Estas definições entram em vigor quando
reativa o BFD.
Intervalo de transmissão mínimo de BFD (pacotes BFD para um par)
Descrição | O intervalo mínimo, em milissegundos, entre pacotes de controlo BFD transmitidos a um par BGP. |
---|---|
Comando gcloud |
--bfd-min-transmit-interval |
Campo da API | bgpPeers[].bfd.minTransmitInterval |
Predefinição | 1000 ms. Pode especificar uma definição entre 1000 ms e 30 000 ms. O protocolo BFD RFC 5880 define o intervalo de transmissão acordado como o valor mais elevado entre o intervalo de transmissão do router na nuvem e o intervalo de receção do par. Assim, o BFD é suportado em sessões BGP, mesmo que o seu dispositivo no local apenas suporte um intervalo de receção mínimo inferior a 1000 ms. |
Intervalo mínimo de receção de BFD (pacotes BFD de um par)
Descrição | O intervalo mínimo, em milissegundos, entre pacotes de controlo BFD recebidos de um par BGP. |
---|---|
Comando gcloud |
--bfd-min-receive-interval |
Campo da API | bgpPeers[].bfd.minReceiveInterval |
Predefinição | 1000 ms. Pode especificar uma definição entre 1000 ms e 30 000 ms. O protocolo BFD RFC 5880 define o intervalo de transmissão acordado do router par como o valor mais elevado entre o intervalo de transmissão do par e o intervalo de receção do Cloud Router. Assim, o BFD é suportado em sessões BGP, mesmo que o seu dispositivo no local apenas suporte um intervalo de transmissão mínimo inferior a 1000 ms. |
Multiplicador de BFD
Descrição | O número de pacotes de controlo BFD consecutivos que têm de ser perdidos antes de o BFD declarar que um par não está disponível. Este multiplicador é usado para calcular o tempo de deteção no lado da receção da seguinte forma:
Tempo de deteção = Intervalo de transmissão acordado * Multiplicador de BFD |
---|---|
Comando gcloud |
--bfd-multiplier |
Campo da API | bgpPeers[].bfd.multiplier |
Predefinição | 5 pacotes. Pode especificar uma definição entre 5 e 16 pacotes. Para alcançar tempos de deteção idênticos em ambas as direções, defina o mesmo valor do multiplicador no Cloud Router e no router de pares. |
O que se segue?
Para atualizar as definições de BFD, consulte o artigo Atualize ou desative o BFD.
Para configurar o BFD, consulte o artigo Configure o BFD.
Para encontrar exemplos de configurações de routers de terceiros que suportam BFD para o Cloud Router, consulte o artigo Use configurações de routers de terceiros para BFD.
Para obter ajuda com mensagens de diagnóstico, estados de sessão e mensagens de estado do BFD, consulte Mensagens de diagnóstico e estados de sessão do BFD.
Para resolver problemas com o Cloud Router, consulte a secção Resolução de problemas.