BGP - Border Gateway Protocol

Este artigo apresenta os conceitos do Border Gateway Protocol (BGP), componente que torna possível a comunicação de dados IP entre as organizações que se interligam por meio da Internet.

Por que eu devo ler este artigo: Este artigo apresenta os conceitos fundamentais de operação do border gateway protocol (BGP), componente que torna possível a comunicação de dados IP entre as organizações que se interligam por meio da Internet. Dentre as razões para sua adoção, será destacado seu suporte às diferentes topologias lógicas das redes de computadores, o qual impede loops no envio dos pacotes IP e possibilita a configuração de arquiteturas que atendem às diferentes necessidades das políticas de roteamento.

A administração de redes de computadores com suporte ao BGP é uma tarefa complexa, pois este protocolo permite a configuração de políticas díspares de roteamento para cada um de seus provedores de acesso à Internet. Erros na operação do protocolo BGP podem gerar indisponibilidades no acesso aos serviços da rede mundial de computadores, tanto para a organização interna quanto para os usuários de outros sistemas autônomos. Neste contexto, observa-se a importância da compreensão da terminologia e do funcionamento deste protocolo entre os profissionais da área de redes de computadores, permitindo a contenda e o aprofundamento técnico no tema.


Guia do artigo:

No início dos anos 1970, quando a primeira rede de computadores entrou em operação, era inimaginável que esta chegaria às proporções atuais da Internet. A administração da comunicação entre todos os roteadores que faziam parte deste embrião precisava ser realizada de maneira dinâmica e necessitava suportar a rápida expansão da infraestrutura. Neste cenário, surgiu o protocolo BGP para padronizar e organizar a comunicação entre as diferentes entidades que se interligavam a rede mundial de computadores. Responsável por superar as deficiências de seu antecessor (o protocolo EGP), o BGP evoluiu até sua quarta versão, denominada BGP-4. Atualmente, este é o padrão que guia a comunicação de dados entre todos os sistemas autônomos da Internet.

Nos dias de hoje, para que seja possível acessar qualquer um dos segmentos de rede disponíveis na Internet são necessárias mais de 440.000 rotas de endereços IPv4 (Internet Protocol version 4, neste artigo doravante denominado IP). Este número corresponde aos prefixos (agrupamentos de endereços) em uso nas organizações espalhadas por todos os continentes que acessam a rede mundial. Para que exista comunicação entre estas entidades, é importante que haja um único conjunto de regras que oriente como os dados serão compartilhados. Analogamente às relações humanas, nas quais existe um idioma predominante, o qual permite que pessoas de qualquer parte do planeta Terra possam partilhar mensagens, os provedores de conteúdo, as operadoras de telecomunicações, as instituições financeiras, os órgãos de ensino e pesquisa, entre outros, também precisam de um padrão para que suas redes de computadores estejam acessíveis, possibilitando o envio e o recebimento de pacotes IP.

O protocolo BGP foi criado em meados de 1989 com o intuito de reger este diálogo entre os roteadores e de suportar as diferentes infraestruturas já existentes, provendo escalabilidade, flexibilidade e redundância, além de possibilitar a criação de políticas de roteamento que respeitassem as particularidades e os anseios de cada uma das organizações que se conectavam a Internet. Entretanto, estas características tornaram o gerenciamento deste protocolo mais complexo, pois foi necessária a inclusão de diversos recursos que sustentassem a pluralidade de seus usuários.

Em seu início, este artigo mostra a definição dos sistemas autônomos, que são as unidades fundamentais da rede mundial de computadores, interligados pelo BGP-4. A seguir, são apresentadas as características principais da operação deste protocolo e destacados os três cenários básicos de roteamento observados nas infraestruturas de comunicação de dados. Também são descritas as diferentes mensagens que são empregadas pelos roteadores configurados com BGP-4 a fim de estabelecer sessões internas e externas, abordando a máquina de estados finitos do BGP – a qual auxilia na compreensão dos diferentes estados pelos quais o protocolo transita antes do efetivo envio e recebimento dos prefixos de roteamento. Por fim, são contextualizados os distintos atributos que conferem ao BGP uma forma flexível de influenciar a escolha do melhor caminho para um determinado destino remoto.

Sistemas autônomos

