Configurando BFD na sessão BGP com Vyos

O BFD é um protocolo Hello que funciona de maneira muito parecida com outros “atributos” de protocolos de roteamento. Basicamente você estabelece uma sessão com seu par e utiliza parâmetros que vão reger o comportamento.

A comunicação só é considerada estabelecida se a comunicação bidirecional estiver funcionando entre os pares. Caso algo aconteça e essa comunicação seja interrompida o status irá mudar para “falhou”.

Você pode definir, por exemplo, que a cada 15 segundos (mais ou menos) a comunicação de verificação aconteça. É importante estar ciente de que isso pode ocasionar problemas para o CPU.

No caso de uso bem específico com o BGP a nossa intenção é fazer com que a convergência da Operadora A que está com Peer DOWN aconteça no menor tempo possível para a Operadora B. Aqui no exemplo configurei o tempo de 5 segundos por 3 vezes, se a verificação falhar o BFD irá atuar para que a convergência aconteça da maneira menos impactante para a empresa.

Caso você queira entender melhor o protocolo e como ele funciona, recomendo muito que leia a RFC 5880 e RFC 5881.

RFC 5880: https://datatracker.ietf.org/doc/html/rfc5880
RFC 5881: https://www.rfc-editor.org/rfc/rfc5881

Versão do Vyos utilizada para o tutorial:

Version: VyOS 1.5-rolling-202410060007
Release train: current
Release flavor: generic

Documentação do Vyos: https://docs.vyos.io/en/latest/configuration/protocols/bfd.html

Configuração do BFD para IPv4 e IPv6

1 – Configure o Peer BFD com o mesmo IP utilizado para estabelecer a sessão BGP com sua Operadora, utilize o IP da rota estática da sessão BGP como parâmetro de Endereço de Origem para a monitoração.

A lógica de configuração é igual para o IPv4 e IPv6.

Configuração do IPv4

198.51.100.2 -> IP que fecha o Peer BGP
192.0.2.1 -> IP monitorado da rota estática

set protocols bfd peer 198.51.100.2 source address 192.0.2.1
set protocols bfd peer 198.51.100.2 multihop
set protocols bfd peer 198.51.100.2 interval transmit 5000
set protocols bfd peer 198.51.100.2 interval receive 5000

Configuração do IPv6.

2001:db8::1 -> IP que fecha o Peer BGP
2001:db8:1::2 -> IP monitorado da rota estática

set protocols bfd peer 2001:db8::1 source address 2001:db8:1::2
set protocols bfd peer 2001:db8::1 multihop
set protocols bfd peer 2001:db8::1 interval transmit 5000
set protocols bfd peer 2001:db8::1 interval receive 5000

2 – Configurando a sessão BGP para usar o BFD

Sessão BGP IPv4:

set protocols bgp neighbor 198.51.100.2 bfd

Sessão BGP IPv6:

set protocols bgp neighbor 2001:db8::1

3 – Verifique o status dos peers BFD

Você só irá conseguir visualizar os peers e seus status após configurado, não estranhe se você rodar o comando abaixo e receber um erro antes de configurar.

$ show bfd peers

erick@vyos# run show bfd peers
BFD Peers:
        peer 2001:db8::1 multihop local-address 2001:db8:1::2 vrf default
                ID: 3402XXX916
                Remote ID: 16XX6
                Active mode
                Minimum TTL: 240
                Status: up
                Uptime: 1 hour(s), 19 minute(s), 42 second(s)
                Diagnostics: ok
                Remote diagnostics: ok
                Peer Type: configured
                RTT min/avg/max: 0/0/0 usec
                Local timers:
                        Detect-multiplier: 3
                        Receive interval: 5000ms
                        Transmission interval: 5000ms
                        Echo receive interval: 50ms
                        Echo transmission interval: disabled
                Remote timers:
                        Detect-multiplier: 3
                        Receive interval: 5000ms
                        Transmission interval: 5000ms
                        Echo receive interval: disabled

        peer 198.51.100.2 multihop local-address 192.0.2.1 vrf default
                ID: 1230XXX661
                Remote ID: 163XX
                Active mode
                Minimum TTL: 240
                Status: up
                Uptime: 1 hour(s), 20 minute(s), 34 second(s)
                Diagnostics: ok
                Remote diagnostics: ok
                Peer Type: configured
                RTT min/avg/max: 0/0/0 usec
                Local timers:
                        Detect-multiplier: 3
                        Receive interval: 5000ms
                        Transmission interval: 5000ms
                        Echo receive interval: 50ms
                        Echo transmission interval: disabled
                Remote timers:
                        Detect-multiplier: 3
                        Receive interval: 5000ms
                        Transmission interval: 5000ms
                        Echo receive interval: disabled

Para críticas, dúvidas e sugestões, envie um e-mail para erick{“arrob4”}erickandrade.com.br.

Você pode gostar...