Sei sulla pagina 1di 8

Border Gateway Protocol

Protocolos de roteamento O que so protocolos de roteamento? So protocolos que servem para trocar informaes de construo de uma tabela de roteamento. importante ressaltar a diferena entre protocolo de roteamento e protocolo roteado. Protocolo roteado aquele que fornece informao adequada em seu endereamento de rede para que seus pacotes sejam roteados, como o TCP/IP e o IPX. Protocolo de roteamento possui mecanismos para o compartilhamento de informaes de rotas entre os dispositivos de roteamento de uma rede, permitindo o roteamento dos pacotes de um protocolo roteado. Exemplo de protocolo de roteamento: RIP, IGRP etc. (Autonomous Systems - AS). Sistemas Autnomos so grupos de redes que compartilham uma mesma administrao e a mesma poltica de roteamento. BGP O BGP possibilita o intercmbio de informaes de roteamento entre os diversos sistemas autnomos, ou ASs (Autonomous Systems), que em conjunto, formam a Internet. Explicando de uma forma simplificada, ele permite que os dados trafeguem entre os ASs at chegar ao AS de destino, e dentro dele siga at o seu destino final (mquina). O BGP um protocolo de roteamento para ser usado entre mltiplos sistemas autnomos em internets baseadas no protocolo TCP/IP. O BGP-[RFCs 1771, 1772] tornou-se o sucessor natural do EGP, efetivamente atacando suas deficincias mais srias, ou seja, evitando "loops" de roteamento e permitindo o uso de polticas de roteamento entre ASs baseado em regras arbitrrias por eles definidas. O protocolo BGP-4 assume que o roteamento interno do AS feito atravs 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 atravs de rotas estticas. O BGP constri um grfico dos ASs, usando as informaes trocadas pelos "vizinhos BGP" (BGP neighbors), que so compostas dos nmeros identificadores dos ASs, os ASN. A conexo entre ASs forma um "caminho" ( path), e a coleo desses caminhos acaba formando uma rota composta pelos nmeros 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 informaes de roteamento de modo que ele prprio no precisa preocupar-se a respeito a correta da transmisso das informaes. Outra caracterstica do BGP atualizao das tabelas de rotas feitas de forma incremental, como nos algoritmos de estado de enlace. A atualizao completa da tabela de rotas feita somente uma vez, quando se estabelece a sesso entre os neighbors ou peers. Para o estabelecimento de uma sesso BGP entre neighbors ou peers, basicamente, os seguintes passos so executados:

estabelecida a conexo TCP entre os dois roteadores que trocam mensagens de abertura da sesso e negociam os parmetros de operao; O primeiro fluxo de dados transmitido a tabela de rotas BGP completa. Posteriores atualizaes nesta tabela so feitas, incrementalmente, medida que as mudanas ocorrerem; Como no h a atualizao completa da tabela aps a primeira, o roteador mantm a informao da verso da tabela que todos os seus peers possuem, enquanto durar a sesso entre eles. Se esta for interrompida por qualquer motivo, o processo iniciado novamente a partir do primeiro passo; Mensagens de keepalive so enviadas periodicamente para manter a sesso aberta; Mensagens de aviso so enviadas quando ocorrem erros ou outras situaes especiais; Caso uma conexo verifique um erro, uma mensagem enviada e a conexo fechada, encerrando a sesso.

O BGP usado nas situaes 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 seguiro pela Internet. Basicamente, o BGP serve para informar s redes externas a um AS quais so as rotas para redes atingveis dentro de sua rede. Falando de outra forma, o propsito do BGP anunciar rotas para outras redes externas, ou sistemas autnomos. Esses anncios so como "promessas" de que os dados sero transportados para o espao IP representado pela rota sendo anunciada. Sistemas (roteadores) que so "vizinhos BGP" (BGP neighbors) comunicam-se atravs de "sesses" estabelecidas entre eles. Os roteadores de "borda" (border routers) de ASs vizinhos so considerados peers. Esses peers so as "fronteiras polticas" dos ASs, que trocam trfego de acordo com as regras definidas pelos ASs participantes. So chamados neighbors os sistemas BGP (roteadores) que possuem sesses BGP estabelecidas entre eles. Ento, os roteadores de borda so neighbors? Sim. Porm, quando uma importncia poltica a eles atribuda, a forma correta de chama-los de peers, enquanto que os neighbors so quaisquer vizinhos BGP. Existem outras situaes em que os vizinhos BGP no so, obrigatoriamente, os roteadores entre ASs e sim roteadores do mesmo AS. Neste caso as sesses 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 anloga, a troca de rotas entre ASs feita pelo eBGP (exterior BGP). Um importante conceito do iBGP que os neighbors no tm a obrigao de estar diretamente conectados (ver Figura 6) atravs de uma linha serial ou via interface Ethernet, por exemplo. Os peers por outro lado no podem estar conectados de outra forma que no seja a direta, seja link serial ou interface Ethernet.

