BGP: O Protocolo de Roteamento que sem ele a Internet não funcionaria

Border Gateway Protocol é um complexo protocolo de roteamento que literalmente faz a internet funcionar

O Protocolo de Roteamento BGP que sem ele a Internet não funcionaria

BGP -Border Gateway Protocol é um complexo protocolo de roteamento que literalmente faz a internet funcionar. Neste artigo explicaremos como o BGP funciona e oferece opções para soluções de determinados problemas.

Provedores de serviço que trabalham com redes IP são muito claros em afirmar que o Border Gateway Protocol, ou BGP , é o protocolo de Internet mais complexo e de difícil configuração. Sua ênfase na segurança e escalabilidade o torna essencial, no entanto  este artigo fornece uma visão detalhada de como o BGP funciona e oferece opções simples e avançadas de solução de problemas do BGP, para que os roteadores habilitados para BGP possam trocar informações de forma segurança com centenas de milhares de prefixos IP dessa forma mantendo a Internet funcionando. Se você tiver que explicar o que o BGP é para alguém novo no ambiente do provedor de serviços, a melhor definição seria que é o Protocolo de Roteamento que faz a Internet funcionar. Como a alocação de endereços na Internet não é tão hierárquica quanto o plano de discagem por telefone, a maioria dos roteadores nas redes centrais dos provedores de serviços precisa trocar informações sobre várias centenas de milhares de prefixos IP mesmo assim o BGP ainda é capaz de realizar essa tarefa, o que prova que é um protocolo de roteamento altamente escalável. Geralmente, as informações de roteamento do BGP são trocadas entre entidades comerciais concorrentes na forma de provedores de serviços de Internet ( ISPs ) em um ambiente aberto e hostil – a Internet pública.

O BGP é muito focado em segurança – por exemplo, todos os roteadores adjacentes precisam ser configurados manualmente – e as implementações decentes do BGP fornecem um rico conjunto de filtros de rota para permitir que os ISPs defendam suas redes e controlem o que anunciam para seus concorrentes. Como funciona o BGP Na terminologia do BGP , um domínio de roteamento independente, que quase sempre significa uma rede ISP, é chamado de sistema autônomo (AS . O BGP é sempre usado como o protocolo de roteamento escolhido entre os ISPs (conhecido como BGP externo), porém também é usado como o principal protocolo de roteamento dentro de grandes redes ISP (conhecido como BGP interno). Todos os outros protocolos de roteamento estão preocupados apenas em encontrar o caminho ideal para todos os destinos conhecidos todavia o BGP não pode adotar essa abordagem simplista porque os acordos de peering entre ISPs quase sempre resultam em políticas complexas de roteamento. Para ajudar os operadores de rede a implementar essas políticas, o BGP carrega um grande número de atributos com cada prefixo IP, por exemplo:

  • Autonomous system (AS) – Caminho do sistema autônomo (AS) – O caminho completo que documenta quais sistemas autônomos um pacote teria que percorrer para chegar ao destino.
  • Local preference – Preferência local – O custo interno de um destino, que é usado para garantir a consistência de todo o AS.
  • Multi-exit discriminator – Este atributo dá aos ISPs adjacentes a capacidade de preferir um ponto de peering em detrimento de outro.
  • Communities – Comunidades – um conjunto de tags genéricas que podem ser usadas para sinalizar várias políticas administrativas entre roteadores BGP.

Como o foco do design e da implementação do BGP sempre foi na segurança e na escalabilidade tornou este protocolo mais difícil configurar do que outros protocolos de roteamento, mais complexos, além do mais, quando você começa a configurar várias políticas de roteamento, por outro lado é um dos protocolos de roteamento convergentes mais lentos.

A lenta convergência do BGP leva a um design de dois protocolos de uma rede ISP:

  • Protocolo de roteamento interno – na maioria das vezes, o Open Shortest Path First ( OSPF ) ou o Sistema Intermediário para o Sistema Intermediário ( IS-IS ) – é usado para obter convergência rápida para rotas internas, incluindo endereços IP de roteadores BGP.
  • O BGP é usado para trocar rotas de internet.

Uma falha dentro da rede básica seria, assim, rapidamente contornada, graças à rápida convergência de OSPF ou IS-IS, enquanto o BGP no top dos protocolos de roteamento interno atenderia aos requisitos de escalabilidade, segurança e política. Ainda mais, se você migrar todas as suas rotas de clientes para o BGP, os problemas do cliente – por exemplo, links entre o roteador e o roteador do cliente – não seria afetada estabilidade de sua rede principal. Devido à complexidade inerente do BGP, os clientes e pequenos ISPs implantam o BGP apenas onde necessário – por exemplo, nos pontos de peering e em um subconjunto mínimo de roteadores principais (aqueles entre os pontos de peering), conforme mostrado no diagrama a seguir.

Os roteadores que falam BGP também precisariam gerar uma rota padrão no protocolo de roteamento interno para atrair o tráfego para destinos da Internet não conhecidos de outros roteadores em sua rede.

À medida que seu negócio de ISP cresce, no entanto, seus clientes começarão a exigir conectividade BGP – qualquer cliente que queira obter acesso à Internet realmente redundante precisa ter seu próprio sistema autônomo e trocar informações de BGP com seus ISPs – e você será forçado a implante o BGP em mais e mais roteadores de núcleo (core) e de borda. Portanto, é melhor incluir o BGP em todos os principais e principais roteadores de borda como parte de seu projeto de rede inicial. Mesmo que você não possa implantá-lo em todos os lugares na implantação inicial de rede, ter um bom blueprint definitivamente ajudará quando precisar dimensionar a parte que fala BGP de sua rede.

O BGP requer uma malha completa de sessões BGP internas – sessões entre roteadores no mesmo sistema autônomo. Você pode usar refletores de rota BGP ou confederações BGP para tornar sua rede escalável.

Outra excelente razão pela qual você gostaria de implementar BGP em toda a sua rede é que baseados em redes privadas virtuais MPLS , implantações em larga escala de qualidade de serviço (QOS) ou implementações em cache de web diferenciadas em grande escala confiam no BGP para transportar as informações de que precisam.

O BGP é sem dúvida o mais complexo protocolo de roteamento IP atualmente implantado na Internet. Sua complexidade é principalmente devido ao seu foco nas políticas de segurança e roteamento – o BGP é usado para trocar informações cooperativas (rotas de internet) entre entidades concorrentes (provedores de serviços), e tem que ser capaz de implementar o que foi acordado no interpretador. acordos de peering. Esses contratos geralmente têm pouco a ver com serviços tecnicamente otimizados.

No entanto, uma abordagem estruturada para a solução de problemas do BGP conforme ilustrado poderá levá-lo rapidamente do diagnóstico inicial do problema para a solução. Aqui, nos concentramos em um cenário simples com um único roteador que fala BGP em sua rede (veja o diagrama a seguir). Projetos semelhantes são comumente usados por clientes multihomed e pequenos provedores de serviços de Internet que não oferecem conectividade BGP para seus clientes.

Identificando um problema do BGP

Antes de entrar na solução de problemas do BGP, é necessário identificar a origem do problema de conectividade que você está depurando – normalmente, você suspeita que o BGP possa estar envolvido se um dos seus clientes relatar conexões limitadas ou sem conectividade à Internet além da sua rede. Execute um traceroute de uma estação de trabalho na rede local problemática ( LAN ). Se o rastreamento atingir o primeiro roteador que fala BGP – ou, melhor ainda, se ultrapassar a borda da sua rede – provavelmente você está lidando com um problema do BGP. Caso contrário, verifique se o roteador que fala em BGP anuncia uma rota padrão em sua rede – sem uma rota padrão, outros roteadores em sua rede não podem alcançar os destinos da Internet.

Se você não tiver acesso a uma estação de trabalho conectada à LAN, poderá executar o traceroute a partir do roteador das instalações do cliente, mas deverá garantir que o endereço IP de origem usado nos pacotes traceroute seja o endereço da LAN do roteador.

Solução de problemas do roteador BGP adjacente

O BGP tem que estabelecer uma sessão TCP entre os roteadores BGP adjacentes antes que eles possam trocar rotas. A primeira verificação é, portanto, o status das sessões do BGP entre os roteadores.

Os vizinhos do BGP são configurados manualmente e os dois erros de configuração mais prováveis são:

  1. Incompatibilidade do endereço IP vizinho: O endereço IP de destino configurado em um vizinho BGP deve corresponder ao endereço IP de origem – ou ao endereço IP da interface diretamente conectada – configurado no outro.
  2. Incompatibilidade de número AS: O número AS vizinho configurado em um lado da sessão BGP deve corresponder ao número real de AS do BGP usado pelo vizinho.

Você também pode ter um problema com os filtros de pacotes implantados no roteador que fala BGP. Esses filtros devem permitir pacotes de e para a porta TCP 179.

Resolução de problemas de propagação de rotas BGP

Se os usuários desejarem receber tráfego da Internet, o prefixo IP atribuído à sua rede deverá estar visível em toda a Internet. Para chegar lá, são necessários três passos:

  1. Seu roteador BGP deve inserir seu prefixo IP em sua tabela BGP.
  2. O prefixo IP deve ser anunciado para seus vizinhos do BGP.
  3. O prefixo IP deve ser propagado pela internet

A rota esta inserida no BGP? A maioria dos protocolos de roteamento insere automaticamente subredes IP diretamente conectadas em suas tabelas de roteamento ou bancos de dados. Devido a requisitos de segurança, o BGP é uma exceção. Ele originará um prefixo IP somente se for configurado manualmente para isso – por exemplo, os roteadores Cisco usam a instrução de rede para configurar os prefixos de IP anunciados. Outra opção é a redistribuição de rotas, o que é altamente desencorajado no ambiente da Internet.

Além disso, para evitar atrair tráfego sem rota, o BGP anunciará um prefixo IP configurado somente se houver uma rota correspondente na tabela de roteamento IP. Você pode gerar a rota IP correspondente por meio da sumarização de rota, mas geralmente é melhor configurar uma rota estática apontando para uma interface nula – ou seu equivalente.

Para verificar se o seu prefixo IP está em sua tabela de roteamento BGP, use um comando show BGP – por exemplo, mostre a máscara do prefixo do IP BGP em um roteador Cisco.

A rota é anunciada para seus vizinhos? Por padrão todos os prefixos IP que residem na tabela BGP são anunciados para todos os vizinhos do BGP. Devido aos requisitos de política de segurança e roteamento, o comportamento padrão é geralmente modificado com um conjunto de filtros de entrada e saída. Se você aplicou filtros de saída aos seus vizinhos do BGP, você precisa verificar se esses filtros permitem que o seu prefixo IP seja propagado para os vizinhos externos do BGP. O comando para exibir as rotas anunciadas para um vizinho BGP em um roteador Cisco é: show ip bgp neighbor endereço IP anunciado.

A rota é visível em toda a internet? Mesmo que você tenha anunciado com sucesso o seu prefixo IP para seus vizinhos do BGP, ele ainda pode não ser propagado pela Internet. É difícil descobrir exatamente o que é propagado além dos limites da sua rede. As ferramentas que podem ajudá-lo são chamadas de BGP Looking Glass. Usando essas ferramentas, você pode inspecionar as tabelas BGP em vários pontos da Internet e verificar se o seu prefixo IP chegou até esses destinos.

Alguns fatores podem fazer com que seu prefixo de IP seja bloqueado em algum lugar da Internet. O mais comum é o abafamento de abas de rotas BGP : Se um prefixo IP abrir, desaparecer e reaparecer, muitas vezes em um curto período de tempo – por exemplo, se você limpar as sessões do BGP ou alterar a configuração do BGP – o prefixo será bloqueado por um longo período de tempo (por padrão, até uma hora). Se o seu prefixo IP é dampened, não há nada que você possa fazer, exceto esperar. Você também pode ter uma entrada inválida ou ausente nos registros de roteamento IP ou pode haver filtros de entrada em um dos ISPs upstream. Em todos esses casos, é melhor que o provedor de serviços de Internet upstream possa ajudá-lo a resolver o problema que neste momento está além do escopo da solução de problemas técnicos do BGP.

Solução avançada de problemas do BGP

Na seção anterior deste guia eletrônico, abordamos algumas habilidades básicas de solução de problemas do BGP:

  • Como identificar se um problema de roteamento é um problema do BGP
  • Como solucionar problemas de sessões do BGP
  • Como solucionar problemas de originação e propagação de rotas IP.

Agora, vamos nos concentrar em um cenário mais avançado: redes ISP de trânsito (veja o diagrama abaixo).

Para estabelecer conectividade de ponta a ponta em uma rede de provedor de serviços, o ISP deve receber os prefixos IP dos clientes via BGP e anunciá-los a outros ISPs. O mesmo processo tem que acontecer na direção inversa ou pelo menos a rota padrão deve ser anunciada ao cliente. A solução de problemas BGP em toda a rede é composta de três etapas:

  1. Receber o prefixo IP
  2. Propagar o prefixo IP em toda a nossa rede
  3. Envio do prefixo IP para vizinhos BGP externos na outra extremidade da rede.

Nós recebemos o prefixo? Solucionar problemas de BGP de entrada é a parte mais difícil da solução de problemas do BGP que você encontrará. As duas razões potenciais de um prefixo IP não estar em sua tabela BGP como você esperaria que sejam:

  1. O vizinho não está enviando o prefixo
  2. Seus filtros de entrada estão bloqueando o prefixo.

A única ferramenta que pode ajudá-lo a identificar o problema é o recurso de depuração (debug) no seu roteador de borda. Como você normalmente não tem acesso ao outro vizinho do BGP. Ao fazer a depuração do BGP, esteja ciente de que um vizinho do BGP pode enviar várias centenas de milhares de rotas, portanto é necessário garantir que a saída de depuração produzida pela sessão de solução de problemas não sobrecarregue o roteador. Além disso, os prefixos BGP são enviados somente quando eles mudam, não periodicamente, como atualizações RIP ou inundações OSPF LSA. Portanto, sua ferramenta de depuração não mostrará um prefixo de IP até que ele realmente tenha sido alterado ou você limpou a sessão do BGP com seu vizinho.

Alguns roteadores BGP têm a capacidade de armazenar uma cópia separada de todas as rotas enviadas por um vizinho para uma tabela BGP paralela. Para habilitar essa funcionalidade no Cisco IOS você precisa configurar a reconfiguração suave (soft-reconfiguration) para um vizinho BGP. Com a tabela paralela por vizinho você pode identificar exatamente o que o vizinho enviou a você (o conteúdo da tabela paralela) e as rotas que passaram por seus filtros de entrada (o conteúdo da tabela principal do BGP). Mas é claro que a tabela paralela por vizinho consome uma grande quantidade de memória.

O prefixo IP é propagado em toda a nossa rede? Mesmo quando um roteador de borda recebe um prefixo IP via BGP ele pode não ser propagado para a outra extremidade da sua rede. Para começar, o BGP interno – BGP dentro de um único sistema autônomo requer uma malha completa de sessões

BGP entre todos os roteadores BGP. Como cada roteador entre cada par de roteadores de borda precisa executar o BGP, caso contrário o tráfego poderia ser descartado dentro de sua rede O número de sessões do BGP poderia se tornar excessivamente grande. O diagrama a seguir ilustra as sessões do BGP necessárias em uma pequena rede de quatro roteadores.

Duas ferramentas – refletores de rota BGP e confederações BGP podem ajudá-lo a manter o número de sessões BGP em um nível razoável, com os refletores de rota BGP sendo os mais usados.

As regras do refletor de rota BGP são bastante simples:

  • O que for recebido de um cliente de refletor de rota ou de um peer de BGP externo será enviado para todos os outros pares de BGP.
  • O que for recebido de um roteador que não seja um cliente de refletor de rota será enviado apenas para clientes e peers de BGP externos.

Com essas regras em mãos, você precisa percorrer o gráfico de sessões BGP em sua rede verificando cada roteador BGP no caminho e garantindo que as regras de refletor de rota não sejam violadas usando as regras, os prefixos BGP são obtidos em cada roteador de borda para todos os outros roteadores.

Outro motivo comum pelo qual um prefixo de IP não é propagado em toda a sua rede, é que as subredes externas na borda de sua rede não são anunciadas para seus roteadores principais.

O endereço IP do roteador do próximo salto não é alterado quando um prefixo IP é enviado para um vizinho interno do BGP. O próximo salto de IP de uma rota externa é, portanto, sempre o endereço IP de um roteador, um salto além da borda do seu sistema autônomo. As subredes IP que conectam seus roteadores de borda aos seus vizinhos externos, portanto, precisam ser inseridas em seu protocolo de roteamento interno, por exemplo: OSPF ou IS-IS, caso contrário, algum roteador BGP interno decidirá que o próximo salto do BGP não está acessível e ignore o prefixo IP. Ele aparecerá na tabela BGP, mas não será usado ou propagado para outros pares BGP.

O prefixo é enviado para vizinhos externos? Como último passo na resolução de problemas de propagação de rotas BGP, você tem que verificar se os prefixos IP transportados através de sua rede são anunciados para seus peers BGP externos.

O tráfego está atravessando a rede? Mesmo que sua propagação de rota BGP funcione perfeitamente, os pacotes IP podem não conseguir atravessar sua rede. Lembre-se, estamos falando de redes IP puras aqui, as coisas mudam um pouco se você adicionar MPLS ao mix. A causa mais comum de um buraco negro em sua rede é um roteador no caminho de trânsito que não executa o BGP e, conseqüentemente, não tem idéia de como rotear o pacote IP recebido em direção à rede de destino.

Roteamento IP funciona hop por hop. Mesmo que o roteador de borda de ingresso saiba exatamente qual roteador de borda de saída usar e como chegar lá, ele não pode passar essa informação para os roteadores intermediários. Todos eles devem, portanto, executar o BGP também.

Para identificar um buraco negro na sua rede, faça um traceroute da rede do seu cliente para um destino na Internet. O último roteador que responde ao traceroute é um salto antes do buraco negro.

Embora todos os principais roteadores em sua rede tenham que executar o BGP, as sessões internas do BGP não precisam seguir a estrutura física da rede. Por exemplo, você poderia ter alguns roteadores centrais atuando como refletores de rota BGP para todos os roteadores BGP em sua rede.

Esperamos que com este post você conseguiu ter uma visão melhor de como funciona o protocolo mais usado na internet.

Se gostou desse link, compartilhe com seus amigos e empresas.

Precisa de soluções em tecnologia como locação de equipamentos de TI ou licenças de software? Entre em contato com a Seta Telecom! Teremos o prazer em lhe atender!