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:

  • Disponibilidade: remove a restrição de conexão em um único provedor de acesso à Internet, ou seja, possibilita o encaminhamento dos dados para múltiplas operadoras de telecomunicações;
  • Espaço de endereçamento IP próprio: os endereços IP podem ser atribuídos diretamente aos clientes, reduzindo o uso das traduções de endereços IP (Network Address Translation – NAT) e facilitando a rastreabilidade dos eventos na rede;
  • Portabilidade de endereços IP: independência do provedor de acesso, permitindo a manutenção das configurações IP mesmo quando ocorrerem mudanças nos fornecedores de acesso à Internet;
  • Políticas de roteamento: a engenharia de tráfego determina a melhor opção técnica-financeira para o encaminhamento de dados IP aos diversos destinos na rede mundial de computadores.
Relações entre os sistemas
autônomos
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:

  • Suporte às diferentes arquiteturas de comunicação de dados, permitindo flexibilidade na concepção dos projetos de infraestrutura;
  • Atualização incremental das tabelas de roteamento (apenas no momento inicial são enviados todos os dados);
  • Uso de um protocolo confiável (Transmission Control Protocol – TCP) na troca das mensagens de controle;
  • Disponibilização do Classless Interdomain Routing (CIDR), recurso que possibilita a agregação ou sumarização de rotas IP;
  • Opção de autenticação da conexão entre os roteadores envolvidos (chamados de BGP speakers) por meio de senhas.

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.

Roteamento intersistemas autônomos
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.

Roteamento intrasistemas 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.

Roteamento intrasistemas autônomos
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.
Roteamento intrasistemas autônomos
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:

  • OPEN: enviada por cada roteador BGP (também chamado BGP peer) envolvido no estabelecimento da vizinhança, após a abertura da conexão TCP na porta 179. Entre outras informações, indica a versão do protocolo, o número do sistema autônomo e a identificação do roteador;
  • UPDATE: uma vez estabelecida a sessão BGP, os roteadores iniciam a trocam de seus prefixos IP por intermédio de mensagens UPDATE, as quais detalham cada uma das rotas propagadas para o BGP peer. Estes prefixos IP também são comumente denominados informações de alcançabilidade da camada de rede – NLRI (Network Layer Reachability Information). As mensagens UPDATE transportam atualizações das tabelas de roteamento, tais como: rotas que devam ser removidas (inalcançáveis) e adicionadas (alcançáveis), atributos dos caminhos pelos quais os pacotes IP serão encaminhados (BGP path atributes), etc.;
  • NOTIFICATION: mensagens que indicam um erro que resultará no encerramento da sessão BGP. Entre os principais eventos notificados, destacam-se as conexões não sincronizadas, as falhas na autenticação, na identificação do BGP peer e do ASN, e os erros na escolha dos BGP path atributes mandatórios;
  • KEEPALIVE: após o estabelecimento da vizinhança e da troca de mensagens UPDATE, os BGP peers enviam periodicamente KEEPALIVES para assegurar que a conexão esteja ativa entre os roteadores.

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:

  • Idle: estágio inicial, observado após a configuração do BGP-4 em um roteador. Neste momento, o protocolo aguarda a inicialização de uma conexão TCP com um peer remoto. Quando esta ocorrer, há a transição para a etapa connect; em caso contrário, a vizinhança permanece na fase inicial. Filtros de segurança, restrições de conectividade e configurações incorretas do IP/ASN nos BGP peers são as principais causas de problemas neste estado;
  • Connect: neste passo, o protocolo aguarda a conclusão da conexão TCP entre os roteadores para enviar uma mensagem OPEN. A seguir, o BGP peer efetua a transição para open sent. Se ocorrerem falhas no TCP, o protocolo passa para o estágio active;
  • Active: analogamente à etapa anterior, o roteador aguarda a conclusão da comunicação TCP. Caso seja bem sucedida, o protocolo envia uma mensagem OPEN e passa para a fase open sent. Se ocorrer uma nova falha, o BGP peer efetua a transição para connect. Quando o administrador do sistema autônomo realiza alguma intervenção manual, o protocolo retorna ao estado idle. Intermitências entre connect e active geralmente indicam problemas na conexão TCP entre os BGP peers;
  • Open sent: o peer BGP aguarda uma mensagem OPEN. Após recebê-la, valida a versão do protocolo, o número do sistema autônomo, a identificação do roteador e os demais campos da mensagem; se forem identificados erros, envia uma mensagem NOTIFICATION e retorna ao estado idle. Em caso contrário, o roteador inicia o envio de mensagens KEEPALIVE e negocia o intervalo de espera (hold time) entre as mensagens KEEPALIVE e UPDATE. Neste momento também determina se a relação será internal BGP ou external BGP, por intermédio da comparação do AS informado pelo peer remoto com aquele configurado localmente. A seguir, o protocolo BGP-4 efetua a transição para open confirm. Se ocorrerem desconexões na camada TCP, a vizinhança retorna para active. Outras falhas resultarão na passagem para o estágio inicial;
  • Open confirm: nesta fase, o protocolo BGP-4 espera o KEEPALIVE para efetuar a transição para established e finalizar a negociação entre os BGP peers. Mensagens NOTIFICATION, falhas no recebimento do KEEPALIVE periódico, intervenções do administrador do sistema autônomo e outros eventos resultarão na transição para o ponto inicial;
  • Established: os roteadores BGP enviam e recebem mensagens UPDATE ou KEEPALIVE conforme o hold time negociado anteriormente. Quaisquer falhas resultarão no envio de uma NOTIFICATION e no retorno para o estágio idle.
Estados de uma conexão BGP-4
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:

  • Well-known mandatory (mandatório): atributos suportados por todas as implementações BGP e necessariamente incluídos nas mensagens UPDATE;
  • Well-known discretionary (discricionário): atributos suportados por todas as implementações BGP, mas opcionalmente incluídos nas mensagens UPDATE;
  • Optional transitive (opcional transitório): atributos opcionais que são reencaminhados de forma transparente pelos roteadores, mesmo quando não suportados, para seus BGP peers;
  • Optional non-transitive (opcional não transitório): atributos opcionais que, quando não suportados, são removidos pelos roteadores ao encaminhá-los para outras vizinhanças BGP.
Diferentes caminhos (as-paths) entre as empresas A e B
Figura 7. Diferentes caminhos (as-paths) entre as empresas A e B.

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

  • ORIGIN: indica a origem do prefixo IP encaminhado pelo protocolo BGP-4. Pode assumir o valor IGP (aprendido a partir de qualquer BGP peer), EGP (gerado pelo protocolo de roteamento externo) e INCOMPLETE (rota manualmente configurada, redistribuída por outros protocolos ou configurada diretamente na interface do roteador);
  • AS_PATH: lista dos sistemas autônomos pelos quais o prefixo IP passou desde sua origem até o BGP peer que o recebeu. Para tanto, todos os ASs adicionam seu número no início do AS-PATH; roteadores com vizinhanças iBGP não alteram este atributo;
  • NEXT_HOP: identifica o próximo roteador (hop) para se alcançar a rede de destino. Por padrão, o roteador que anuncia uma rota repassa como NEXT_HOP seu próprio endereço IP, exceto nas vizinhanças iBGP. Nestas, é mantido o endereço IP da vizinhança eBGP na qual o prefixo foi recebido.

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

  • LOCAL_PREF: utilizado localmente para indicar o melhor caminho de saída para um determinado destino, não sendo repassado por sessões eBGP. Configurado pelo administrador do sistema autônomo quando há múltiplos caminhos para um mesmo destino: quanto maior o valor atribuído, mais prioritária será aquela rota;
  • ATOMIC_AGGREGATE: indica aos BGP peers que os prefixos foram sumarizados no roteador de origem.

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

  • AGGREGATOR: empregado em conjunto com o ATOMIC_AGGREGATE, informa o ASN e a identificação do roteador que agregou as rotas;
  • COMMUNITY: associa um marcador (tag) aos prefixos IP que compartilham características comuns, tais como aqueles que não serão anunciados externamente (identificados com NO_EXPORT), os que não devem ser reencaminhados para outros BGP peers (community NO_ADVERTISE) ou outros definidos pelo administrador do sistema autônomo.

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

  • MULTI_EXIT_DISCRIMINATOR (MED): permite ao AS divulgar para seus vizinhos por qual conexão eBGP o tráfego deverá ser preferencialmente encaminhado, quando há duas ou mais sessões ativas. O MED tem por objetivo influenciar o tráfego de entrada no sistema autônomo por meio da configuração de uma métrica, que terá maior preferência à medida que seu valor se aproxima de zero;
  • ORIGINATOR_ID: utilizado em uma topologia particular do protocolo BGP-4, conhecida como route reflector, para indicar o roteador que originou as rotas localmente; é empregado para detecção de loops de roteamento;
  • CLUSTER_LIST: apresenta a lista de grupos (clusters) de route reflectors pelos quais o prefixo foi anunciado, também com o objetivo de evitar loops de roteamento.

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