25
1. Introdução Roteamento é o mecanismo através do qual duas máquinas em comunicação “acham” e usam um caminho ótimo (o melhor) através de uma rede. O processo envolve: Determinar que caminhos estão disponíveis; Selecionar o “melhor” caminho para uma finalidade particular; Usar o caminho para chegar aos outros sistemas; Ajustar o formato dos dados (datagramas) às tecnologias de transporte disponíveis (MTU, MSS, etc.). ! Na arquitetura TCP/IP, o roteamento é baseado no endereçamento IP, particularmente, na parte de identificação de rede de um endereço IP. Toda a tarefa é desenvolvida na camada Inter-rede da pilha de protocolos TCP/IP. A ARPANET foi a rede que iniciou o backbone da Internet. Nessa época cada participante administrava suas tabelas de roteamento e suas atualizações eram feitas manualmente. Dessa forma, a topologia da Internet em seus primórdios poderia ser descrita como um conjunto de roteadores básicos, conhecidos também por core routers ou também por roteadores de borda. Estes roteadores eram controlados pelo INOC (Internet Network Operations Center). Adicionalmente, existia também um conjunto de roteadores, conhecidos como secundários que eram administrados por grupos isolados e eram conectados aos core routers, fornecendo acesso às redes locais de cada instituição. Em seguida, surgiu a NFSNET que inicialmente estabeleceu um único ponto de conexão com a ARPANET, posteriormente aumentando o número dessas conexões. Essa situação aumentou a complexidade do roteamento global, impossibilitando a forma manual de atualização das tabelas de rotas. Por esse motivo o esquema de divisão por hierarquias foi sendo substituído pelo modelo distribuído que é o modelo utilizado até os dias de hoje. Assim sendo, o roteamento não fica mais centralizado em alguns roteadores, como nos roteadores básicos da NFSNET, mas cada roteador é

Redes Roteamento

Embed Size (px)

DESCRIPTION

Ensinando tudo sobre roteadores

Citation preview

2

1.Introduo Roteamento o mecanismo atravs do qual duas mquinas em comunicao acham e usam um caminho timo (o melhor) atravs de uma rede. O processo envolve:

Determinar que caminhos esto disponveis;

Selecionar o melhor caminho para uma finalidade particular;

Usar o caminho para chegar aos outros sistemas;

Ajustar o formato dos dados (datagramas) s tecnologias de

transporte disponveis (MTU, MSS, etc.).

! Na arquitetura TCP/IP, o roteamento baseado no endereamento IP, particularmente, na parte de identificao de rede de um endereo IP. Toda a tarefa desenvolvida na camada Inter-rede da pilha de protocolos TCP/IP.

A ARPANET foi a rede que iniciou o backbone da Internet. Nessa poca cada participante administrava suas tabelas de roteamento e suas atualizaes eram feitas manualmente. Dessa forma, a topologia da Internet em seus primrdios poderia ser descrita como um conjunto de roteadores bsicos, conhecidos tambm por core routers ou tambm por roteadores de borda. Estes roteadores eram controlados pelo INOC (Internet Network Operations Center). Adicionalmente, existia tambm um conjunto de roteadores, conhecidos como secundrios que eram administrados por grupos isolados e eram conectados aos core routers, fornecendo acesso s redes locais de cada instituio. Em seguida, surgiu a NFSNET que inicialmente estabeleceu um nico ponto de conexo com a ARPANET, posteriormente aumentando o nmero dessas conexes.

Essa situao aumentou a complexidade do roteamento global, impossibilitando a forma manual de atualizao das tabelas de rotas. Por esse motivo o esquema de diviso por hierarquias foi sendo substitudo pelo modelo distribudo que o modelo utilizado at os dias de hoje. Assim sendo, o roteamento no fica mais centralizado em alguns roteadores, como nos roteadores bsicos da NFSNET, mas cada roteador responsvel pelas suas redes e pela comunicao com os demais roteadores da Internet.

Para acompanhar tais mudanas, foi criado o conceito de sistema autnomo (Autonomous System, ou simplesmente AS), que faz com que as redes e roteadores que esto sob uma mesma poltica sejam administradas pela prpria entidade que os possui. Assim, o que ocorre internamente a um AS no ser conhecido por outros sistemas autnomos, diminuindo a complexidade da Internet global. Para a comunicao com o mundo externo, ou seja, com os demais sistemas autnomos, deve ser utilizado pelo menos um dos roteadores do AS para trocar informaes com os demais ASs e garantir a alcanabilidade entre suas redes. Para cada AS atribudo um AS number, que uma identificao nica que o identifica para os demais sistemas autnomos. Dessa forma, a Internet global deixou de ser vista como um grande grupo de redes locais interligadas, mas agora como um conjunto de Sistemas Autnomos que trocam anncios de rotas para suas redes entre si. Um exemplo prtico de Sistema Autnomo seria a rede da UFRGS. Uma analogia a sistemas autnomos seria imaginar que a Internet hoje formada por um conjunto de "nuvens", interligados entre si, garantindo que sempre exista algum caminho para qualquer ponto da Internet.