O algoritmo do eBGP trabalha, basicamente, anunciando todas rotas que conhece, enquanto o do iBGP faz o possvel para no anunciar rotas. Assim, para fazer o iBGP funcionar adequadamente dentro de um AS necessrio estabelecer sesses BGP entre todos os roteadores que "falam" iBGP (ver Figura 7), formando uma "malha completa" (full mesh) de sesses iBGP dentro do AS.

3. Estados de uma conexo BGP A negociao de uma sesso BGP passa por diversos estados at o momento que propriamente estabelecida e iniciada a troca de anncios de prefixos de cada vizinho BGP. Para demonstrar os estados possveis na negociao, apresentamos a Figura 2 que ilustra a mquina de estados finitos:

Figura 2: Mquina de estados finitos para sesses BGP

A seguir so apresentados a discutidos os 6 estados possveis desta mquina de estados finitos: IDLE: Este estado identifica o primeiro estgio de uma conexo BGP, onde o protocolo est aguardando por uma conexo de um peer remoto. Esta conexo deve ter sido previamente configurada pelo administrador do sistema. O prximo estado o de CONNECT e no caso da tentativa ser mal sucedida, volta ao estado IDLE. CONNECT: Nesta estado o BGP aguarda pela conexo no nvel de transporte, com destino na porta 179. Quando a conexo a este nvel estiver estabelecida, ou seja, com o recebimento da mensagem de OPEN, passa-se ao estado de OPENSENT. Se a conexo nvel de transporte no for bem sucedida, o estado vai para ACTIVE. No caso do tempo de espera ter sido ultrapassado, o estado volta para CONNECT. Em qualquer outro evento, retorna-se para IDLE. ACTIVE: O BGP tenta estabelecer comunicao com um peer inicializando uma conexo no nvel de transporte. Caso esta seja bem sucedida, passa-se ao estado OPENSENT. Se esta tentativa no for bem sucedida, pelo motivo de expirao do tempo, por exemplo, o estado passa para CONNECT. Em cada de interrupo pelo sistema ou pelo administrador, volta ao estado IDLE. Geralmente as transies entre o estado de CONNECT e ACTIVE refletem problemas com a camada de transporte TCP. OPENSENT: Neste estado o BGP aguarda pela mensagem de OPEN e faz uma checagem de seu contedo. Caso seja encontrado algum erro como nmero de AS incoerente ao esperado ou a prpria verso do BGP, envia-se uma mensagem tipo NOTIFICATION e volta ao estado de IDLE. Caso no ocorram erros na checagem, inicia-se o envio de mensagens KEEPALIVE. Em seguida, acerta-se o tempo de Hold Time, sendo optado o menor tempo entre os dois peers. Depois deste acerto, compara-se o nmero AS local e o nmero AS enviado pelo peer, com o intuito de detectar se trata-se de uma conexo iBGP (nmeros de AS iguais) ou eBGP (nmeros de AS diferentes). Em caso de desconexo a nvel de protocolo de transporte, o estado passa para ACTIVE. Para as demais situaes de erro, como expirao do Hold Time, envia-se uma mensagem de NOTIFICATION com o cdigo de erro correspondente e retorna-se ao estado de IDLE. No caso de interveno do administrador ou o prprio sistema, tambm retorna-se o estado IDLE. OPENCONFIRM: Neste estado o BGP aguarda pela mensagem de KEEPALIVE e quando esta for recebida, o estado segue para ESTABLISHED e a negociao do peer finalmente completa. Com o recebimento da mensagem de KEEPALIVE, acertado o valor negociado de Hold Time entre os peers. Se o sistema receber uma mensagem tipo NOTIFICATION, retorna-se ao estado de IDLE. O sistema tambm envia periodicamente, segundo o tempo negociado, mensagens de KEEPALIVE. No caso da ocorrncia de eventos como desconexo ou interveno do operador, retorna-se ao estado de IDLE

tambm. Por fim, na ocorrncia de eventos diferentes aos citados, envia-se uma mensagem NOTIFICATION, retornando ao estado de IDLE. ESTABLISHED: Neste estado, o BGP inicia a troca de mensagens de UPDATE ou KEEPALIVE, de acordo com o Hold Time negociado. Caso seja recebida alguma mensagem tipo NOTIFICATION, retorna-se ao estado IDLE. No recebimento de cada mensagem tipo UPDATE, aplica-se uma checagem por atributos incorretos ou em falta, atributos duplicados e caso algum erro seja detectado, envia-se uma mensagem de NOTIFICATION, retornando ao estado IDLE. Por fim, se o Hold Time expirar ou for detectada desconexo ou interveno do administrador, tambm retorna-se ao estado de IDLE. A partir da mquina de estados apresentada anteriormente, possvel saber qual o status de uma sesso BGP entre dois roteadores, podendo tambm iniciar uma investigao sobre qual problema pode estar ocorrendo em alguma sesso. O objetivo esperado que todas as sesses BGP de um roteador mantenham-se no estado ESTABLISHED, visto que somente neste estado ocorre a troca de anncios com o roteador vizinho.