Os sistemas autônomos (em inglês, autonomous system – AS) são compostos por uma ou mais redes de computadores gerenciadas de acordo com uma política de roteamento única, que define as regras para o encaminhamento dos pacotes de dados IP à Internet. Cada AS pode determinar o protocolo de roteamento interno – IGP (interior gateway protocol) que realizará a integração entre os componentes de sua infraestrutura baseado em seus próprios critérios operacionais, administrativos, e técnicos. Por outro lado, para que seja viável a troca de dados entre os diferentes sistemas autônomos, é necessário que todos optem por um único protocolo de roteamento externo – EGP (exterior gateway protocol).

Os protocolos de roteamento internos (IGPs) suportam os roteadores instalados em um mesmo AS. São agrupados em duas principais categorias, conforme o processo utilizado para determinar como os pacotes serão encaminhados: vetor de distâncias e estado de enlaces. Na primeira, os roteadores possuem uma tabela que armazena as menores distâncias para os destinos conhecidos e por onde os pacotes deverão ser enviados, a fim de determinar as melhores rotas. Routing Information Protocol (RIP), Interior Gateway Routing Protocol (IGRP) e Enhanced Interior Gateway Routing Protocol (EIGRP) são alguns dos protocolos inseridos neste grupo. Já na segunda categoria, todos os roteadores mapeiam a topologia lógica da rede e se baseiam nesta para determinar os melhores caminhos. Open Shortest Path First (OSPF) e Intermediate System to Intermediate System (IS-IS) são os protocolos mais conhecidos neste subconjunto.

Criados com o intuito de subsidiar o crescimento estruturado da rede mundial de computadores e de estabelecer um padrão de comunicação, os protocolos de roteamento externos suportam a transferência de dados entre os sistemas autônomos. Atualmente, o Border gateway protocol version 4 (BGP-4) é o protocolo padrão para a integração entre as redes de computadores espalhadas por todos os continentes.

Para identificar os ASs, um número global e único (Autonomous System Number – ASN) é atribuído às organizações por um registro regional da Internet (Regional Internet Registry – RIR), órgão responsável pela alocação e reserva dos recursos de numeração da Internet em uma determinada região do mundo. Inicialmente, o ASN foi definido como um número inteiro de 16 bits (2 bytes), possibilitando associar números desde 1 a 65.535. Posteriormente, esta faixa foi ampliada para 32 bits (4 bytes), expandindo para 4.294.967.295 ASNs.

As instituições públicas e privadas que desejam se tornar um sistema autônomo devem apresentar suas justificativas técnicas ao RIR e descrever sua infraestrutura de comunicação de dados. Além disso, precisam disponibilizar: uma equipe técnica habilitada para projetar, implantar e operar sua política de roteamento; software e hardware compatíveis com o protocolo BGP-4; e, condições financeiras para a manutenção dos recursos de numeração (ASN e endereços IP). Operadoras de telecomunicações, provedores de conteúdo, empresas de tecnologia da informação, fornecedores de hardware e software, órgãos de ensino e pesquisa, instituições financeiras, entre outros, são alguns exemplos de sistemas autônomos (Figura 1). Entre as diversas vantagens de se tornar um AS, destacam-se:

Figura 1. Relações entre os sistemas autônomos.

Border gateway protocol version

No início dos anos 1970, quando a primeira rede de computadores entrou em operação nos EUA, existiam poucas instituições de pesquisa conectadas àquela que seria o embrião da Internet: a ARPANET (Advanced Research Projects Agency Network). Inicialmente, o gerenciamento das tabelas de rotas era feito manualmente, configurando quais redes IP poderiam ser acessadas a partir de cada roteador da infraestrutura. Entretanto, o célere crescimento da Internet mostrou que a atualização destas informações seria inviável; logo, seriam necessários mecanismos dinâmicos para sua manutenção. Neste contexto, surgiram os protocolos de roteamento externos: o exterior gateway protocol – EGP representou a primeira tentativa de comunicação entre sistemas autônomos distintos (observe que este protocolo possui a mesma denominação da categoria na qual está inserido). Todavia, segundo Alex Soares de Moura, em seu artigo O protocolo BGP-4, este não se mostrou flexível para a configuração das políticas de roteamento e para suportar diferentes topologias, evitando loops no encaminhamento dos pacotes IP.