Diante de tais inovaes e a distribuio desta nova arquitetura, surgiu a necessidade de protocolos de roteamento capazes de manter a consistncia e as informaes entre os sistemas autnomos da Internet, incluindo tambm suas redes internas. Assim surgiram diversos protocolos de roteamento com o intuito de atender a estas necessidades e funcionalidades.

Os protocolos de roteamento dividem-se em dois grupos, explicados a seguir:

EGP (Exterior Gateway Protocol): Grupo de protocolos utilizados para a comunicao inter AS, ou seja, usado para a comunicao entre roteadores que se encontram em diferentes sistemas autnomos. Os protocolos deste tipo garantem que todos os sistemas autnomos pela Internet mantenham informaes consistentes para garantir o funcionamento do roteamento global. Exemplo de protocolo deste grupo seria o BGP.

IGP (Interior Gateway Protocol): Grupo de protocolos utilizados na comunicao intra AS, ou seja, usados para comunicao entre roteadores em um mesmo sistema autnomo. Hoje este grupo representado por vrios protocolos, como RIP, OSPF, IGRP, entre outros.

Atravs da Figura abaixo so apresentados exemplos de utilizao dos dois grupos de protocolos. Entre o AS 1 e AS 2 utilizado o grupo de protocolos EGP, utilizando o grupo IGP para propagao das rotas aos demais roteadores de cada sistema autnomo.Exemplos de utilizao de protocolos IGP e EGP em sistemas autnomos.

O processo de configurao do roteamento interno a um AS pode ser feito de duas formas. A primeira delas esttica, ou seja, baseada na configurao manual de rotas j que em geral no existe mais que um caminho para chegar a determinada rede ou roteador do AS. A desvantagem desta forma de configurao que, na ocorrncia de alguma mudana na rede ou falha em alguma das conexes, o administrador deve fazer todas as alteraes necessrias para restabelecimento da comunicao manualmente. Tambm se torna bvio que a confiabilidade e o tempo de resposta a problemas podem no ser satisfatrios. J a forma dinmica, baseia-se na utilizao de protocolos de roteamento que automatizam tal tarefa, ou seja, que fazem o anncio de rotas e deteco do melhor caminho de forma automtica, sem a interveno do administrador da rede. Caso a deciso seja de utilizar um protocolo dinmico em um AS, dever ser utilizado um protocolo tipo IGP para tal tarefa. J para a configurao externa de um AS dever obrigatoriamente ser utilizado um protocolo tipo EGP, visto que no existe outra forma de propagao das redes pertencentes a ele.

Os protocolos dinmicos podem implementar diversos algoritmos de roteamento. Os algoritmos principais so apresentados abaixo:

a) Vetor distncia: Tambm definido como algoritmo de Bellman-Ford, este algoritmo trabalha baseado na idia que cada roteador propaga periodicamente uma tabela com todas as redes conhecidas e a distncia para alcan-las. Geralmente, a distncia calculada pelo nmero de next hops necessrios para alcanar uma determinada rede. O termo HOP caracteriza-se pela passagem entre um roteador e outro. Esse termo poderia ser equivalente a palavra salto. Sendo assim, cada roteador, ao receber os anncios de todos os demais, calcula o caminho timo baseado no menor nmero de HOPs para chegar a determinada rede. Vale lembrar tambm, que cada roteador ao receber as informaes de outras redes incrementa o nmero de HOPs e anuncia as rotas divulgadas para os demais roteadores.