Atributos do BGP Atributos do BGP so um conjunto de parmetros usados para controlar informaes especficas relativas a rotas, como informao sobre o caminho (path), grau de preferncia da rota, o valor do next-hop da rota e informaes sobre agregao. Estes parmetros so usados pelo algoritmo do BGP como elementos para deciso da escolha das rotas e para deciso sobre filtragem de rotas. Alguns dos atributos do BGP so: AS_path Next hop Local preference Multi-Exit Discriminator (MED) Origin Atomic Aggregator Agregator Community Weight

ATRIBUTO ORIGIN [TYPE CODE 1] Indica a origem do anncio de rota, ou NLRI (que indica o prefixo e a mscara de bits), com relao ao AS que o originou. Pode conter um dos valores: As indicaes "i", "e" e "?" aparecem na extremidade direita da tabela de rotas do BGP. ATRIBUTO AS_PATH [TYPE CODE 2] uma seqncia de ASNs que uma rota cruza para alcanar uma determinada rede de destino. O AS que origina uma rota acrescenta seu ASN ao anunciar uma rota sua para seus vizinhos BGP externos. Da pra frente, cada AS que receber a rota, acrescenta seu prprio ASN no incio da seqencia de ASNs e repassa a rota para outros peers seus que iro fazer o mesmo. A lista final vai representar todos os ASNs que uma

rota atravessou com o ASN do AS de origem da rota no final da seqencia, tambm conhecida como AS_Sequence. Caso um AS receba um anncio de rota que contenha seu prprio ASN na seqencia inclusa no AS_PATH, este anncio ser rejeitado e descartado, garantindo assim, que no haver loop de roteamento na tabela BGP desse AS. Caso o AS_PATH seja anunciado para um vizinho do mesmo AS, a informao contida no AS_PATH no alterada. A informao contida no AS_PATH uma das usadas no processo de seleo da melhor rota para determinado destino. Ao comparar duas rotas para um mesmo destino (considerando que os outros atributos sejam idnticos), o BGP vai preferir a que possuir o AS_PATH menor. Caso o caminho (path) seja do mesmo tamanho, o BGP vai usar outros atributos para fazer a sua escolha da melhor rota. ATRIBUTO NEXT_HOP [TYPE CODE 3] Basicamente, este atributo recebe o endereo IP da interface do prximo roteador - prximo salto ( next hop) a ser dado - para se chegar a determinado destino. No caso, para alcanar as redes de destino includas na mensagem UPDATE. Existem trs situaes diferentes que determinam o NEXT_HOP: Em sesses eBGP, onde o NEXT_HOP ser sempre o IP de um roteador de borda (peer BGP) de um AS vizinho que originou a rota. Em sesses iBGP onde a rota foi originada dentro do AS, o NEXT_HOP ser o endereo IP do vizinho que anunciou a rota originalmente. O NEXT_HOP aprendido pelo eBGP no alterado pelo iBGP, permanecendo o endereo IP do peer eBGP que originou o anncio da rota. Quando a rota anunciada em mdias de multiacesso (como Ethernet e Frame Relay), o NEXT_HOP geralmente o endereo IP da interface do roteador conectada mdia que originou a rota.

Existem, entretanto, outras regras definidas pela [RFC 1771]: Um roteador que "fala" BGP s pode anunciar como NEXT_HOP um roteador de borda de seu prprio AS caso uma interface com endereo IP de cada um faa parte de uma mesma sub-rede. O roteador pode anunciar como NEXT_HOP qualquer roteador de borda externo (AS vizinho), desde que o IP dele tenha sido aprendido de um dos seus pares (peers) BGP e que uma interface com endereo IP de ambos faam parte de uma mesma sub-rede. Ao anunciar uma rota para um vizinho do mesmo AS, o valor do NEXT_HOP associado rota no deve ser alterado. Um roteador no pode anunciar como NEXT_HOP para um vizinho (peer) o endereo IP do mesmo. Um roteador no pode anunciar como NEXT_HOP o seu prprio endereo IP.

ATRIBUTO MTRICA (MED - MULTI_EXIT_DISCRIMINATOR) [TYPE CODE 4] Este atributo tem como finalidade informar para os vizinhos BGP externos (peers) qual o melhor caminho (path) para uma determinada rota do prprio AS; influenciando-os, assim, em relao a qual caminho deve ser seguido no caso do AS possuir diversos pontos de entrada.