Assim o protocolo BGP surgiu em meados de 1989 (RFC 1105) com o objetivo de substituir o EGP e suplantar suas deficiências. A proposta inicial sofreu diversas alterações até a versão atual, apresentada na RFC 4271. Entre suas características principais, destacam-se:

Os três cenários fundamentais de roteamento suportados pelo protocolo BGP-4 são: intersistemas autônomos, intrassistemas autônomos e trânsito entre ASs. Definem o relacionamento entre os roteadores, as regras que serão utilizadas para propagação das tabelas de roteamento e as políticas que serão implantadas por cada um dos sistemas autônomos.

Dois ou mais roteadores em ASs distintos se comunicam pelo roteamento intersistemas autônomos, que gera uma relação de vizinhança external BGP (eBGP). Esta é a aplicação mais comum do protocolo BGP-4 e o alicerce de funcionamento da Internet, que em última instância pode ser definida como uma coleção de ASs interconectados. A Figura 2 ilustra relações eBGP entre os roteadores C (AS 100) e D (AS 200), e, entre F (AS 200) e G (AS 300). Portanto, os dados de um usuário conectado ao segmento de rede do roteador A da empresa XPTO, direcionados a um servidor web localizado no provedor de acesso à Internet, necessariamente serão encaminhados pela rede interna do AS 100 ao roteador C, segundo sua política interna de roteamento, pois esta é a única interface entre os ASs 100 e 200.

Figura 2. Roteamento intersistemas autônomos.

Já a comunicação intrassistemas autônomos ocorre quando o protocolo BGP-4 é configurado entre dois ou mais roteadores pertencentes ao mesmo AS. Comumente chamada de vizinhança internal BGP (iBGP), esta aplicação permite o compartilhamento das tabelas de rotas entre os roteadores do AS que possuem conexões com outros sistemas autônomos e aqueles localizados internamente. No exemplo apresentado na Figura 3, destacam-se em azul as relações iBGP entre os roteadores internos dos ASs 100, 200, e 300. É possível observar também que os roteadores C (AS 100), D (AS 200), F (AS 200) e G (AS 300) possuem ambos os tipos de vizinhanças: iBGP e eBGP. São estes os roteadores responsáveis pela propagação das rotas externas aos demais dispositivos de seus sistemas autônomos.

Figura 3. Roteamento intrasistemas autônomos.

O trânsito entre os sistemas autônomos é realizado por ASs que não possuem relação direta com o remetente ou destinatário dos pacotes IP, ou seja, que apenas encaminham os dados de terceiros. A Figura 4 destaca o AS 200 como uma entidade de trânsito, que conecta os usuários da empresa XPTO (AS 100) ao provedor de conteúdo (AS 300). Tipicamente, os provedores de acesso à Internet e as operadoras de telecomunicações são organizações que oferecem trânsito IP aos seus clientes, criando uma malha de interconexão entre os diferentes sistemas autônomos espalhados pela região geográfica na qual possuem cobertura.

Figura 4. Sistema autônomo com função de trânsito IP.

Por padrão, três importantes regras devem ser consideradas no projeto de uma topologia de rede com suporte ao protocolo BGP-4:

  1. As rotas recebidas por uma conexão eBGP podem ser propagadas para vizinhanças eBGP e iBGP. Entretanto, para evitar loops de roteamento, por padrão, as rotas aprendidas por iBGP não são encaminhadas para outros roteadores em sessões iBGP. Portanto, necessariamente um sistema autônomo sempre empregará um IGP para o compartilhamento interno das tabelas de roteamento de seus dispositivos;
  2. Todos os roteadores configurados com o protocolo BGP-4 devem estar conectados logicamente entre si (vizinhanças iBGP), formando uma topologia com malha completa (full-mesh). Esta arquitetura é necessária para atender a restrição imposta pelo comportamento descrito no item anterior. Por exemplo, suponha que o AS 200 ilustrado na Figura 5 é de uma operadora de telecomunicações que provê trânsito para os sistemas autônomos 100, 300, 400 e 500. No cenário (a), as rotas na conexão eBGP com o AS 300 serão propagadas aos roteadores A e D via iBGP; mas estes não as encaminharão ao roteador C. Por outro lado, A e D enviarão para C, respectivamente, as rotas dos ASs 100 e 400, pois estas foram recebidas por meio de sessões eBGP. Destarte, para que os sistemas autônomos possam se comunicar, é necessário que todos os roteadores BGP do AS 200 estejam conectados logicamente em topologia full-mesh (b);
  3. Somente são propagadas para os BGP peers (vizinhos) rotas que estejam na tabela de roteamento dos dispositivos, sejam redes diretamente conectadas, prefixos IP configurados estaticamente ou aprendidos por intermédio de protocolos dinâmicos.