b) Estado de enlace: Tambm definido como algoritmo Link State, este algoritmo trabalha baseado na idia de que cada roteador possui informaes sobre as redes que esto conectadas a ele e, periodicamente, testa para determinar se cada enlace est ativo. Com estas informaes cada roteador divulga uma lista sobre o status de cada conexo, dizendo se estas esto ativas ou inativas. Baseado nessas informaes, quando um roteador recebe um conjunto de mensagens sobre o estado dos enlaces das redes prximas a ele, aplicado o algoritmo SPF de Dijskstra. Este algoritmo aplicado baseado nas informaes de cada roteador e feito localmente a cada um destes, para o clculo das melhores rotas para todos os destinos a partir de uma mesma origem. Em termos de expanso, este algoritmo tem vantagem sobre o Vetor Distncia, pois o clculo do melhor caminho feito localmente e no depende do clculo de roteadores intermedirios. Outra vantagem que devido a suas caractersticas, este algoritmo converge mais rapidamente devido a utilizao de flooding para divulgao do estado de seus enlaces, ou seja, divulga de forma mais eficaz os melhores caminhos para suas redes a todos os roteadores conectados.

3.Introduo BGPO BGP um protocolo de roteamento dinmico utilizado para comunicao entre sistemas autnomos (ASs). Baseados nestas informaes, os sistemas autnomos conseguem trocar informaes e determinar o melhor caminho para as redes que formam a Internet. Tal papel muito importante sabendo que a todo momento as redes podem sofrer alteraes, podem ocorrer quedas de suas conexes, receber anncios invlidos, aplicar polticas, manter a conectividade por outros caminhos, adaptando-se rapidamente e mantendo a consistncia de seus anncios de forma eficiente.

O BGP foi projetado para evitar loops de roteamento em topologias arbitrarias, o mais serio problema de seu antecessor, o EGP (Exterior Gateway Protocol). Outro problema que o EGP no resolve - e abordado pelo BGP - o do Roteamento Baseado em Poltica (policy-based routing), um roteamento com base em um conjunto de regras no-tcnicas, definidas pelos Sistemas Autnomos.

A divulgao das informaes de roteamento BGP feita entre roteadores que estabelecem uma relao de vizinhana, sempre na forma de pares. Tendo essa relao, so trocadas as informaes contidas nas tabelas de roteamento BGP de cada um destes. Para estabelecer uma relao de vizinhana necessrio que dois roteadores tenham uma conexo direta entre eles, ou que algum protocolo IGP trate de garantir a alcanabilidade. Essa relao de vizinhana pode definir aos roteadores uma relao de speakers ou peers.

Tratando-se de um protocolo importante que requer confiabilidade em sua comunicao para garantir a alcanabilidade entre todas as redes da Internet, necessrio que seja utilizada uma forma confivel de troca de informaes deste protocolo. Isso obtido pela utilizao do protocolo TCP entre dois roteadores que trocam informaes do protocolo BGP. A porta utilizada para a comunicao 179.

Para diferir e identificar univocamente cada sistema autnomo, cada AS possui um nmero que o identifica mediante os demais ASs da Internet. Este nmero varia entre 1 e 65535, sendo que a faixa entre 64512 e 65535 destinada a uso privado.

A ultima verso do BGP, o BGP4, foi projetado para suportar os problemas causados pelo grande crescimento da Internet.

3.1Algoritmo BGPO algoritmo que sustenta o BGP definido como PATH VECTOR, assemelhando-se ao algoritmo de vetor distncia, pois a partir de informaes recebidas de outros sistemas autnomos formado um vetor que armazena os ASs que formam um caminho para se chegar a determinada rede. Uma vez que os roteadores divulguem tal informao, possvel calcular o menor caminho para determinada rede. Nem sempre esse menor caminho o escolhido, pois o BGP utiliza tambm diversos outros parmetros para determinao do melhor caminho para determinada rede, que sero estudados a seguir.

Por tratar-se de tabelas de rotas de toda a Internet e a dinamicidade em que as alteraes ocorrem, constantemente so trocadas mensagens de atualizaes da tabela de roteamento. Para se ter uma idia, a tabela de roteamento BGP completa da Internet no incio do ano de 2002 possua aproximadamente 107.000 rotas. J o nmero em Novembro de 2002 de 116.000 rotas. A atualizao de tabelas de rotas entre roteadores vizinhos no ocorre em intervalos de tempo pr-definidos, mas sim quando a tabela BGP sobre alguma mudana. Isso torna a divulgao mais leve, visto que ao nvel do BGP o nmero total de rotas da Internet muito grande e o anncio de todas as rotas seria invivel. Esta forma de anncio pode ser definida como incremental, ou seja, sendo enviadas apenas as atualizaes. Este modo de atualizaes incremental diminui consideravelmente o overhead e a banda utilizada para anncios.

Para comunicao entre roteadores BGP existem alguns tipos de mensagens onde cada um deles tem um papel importante na comunicao BGP.

Mensagens tipo OPEN so utilizadas para o estabelecimento de uma conexo BGP;

Mensagens tipo NOTIFICATION reportam erros e serve para representar possveis problemas nas conexes BGP.

Mensagens tipo UPDATE so utilizadas para os anncios propriamente ditos, incluindo rotas que devem ser includas na tabela e tambm rotas que devem ser removidos da tabela BGP.

Mensagens tipo KEEPALIVE so utilizadas para manter a conexo entre roteadores BGP caso no existam atualizaes atravs de mensagens UPDATE.

Uma expresso utilizada para definir rotas que devem ser removidas da tabela BGP withdrawn, que devido a dinamicidade da Internet ocorrem com muita freqncia.

Outra questo importante em roteadores BGP a questo do chamado Full Routing. Este termo usado em roteadores que recebem todos os anncios de rotas da Internet. Esta caracterstica desejvel em core routers que possuam mltiplos pontos de interconexo com outros backbones. Nesses casos com a tabela de rotas completa ser possvel explorar e descobrir melhores rotas para uma determinada rede. Como efeito colateral, este recurso exige que os roteadores tenham bons recursos de CPU e memria.

Na maioria dos casos o recurso de full routing no utilizado, pois os roteadores possuem geralmente apenas um ou dois pontos de interconexo com outros backbones, no permitindo nenhuma melhora significativa no roteamento caso fosse usado full routing. A tabela de roteamento BGP possui um nmero que identifica sua verso, sendo incrementado cada vez que esta sofrer alguma modificao. Um exemplo de verso de tabela pode ser visto na Figura 1.BGP table version is 1660291, local router ID is 200.10.20.30Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete

Network

Next Hop

Metric

LocPrf

Weight

Path

*>i12.0.48.0/20

198.32.252.254

100

0

11537 10578 1742 i

*>i12.6.208.0/20

198.32.252.254

100

0

11537 10578 1742 i

*>i12.6.252.0/24

198.32.252.254

100

0

11537 10578 14325 ?

*>i12.16.126.192/26

198.32.252.254

100

0

11537 10578 14325 ?

*>i12.144.59.0/24

198.32.252.254

100

0

11537 10466 13778 i

......

Figura 1: Exemplo de tabela de roteamento BGP e seus atributos

No tpico Mensagens do protocolo estes tipos de mensagens sero detalhados e estudados mais profundamente.3.2Estados de uma conexo BGPA 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.

3.3Funcionamento do algoritmo de decisoO processo de deciso do BGP baseia-se nos valores dos atributos de cada anncio. Para reforar a importncia do algoritmo de deciso, em sistemas autnomos multihomed - conexo com mais de um AS, tendo mais de um caminho de sada para a Internet - normal a ocorrncia de mltiplas rotas para a mesma rede e nestes casos o algoritmo de deciso do BGP que toma a deciso da melhor rota a ser utilizada. Para esse clculo, so apresentados os 9 critrios de deciso, apresentados por ordem de precedncia:

Se o next hop no for alcanvel, a rota ignorada;

Ser preferida a rota que tiver maior valor de Weight, que se trata de um parmetro proprietrio da Cisco, utilizado localmente em um roteador. Caso o equipamento no seja Cisco, este passo do algoritmo no ser efetuado;

Caso o parmetro anterior seja o mesmo, ser preferida a rota que tiver o maior valor de Local Preference (LOCAL_PREF);

Caso o valor de Local Preference seja o mesmo, ser preferida a rota com menor AS_PATH.

Caso o AS_PATH tenha o mesmo tamanho, ser preferida a rota com menor tipo ORIGIN, ou seja, sero priorizados os anncios tipo IGP (i), seguido pelos EGP (e) e INCOMPLETE (?).

Caso o tipo ORIGIN seja o mesmo, ser preferida a rota o atributo MED mais baixo caso as rotas tenham sido aprendidas a partir do mesmo AS.

Caso as rotas tenham o mesmo valor de MED, ser preferida a rota por eBGP a iBGP.

Se o valor de MED for o mesmo, ser preferido o anncio vindo do roteador conectado via IGP mais prximo deste.

Se o caminho interno for o mesmo, o atributo BGP ROUTER_ID ser o responsvel pela deciso (tiebreaker). Neste caso, ser preferido o caminho cujo roteador possuir o menor ROUTER_ID, que nas implementaes Cisco definido como IP da interface loopback se esta estiver configurada. No caso do roteador no possuir interface loopback configurada, ser escolhido o IP mais alto do roteador. Vale lembrar que para cada fabricante o ROUTER_ID pode ser baseado em outras informaes.

Dessa forma, os anncios so includos na tabela BGP e baseado nestes critrios, escolhido o melhor caminho. Este melhor caminho, por sua vez, ser incluindo na forwarding table, que utilizada de fato par o encaminhamento de pacotes pelo roteador.3.4Utilizao de polticasO protocolo tambm fornece diversos mecanismos para utilizao de polticas de roteamento. Muitas das polticas aplicadas so relacionadas ao ato de troca de trfego que tem relao direta com seus anncios. O fato de um sistema autnomo ser trnsito define-se por este AS anunciar-se como caminho no somente para suas redes, mas para todas as demais que ele conhece. Outros que no desejam fornecer trnsito apenas anunciam suas prprias redes. Tambm podem existir casos que o AS anuncia suas rotas recebidas a apenas um conjunto restrito de ASs. Esta troca de trfego chamada de peering e feita geralmente mediante acordos entre ASs, como o caso dos NAPs ou PTTs ou em conexes particulares entre ASs. Para esclarecer melhor o assunto, apresentamos a Figura 3 que ilustra a situao de uma instituio X que compra acesso de dois provedores de acesso IP.

Ambos provedores, Embratel e BrasilTelecom, entre tantos outros que poderiam ser citados, possuem seu prprio AS. Com clientes que so multihomed, como o caso a instituio X, que caracteriza-se por ter conectividade com mais um provedor de upstream, o protocolo BGP o mais aconselhvel j que prov formas de aplicao de polticas de anncios e formas eficientes de balanceamento de carga.Figura 3: Exemplo de situao de trnsito BGP com clientes multihomed.

Nesta situao a instituio X pretende utilizar tais conexes para acesso a redes da Internet e no para ser o elo de ligao entre a Embratel e BrasilTelecom (servir de trnsito). Para evitar que o AS 1945 se torne trnsito, a poltica que ser aplicada ser que todos os anncios recebidos de um provedor nunca sero repassados ao outro provedor, ou seja, todos anncios de redes da Embratel no sero divulgados a BrasilTelecom e vice-versa. Isso garantir que ambas conexes sejam utilizadas para trfego provenientes ou destinados apenas s redes do AS 1945 da instituio X. Essa postura de no servir como trnsito um tanto bvia j que o acesso a provedores como Embratel e BrasilTelecom pago e por isso no faz sentido que algum pague para servir de trnsito para outros backbones. Problemas como este j foram registrados nas operaes com instituies conectadas ao POP-RS e a backbones comerciais.

O ato de servir de trnsito, se pelo lado dos clientes evitado, pelos provedores de upstream como os citados so praticamente uma lei, pois estes devem propagar os anncios de seus clientes para garantir que tais redes sejam alcanveis por toda a Internet.

Em PTTs existem algumas restries e pontos importantes sobre este tpico que sero explicados e aprofundados nos prximos captulos.

Outro recurso importante o Route Dampening, ou seja, uma espcie de punio que determinado AS pode levar caso seus anncios sofram instabilidades na tabela de roteamento (FLAPs) constantes. Isso faz com que determinado AS no seja ouvido pelos demais ASs por um tempo determinado, mantendo a estabilidade at que aquele anncio estabilize. Isso evita que isso seja propagado por toda a Internet, consumindo banda e CPU de milhares de roteadores na incluso/excluso em suas tabelas de rotas BGP. Alguns backbones implementam tal funcionalidade, estabelecendo seus tempos de punio.

Outros recursos de polticas podem ser aplicados de acordo com a necessidade de administrador do AS, podendo filtrar tipos determinados de anncios, baseado em algum parmetro do protocolo BGP, aceitando ou filtrando tais anncios. Esses procedimentos so muito utilizados e merecem cuidado ao manipula-los.

A utilizao de polticas em um sistema autnomo uma das tarefas mais importantes de um administrador, visto que sua configurao pode refletir em uma melhora no acesso a outras redes, at efeitos negativos, como problemas de alcanabilidade para outras redes, ou involuntariamente servir de trnsito para outros sistemas autnomos.3.5Mensagens do protocoloO BGP possui basicamente 4 tipos de mensagens. Nestas mensagens existe um header que comum a todos eles, apresentado na Figura 4 explicado a seguir:

As mensagens trocadas em sesses BGP tm o comprimento mximo de 4.096 bytes, e mnimo de 19 bytes. Todas as mensagens so compostas de, no mnimo, um cabealho e, opcionalmente, uma parte de dados. O formato do cabealho das mensagens BGP :

Figura 4 - Formato do Cabealho das Mensagens BGP.

Pode haver, ou no, uma seqncia dados aps o cabealho.Seus campos so:

- Campo Marcador (Marker)

Serve para verificar a autenticidade da mensagem recebida e se houve perda de sincronizao entre os roteadores vizinhos BGP. Pode ter dois formatos: caso a mensagem seja do tipo OPEN (abrir), ou se a mensagem tipo OPEN no possuir informao de autenticao, o campo deve estar todo preenchido com nmeros um (1); seno, o campo marker ter o seu contedo baseado em parte do mecanismo de autenticao usado.

- Campo Comprimento (Lenght)

Deve conter um nmero que representa o comprimento total da mensagem, incluindo o cabealho. Como pode haver mensagens que no possuem dados aps o cabealho, a menor mensagem BGP enviada de 19 bytes (16 + 2 + 1 bytes).

- Campo Tipo (Type)

Deve conter um nmero que representa o cdigo de um tipo de mensagem (KEEPALIVE, NOTIFICATION, OPEN e UPDATE).3.5.1 Mensagens do protocolo : Mensagem tipo OPENA mensagem do tipo OPEN enviada para se iniciar a abertura de uma sesso BGP entre neighbors ou peers BGP. O formato desta mensagem pode ser visto na figura abaixo:

Figura 5 - Formato da Mensagem OPEN.Seus campos so:- Verso (Version) - caractersticas: [1 byte, inteiro, positivo].

Identifica a verso do BGP (3 ou 4). Este um dos parmetros negociados pelos roteadores que, normalmente, tentam entrar em acordo para usar a maior verso suportada. No havendo possibilidade de consenso (ex.: um dos roteadores no suporta o BGP4), eles tentam usar verses anteriores, at que coincidam. Nos roteadores Cisco, h como configurar a verso a ser usada pelos roteadores (se previamente se sabe qual verso ambos suportam), eliminando esta fase de negociao do processo de abertura da sesso BGP, implicando numa conseqente economia de tempo.

- Nmero do AS (AS Number) - caractersticas: [2 bytes, inteiro, positivo].

Deve conter o nmero do AS a qual o roteador (remetente da mensagem tipo OPEN) pertence.- Tempo de espera (Hold Time) - caractersticas: [2 bytes, inteiro, positivo].

Deve conter o valor, em segundos, do maior tempo de espera (hold time) permitido entre mensagens do tipo UPDATE ou KEEPALIVE. O BGP mantm um contador do hold time, que reiniciado (zerado) a cada vez que uma mensagem do tipo KEEPALIVE ou UPDATE recebida. Caso nenhuma das duas seja recebida no prazo mximo, o BGP considera que a comunicao com o outro roteador foi perdida e a sesso encerrada, tendo que ser reiniciada novamente. Os roteadores tentam usar o menor hold time entre os dois. Caso o valor seja estabelecido como zero, a sesso ser considerada como sempre "viva" (ativa) e mensagens de KEEPALIVE no sero transmitidas, pois os contadores do hold time e do KEEPALIVE no sero zerados nunca. O valor mnimo recomendado para este parmetro de trs segundos.- Comprimento dos Parmetros Opcionais (Optional Parameters Lenght) - caractersticas: [1 byte, inteiro, positivo].

Indica o comprimento total do campo de Parmetros Opcionais (Optional Parameters). No caso de ausncia de parmetros opcionais, este campo ser preenchido com zero.- Parmetros Opcionais (Optional Parameters) - caractersticas: [comprimento varivel].

Pode conter vrios parmetros opcionais para a negociao de abertura de uma sesso BGP. Este campo deve ser preenchido com conjuntos formados por 3 valores: [Tipo do parmetro (1 byte), Comprimento do Parmetro (1 byte), Valor do parmetro (comprimento varivel) ]. Um exemplo de parmetro o de informao de autenticao (tipo 1), usado para autenticar a sesso com o vizinho BGP.3.5.2 Mensagens do protocolo : Mensagem tipo NOTIFICATIONEste tipo de mensagem enviada no caso de deteco de erros durante ou aps o estabelecimento de uma sesso BGP. O formato da mensagem NOTIFICATION :

Figura 6 - Formato da Mensagem Tipo NOTIFICATION.Seus campos so:- Campo Erro (Error) Deve conter o tipo da notificao- Campo Sub Cdigo de Erro (Error subcode)

Deve conter um valor que fornece maiores informaes sobre o erro.- Campo de Dados (Data)

Pode conter dados referentes ao erro, como por exemplo, um cabealho mal formado (invlido), um nmero de AS invlido, etc. Os trs tipos de erros principais so: erro de cabealho, erro de OPEN e erro de UPDATE.3.5.3 Mensagens do protocolo : Mensagem tipo KEEPALIVESo mensagens trocadas periodicamente com o propsito de verificar se a comunicao entre os vizinhos est ativa. A mensagem do tipo KEEPALIVE composta apenas do cabealho padro das mensagens BGP, sem dados transmitidos aps o cabealho. O tempo mximo permitido para o recebimento de mensagens KEEPALIVE ou UPDATE definido pelo hold time, como foi visto na descrio do tipo de mensagem OPEN.

Para manter aberta a sesso, a mensagem de KEEPALIVE deve ser enviada antes que o prazo definido no hold time expire; caso contrrio a sesso ser encerrada. A recomendao que a mensagem seja enviada em at 1/3 do tempo definido no hold time. Se o seu valor for igual a zero, ento as mensagens do tipo KEEPALIVE no sero enviadas.3.5.4 Mensagens do protocolo : Mensagem tipo UPDATEAs mensagens UPDATE, trocadas entre os peers ou vizinhos BGP, so de extrema importncia, pois so elas que levam as informaes para a atualizao da tabela de rotas mantida pelo BGP.

A estrutura bsica das mensagens do tipo UPDATE composta de 3 itens: Rotas Inalcanveis (Unreachable Routes); Atributos de Caminhos (PATH Attributes);

Informao de alcance da camada de rede - (NLRI - Network Layer Reachability Information);

O formato da mensagem do tipo UPDATE pode ser visto na figura abaixo:

Figura 7 - O Formato da Mensagem UPDATE.Seus campos so:- Comprimento das Rotas Removidas ou Inalcanveis (Unfeasible Routes Length) - caractersticas: [2 bytes, inteiro, positivo].

Neste campo, indicado o comprimento total, em bytes, do total de rotas removidas (Withdrawn Routes).

- Rotas Removidas (Withdrawn Routes) - caractersticas [comprimento varivel].

Este campo inclui uma lista de prefixos de endereos para rotas que devem ser removidas da tabela de rotas BGP. composto por endereos IP mais o comprimento do nmero de bits contados a partir da esquerda no endereo IP, como mostrado na figura abaixo:

Figura 8 - O formato do Campo de Withrawn Routes.Esses subcampos so: Prefixo - (Prefix) - caractersticas [comprimento varivel]Contm prefixos de endereos IP seguidos de bits suficientes para fazer o final deste campo terminar "arredondado" em bytes completos. O valor dos bits complementares no possui importncia. Comprimento (Lenght) - caractersticas [1 byte, inteiro, positivo]Deve indicar o comprimento total, em bits, do total de rotas removidas. Um comprimento igual a 0 (zero), indica que, nesta mensagem UPDATE, no h rotas a serem removidas.- Comprimento Total do Atributo PATH (Total Path Attribute Length) - caractersticas [2 bytes, inteiro, positivo]

Deve indicar o comprimento total, em bits, do campo Atributos PATH. O valor contido neste campo deve permitir a determinao do comprimento do campo NLRI. Se o valor deste campo for 0 (zero), significa que no h informao NLRI presente na mensagem UPDATE.- Atributos do PATH (PATH Attributes) - caractersticas [comprimento varivel]

So um conjunto de parmetros associados a uma determinada rota que influenciam no processo de deciso, feito pelo BGP, para escolha da melhor rota.- Informaes NLRI (NLRI Information) - caractersticas [comprimento varivel]

So prefixos de endereos IP de informaes no formato igual ao do campo de rotas removidas (Withdrawn Routes). Este campo preenchido por vrias entradas:

Figura 9 - O Formato das Informaes NLRI.Um exemplo de entrada seria: , que indica uma rota para 192.213.134.0 255.255.192.0 (ou 192.213.134.0/18, na notao CIDR).3.5.6Utilizao de BGP em sistemas autnomosO protocolo BGP utilizado para propagar rotas entre sistemas autnomos. Esse seu principal propsito, mas diante de grandes sistemas autnomos, os IGPs nem sempre conseguem sustentar o roteamento interno e seu crescimento. Nessas situaes, o BGP tambm pode ser usado dentro de um mesmo AS. Supondo que determinado AS tenha apenas um de seus roteadores com sesses BGP com outros ASs, outros roteadores deste mesmo sistema autnomo podem receber os anncios do roteador de borda via BGP e no exclusivamente por algum protocolo tipo IGP. Nesses casos existe o iBGP, que se trata de uma extenso do protocolo BGP para ser utilizado entre roteadores de um mesmo AS. Como justificativa para o surgimento do iBGP, pode-se dizer que os protocolos tipo IGP no so escalonveis a ponto de fazerem a comunicao entre roteadores em grandes backbones de forma satisfatria. Por isso, utiliza-se iBGP por permitir uma escalabilidade mais poderosa e tambm pelas funcionalidades que o protocolo fornece muito superiores aos do tipo IGP. Um exemplo de utilizao de iBGP e eBGP mostrado na Figura 11.Figura 11: Exemplo de uso de eBGP e iBGP.

De acordo com a figura, o roteador A o border router e responsvel pela comunicao com o mundo externo, que no caso feita com o AS 2. O roteador A mantm com B e C uma sesso iBGP. Os roteadores B e C poderiam trocar informaes via IGP com A, utilizando OSPF por exemplo, mas em grandes backbones isso no seria escalonvel. Por isso, utilizado iBGP para esta comunicao. Isso fica mais evidente em backbones a nvel nacional, como o caso da RNP que utiliza iBGP em seu AS em conjunto com OSPF.

3.6 O Futuro do BGPA fim de acompanhar o crescimento da Internet e para atender s novas tecnologias como Multicast e o surgimento do Ipv6, foram propostas tambm funcionalidades adicionais ao protocolo BGP. Segundo [CIS00] essas funcionalidades formam o MBGP (Multiprotocol BGP), que surge com o intuito de permitir a troca de informaes de roteamento por mltiplos protocolos em nvel de rede. Tais protocolos so identificados por uma famlia de endereo (Address Family), como definido na RFC 1700. Algumas famlias de endereos que poderiam ser citadas seriam: IPv4, IPv6, IPX. Tambm o MBGP permite sub-famlias, a citar unicast e multicast por exemplo.

Outro recurso que provavelmente no futuro ser mais utilizado ser a assinatura das mensagens de sesses BGP, pois tem sido registrados alguns casos de ataques de hackers a roteadores, enviando pacotes falsificados, tentando incluir anncios a roteadores com BGP. Neste caso, a utilizao do mtodo de assinatura TCP MD5 j est prevista, segundo a RFC 2385, utilizando para tanto o campo MARKER do header do pacote BGP.Software ZebraO software Zebra uma implementao freeware destinada a sistemas operacionais Unix como FreeBSD, Linux, NetBSD e OpenBSD. Suporta diversos protocolos de roteamento como RIP, OSPF, BGP e alguns destes para IP verso 6 tambm como RIP6 e OSPF6. No caso do BGP o protocolo verso 6 tambm suportado, mas isso feito pelo mesmo daemon que suporta IP verso 4. Para cada protocolo destes apresentados a ferramenta possui um daemon que pode ser ativado e configurado. Para cada protocolo existe um arquivo de configurao independente. Tambm existe um daemon chamado zebra que permite configurao global da ferramenta e as possveis distribuies das informaes entre um protocolo e outro. Os comandos utilizados por cada protocolo so semelhantes aos comandos de roteadores Cisco. Um recurso importante presente nesta ferramenta o acesso via telnet a cada um dos daemons que estiverem ativos, semelhante a um terminal virtual. As portas associadas a cada daemon so exibida na Tabela 1.PortaProtocolo Associado

2601Zebra

2602RIP

2603RIP6 (IP verso 6)

2604OSPF

2605BGP (IP verso 4 e verso 6)

2606OSPF v3 (IP verso 6)

Tabela 1 Portas Zebra A partir destes terminais virtuais a configurao de cada protocolo pode ser alterada, podendo ser salva no arquivo de configurao correspondente. No caso da configurao do protocolo BGP, cujo daemon o bgpd, um exemplo bsico de possvel configurao deste protocolo mostrado na Figura 7.hostname exemplopassword zebraenable password bgpsecret!router bgp 65000bgp router-id 10.0.0.1network 192.168.10.0/24neighbor 10.0.0.2 remote-as 65001!log file bgpd.log!log stdout

Figura 7 Configurao BGP no Zebra

A configurao exibida na Figura 7 trata de uma sesso BGP entre o roteador cujo router-id 10.0.01 e o roteador 10.0.0.2. O AS que cada um pertence respectivamente 65000 e 65001. A rede anunciada pelo AS 65000 , neste caso, 192.168.10.0/24. Outras coisas que so configuradas neste daemon so as senhas de primeiro e segundo nvel. As senhas de primeiro nvel so acesso a consultas de sesses BGP e dados das interfaces e as senhas de segundo nvel do acesso configurao completa do sistema com permisses para alterao.