ATRIBUTO LOCAL_PREF [TYPE CODE 5] Este atributo serve para anunciar qual o caminho preferencial de sada (de pacotes) para uma determinada rota, destinada a uma rede externa ao AS. Como o prprio nome do atributo sugere, o LOCAL_PREF somente anunciado (repassado) entre os roteadores vizinhos BGP (iBGP)do mesmo AS e no repassado aos roteadores vizinhos externos (eBGP). Caminhos (paths) que possuem o LOCAL_PREF com maior valor so preferidos pelo BGP. O valor padro do LOCAL_PREF 100. ATRIBUTO ATOMIC_AGGREGATE [TYPE CODE 6] Este atributo usado por um roteador que, ao ter que selecionar uma rota dentre outras - recebidas de seu peer - que se sobrepem, escolhe uma, ignorando a mais especfica. Ento, ele deve incluir o atributo ATOMIC_AGGREGATE rota quando for propag-la a seus vizinhos (caso o atributo ainda no esteja presente na rota menos especfica recebida). Um roteador que receba uma rota com o atributo ATOMIC_AGGREGATE no deve remov-lo e no deve fazer nenhum NLRI da rota mais especfica quando for propagar a rota aos vizinhos BGP. Ele precisa tambm reconhecer que o caminho atual para os destinos (como especificado no campo NLRI da rota), respeitando a ausncia de loops de roteamento, pode cruzar ASs que no estejam listados no AS_PATH. Uma outra observao importante: no possvel agregar um endereo sem ter uma rota mais especfica daquele endereo na tabela de roteamento. Por exemplo: um roteador no pode gerar uma rota agregada para 160.0.0.0 sem possuir previamente uma rota de 160.0.0.0 em sua tabela de roteamento. ATRIBUTO AGGREGATOR [TYPE CODE 7] Este atributo pode ser includo em mensagens UPDATE que sejam formadas por agregao. O atributo AGGREGATOR contm o ASN do ltimo roteador que formou uma rota agregada, seguido de seu prprio ASN e endereo IP. ATRIBUTO COMMUNITY [TYPE CODE 8] Este atributo usado para representar um agrupamento de destinos que compartilhem uma ou mais caractersticas, no sendo estas restritas a um mesmo AS, rede ou conjunto de redes. As delimitaes do agrupamento so polticas, podendo envolver mais de um AS, inclusive. As comunidades (communities) podem ser compostas de diversas redes pertencentes a qualquer AS, usadas para simplificar polticas de roteamento identificando rotas por algum parmetro lgico ao invs de prefixos CIDR ou ASNs. Usando esses atributos, um roteador pode combin-los com outros para determinar, para cada comunidade, quais rotas devem ser aceitas, descartadas, preferidas ou repassadas para outros vizinhos. O valor deste atributo pode estar entre 0 (zero) e 4.294.967.200 e consiste de conjuntos de valores de 4 bytes. "ATRIBUTO" WEIGHT Definido pela Cisco Systems, o WEIGHT no propriamente um atributo BGP. Ele influencia no processo de seleo da melhor rota do roteador onde for definido e, como um atributo local ao roteador, no repassado e nem propagado aos seus vizinhos nas mensagens UPDATE. O WEIGHT um valor decimal entre 0 e 65535, sendo o valor padro igual a 32768, assumido para rotas originadas pelo roteador. Outras rotas possuem o WEIGHT igual a 0 (zero), por padro. Havendo mais de uma possvel rota para um mesmo destino, o BGP-4 seleciona a que possuir o atributo WEIGHT com maior valor. Este atributo comumente usado pelos operadores de redes para influenciar o processo de escolha de rotas do BGP.

O MED anunciado somente entre ASs. Porm, s o AS de origem pode fazer anncios com valores neste atributo, enquanto um AS vizinho que receba o atributo via mensagem UPDATE no pode repassar o valor deste atributo a outros ASs, fazendo uso dos mesmos apenas para tomadas de deciso internas ao AS. Quando repassado o anncio da rota a um terceiro AS, por exemplo, o atributo MED recebe o valor 0 (zero). O BGP seleciona a rota que possuir o atributo MED com menor valor. Havendo contato com mais de um vizinho BGP pertecentes a um mesmo AS que faam anncios com mtrica, o roteador (do AS vizinho) que receber os UPDATEs vai comparar as mtricas para os caminhos oferecidos por estes roteadores, se ele no for configurado para o contrrio. Para um roteador comparar mtricas anunciadas por vizinhos BGP de ASs diferentes, necessrio usar um comando especial de configurao no roteador.

Potrebbero piacerti anche