Figura 5. Topologia BGP parcial-mesh (a) e full-mesh (b).

Mensagens BGP-4

O protocolo BGP-4 utiliza um conjunto de mensagens para estabelecer a comunicação com os demais roteadores, monitorar as sessões ativas, enviar atualizações de roteamento e notificar erros. Cada uma destas mensagens é empregada para um tipo específico de ação, a saber:

Estados de uma conexão BGP-4

O estabelecimento de uma sessão BGP passa por seis passos distintos antes da efetiva troca dos prefixos IP entre os BGP peers: idle, connect, active, open sent, open confirm e established. A Figura 6 ilustra uma máquina de estados finitos, representação habitualmente adotada para indicar os estados e a transição entre cada um deles. Em todas as etapas, os roteadores enviam e recebem mensagens, processam os dados e reservam os recursos, antes de iniciarem a próxima fase. Quando ocorrem falhas, os BGP peers retornam ao ponto inicial (idle) e repetem o processo novamente. A lista a seguir descreve detalhadamente os diferentes passos:

Figura 6. Estados de uma conexão BGP-4.

A máquina de estados finitos do protocolo BGP-4 permite identificar em qual estágio encontra-se uma vizinhança entre dois BGP peers, auxiliando na resolução de problemas na ativação destas sessões. Comumente, os usuários não familiarizados com esta terminologia atribuem o correto funcionamento ao estágio active; entretanto, conforme descrito nesta seção, a troca dos prefixos de roteamento é realizada apenas no estado established. Portanto, resumidamente, a comunicação entre os roteadores BGP-4 envolve as seguintes ações:

  1. Inicialização e estabelecimento de uma sessão TCP entre os dispositivos;
  2. Criação da vizinhança entre os roteadores: para tanto, o protocolo BGP-4 utilizará as mensagens abordadas anteriormente para efetuar a transição entre seus diversos estados até o estágio established;
  3. Envio de um fluxo inicial de dados, correspondentes à tabela completa dos prefixos IP conhecidos pelos roteadores;
  4. Atualizações posteriores serão enviadas de forma incremental, à medida que as alterações ocorrerem na topologia da rede;
  5. Propagação periódica de mensagens KEEPALIVE para manter a sessão established;
  6. Manutenção da tabela de roteamento recebida do BGP peer enquanto a sessão com o mesmo estiver no estado established;
  7. Encaminhamento de mensagens NOTIFICATION em qualquer condição de erro e encerramento da conexão BGP-4, retornando ao estágio inicial.

Atributos do BGP-4

O protocolo BGP-4 é sustentado pelo algoritmo vetor de caminhos (path vector), no qual, a partir de dados recebidos dos demais sistemas autônomos, cria-se um vetor que armazena os ASNs que formam o caminho até cada uma das redes remotas. Considerando que as diversas vizinhanças BGP divulgam estas informações, é possível calcular o menor caminho para uma determinada rede IP (as-path). Por exemplo, suponha a topologia ilustrada na Figura 7, na qual a empresa B pode acessar o prefixo 7.7.7.0/8 (empresa A) por intermédio das operadoras Y (AS 300) ou Z (AS 400). É importante notar que a operadora Z possui uma conexão eBGP direta com a empresa A (AS100), enquanto que a operadora Y depende do serviço de trânsito BGP prestado pela operadora X (AS 200). Neste cenário, a rota de menor caminho seria pela operadora Z, pois os dados passam somente por um sistema autônomo até o destino final.

Uma importante melhoria introduzida no algoritmo vetor de caminhos está relacionada à prevenção dos loops de roteamento, pois os roteadores verificam no as-path de cada prefixo se o mesmo foi originado ou propagado pelo seu próprio sistema autônomo, descartando-o quando esta observação for verdadeira.

