Guia de diagnóstico · BGP
BGP caindo: causas, diagnóstico e quando chamar um Especialista
BGP caindo quase sempre é uma sessão que deixou de receber mensagens do vizinho dentro do tempo combinado ou que foi encerrada por um limite ou erro de configuração. Comece pelo log do roteador: a mensagem de encerramento diz qual das duas coisas aconteceu.
O que significa BGP caindo
BGP caindo significa que a sessão entre o seu roteador de borda e um vizinho, como a operadora de trânsito ou o IX.br, foi encerrada. Enquanto ela está fora, as rotas daquele vizinho somem e o tráfego tenta sair por outro caminho, ou simplesmente para.
A sessão BGP roda sobre TCP, na porta 179. Os dois lados trocam mensagens de "estou vivo" (keepalive) em intervalos fixos. Se um lado passa tempo demais sem ouvir o outro, ou recebe algo que não aceita, ele derruba a sessão e registra o motivo no log.
Se a queda é recorrente e você não acha a causa sozinho, o troubleshooting de BGP para provedores investiga a borda inteira, do link físico aos filtros. Com a rede parada agora, use o atendimento de emergência para a sua rede.
Caiu de vez ou está oscilando?
Antes de procurar a causa, descubra o padrão: uma queda que fica fora tem causas diferentes de uma sessão que sobe e cai várias vezes por hora. Olhe no roteador há quanto tempo a sessão está no estado atual e quantas vezes ela mudou.
- Caiu e não volta: o problema costuma estar no caminho (link físico, IP, rota até o vizinho) ou numa mudança de configuração, como senha ou filtro.
- Sobe e cai em ciclos (flapping): o problema costuma ser perda de pacotes, CPU alta, MTU ou um limite de prefixos sendo atingido logo depois que a sessão sobe.
Se a sessão nem chega a subir, o caso é outro: veja as causas de sessão BGP que não sobe.
As causas mais comuns
Seis causas respondem pela maior parte das quedas de BGP em provedores. A mensagem no log do roteador é o atalho para saber em qual delas você está.
| Causa | O que costuma aparecer | Onde olhar |
|---|---|---|
| Perda de pacotes no link | Hold timer expired, quedas em horário de pico | Erros e descartes na interface, ping longo até o vizinho |
| CPU do roteador no limite | Hold timer expired, várias sessões caindo juntas | Uso de CPU e processos no roteador de borda |
| Limite de prefixos atingido | Cease com "maximum number of prefixes reached" | Configuração de limite de prefixos do vizinho |
| MTU diferente no caminho | Sessão sobe e cai logo ao receber a tabela | MTU das interfaces e do transporte até o vizinho |
| Mudança de configuração | Queda logo depois de alguém mexer na borda | Histórico de alterações, filtros, senha e IP do vizinho |
| Problema ou manutenção do vizinho | Queda só com aquele vizinho, sem erro do seu lado | Avisos da operadora e chamado aberto com ela |
O que verificar primeiro, passo a passo
Siga a ordem abaixo: ela vai do mais rápido de conferir ao mais trabalhoso, e evita mexer na configuração antes de entender a queda.
- Leia o log do roteador. Procure a última mensagem de encerramento daquele vizinho, com data e hora. Anote o texto exato.
- Veja se é um vizinho ou todos. Se todas as sessões caíram juntas, o problema provavelmente está no seu roteador ou no seu link, não na operadora.
- Teste o caminho. Faça ping até o IP do vizinho, com pacotes pequenos e grandes. Perda ou falha só nos pacotes grandes aponta para MTU.
- Olhe a interface e a CPU. Erros, descartes e CPU perto de 100% no horário da queda explicam o "hold timer expired".
- Confira o que mudou. Alguém mexeu em filtros, senha, IP ou limite de prefixos nas últimas horas? Compare com o último backup da configuração.
- Abra chamado com a operadora. Se do seu lado está tudo certo, mande para ela o horário da queda e a mensagem do log.
Se os clientes estão caindo por outro motivo, como ONUs desconectando em grupo, o problema não é BGP: veja o guia de OLT derrubando ONU.
O que não fazer com o BGP caindo
Na pressa, algumas ações parecem resolver, mas escondem a causa ou pioram a situação para a próxima queda.
Evite
- Reiniciar o roteador de borda sem salvar o log: a prova da causa vai embora junto.
- Derrubar e subir a sessão várias vezes seguidas: a operadora pode penalizar as suas rotas por instabilidade (o chamado dampening).
- Mexer em filtros ou no limite de prefixos sem um backup da configuração atual.
- Aumentar o hold time para "esconder" a perda de pacotes, em vez de corrigir o link.
Quando chamar um Especialista
Chame um Especialista quando a rede está parada e você não achou a causa em 15 a 20 minutos, quando a queda se repete sem explicação ou quando a correção exige mexer em filtros e políticas de roteamento em produção.
BGP caiu e a rede está parada?
Um Especialista entra na sua rede, lê o log com você e trabalha para a sessão voltar, com registro de tudo o que for feito.
Perguntas frequentes sobre BGP caindo
BGP caindo: o que fazer primeiro?
Leia o log do roteador e anote a mensagem de encerramento daquele vizinho. Ela indica se a sessão caiu por falta de resposta (hold timer) ou por um limite ou erro de configuração.
Qual a causa mais comum de BGP caindo?
Em provedores, a perda de pacotes no link e a CPU alta no roteador de borda, que atrasam os keepalives até o hold time acabar. Limite de prefixos e mudanças de configuração vêm logo depois.
O que é "hold timer expired"?
É a mensagem que aparece quando um lado passou o tempo combinado (hold time) sem receber nenhuma mensagem do vizinho. O roteador entende que o vizinho sumiu e encerra a sessão.
Como resolver BGP caindo de vez?
Corrigindo a causa encontrada no log, e não só subindo a sessão de novo. Quando a queda se repete, vale uma análise completa da borda: link, CPU, MTU, filtros e limites.
Fontes
- RFC 4271, A Border Gateway Protocol 4 (BGP-4): sessão sobre TCP 179, keepalive e hold time.
- RFC 4486, Subcodes for BGP Cease Notification Message: encerramento por limite de prefixos.
- RFC 2439, BGP Route Flap Damping: penalização de rotas instáveis.