Rede Nacional de Ensino e Pesquisa (RNP) Introduo Histrico Exterior Gateway Protocol - EGP Border Gateway Protocol Version 4 - BGP-4 O uso do BGP-4 Neighbors, Peers, eBGP e iBGP Atributos do BGP Concluso Referncias bibliogrficas Sites relacionados Esta a primeira parte do artigo de introduo ao protocolo BGP-4. Neste primeiro momento so abordados alguns conceitos bsicos para o entendimento da atual arquitetura utilizada na Internet mundial e a participao do BGP-4. Para a devida compreenso do assunto abordado, interessante que se esteja familiarizado com conceitos bsicos de protocolos de roteamento. O artigo "Roteamento: O Que Importante Saber", publicado no RNP News Generation, No.1, Vol.1, pode servir para tal. ^ Introduo Este artigo procura apresentar uma introduo ao protocolo de roteamento Border Gateway Protocol Version 4, BGP-4, que podemos considerar, parafraseando o Dr. Douglas E. Comer, "a cola que mantm a Internet unida e permite a interconexo universal" atualmente. O BGP-4 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). Uma vez que o BGP-4 tambm est presente (em uma verso chamada BGP-4+ [RFC 2283]) no backbone Internet do futuro, o 6bone, conhecer seus mecanismos bsicos fundamental para qualquer um que esteja ou deseja estar envolvido na administrao de um AS de qualquer porte ou que precisa saber mais sobre roteamento na Internet. ^ Histrico H alguns anos, quando o principal backbone da Internet era a ARPANET, as instituies de pesquisa conectadas rede precisavam gerenciar manualmente as tabelas de rotas para todos os possveis destinos, ou seja, todas as outras redes conectadas (ver Figura 1). Com o crescimento da Internet, verificou-se que era impraticvel manter todas as tabelas atualizadas dessa forma, e que mecanismos de atualizao automtica eram necessrios. Os pesquisadores da Internet optaram, ento, por usar uma arquitetura que consistia de um reduzido e ISSN 1518-5974 Boletim bimestral sobre tecnologia de redes 12 de maro de 1999 | volume 3, nmero 2 Nesta edio: Segurana nos Roteadores IBM O Protocolo BGP4 - Parte 1 Tcnicas Adotadas pelos Crackers para Entrar em Redes Corporativas NewsGeneration: Artigos publicados Autores FAQ Assine Pgina inicial O Protocolo BGP4 - Parte 1 http://www.rnp.br/newsgen/9903/bgp4.html 1 de 8 30/05/2014 15:13 centralizado grupo de roteadores (core routers) que tinham, em suas tabelas, as rotas para todos os possveis destinos da Internet; e um outro grupo maior de roteadores que possuam em suas tabelas apenas informaes (rotas) parciais, e no para toda a Internet. Os core routers eram administrados pelo INOC (Internet Network Operations Center), e o grupo maior de roteadores externos ficou conhecido pelo termo "noncore routers" (roteadores fora do ncleo), que conectavam as redes locais das instituies de pesquisa ao backbone da ARPANET. Figura 1: Backbone da ARPANET Foi desenvolvido, ento, o protocolo GGP (Gateway-To-Gateway Protocol), que foi usado nos core routers para atualizao automtica das tabelas de rotas entre eles. O GGP era um protocolo baseado no algoritmo de vetor de distncia (Vector-Distance, tambm conhecido como Bellman-Ford). Essa arquitetura tem, tecnicamente, graves pontos fracos principalmente com relao a sua capacidade de expanso, e a Internet acabou crescendo muito, indo alm de um nico backbone gerenciado de forma centralizada. Verificou-se, portanto, no ser possvel expandir esse backbone arbitrariamente, por haver diversas limitaes tcnicas. Como o backbone de cada site pode ter uma estrutura complexa, o esquema de core routers no iria conseguir suportar conectar todas as redes diretamente. Era necessrio um novo esquema que permitisse aos noncore routers passar informaes aos core routers sobre as redes que estavam "atrs" de si, alm de oferecer autonomia de gerenciamento aos sites. At o momento, estava sendo usado o conceito de interconexo que levava em conta apenas a arquitetura do roteamento em uma internet e no contemplava as questes administrativas envolvidas. Os projetistas notaram que as interconexes de um backbone com arquitetura complexa no devem ser encaradas como vrias redes independentes conectadas a uma internet, mas como uma organizao que controla vrias redes e que garante que as informaes sobre as rotas internas so consistentes e que pode escolher um de seus roteadores para fazer a ponte de comunicao para o "mundo exterior". Entra em cena o conceito do Sistema Autnomo (Autonomous Systems - AS), no qual as redes e roteadores esto sob o controle de uma mesma entidade administrativa. Esse conceito substitui a idia das redes locais O Protocolo BGP4 - Parte 1 http://www.rnp.br/newsgen/9903/bgp4.html 2 de 8 30/05/2014 15:13 conectadas ao backbone central. Cada AS tem a liberdade de escolher o esquema e arquitetura que melhor lhe convm para descobrir, propagar, validar e verificar a consistncia das suas rotas internas e a responsabilidade de anunciar para os outros ASs as rotas para suas redes internas no visveis. A Figura 2 ilustra o conceito de Sistema Autnomo. Figura 2: Exemplo de Sistema Autnomo Para anunciar as rotas para suas redes internas entre si, os ASs precisavam concordar em usar um esquema nico, como um mesmo idioma por toda a Internet; e para permitir um algoritmo de roteamento automatizado distinguir entre um AS e outro, foi designado a cada AS, um nmero (Autonomous System Number - ASN) pela mesma autoridade central encarregada de atribuir todos os endereos identificadores das redes conectadas Internet (ver Figura 3). Figura 3: Arquitetura de Backbone Usando o Conceito de ASs ^ Exterior Gateway Protocol - EGP Dois roteadores que pertenam a ASs diferentes e trocam informaes de roteamento entre si so considerados "vizinhos externos" (exterior neighbors). Se ambos pertencerem ao mesmo AS so considerados "vizinhos internos" (interior neighbors). O protocolo de roteamento usado pelos exterior neighbors o Exterior Gateway Protocol ou simplesmente EGP [RFC 904]. ele que permite o anncio das rotas para as redes internas do AS para o ncleo (core) da Internet (ver Figura 4). Com o tempo, o EGP apresentou diversas limitaes tcnicas e potenciais problemas para ser usado na Internet. Apesar das tentativas O Protocolo BGP4 - Parte 1 http://www.rnp.br/newsgen/9903/bgp4.html 3 de 8 30/05/2014 15:13 para produzir novas verses (EGP2 e EGP3) do protocolo, os projetistas no obtiveram sucesso por haver a necessidade de muitas alteraes fundamentais na estrutura do mesmo. O EGP apresentou deficincias insustentveis, como restries em topologia, incapacidade de evitar "loops" de roteamento e pouca flexibilidade para a configurao de polticas de roteamento. Um grande desafio para os projetistas era a soluo de como transformar uma arquitetura internet para no depender de um sistema centralizado (core routers) - deixando uma topologia organizada hierarquicamente e iniciando outra, com diferente estrutura. Alm disso, tinha o desafio de como fazer uma arquitetura internet suportar uma forma de colaborao mais prxima entre certos ASs do que entre outros. Figura 4: Arquitetura da NFSNET Usando o EGP Isso levou os engenheiros do IETF a desenvolver uma soluo para esses problemas atravs de um novo, mais moderno e mais robusto protocolo de roteamento externo, como ser visto a seguir. ^ Border Gateway Protocol Version 4 - BGP-4 O BGP um protocolo de roteamento para ser usado entre mltiplos sistemas autnomos em internets baseadas no protocolo TCP/IP. O BGP-4 [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. Alm disso, o BGP-4 foi a primeira verso do BGP a suportar endereos agregados (Classless Interdomain Routing, ou simplesmente CIDR) e o conceito de supernets. 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 O Protocolo BGP4 - Parte 1 http://www.rnp.br/newsgen/9903/bgp4.html 4 de 8 30/05/2014 15:13 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-4 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. A figura abaixo representa a atual arquitetura da Internet, onde ASs comunicam-se via BGP-4. Figura 5: ASs Comunicando-se Via BGP-4 ^ O uso do BGP-4 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-4 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. Se, por exemplo, um AS anunciar uma rota para 192.168.4.0/24 (na sintaxe anterior ao CIDR, este endereo a classe "C" que comea em O Protocolo BGP4 - Parte 1 http://www.rnp.br/newsgen/9903/bgp4.html 5 de 8 30/05/2014 15:13 192.168.4.0 e termina em 192.168.4.255) e algum enviar dados destinados a qualquer endereo dentro dessa faixa, esse AS est "garantindo" que sabe enviar os dados at o destino. ^ Neighbors, Peers, eBGP e iBGP 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. Figura 6: Exemplo de Peers, Neighbors, eBGP e iBGP 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. O Protocolo BGP4 - Parte 1 http://www.rnp.br/newsgen/9903/bgp4.html 6 de 8 30/05/2014 15:13 Figura 7: Exemplo de Configurao "Malha Completa" de iBGP Estas caractersticas sero abordadas de foma mais completa posteriomente. ^ 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 Os atributos e outras caractersticas do BGP4 sero explicados em detalhes na prxima parte deste artigo. ^ Concluso Nesta primeira parte do artigo, foi mostrado como era a arquitetura inicial da Internet e sua evoluo. Com o crescimento da rede, tornou-se necessria a criao de sistemas automatizados de configurao de rotas. Para tal, inicialmente, foi desenvolvido o EGP e, posteriormente, veio o BGP. Foram abordados, ainda que superficialmente, alguns conceitos e caractersticas do BGP-4. Na continuao deste artigo, ser feita uma abordagem mais profunda do protocolo, com exemplos de configurao baseados na implementao da Cisco Systems em seus roteadores. ^ Referncias bibliogrficas Internetworking with TCP/IP - Principles, Protocols and Architecture Douglas E. Comer, 3 rd Edition, 1995, Prentice Hall O Protocolo BGP4 - Parte 1 http://www.rnp.br/newsgen/9903/bgp4.html 7 de 8 30/05/2014 15:13 Routing In The Internet Christian Huitema, 1995, Prentice Hall Internet Routing Architectures Bassam Halabi, 1997, Cisco Press RFC 1771 A Border Gateway Protocol 4 (BGP-4) ftp://ftp.isi.edu/in-notes/rfc1771.txt RFC 1772 Application of the Border Gateway Protocol in the Internet ftp://ftp.isi.edu/in-notes/rfc1772.txt RFC 1773 Experience with the BGP-4 protocol ftp://ftp.isi.edu/in-notes/rfc1773.txt RFC 1930 Guidelines for creation, selection, and registration of an Autonomous System ftp://ftp.isi.edu/in-notes/rfc1930.txt RFC 1965 Autonomous System Confederations for BGP ftp://ftp.isi.edu/in-notes/rfc1965.txt BGP Route Reflection - An alternative to full mesh IBGP ftp://ftp.isi.edu/in-notes/rfc1966.txt RFC 1997 BGP Communities Attribute ftp://ftp.isi.edu/in-notes/rfc1997.txt RFC 2270 Using a Dedicated AS for Sites Homed to a Single Provider ftp://ftp.isi.edu/in-notes/rfc2270.txt ^ Sites relacionados BGP-4 Protocol Overview http://www.FreeSoft.org/CIE/Topics/88.htm Using the Border Gateway Protocol for Interdomain Routing http://www.cisco.com/univercd/cc/td/doc/cisintwk/ics/icsbgp4.htm ^ NewsGeneration, um servio oferecido pela RNP Rede Nacional de Ensino e Pesquisa Copyright RNP, 1997 2004 O Protocolo BGP4 - Parte 1 http://www.rnp.br/newsgen/9903/bgp4.html 8 de 8 30/05/2014 15:13