BGP- 4 - BORDER GATEWAY PROTOCOL VERSION 4
O BGP é um protocolo de roteamento para ser usado entre múltiplos sistemas autônomos em internets baseadas no protocolo TCP/IP. O BGP-4 [RFCs 1771, 1772] tornou-se o sucessor natural do EGP, efetivamente atacando suas deficiências mais sérias, ou seja, evitando "loops" de roteamento e permitindo o uso de políticas de roteamento entre ASs baseado em regras arbitrárias por eles definidas. Além disso, o BGP-4 foi a primeira versão do BGP a suportar endereços agregados (Classless Interdomain Routing, ou simplesmente CIDR) e o conceito de supernets.
O protocolo BGP-4 assume que o roteamento interno do AS é feito através de um sistema IGP (Interior Gateway Protocol) de roteamento interno. Este pode ser um protocolo de roteamento como o RIP, OSPF, IGRP, EIGRP; ou até mesmo através de rotas estáticas. O BGP constrói um gráfico dos ASs, usando as informações trocadas pelos "vizinhos BGP" (BGP neighbors), que são compostas dos números identificadores dos ASs, os ASN. A conexão entre ASs forma um "caminho" (path), e a coleção desses caminhos acaba formando uma rota composta pelos números dos ASs que devem ser percorridos até se chegar a um determinado AS destino.
O BGP faz uso do TCP (porta 179) para o transporte das informações de roteamento de modo que ele próprio não precisa preocupar-se a respeito a correta da transmissão das informações.
Outras característica do BGP-4 é atualização das tabelas de rotas feitas de forma incremental, como nos algoritmos de estado de enlace. A atualização completa da tabela de rotas é feita somente uma vez, quando se estabelece a sessão entre os neighbors ou peers.
Para o estabelecimento de uma sessão BGP entre neighbors ou peers, basicamente, os seguintes passos são executados:
A figura abaixo representa a atual arquitetura da Internet, onde ASs comunicam-se via BGP-4.
O USO DO BGP-4
O BGP é usado nas situações em que uma rede precisa conectar-se a mais de um provedor simultaneamente (multi-home), ou quando se deseja ter um pouco mais de controle sobre quais caminhos seus dados seguirão pela Internet.
Basicamente, o BGP serve para informar às redes externas a um AS quais são as rotas para redes atingíveis dentro de sua rede. Falando de outra forma, o propósito do BGP-4 é anunciar rotas para outras redes externas, ou sistemas autônomos. Esses anúncios são como "promessas" de que os dados serão transportados para o espaço IP representado pela rota sendo anunciada.
Se, por exemplo, um AS anunciar uma rota para 192.168.4.0/24 (na sintaxe anterior ao CIDR, este endereço é a classe "C" que começa em 192.168.4.0 e termina em 192.168.4.255) e alguém enviar dados destinados a qualquer endereço dentro dessa faixa, esse AS está "garantindo" que sabe enviar os dados até o destino.
NEIGHBORS, PEERS, eBGP e iBGP
Sistemas (roteadores) que são "vizinhos BGP" (BGP neighbors) comunicam-se através de "sessões" estabelecidas entre eles. Os roteadores de "borda" (border routers) de ASs vizinhos são considerados peers. Esses peers são as "fronteiras políticas" dos ASs, que trocam tráfego de acordo com as regras definidas pelos ASs participantes.
São chamados neighbors os sistemas BGP (roteadores) que possuem sessões BGP estabelecidas entre eles. Então, os roteadores de borda são neighbors? Sim. Porém, quando uma importância política é a eles atribuída, a forma correta de chama-los é de peers, enquanto que os neighbors são quaisquer vizinhos BGP.
Existem outras situações em que os vizinhos BGP não são, obrigatoriamente, os roteadores entre ASs e sim roteadores do mesmo AS. Neste caso as sessões estabelecidas entre eles acontece internamente ao AS. O que permite isso é o iBGP ou internal BGP, que permite a troca de rotas no mesmo AS. De forma análoga, a troca de rotas entre ASs é feita pelo eBGP (exterior BGP). Um importante conceito do iBGP é que os neighbors não têm a obrigação de estar diretamente conectados através de uma linha serial ou via interface Ethernet, por exemplo. Os peers por outro lado não podem estar conectados de outra forma que não seja a direta, seja link serial ou interface Ethernet.
Exemplo de Peers, Neighbors, eBGP e iBGP
O algoritmo do eBGP trabalha, basicamente, anunciando todas rotas que conhece, enquanto o do iBGP faz o possível para não anunciar rotas. Assim, para fazer o iBGP funcionar adequadamente dentro de um AS é necessário estabelecer sessões BGP entre todos os roteadores que "falam" iBGP, formando uma "malha completa" (full mesh) de sessões iBGP dentro do AS.
Exemplo de Configuração "Malha Completa" de iBGP
Enlaces (links)
Sessões iBGP
ATRIBUTOS DO BGP
Atributos do BGP são um conjunto de parâmetros usados para controlar informações específicas relativas a rotas, como informação sobre o caminho (path), grau de preferência da rota, o valor do next-hop da rota e informações sobre agregação. Estes parâmetros são usados pelo algoritmo do BGP como elementos para decisão da escolha das rotas e para decisão sobre filtragem de rotas. Alguns dos atributos do BGP são:
AS_path
Next hop
Local preference
Multi-Exit Discriminator (MED)
Origin
Atomic Aggregator
Agregator
Community
Weight
CONCLUSÃO
Nesta primeira parte do artigo, foi mostrado como era a arquitetura inicial da Internet e sua evolução. Com o crescimento da rede, tornou-se necessária a criação de sistemas automatizados de configuração de rotas. Para tal, inicialmente, foi desenvolvido o EGP e, posteriormente, veio o BGP. Foram abordados, ainda que superficialmente, alguns conceitos e características do BGP-4. Na continuação deste artigo, será feita uma abordagem mais profunda do protocolo, com exemplos de configuração baseados na implementação da Cisco Systems em seus roteadores.