Cabe destacar também, que a escolha da melhor rota não é necessariamente baseada no menor caminho, pois outros atributos podem ser avaliados. Estes descrevem um conjunto de propriedades dos prefixos IP e são empregados na decisão da melhor opção para o encaminhamento dos pacotes quando há múltiplos caminhos. Os atributos podem ser agrupados nas categorias indicadas a seguir:

Figura 7. Diferentes caminhos (as-paths) entre as empresas A e B.

Entre os atributos definidos como well-known mandatories, destacam-se:

A lista a seguir detalha os atributos well-known discretionaries:

Já entre os atributos denominados optional transitives, devem ser citados:

Por fim, os atributos a seguir pertencem à última categoria, chamada optional non transitives:

A escolha da melhor rota baseia-se nos atributos de cada prefixo IP. Nos sistemas autônomos com duas ou mais saídas para a Internet, existem múltiplas alternativas para uma mesma rede. Neste cenário, o algoritmo de decisão do protocolo BGP-4 determina o caminho que será utilizado por meio da seguinte análise (segundo Karl Solie e Leah Lynch, em seu artigo BGP-4 Theory):

  1. Verificar se o NEXT_HOP é alcançável. Em caso contrário, desativar o prefixo;
  2. Selecionar a alternativa com o maior LOCAL_PREF;
  3. Caso as opções possuam o mesmo LOCAL_PREF, escolher aquela com o menor AS-PATH;
  4. Em caso de empate, avaliar o atributo ORIGIN (prioridade para os anúncios do tipo IGP, EGP e INCOMPLETE, respectivamente);
  5. Preferir a rota com o menor MED;
  6. Se o MED for igual ou não utilizado, eleger os caminhos eBGP (comparando-os com os iBGP);
  7. Caso ambos sejam iguais, selecionar a alternativa com a menor métrica IGP;
  8. Preferir os anúncios que foram recebidos primeiro (mais antigos);
  9. Em caso de empate, selecionar o BGP peer com a menor identificação (IP).
Conclusão

O célere crescimento da Internet impulsionou a ampliação da infraestrutura de redes que suportava seus diversos serviços. Quando foi criada, esta interligava poucas instituições dos EUA na década de 1970; hoje, apenas 43 anos depois, conecta algumas centenas de milhares de entidades. Para que esta expansão fosse possível, os componentes das redes de computadores foram agrupados em sistemas autônomos, organizações que possuem liberdade para determinar como seus recursos internos são configurados e gerenciados, conforme seus critérios técnicos, administrativos e operacionais. No entanto, ainda existia a necessidade de um protocolo de comunicação padrão, que suportasse a pluralidade de cada um destes ambientes, além de oferecer escalabilidade, flexibilidade e redundância da infraestrutura. Desta demanda, foi concebido o protocolo BGP em meados de 1989, o qual evoluiu e encontra-se em sua quarta versão (BGP-4).

Seus três cenários básicos de roteamento sustentam: (1) a comunicação entre roteadores internos por meio de vizinhanças iBGP; (2) o envio e o recebimento das tabelas de roteamento entre sistemas autônomos distintos, desde que estes possuam conexões eBGP estabelecidas; e, por fim, (3) o transporte de dados por organizações que não estejam diretamente relacionadas à origem ou ao destino dos pacotes IP, por intermédio dos sistemas autônomos de trânsito.

Para a operação do protocolo são necessárias apenas quatro mensagens, as quais são compartilhadas entre os BGP peers. Estas alicerçam os diferentes estados que uma sessão BGP pode se apresentar: idle, connect, active, open sent, open confirm e established. A troca dos prefixos de roteamento é realizada apenas na última etapa que, inicialmente, contempla a tabela completa. A seguir, apenas as alterações são compartilhadas entre os roteadores que estabeleceram a vizinhança. Justapostos aos prefixos, também são encaminhados diversos atributos que possibilitam a determinação da melhor rota para cada um dos destinos, não somente baseada no menor caminho, mas por meio de outros critérios que conferem ao administrador do sistema autônomo a flexibilidade necessária para criação de suas políticas de roteamento.

Confira também

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados