Como Implementar BGP no VyOS para Roteamento Dinâmico

9 min de leitura Redes
Como Implementar BGP no VyOS para Roteamento Dinâmico

VyOS é um sistema operacional de roteamento open-source baseado em Linux, amplamente utilizado por administradores de rede que buscam flexibilidade e controle granular sobre o comportamento do roteamento. Diferente de firewalls comerciais fechados, o VyOS permite a implementação completa de protocolos de gateway dinâmico (BGP), essencial para conectar redes corporativas a provedores de internet (ISPs) múltiplos ou para criar topologias de Data Center modernas.

O BGP (Border Gateway Protocol) é o protocolo que mantém a Internet funcionando. Ele permite que diferentes sistemas autônomos (AS) troquem informações de roteamento. Neste tutorial, demonstraremos como configurar um VyOS para atuar como um router BGP, estabelecendo adjacências com peers externos e internos, gerenciando políticas de entrada e saída de rotas e garantindo a resiliência da sua infraestrutura.

Pré-requisitos e Planejamento

Antes de aplicar qualquer configuração, é fundamental ter clareza sobre a topologia da rede. A configuração de BGP exige precisão nos endereços IP e nos números de Sistema Autônomo (AS). Você deve definir:

  • O número do seu AS (Autonomous System Number).
  • Os endereços IP dos seus peers BGP.
  • Se a conexão é com um peer eBGP (sistemas autônomos diferentes) ou iBGP (mesmo sistema autônomo).
  • As políticas de roteamento: quais rotas você anuncia e quais aceita.

Assumiremos para este exemplo uma topologia comum em ambientes de hospedagem ou data centers:

  • VyOS IP na interface de uplink: 192.168.100.2/30.
  • Peer BGP externo (ISP): 192.168.100.1.
  • Seu AS: 65000.
  • AS do Peer: 64500.

Verifique a conectividade básica antes de iniciar o BGP. Use o comando ping 192.168.100.1 para garantir que há camada 2 e 3 funcionando entre os dispositivos.

Acessando a CLI do VyOS

O VyOS utiliza uma interface de linha de comandos (CLI) hierárquica, inspirada no Juniper e Cisco IOS. Você pode acessar via SSH ou console serial. Ao entrar, você estará em modo de execução padrão.

voyager@vyos:~$ enable
voyager@vyos# configure
[edit]

O prompt muda para indicar que você está no modo de configuração. A estrutura é baseada em níveis de diretório virtual. Para sair do modo de configuração sem salvar, use exit. Para aplicar as alterações e torná-las persistentes após uma reinicialização, você deve usar o comando commit seguido de save.

Configuração Básica do BGP

A configuração do BGP no VyOS é feita dentro da hierarquia protocols bgp. Vamos começar definindo o número do AS local e os parâmetros globais.

[edit]
set protocols bgp 65000 parameters log-neighbor-changes
set protocols bgp 65000 parameters router-id 1.1.1.1

O router-id é um identificador único para o seu roteador na malha BGP. Embora o VyOS possa tentar derivá-lo automaticamente, é uma prática recomendada de sysadmin definir este valor explicitamente para evitar ambiguidades em caso de falhas de interface.

Definindo os Peers BGP

O próximo passo é declarar o peer com quem você deseja estabelecer a adjacência. No VyOS, isso é feito especificando o endereço IP do peer e o AS ao qual ele pertence.

[edit]
set protocols bgp 65000 peer 192.168.100.1 description 'ISP-Primary'
set protocols bgp 65000 peer 192.168.100.1 remote-as 64500
set protocols bgp 65000 peer 192.168.100.1 password 'SenhaSecreta123'

Aqui, estamos configurando um peer eBGP. A diretiva remote-as informa ao VyOS que o dispositivo em 192.168.100.1 pertence ao AS 64500. A opção password habilita a autenticação MD5 (TCP Port 179), uma medida de segurança crítica para evitar que hosts não autorizados estabeleçam sessões BGP com seu roteador.

Para peers iBGP, o processo é similar, mas você deve garantir que a rota até o next-hop seja alcançável via IGP (como OSPF ou IS-IS) ou através de rotas estáticas, pois o BGP não resolve next-hops automaticamente em cenários iBGP sem configurações adicionais como next-hop-self.

Ajustes de Temporização e Resiliência

Por padrão, o BGP espera muito tempo para detectar falhas. Em ambientes modernos, onde a rápida convergência é necessária, devemos ajustar os timers Hold e Keepalive.

[edit]
set protocols bgp 65000 peer 192.168.100.1 timers connect-retry 10
set protocols bgp 65000 peer 192.168.100.1 timers keepalive 10
set protocols bgp 65000 peer 192.168.100.1 timers hold-time 30

Esses valores definem um intervalo de Keepalive de 10 segundos e um Hold Time de 30 segundos. Isso significa que se o VyOS não receber um pacote do peer em 30 segundos, a sessão será considerada caída. Esses valores devem coincidir (ou ser compatíveis) com a configuração do lado do peer.

Políticas de Roteamento e Prefixos

O BGP não apenas estabelece conexões; ele gerencia o que é enviado e recebido. Por padrão, um router BGP pode anunciar todas as rotas em sua tabela de roteamento para seus peers, o que representa um risco de segurança significativo (vazamento de rotas internas).

Você deve definir explicitamente quais prefixos são anunciados. No VyOS, usamos listas de prefixos (prefix-lists) ou ACLs.

Definindo Prefixos Locais

Crie uma lista de prefixos que representa suas redes IP legítimas.

[edit]
set prefix-list ANUNCIO-LIMITADO rule 10 permit 200.1.1.0/24 le 28
set prefix-list ANUNCIO-LIMITADO rule 20 deny 0.0.0.0/0 le 32

A regra 10 permite a rede 200.1.1.0/24 e sub-redes até /28. A regra 20 é uma deny any, que atua como um "catch-all" para negar tudo o que não foi permitido anteriormente.

Aplicando a Política ao Peer

Agora, vincule essa lista à sessão BGP do peer, aplicando-a na direção de saída (outbound).

[edit]
set protocols bgp 65000 peer 192.168.100.1 prefix-list ANUNCIO-LIMITADO out

Com isso, o VyOS enviará apenas as rotas especificadas para o ISP. Se você quiser aprender rotas do ISP (default route ou outras), pode usar uma política de entrada.

[edit]
set protocols bgp 65000 peer 192.168.100.1 prefix-list APRENDIDO-LIMITADO in

Onde APRENDIDO-LIMITADO define o que você aceita do ISP (geralmente a rota default 0.0.0.0/0 ou prefixes específicos).

Habilitando Protocolos de Roteamento Interno (Opcional)

Se você tiver múltiplos roteadores VyOS no mesmo AS (iBGP), eles precisam trocar informações de next-hop. Para isso, é comum rodar um IGP como OSPF nas interfaces internas.

[edit]
set protocols ospf area 0.0.0.0 network 10.0.0.0/24
set protocols ospf interface eth0.10 type broadcast

Lembre-se que, em cenários iBGP, o next-hop da rota BGP aprendida não será alterado por padrão. Se o seu peer iBGP anunciar uma rota vinda de um eBGP externo, o next-hop será o IP do roteador eBGP externo. Seus outros roteadores iBGP precisarão ter rota até esse IP via OSPF ou estáticas.

Verificação e Diagnóstico

Após aplicar a configuração com commit and save, não confie cegamente que tudo funcionou. O diagnóstico é parte essencial da administração de redes.

Verificando o Estado da Sessão

O comando mais importante é show bgp summary. Ele exibe o estado de todas as sessões BGP.

vyos@vyos# show bgp summary
BGP router identifier 1.1.1.1, local AS number 65000
BGP state = established, table version = 5

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.100.1   4  64500     120     115        5    0    0 00:15:32           2

O campo State/PfxRcd deve mostrar o número de prefixos recebidos. Se aparecer "Idle" ou "Active", houve um erro de conectividade, configuração de AS ou firewall.

Analisando a Tabela BGP

Para ver quais rotas foram aprendidas e anunciadas, utilize:

vyos@vyos# show bgp 192.168.100.1
BGP routing table entry for 0.0.0.0/0, version 123
Paths: (1 available, no best path selected)
  Not advertised to any peer
    64500
      192.168.100.1 from 192.168.100.1 (1.1.1.1)
        Origin I, locpref 100, med 0
        Local pref: 100, weight: 32768, valid: external, best: external

Este comando detalha os atributos da rota (Origin, MED, Local Pref), ajudando a entender por que uma rota foi ou não escolhida como melhor caminho.

Logs do Sistema

Se a sessão oscila, verifique os logs do sistema para mensagens de erro de TCP ou BGP.

vyos@vyos# log tail -f /var/log/syslog | grep bgpd

Mensagens como "Connection refused" indicam problemas de firewall ou porta 179 bloqueada. Mensagens de "Authentication failure" indicam erro na senha MD5.

Boas Práticas e Segurança

  1. Sempre use Autenticação MD5: Nunca deixe sessões BGP abertas sem senha em ambientes não confiáveis ou até mesmo entre data centers. Isso previne hijacking de rotas por atacantes.
  2. Rate Limiting: Configure limites de atualização para evitar que um peer mal configurado inunde sua tabela de roteamento com milhares de prefixos inválidos.
[edit]
set protocols bgp 65000 peer 192.168.100.1 timers min-rtr-adv-interval 5
  1. Filtering Rigoroso: Nunca anuncie tudo. Use prefix-lists e route-maps para controlar estritamente o que sai da sua rede.
  2. Monitoramento Contínuo: Integre a saída de show bgp summary em seu sistema de monitoramento (Zabbix, Prometheus, Nagios) para alertar sobre quedas de sessão BGP imediatamente.

Conclusão

A implementação do BGP no VyOS oferece um controle poderoso sobre o roteamento dinâmico da sua infraestrutura. Ao seguir estes passos — desde a definição básica do AS e peers até a aplicação de políticas rigorosas de prefixos — você garante não apenas a conectividade, mas também a segurança e a estabilidade da sua rede.

Lembre-se que o BGP é um protocolo "safe-by-default" em muitos aspectos, mas perigoso se mal configurado. Teste sempre as mudanças em um ambiente de homologação ou com cuidado extremo em produção, verificando cada etapa com os comandos de diagnóstico apresentados. A documentação oficial do VyOS e as listas de discussão da comunidade são recursos valiosos para aprofundar conceitos avançados como Route-Maps complexas e integração com SD-WAN.

Agora que sua configuração está ativa e validada, monitore a convergência e ajuste os pesos (weights) ou preferências locais (local-pref) conforme necessário para otimizar o fluxo de tráfego entre seus links de ISP.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000