Existem razões para não usar o BFD?

17

Ao tentar implementar a detecção bidirecional de encaminhamento (BFD), parece ser muito flexível em termos de ajuste do temporizador, leve em relação a qualquer sobrecarga e sua flexibilidade em termos de aplicação geral parece impressionante.

Portanto, se, por exemplo, ele pode ser aplicado para detectar falha de link na Ethernet, MPLS em vários saltos, na borda da rede, para convergência IGP, para túneis etc. etc - por que não seria usado em determinados cenários, talvez, e existem outras alternativas emergentes estar ciente de?

MattE
fonte

Respostas:

18

Estou ciente apenas de um problema com o BFD, que é a demanda de CPU. Atualmente, estou investigando um problema com um Cisco 7301 que, ao aumentar o tráfego durante o horário de pico, em comparação com o resto do dia, o BFD às vezes está atingindo o tempo limite e encaminhando as viagens para o próximo link.

Parece que em volumes altos de tráfego o uso da CPU do roteador está aumentando (o que não é incomum), mas com cerca de 40 a 50% dos pacotes BFD da CPU não estão recebendo recursos suficientes.

No entanto, encontrei as seguintes informações que sugerem problemas adicionais com o BFD ( nesta apresentação do NANOG, há mais na apresentação, é uma boa, dê uma lida!)

Quais são as advertências?

  • Dois principais:
    1. O BFD pode ter altas demandas de recursos, dependendo da sua escala.
    2. O BFD não é visível nos protocolos de pacote configurável da camada 2. (GAL de Ethernet ou pacotes POS)

Demandas de recursos do BFD

  • O número de sessões de BFD em cada placa de linha ou roteador pode afetar o quão bem o BFD é dimensionado para você. -Cada plataforma única tem seus próprios limites.
  • Interfaces agrupadas que suportam min tx / rx de 250ms ou 2 segundos foram vistas.
  • Em alguns casos, as instâncias de BFD em um roteador podem precisar ser operadas no processador de rotas, dependendo da implementação (sessões de BFD não baseadas em adjacências).
  • Teste sua plataforma antes de implantar o BFD. Tente colocar carga na CPU RP ou LC com as configurações definidas. Isso pode ser feito por:
  • Executando comandos pesados ​​da CPU
  • Pacotes de inundação para TTL expiram no destino

Demandas de recursos do BFD (continuação)

  • Quais valores são seguros para tentar?
  • Com base em falar com vários operadores, 300ms com um multiplicador de 3 (detecção de 900ms) parece ser um valor seguro que funciona na maioria dos equipamentos razoavelmente bem.
  • Esta é uma melhoria significativa em relação a algumas das alternativas.

Agrupamento de links BFD e L2

  • O BFD não tem conhecimento dos membros subjacentes do pacote de links L2.
  • Um pacote 4x10GigE L2 (802.3ad) apareceria como uma única adjacência L3. Pacotes BFD seriam transmitidos em um link de membro único, em vez de sair dos quatro links.
  • Uma falha no link com o BFD resultaria na falha da adjacência L3 inteira.
  • No entanto, em alguns cenários, o link do membro com falha pode resultar na queda de apenas um único pacote BFD. Pacotes subseqüentes podem rotear sobre links de membros em funcionamento.
jwbensley
fonte
1
Outro ponto a ser observado é que algumas plataformas não suportam BFD em todos os tipos de interface. Mais famoso (para mim): o Cisco 7600 não suporta BFD nas interfaces SVI (Vlan) até muito, muito recentemente (15.algo necessário).
Sebastian Wiesinger
1
Bom ponto, o problema do 7301 em que estou trabalhando, deveria, mas ainda não está funcionando tão bem quanto eu gostaria, e está em um 12 IOS muito novo. Onde, como alguns outros 7301s e 7206s, estão bem. Sebastian está certo, vale a pena mencionar que não é tão bom quanto provavelmente todos gostaríamos de estar nessas plataformas de hardware comuns.
Jwbensley #
1
Observe que há um rascunho da IETF para tratar o BFD em execução nos GAL: tools.ietf.org/html/draft-mmm-bfd-on-lags . Ainda não está realmente implementado em lugar algum, mas espero que esse problema seja resolvido, já que é um cenário muito comum.
Darius Jahandarie
5

Vi duas razões pelas quais o BFD não foi implementado:

  1. Ignorância disso (fui culpado disso por algum tempo).

  2. Custo, se você é uma loja da Cisco. Embora possivelmente insignificante, dependendo do tamanho da sua organização, agora existe um custo de licenciamento associado para implementar o BFD.

No período ISR G2 / ASR, o BFD não está mais no pacote de licenciamento "IP Base". Você precisa atualizar para pelo menos o nível de licenciamento "Dados" para desbloquear o BFD. Veja este white paper da Cisco.

Esse requisito de licenciamento pode não ser um problema, pois você já deve estar adquirindo um nível de licenciamento mais alto para outros recursos, mas é algo a ter em atenção.

Brett Lykins
fonte
+1 Excelente, eu estava pensando apenas em razões técnicas, mas o custo é óbvio, bom ponto! Também simplesmente não sabendo, fui o primeiro a contar a alguém sobre o BFD também. Dois grandes pontos!
Jwbensley #
3

Algumas coisas para completar a resposta de javano:

  • Lembre-se de que a Ethernet de 40g e 100g pode ser considerada um pacote, embora não seja o mesmo que o LACP, mas 4x10, 4x25 e 10x10
  • Em alguns hardwares (alguns dos mais avançados do Juniper, por exemplo), o BFD é tratado na placa de linha, o que pode ser um benefício (sem perda sob alta carga de RE) ou um déficit (sem perda imediata se o ER morrer)
  • A execução do BFD em um link / caminho que já é um SPOF (por exemplo, pacote de fibra única) pode ser pior do que apenas aumentar o atraso da operadora
LapTop006
fonte
2

BFD é um recurso que foi inventado para detectar problemas de conectividade L2 quando há algum dispositivo intermediário entre dois pares. Portanto, o BFD é um recurso de detecção de falhas.

Normalmente, precisamos de BFD se tivermos 2 roteadores interconectados via switch L2 9 ou qualquer outra nuvem L2). Nesse caso, se um roteador cair, o estado do link não será refletido em outro roteador, pois o switch manteria o link ativo. Se fosse apenas um link P2P (cabo único) entre os roteadores, a interface seria interrompida logo após a falha do par e o IGP se reconvergiria em um intervalo de segundos.

Portanto, as razões para não usar BFDs são: - BFD não é suportado na caixa [es]; - O BFD não é necessário, pois você não possui dispositivo intermediário (use o udld e o carrier-delay).

Vasilii M
fonte