Sistemas Autônomos e Roteamento na Internet Edgard Jamhour O objetivo deste módulo é apresentar a arquitetura atual da Internet, baseada em endereços IPv4. Para isso será abordado o conceito de sistemas autônomos (Autonomous System – AS) que é a forma de organização lógica da Internet. Em seguida, serão vistos os protocolos de roteamento usados na Internet e nas redes privadas. Os protocolos de roteamento são utilizados para configurar automaticamente as rotas dos roteadores que formam os backbones da Internet e também as redes privadas. 1 Estrutura Física de Redes IP • Exemplo ADSL Broadband Remote Access Server (responsável por autenticar e policiar o tráfego do usuário) linha de baixa capacidade PPPoE linha de alta capacidade CPE CPE DSLAM CPE B-RAS Rede Backbone CPE CPE DSLAM CPE usuário acesso núcleo Do ponto de vista físico, a infraestrutura de redes IP pode ser dividida em 3 níveis: usuário, acesso e núcleo (também chamado de core ou backbone). A infraestrutura nível núcleo (backbone) corresponde geralmente a equipamentos e enlaces de alta capacidade pertencentes a operadoras de telecomunicação. Exemplos de tecnologias de comunicação nesse nível são o ATM, SDH, Gigabit-Ethernet. Nesse nível, os dados transportados pelos enlaces são agregados, isto é, eles correspondem a dados de uma grande quantidade de usuários. Os equipamentos utilizados no backbone são geralmente muito caros para serem utilizados ao nível de usuário. Dessa forma, é necessário criar um nível intermediário, com equipamentos mais baratos e velocidades inferiores, a fim de permitir que usuários se conectem ao backbone. Esse nível intermediário é denominado nível de acesso. Um exemplo de tecnologia de nível acesso é o ADSL, conforme mostrado na figura. O ADSL permite que a conexão de rede utilizada pelos usuários seja uma simples linha telefônica. A linha telefônica tem uma capacidade muito inferior àquele utilizada no backbone, de forma que múltiplas linhas telefônicas precisam ser multiplexadas para atingir uma velocidade compatível com o backbone. O equipamento de rede responsável por multiplexar as linhas é denominado: DSLAM: Digital Subscriber Line Access Multiplexer. Geralmente o próprio DSLAM é um equipamento intermediário, sendo necessário ainda um outro nível de multiplexagem realizado por um equipamento denominado B-RAS (Broadband Remote Access Server). 2 Exemplo CPE CPE CPE CPE CPE CPE CPE CPE CPE Rede Backbone Rede Backbone CPE CPE CPE operadora 1 operadora 2 Além da multiplexagem, o B-RAS é responsável por autenticar e policiar o tráfego do usuário. O protocolo de autenticação geralmente é o PPPoE (Point-to-Point over Ethernet) ou PPPoA (Point-to-Point over ATM), de acordo com a tecnologia utilizada no nível backbone. A infraestrutura de rede de nível usuário corresponde a tecnologia de comunicação que conecta um usuário ou a uma rede privada até a rede de acessp. Os equipamentos desse nível são comumente chamados de CPE: Customer Premises Equipment ou RG: Residential Gateway. No caso do ADSL, o CPE é um modem que conecta a rede do usuário a uma linha multiplexada pelo DSLAM. Conforme mostra a figura, uma rede backbone pode interligar multiplas redes de acesso. Os backbones, por sua vez são conectados entre si, formado uma grande rede formada por inúmeras operadoras. A rede Internet é uma rede que segue esse princípio. As redes backbones que formam a Internet podem ser de várias origens: redes de empresas de telecomunicação (com fins comerciais), redes do governo e redes de pesquisa. Independente de sua origem, todas essas redes precisam seguir um padrão comum de funcionamento, a fim de que sejam interoperáveis. Esse padrão de funcionamento é baseado no conceito de sistemas autônomos e protocolos de roteamento padronizados. 3 Sistema Autônomo (Autonomous System - AS) B A F E C G I D SISTEMA AUTÔNOMO 1 J SISTEMA AUTÔNOMO 2 X Y H Z SISTEMA AUTÔNOMO 3 Para entender como a Internet funciona, duas perguntas precisam ser respondidas: Como as informações são roteadas na Internet? Como as tabelas de roteamento são atualizadas? A resposta a essas perguntas está relacionada a forma “lógica” e não “física” de como a Internet está estruturada. Conforme mostra a figura, do ponto de vista lógico a Internet é formada pela conexão de sistemas autônomos. Um sistema autônomo compreende a rede e todo o conjunto de computadores que ela conecta. Se tomarmos como analogia a discussão feita sobre a estruturação física das redes IP, um sistema autônomo compreenderia todos todos os níveis da rede: usuário, acesso ou backbone. Do ponto de vista lógico da Internet, a divisão entre usuário, acesso ou backbone desaparece. Qualquer computador conectado a Internet, precisa pertencer a um sistema autônomo. Por exemplo, um usuário acessando a Internet em sua residência, através de uma linha ADSL, é visto como sendo parte do sistema autônomo do backbone ao qual está conectado. Para que uma rede seja considerada um sistema autônomo (Autonomous System –AS), ela precisa ser organizada de forma a seguir alguns princípios fundamentais: 1. Ela deve ser capaz de divulgar suas rotas (os blocos de endereço dos computadores que pertencem ao AS) para outras redes (AS) da Internet. 2. Ela deve possuir os seus próprios endereços IP públicos (registrados). Observe que mesmo uma rede de grande porte, como a rede de um banco, pode não ser um sistema autônomo. Por exemplo, se o banco se conecta a um backbone de uma operadora e utiliza os endereços IP da operadora, ele não é um sistema autônomo, mas sim parte do sistema autônomo que representa a operadora. 4 O que é um AS ? 200.17.1.0/24 Conexão com outro AS I O AS pode divulgar rotas agrupadas: 200.17.0.0/16 200.17.2.0/24 I B I I 200.17.3.0/24 200.17.130.0/24 Um AS é uma rede (coleção de roteadores e computadores) que segue uma arquitetura WAN. Para que a rede de uma instituição possa ser transformada em AS, ela primeiro, precisa obter um conjunto mínimo de endereços IP públicos (registrados) junto as autoridades da Internet. Quando uma instituição se torna um AS, ela passa a ter seus próprios endereços IP, isto é, os endereços utilizados na rede não são obtidos de provedores, mas pertencem a própria instituição. A topologia de uma rede AS possui dois tipos de roteadores: internos e de borda. Os roteadores internos são utilizados para interconectar as redes do AS. As redes internas ao AS podem ser a diversas filiais de uma empresa ou os clientes de uma operadora de telecomunicações. O roteador de borda é utilizado para conectar o AS a outros AS que compõem a Internet. Observe que os roteadores internos precisam conhecer como os vários prefixos estão distribuídos entre as várias redes que pertencem ao AS. Já o roteador de borda (indicado como B, na figura), pode simplesmente divulgar rotas agregadas para os outros AS da internet. Por exemplo, ao invés de divulgar os vários prefixos 200.17.1.0/24, 200.17.1.0/24, 200.17.1.130/24, etc., ele pode divulgar simplesmente a rota 200.17.0.0/16. Autoridades de Registro de Endereço IANA ARIN RIPE NCC AfriNIC LACNIC APNIC América do Norte Europa, Oriente e Asia Central Africa América Latina e Caribe Ásia e Pacífico Para se tornar um AS, a instituição precisa solicitar um conjunto de IPs registrados junto as autoridades da Internet. O controle global da atribuição de endereços IP é feito pelo IANA (Internet Assigned Numbers Authority). A IANA é responsável por designar quantos blocos de endereço estão disponíveis para cada região do planeta, evitando duplicação ou má distribuição dos endereços. A IANA utiliza 5 autoridades de abrangência regional para agilizar o processo de atribuição dos endereços em todo o mundo. Essas autoridades são: AfriNIC: responsável pela região da África APNIC: responsável pela região Ásia e Pacífico ARIN: responsável pela região da América do Norte LACNIC: responsável pela região da América Latina e algumas ilhas do Caribe RIPE NCC: responsável pela Europa, Oriente Médio e Ásia Central Todas vez que uma empresa solicita se tornar um AS, ela precisa receber um "número de AS", que é único em toda a Internet. A IANA também é responsável por atribuir os números de AS. Exemplos de AS AS PUCPR Número do AS: 13522 Prefixos: 3 Endereços IP:8192 Nome: Pontificia AS GOOGLE Número do AS: 15169 Prefixos: 109 Endereços: 122624 Nome: GOOGLE Descrição :Universidade Catolica do Parana Descrição: Google Inc. País: BR País: US Autoridade de Registro: LACNIC Autoridade de Registro: ARIN Prefixo BGP do endereço www.pucpr.br: 200.192.112.0/21 Prefixo BGP do endereço google.com Prefix:209.85.128.0/17 As figuras ilustram informações parciais de dois sistemas autônomos: PUCPR e GOOGLE. A PUCPR é registrada junto ao LACNIC e o GOOGLE é registrado junto a ARIN. Cada AS possui um número, que é utilizado para identificar o AS ao nível dos protocolos de roteamento da Internet. Nesses exemplos, o AS PUCPR possui o número 13522 e o AS GOOGLE possui o número 15169. A quantidade de prefixos (blocos de endereços IP contínuos) e endereços IP varia de acordo com o tamanho da instituição. A PUCPR possui três prefixos e 8192 endereços. O GOOGLE possui 109 prefixos e 122624 endereços. As entidades de registro (LACNIC, ARIN, etc) possuem bases de dados que permitem obter de forma online informações sobre um AS. É possível também consultar bases de dados para determinar todos os prefixos (blocos de endereços IP) que pertencem a um dado AS. O plugin gratuito para o firefox, que pode ser obtidon o endereço http://www.asnumber.networx.ch/, permite identificar o AS de qualquer site da Internet. Os dados mostrados na figura foram obtidos através desse plugin. Para usar o plugin, basta entrar em qualquer site da Internet, que o plugin mostra os dados do AS na barra de status, na parte inferior da janela do firefox. Através do plugin, observamos que o site "pucpr.br" pertence ao prefixo 200.192.112.0/21, e o site google.com pertence ao prefixo 209.85.128.0/17. 7 Backbone ou AS? • Nem todo AS corresponde a um backbone de uma empresa de telecomunicações. • A RNP (Rede Nacional de Pesquisa) é um backbone mantido pelo MCP, que oferece serviços de conectividade gratúitos para o governo e instituições de ensino e pesquisa. Uma instituição pode se tornar um sistema autônomo por diversas razões diferentes. Operadoras de telecomunicações precisam se tornar sistemas autônomos a fim de poder prestar a venda de serviços de conectividade para Internet. Nesse caso, a operadora geralmente possui um backbone de grande porte, como o caso da RNP (que é uma operadora gratuita para universidades e instituiçõe do governo). Quando um cliente se conecta a Internet através de um sistema autônomo de uma operadora de telecomunicações, ele é "visto" pelo restante da Internet como sendo parte da rede da operadora. Isso significa que o cliente não precisa se preocupar em instalar protocolos de roteamento em seus roteadores. Essa responsabilidade é do administrador do sistema autônomo (AS). Como consequência, a rede do cliente pode ser bem mais simples e barata. Contudo, muitas instituições que não são operadoras de telecomunicações também podem se tornar AS. Esse é o caso de grandes instituições como bancos, instituições do governo, universidades e multi-nacionais. A vantagem de ser um AS nesse caso é ter total independência em relação ao provedor de acesso. Por exemplo, se um grande banco não for um AS, mas um simples cliente de outro AS, ele precisará trocar todos os endereços IP registrados de sua rede caso decida trocar de provedor. Além disso, é muito difícil conectar a rede da empresa a dois ou mais provedores simultaneamente (para garantir redundância), pois a rede precisaria conter endereços IP de várias operadoras misturados na rede da instituição. Dessa forma, os sistemas autônomos podem ser classificados em vários tipos, de acordo com a finalidade de uso destinada pela instituição que o controla. Tipos de AS sentido de divulgação das rotas AS5 stub [peer] AS1 non-transit [transit] [transit] AS2 transit [transit] [transit] AS3 transit [transit] AS4 transit Os sistemas autônomos podem ser classificados por dois critérios: o primeiro em relação a sua permissão de passagem de tráfego de outros AS, e o segundo em relação a forma de relacionamento comercial com outros AS. Quanto a pemissão de passagem de tráfego de outros AS, a classificação é a seguinte: Stub AS: são ligados à Internet através de um único ponto de saída. Também são chamados de “single-homed”. Esse tipo de AS corresponde geralmente a instituições privadas que não desejam prestar serviços de telecomunicações para terceiros, apenas se beneficiar da autonomia de ser um AS. Na figura, o AS 5 é um exemplo de stub AS. Transit AS : Sistemas Multihomed (com várias conexões) que permitem que o tráfego de outros AS utilizem suas conexões como passagem. As operadoras que prestam serviços de acesso a Internet (ISP) são desse tipo. Non-Transit: São sistemas multihomed, mas que não permitem transporte de tráfego envolvendo outros AS. Isso significa que apenas o tráfego em que a origem ou o destino é um endereço IP do próprio AS é permitido. Esse é o caso das instituições privadas que possuem mais de uma conexão com a Internet (para redundância), mas não desejam que essa conexão seja utilizada para transportar tráfego de terceiros. O controle de passagem de tráfego é feito através do protocolo de roteamento entre ASs, que controla o sentido de divulgação das rotas. Esse tópico será discutido mais adiante, quando falarmos sobre o BGP, que é o protocolo de roteamento usado na Internet. Quanto a forma de relacionamento comercial, a classificação é a seguinte: Relacionamento Peer: Quando dois AS se interconectam de maneira gratuita, visando benefício mútuo de troca de tráfego, através de um acordo de tráfego multi-lateral (ATM). Quando o relacionamento é comercial, a conectividade é denominada transit. IXP: Internet Exchange Point A interconexão desordenada de sistemas autônomos em forma de uma malha poderia levar a um desempenho muito pobre da Internet, devido a uma grande quantidade de saltos. Por essa razão, foram desenvolvidos locais especiais onde vários sistemas autônomos podem se conectar utilizando apenas um salto. Esses locais são denominados IXP (Internet Exchange Point). Atualmente, a tecnologia mais utilizada para implementar IXP é o Ethernet. O equipamento usado no IXP nada mais é do que um switch de grande capacidade, que recebe, em suas portas, as fibras oriundas dos roteadores de borda de vários AS. Em muitos países a manutenção dos IXP é subsidiada por órgãos públicos. No Brasil além da denominação IXP (ou PIX, Ponto de Troca de Tráfego), a denominação PTT (PTT: Ponto de Troca de Tráfego) também é muito usada. O maior PTT do Brasil é denominado PTTMetro. Esse PPT é mantido pelo Projeto do Comitê Gestor da Internet no Brasil (CGIbr). Ele permite a interconexão direta entre as redes ASs que compõem a Internet Brasileira. O PTTMetro possui vários locais de interconexão (PIX). A figura mostra o PIX Central, localizado em São Paulo, que interconecta vários ASs, como a USP, a Brasil Telecom e Outros. Tipos de Roteadores 216.1.2.0/24 Conhece apenas as rotas no interior do AS Conhece todas as rotas da Internet CPE CPE EGP A B C F E H IGP IGP I D J SISTEMA AUTÔNOMO 2 SISTEMA AUTÔNOMO 1 prefixo: 220.2.0.0/16 G prefixo: 216.1.2.0/16 L M 220.2.1.0/24 Para que a rede de uma instituição possa se tornar um AS, algumas regras precisam ser respeitadas. Conforme dito anteriormente, os roteadores de um AS são classificados em dois tipos: roteadores internos e roteadores de borda. Os roteadores internos são aqueles que se conectam apenas a roteadores e computadores no interior do AS. Os roteadores de borda, se conectam a roteadores de outros AS. Na figura, apenas os roteadores E, F e L são roteadores de borda. Todos os demais são roteadores internos. Um roteador interno não precisa ser um muito potente, pois ele precisa conhecer apenas as rotas para as redes que pertencem ao próprio AS. Já o roteador de borda precisa conhecer todas as rotas da Internet. Isso faz com que esse roteador seja, geralmente, muito caro. A quantidade de rotas da Internet, atualmente, é superior a 300.000. Isso faz com que o roteador de borda tenha que ter uma quantidade razoável de memória, e também bastante velocidade para consultar as tabelas de roteamento. O roteador será tanto mais caro quanto maior a velocidade do seu enlace. Se o roteador for de baixa capacidade (com link de menos de 1 Mbps), ele pode até ser implementado com um equipamento de custo reduzido. Contudo, se o link do roteador de borda for da ordem de centenas de Mbps, então seu custo será bastante elevado (dezenas de milhares de dólares). Roteadores de borda atuais precisam suportar aproximadamente 222.000 rotas (junho 2007) além de mais 50% para rotas privadas de clientes. A fim de processar essas rotas sem grande atraso na propagação dos pacotes os roteadores precisam: Muita memória de acesso rápido e Alta capacidade de processamento. Roteadores com essa capacidade podem ter custos superiores a U$ 50K. Protocolos de Roteamento O roteador dos clientes não precisa de protocolo de roteamento. Basta ele ter uma única rota default para o ISP 216.1.2.0/24 CPE CPE EGP A B C F E G H IGP IGP I D SISTEMA AUTÔNOMO 2 SISTEMA AUTÔNOMO 1 prefixo: 220.2.0.0/16 J prefixo: 216.1.2.0/16 L M 220.2.1.0/24 No interior de um AS de grante porte, como aquele de um provedor de acesso a Internet (ISP), o processo de atualização de rotas nos roteadores interno e de borda deve ser automatizado, isto é, a configuração das tabelas de roteamento deve ser feita através de protocolos de roteamento padronizados, e não através de configuração manual. Um protocolo de roteamento nada mais é do que um conjunto de mensagens padronizadas trocadas entre os roteadores. Essas mensagens carregam as rotas que um roteador conhece, de maneira que os demais roteadores possam apontar para ele quando precisarem enviar pacotes a um certo destino. Os protocolos de roteamento são classificados em dois tipos: IGP: Interior Gateway Protocol: protocolo de roteamento para roteadores internos e EGP: Exterior Gateway Protocol: protocolo de roteamento entre sistemas autônomos. Os principais protocolos padronizados são os seguintes: IGP: (Informações de Roteamento no Interior do AS) RIP: Routing Information Protocol OSPF: Open Shortest Path First IS-IS: Intermediate System to Intermediate System EGP: (Informações de Roteamento entre ASs) BGP: Border Gateway Protocol Geralmente, o protocol IGP pode ser escolhido livremente pelo administrador do AS. Já o EGP precisa ser padronizado para permitir a interoperação do equipamento de várias instituições distintas. Atualmente, o único protocolo EGP usado na Internet é o BGP. Conceitos Básicos de Roteamento ir até E por B com custo 2 As duas rotas estão da RIB, mas apenas a melhor está na FIB A B C E D ir até E por C com custo 3 Para entender a diferença entre os protocolos BGP, OSPF, RIP, etc é necessário, primeiro, rever alguns conceitos importantes sobre o roteamento. O primeiro aspecto que precisa ser analisado é como um roteador armazena suas rotas. Conceitualmente, um roteador utiliza duas tabelas internas a fim de determinar para onde enviar um pacote para um dado destino: a RIB e a FIB. A RIB (Router Information Base) é o conjunto completo de rotas configuradas no roteador. Na RIB, é possível ter mais de uma rota para um mesmo destino. Independente de quantas rotas existem, um roteador irá sempre utilizar a rota de menor custo até que essa rota deixe de funcionar, ou uma outra rota seja criada. Por isso, os roteadores mantém uma outra tabela, mais otimizada denominada FIB. A FIB (Forwarding Information Base) contém apenas as melhores rotas ativas (as que realmente são utilizadas). Além disso, a FIB pode conter informações necessárias para simplificar o processo de encaminhamento dos pacotes para o roteador vizinho (por exemplo, o endereço MAC do próximo salto para evitar uma consulta ARP desnecessária). Olhando a figura, vemos que o roteador A conhece duas rotas para chegar até uma rede E, uma através de B (com custo 2) e outra através de C (com custo 3). Ambas as rotas estão armazenada em sua RIB, mas apenas a rota de custo 3 está armazenada em sua FIB. Conceitos Básicos de Roteamento estado de enlace 3 2 E B 5 [5] 2 A 1 C F 3 1 E B D 2 A F [4] D C [2] [4] vetor de distâncias O segundo aspecto que precisa ser analisado é como o roteador representa e descobre suas rotas. Em redes IP, dois métodos são utilizados: os algoritmos de estado de enlace (link state) e os algoritmos de vetor de distâncias (distance vector). No método baseado em estado de enlace, cada roteador possui uma representação completa da rede ao qual está conectado na forma de um grafo. Isto é, o roteador sabe como os roteadores estão conectados e qual o custo associado ao enlace de cada roteador. Nesse método, os roteadores não trocam rotas diretamente, mas sim trocam informações sobre seus enlaces e a velocidade de seus enlaces. Uma vez criada a representação interna da rede no roteador, as rotas são calculadas através de um algoritmo de varredura de grafos, como o Dijkstra, para subsequente preenchimento das tabelas RIB e FIB. Por outro lado, no método baseado em vetor de distâncias, nenhum roteador possui o conhecimento completo da rede. Ao invés disso, o roteador possui apenas as rotas, isto é, a informação do próximo salto e do custo associado para um conjunto de destinos conhecidos na rede. Nesse método, os roteadores trocam rotas diretamente, não sendo necessário nenhum tipo de cálculo para determinação das rotas. Apesar do método de vetor de distâncias parecer mais simples, ele é muito limitado. Nessa abordagem, os roteadores perdem muito tempo para reparar danos na rede (substituir rotas melhores defeituosas por rotas alternativas). Vetores de Distância rede A por B2 rede A por A.1 acesso a rede A com custo 1 1 B acesso a rede A com custo 2 2 1 rede A X 2 A C 1 2 D 3 1 acesso a rede A com custo 1 rede A por A.2 acesso a rede A com custo 2 rede A por C3 Os protocolos de roteamento que seguem o método do vetor de distâncias são baseados na propagação de rotas, com incremento de custos. Esse método pode ser resumido da seguinte forma: A) Os roteadores divulgam as redes a que estão diretamente conectados por seus enlaces B) Apenas as melhores ofertas são aceitas para cada rede. C) Quando um roteador recebe uma rota, ele a repassa adiante acrescentando a ela o seu próprio custo Na figura, observa-se que o roteador A faz o anúncio de que ele sabe acessar a rede A para os roteadores B e C. O roteador B repassa o anúncio de acesso ao roteador C, adicionando o custo do seu próprio enlace na rota. Dessa forma, o roteador C recebe duas ofertas: uma vinda diretamente de A e outra vinda de B, com o custo acrescido. Nesse caso, a oferta vinda de B é descartada, e apenas a oferta vinda de A é propagada para D. Nesse método, as rotas tem um tempo de vida (TTL), e os roteadores re-anunciam periodicamente suas rotas. As rotas cujo re-anuncio não é recebido dentro do prazo de vida são desativadas. Nesse caso, as rotas de maior custo previamente ignoradas passam a ser aceitas (por exemplo, o roteador C passaria a aceitar a oferta de B, caso parasse de receber a oferta de A). Conforme dito anteriormente, a desvantagem desse método é que o tempo para reparar rotas defeituosas pode ser muito alto. O tempo de atualização das rotas é aproximadamente: nsaltos * TTL. O protocolo RIP segue esse princípio. Estado de Enlace hello hello Link State Database Link State Database B A LSA LSA B novo LSA novo LSA C X A novo LSA D novo LSA novo LSA E Os protocolos de roteamento que seguem o método baseado em estado de enlace são muito mais eficientes que os de vetor de distância, mas podem exigir roteadores um pouco mais sofisticados para serem implementados. Nesse método, cada roteador mantém um banco de dados completo com a descrição de toda topologia da rede (link state database). Incialmente, nesse método, os roteadores descobrem se existem outros roteadores (roteadores vizinhos) que suportam o mesmo protocolo através de mensagem Hello. A mensagem de Hello também é utilizada para verificar se os vizinhos continuam ativos (isto é, como mensagens de keep alive). Uma vez conhecido seus vizinhos, os roteadores trocam informações sobre a topologia da rede (roteadores e seus enlaces). Os roteadores parceiros sincronizam sua base de estado de enlace através de mensagens que transportam anúncios de novos enlaces (Link State Advertisement - LSA). Quanto o protocolo é ativado pela primeira vez nos roteadores da rede, existe uma grande quantidade de informações trocadas. Todavia, após as informações das bases de estado de enlace terem sido sincronizadas, as mensagens de atualização de estado (LSA) serão enviadas somente se um novo enlace for adicionado ou removido. Isso faz com que esse tipo de protocolo seja mais adequado para redes de grande porte. Igualmente, o roteador já possui localmente todas as informações necessárias para calcular rotas alternativas no caso de falha de seus vizinhos, fazendo com que a recuperação em caso de falhas seja muito mais rápida. Os protocolos OSPF e IS-IS são exemplos de protocolos de estado de enlace. Dijkstra Shortest Path First (SPF) • • Princípio: – Encontrar o menor caminho entre um dos nós da rede e todos os demais Estratégia: – Escolher sempre o melhor nó adjacente – Atribuir custos acumulativos a cada nó da rede 10 6 4 B 5 E 2 0 A 1 3 F 1 C 1 D 4 9 5 5 No método baseado em estado de enlace, cada roteador constrói uma representação completa da rede na forma de um grafo, conforme indicado na figura. A tabela de roteamento é preenchida através de um algoritmo que varre o grafo e determina as melhores rotas do roteador para cada um dos destinos possíveis (isto é, para cada uma das interfaces dos demais roteadores). O algoritmo mais utilizado para essa finalidade é o Dijikstra. Os principais conceitos desse algoritmo são mostrados na figura. Suponha que o algoritmo está sendo executado no roteador A. O roteador A determina que o melhor caminho para chegar ao roteador C é usar o enlace AC. Dessa forma, ele atribui o custo 1 (em vermelho) para a rota AC. Para chegar até o roteador B, existem duas alternativas: AB com custo 5 ou ACB com custo 4. O roteador decide então que o melhor caminho para chegar até B é ACB, e atribui o custo 4 para o caminho. A partir desse momento, qualquer rota que passe por B utilizará sempre o trajeto ACB, de forma que esse teste não precisa mais ser efetuado. Esse procedimento se repete até que uma rota cada um dos demais destinos da rede seja encontrada. Existem variações no algoritmo Dijikstra. O constrained shortest path first (CSPF) permite impor restrições adicionais ao invés de escolher simplesmente o caminho mais curto. As restrições podem ser de várias naturezas: restringir o uso de enlaces indisponíveis, pouco confiáveis ou muito lentos (menos banda). Duas técnicas são utilizadas: aparar enlaces indesejáveis (eliminá-los do grafo - prunning) e criar uma nova métrica que incorpora outras restrições em seu cálculo. O CSPF deve ser usado com cautela, pois todos os roteadores precisam usar a mesma métrica, ou poderão ser criadas rotas em loop. A versão sem restrições é ainda a mais usada atualmetne. Observe que pela estratégia do Dijikstra, apenas uma rota é escolhida para cada destino. Mesmo quando dois caminhos de custo idêntico são encontrados, o primeiro a ser descoberto é mantido. Em alguns roteadores com suporte ao ECMP (Equal Cost Mutipath), é possível utilizar mais de um caminho quando existem alternativas idênticas de menor custo. Nesse caso, os roteadores procurar efetuam balanceamento de carga entre caminhos de custo idêntico. Divisão em Áreas área B resumo das outras áreas (rotas agregadas) ABR: Roteador de Borda de Àrea resumo ABR ABR estado completo da própria área resumo ABR resumo Roteador Intra-Area área A área C Em um protocolo de estado de enlace os roteadores necessitam de memória para armazenas as informações da topologia da rede e capacidade de processamento para descobrir rotas a partir do grafo de topologia. Supondo que n é o número de enlaces total da rede (isto é, a soma de enlaces de todos os roteadores da rede), então a quantidade de recursos gasta em cada roteador pode ser estimada da seguinte forma: Memória para armazenar o grafo: cresce linearmente com n. Capacidade de processamente necessária para varrer o grafo: cresce entre n* log(n) e n^2. Por essa razão, para prover escalabilidade em redes de grade porte, os protocolos de estado de enlace adotam o conceito de divisão em áreas, conforme ilustrado pela figura. O objetivo da divisão em áreas é reduzir a quantidade de informação que cada roteador precisa conhecer sobre a rede. Nessa abordagem, um roteador tem conhecimento completo apenas dos roteadores que estão na mesma área que ele, e apenas um sumário das informações das outras áreas. O sumário das outras áreas nada mais é do que um conjunto de rotas agregadas (isto é, dependendo dos prefixos, todas as rotas de uma área estrangeira podem ser representadas por uma única rota). Nessa abordagem, os roteadores são classificados em dois tipos: os roteadores intra-área e os roteadores de borda de área (ABR). Os roteadores intra-área trocam informações completas de estado de enlace dentro de suas áreas. Já os roteadores ABR trocam apenas rotas sumarizadas com outros ABR. Vetores de Caminho 200.17.1.0/24 via SA3 Y Z 200.17.1.0/24 X 200.17.1.0/24 via SA3 W EGP SA3 200.17.1.0/24 via SA3, SA1 B E F C D SA2 G EGP 200.17.1.0/24 via SA3, SA2 I J SA1 Conceitualmente, é possível definir um terceiro método de propagação de rotas denominado vetor de caminho. O método de vetor de caminho é bastante similar ao método de vetor de distância, contudo, nesse método, uma lista completa de saltos da origem até o destino é incluída nas ofertas de rota trocadas entre os roteadores. O objetivo principal dessa lista é evitar a criação de loops. O protocolo BGP, utilizado para toca de rotas entre sistemas autônomos, segue o princípio do vetor de caminho. Para ilustrar esse conceito, considere a figura que ilustra uma rede formada por três sistemas autônomos: SA1, SA2 e SA3. Considere, no exemplo, que o roteador de borda do SA3 (Z) deseja informar para os demais AS que é possível chegar a rede 200.17.1.0/24 através dele. A oferta de rota é feita para o roteador E do SA2 e para o roteador F do SA1. A oferta inclui o vetor de caminho, que é uma lista de sistemas autônomos e não de roteadores. Quando um roteador de borda recebe uma oferta, ele passa a oferta para frente incluindo também o seu número de AS no vetor de caminho. Dessa forma, a oferta de acesso a rede 200.17.1.0/24 é repassada para o roteador F do SA1 pelo roteador E do SA2, incluindo também o código do SA2. Observe que no exemplo, o SA2 é um AS do tipo transit, pois ele repassou a oferta de rota do SA3 para o SA1. Caso o SA2 fosse do tipo non-transit, o repasse da rota não seria feito. Protocolos para Redes IP • Vetor de Distâncias – RIP (Routing Information Protocol) • Estado de Enlace – OSPF (Open Shortest Path First) • Vetor de caminho – BGP (Border Gateway Protocol) Na seqüência desse módulo serão estudados três protocolos relacionados a configuração de rotas em redes IP: RIP, OSPF e BGP. Os protocolos RIP e OSPF são do tipo IGP, isto é, eles são utilizados para troca de informações de roteamento no interior de um AS. Já o protocolo BGP é um protocolo EGP, isto é, ele é utilizado para troca de informações entre sistemas autônomos distintos. Como vimos, o protocolo RIP é do tipo "vetor de distâncias". Esse protocolo é considerado bastante ineficiente para redes de grande porte, não sendo utilizado, na prática, em sistemas autônomos de grande porte. Contudo, seu estudo é importante, principalmente para entender a diferença com relação a outros protocolos. O OSPF segue o método de "estado de enlace", e é um dos protocolos mais utilizados como IGP. O outro protocolo bastante usado como IGP é o IS-IS (Intermediate System to Intermediate System). Nesse módulo, apenas o OSPF será estudado, pois ambos os protocolos trazem muitas similaridades. O BGP é o único protocolo utilizado como EGP. Como veremos, esse protocolo é bastante diferente dos anteriores, pois além de ser do tipo "vetor de caminho", ele é o único que funciona sobre TCP. RIP PASSIVO Usualmente host RIP response Rede 200.192.0.0/24 RIP request ATIVO Usualmente roteador Rede 200.134.51.0/24 RIP response O RIP é um protocolo de roteamento do tipo "vetor de distâncias", originário do conjunto XNS da Xerox. Existem duas versões de RIP: Versão 1 (RFC 1058) e Versão 2 (RFC 1723). A versão 1 é muito limitada, e não deve ser mais usada. Esta versão utiliza mensagens em broadcast, e foi desenvolvida antes da introdução do CIDR (Classless InterDomain Routing). Isto é, nessa versão não é possível criar rotas com máscaras de subrede. A versão 2 resolveu vários problemas da versão 1. Ela utiliza mensagens em multicast, ao invés de broadcast. Ela também introduziu o suporte a CIDR. Na prática, se o RIP for utilizado, ele deverá ser sempre na versão 2. Mesmo a versão 2 do RIP tem suas limitações. O método de custo suportado pelo RIP é apenas o número de saltos (hop count). Isto significa que o RIP não consegue levar em conta a capacidade dos enlaces quando está definindo o custo de uma rota. Outra limitação é que o tamanho máximo de uma rota é de 15 saltos (acima deste valor, a rede é considerada inalcançável). Uma rede RIP define dois tipos de elementos: os ativos e os passivos. Os elementos ativos são capazes de enviar e receber mensagens RIP. Os elementos passivos são capazes apenas de receber rotas. De maneira geral, numa rede, apenas os roteadores são ativos. Os computadores são sempre passivos ou não usam RIP. O RIP é um protocolo encapsulado em mensagens UDP (utiliza a porta padrão 520). O RIP define dois tipos de mensagem: Requisição - Request (tipo 1): solicita informações de roteamento e Resposta - Response (tipo 2): envia informações de roteamento. Na prática, o RIP trabalha quase sempre no modo não solicitado, onde apenas mensagens do tipo Response são enviadas periodicamente pelos elementos ativos da rede. Cada mensagem response pode transportar no máximo 25 rotas. Formato das Mensagens RIP v2 Byte 2 Byte 1 Command (1: request, 2: response) Byte 3 Version (2) Byte 4 Reserved Address Family (0xffff para Autenticação) Cabeçalho Tipo de Autenticação Autenticação Informação de Autenticação X 4 Address Family (2 para IPv4) Tag de Rota IP Address Subnet mask Next Hop IP Address Entradas de Rota .... Metric Autenticação A figura mostra o formato de uma mensagem RIP versão 2. Conforme mencionado anteriormente, as mensagens RIP são encapsuladas no protocolo UDP. A mensagem RIP possui três seções principais: Cabeçalho: inclui os campos Command e Version. O valor 1 no campo Command indica request e o valor 2 indica response. O valor 2 no campo Version indica que é a versão 2 do RIP. Autenticação: O campo Família de Endereços possui o valor fixo 0xFFFF para identificar a seção de autenticação. O campo tipo de Autenticação utiliza um byte para identificar um dos três modos de autenticação suportados pelo RIP: Message Digest (16 bytes MD5 da mensagem), Password Simples (senha de 6 bytes), Message Digest Key e Sequence Number (HMAC com chave secreta). O código de autenticação de até 16 bytes é transportado no final da seção. Entrada de Rotas. Essa seção possui uma lista de até 15 entradas de rotas. Cada entrada de rota é composto pelos campos Família de Endereços (indica se é IPv4, por exemplo), Tag de Rota (número usado para diferenciar rotas internas de externas), Endereço de Base (e.g. 200.0.0.0), Máscara de Subrede (e.g. 255.255.255.0), Endereço do Gateway (e.g., 200.0.0.1), e Métrica (e.g., 2). Um valor de métrica igual a 16 indica que a rota está inativa. Exemplo: Funcionamento do RIP 200.0.0.1/24 192.168.0.1/24 192.168.0.2/24 3 2 0 192.168.1.1/24 0 1 A 1 B C 0 1 1 200.0.0.2/24 INTERNET 0.0.0.0/0 Para ilustrar o funcionamento do RIP, considere o cenário mostrado na figura. Quando o RIP é utilizado, apenas os endereços IP dos roteadores precisam ser configurados manualmente. Todas as demais rotas são geradas automaticamente pelo protocolo de roteamento. Observe que quando um endereço IP é atribuído a interface de um roteador, a rota direta (isto é, a rota para a rede onde a interface do roteador está conectada) é criada automaticamente. No exemplo as seguintes rotas diretas serão criadas: No roteador 1: rota para a rede 200.0.0.0/24 via direta pela interface 0 com custo 0 No roteador 2: rota para a rede 200.0.0.0/24 via direta pela interface 0 com custo 0 No roteador 2: rota para a rede 192.168.0.0/24 via direta pela interface 1 com custo 0 No roteador 3: rota para a rede 192.168.0.0/24 via direta pela interface 0 com custo 0 No roteador 3: rota para a rede 192.168.1.0/24 via direta pela interface 1 com custo 0 Considerando que nesse exemplo a rede não é um sistema autônomo (ela é simplesmente uma rede cliente de um ISP), o roteador 1 precisa conhecer apenas a rota para o roteador do provedor para que os computadores tenham acesso a Internet. Essa rota pode ser criada manualmente, ou aprendida automaticamente pelo roteador 1 através de protocolos do tipo RIP ou OSPF. Nesse exemplo, assumiremos que essa rota foi criada manualmente: No roteador 1: rota para a rede 0.0.0.0/0 via IP_ISP pela interface 1 com custo 1 Exemplo de Propagação da Rota 192.168.1.0/24 200.0.0.1/24 192.168.0.1/24 200.0.0.2/24 C B 192.168.1.0/24 via 200.0.0.1 (custo 2) 192.168.1.1/24 3 2 A 192.168.0.2/24 192.168.1.0/24 via 192.168.0.2 (custo 1) 1 IP1 192.168.1.0/24 via IP1 (custo 3) INTERNET rota local 192.168.1.0/24 via direta (custo 0) 0.0.0.0/0 Após a ativação do RIP em um roteador, todas as rotas conhecidas pelo roteador são propagadas. É possível configurar o RIP para propagar rotas a partir de todas as suas interfaces, ou apenas de interfaces específicas. Por exemplo, no roteador 1, pode-se desejar propagar rotas pela interface interna do roteador, mas bloquear o envio de mensagens RIP para interface conectada ao provedor. A figura ilustra o funcionamento do RIP no processo de propagação da rota local 192.168.1.0/24. Uma mensagem de RIP response é enviada em broadcast (RIPv1) ou multicast (RIPv3) pelo roteador 3 para toda a rede 192.168.0.0/0. Essa rota é recebida pelo computador B e também pelo roteador 2. Caso o computador B tenha o serviço RIP ativado, uma rota dinâmica será criada em sua tabela de roteamento. O roteador 2, por sua vez, repassa a oferta de rota recebida de 3 adicionando o valor 1 ao custo. A oferta feita pelo roteador 2 será recebida pelo computador A e também pelo roteador 1. Caso o roteador 1 tenha o protocolo RIP ativado em sua interface externa, a oferta da rota será repassada também para o provedor (no caso, como 192.168.1.0/24 corresponde a uma subrede de endereços privados, o administrador não deve ativer o RIP na interface externa, para evitar que essa rota seja propagada). Exemplo de Propagação da Rota 192.168.0.0/24 200.0.0.1/24 192.168.0.1/24 A C B 192.168.0.0/24 via 200.0.0.1 (custo 1) 1 rota local 192.168.0.0/24 via direta (custo 0) IP1 INTERNET 192.168.1.1/24 3 2 200.0.0.2/24 192.168.0.2/24 192.168.0.0/24 via 192.168.1.1 (custo 1) rota local 192.168.0.0/24 via direta (custo 0) 192.168.0.0/24 via IP1 (custo 2) 0.0.0.0/0 A figura ilustra o funcionamento do RIP no processo de propagação da rota local 192.168.0.0/24. Observe que essa rota existe tanto nos roteadores 1 quanto 2. Uma mensagem de RIP response é enviada pelo roteador 3 para a rede 192.168.1.0/24. Essa oferta de rota é recebida pelo computador C. Uma mensagem de RIP response também é enviada pelo roteador 2 para a rede 200.0.0.0/24. Essa rota é recebida pelo computador A e também pelo roteador 1. Caso o roteador 1 tenha o protocolo RIP ativado em sua interface externa, a oferta da rota será repassada também para o provedor (novamente, como 192.168.0.0/24 corresponde a uma subrede de endereços privados, essa rota não deveria ser propagada). Exemplo de Propagação das Rotas 0.0.0.0/0 e 200.0.0.0/24 200.0.0.1/24 192.168.0.1/24 192.168.0.2/24 200.0.0.2/24 0.0.0.0/0 via 192.168.1.1 (custo 4) 200.0.0.0/24 via 192.168.1.1 (custo 2) 3 2 0.0.0.0/0 via 200.0.0.2 (custo 2) A 192.168.1.1/24 B 0.0.0.0/0 via 192.168.0.1 (custo 3) 200.0.0.0/24 via 192.168.0.1 (custo 1) C 1 IP1 INTERNET 0.0.0.0/0 Rota manual 0.0.0.0/0 via IP_ISP (custo 1) Rota local 200.0.0.0/24 via 200.0.0.1/24 (custo 1) A figura ilustra o funcionamento do RIP no processo de propagação da rota para internet 0.0.0.0/0 e da rota 200.0.0.0/24. Nos exemplos anteriores, por razões didáticas, nós consideramos que apenas uma rota era enviada em cada mensagem RIP. Nesse exemplo, nós supomos que a rota para Internet foi configurada manualmente, atribuindo-se arbitrariamente o custo 1. Observe, nesse caso, que o custo da rota para Internet não é muito importante, pois como não existe nenhuma rota alternativa, ela será sempre utilizada. Uma mensagem de RIP response é enviada pelo roteador 1 para a rede 200.0.0.0/24. Essa oferta de rota é recebida pelo computador A e pelo roteador 2. Observe que o custo da rota foi aumentado de 1, pois o roteador 1 considera a si mesmo como um salto (o custo 1 foi atribuído para interface externa, então a interface interna é considerada um salto). Uma mensagem de RIP response também é enviada pelo roteador 2 para a rede 192.168.0.0/24, com o custo acrescido de 1. Essa rota é recebida pelo computador B e também pelo roteador 3. Finalmente, o roteador 3 informa a rede 192.168.1.0/24 sobre a rota default, repassando a oferta de rota com o custo acrescido de 1, através da mensagem RIP response. Tabela de Roteamento do Roteador 1 ROTEADOR 3 Destino Gateway Interface Custo Tipo 192.168.1.0/24 direto 2 0 local 192.168.0.0/24 direto 1 0 local 200.0.0.0/24 192.168.0.1 1 1 RIP 0.0.0.0/0 192.168.0.1 1 3 RIP Gateway Interface Custo Tipo 192.168.1.0/24 192.168.0.2 2 1 RIP 192.168.0.0/24 direto 2 0 local 200.0.0.0/24 direto 1 0 local 0.0.0.0/0 200.0.0.2 1 2 RIP ROTEADOR 2 Destino A figura mostra como ficaria a tabela de roteamento dos roteadores 2 e 3, após a estabilização da criação das rotas pelo RIP. A última coluna da tabela indica se a rota foi criada localmente (isto é, de forma manual pela atribuição de um endereço IP para interface do roteador) ou através do RIP. Em todos os cenários de RIP ilustrados anteriormente, nós omitimos todas as mensagens de rota que seriam ignoradas pelo roteador. Observe que, se um roteador receber uma oferta de rota com um custo superior aquele que ele já possui em sua tabela, a mensagem será ignorada. As rotas criadas pelo RIP não são permanentes. Elas precisam ser renovadas periodicamente, caso contrário, elas serão consideradas inativas (terão seu custo alterado para 16) e serão posteriormente removidas nas tabelas de roteamento. Após a criação das rotas nos roteadores, as mensagens RIP response continuam a ser enviadas de forma periódica a cada 30 segundos. Esse procedimento é necessário, pois ele é utilizado para detectar de forma automática a ocorrência de falhas na rede. Se um roteador deixar de receber a oferta de uma rota por mais do que 180 segundos (isto é, se 6 mensagens RIP forem perdidas em seqüência) a rota será considerada obsoleta, e seu custo será elevado para 16. O temporizador que controla quando a rota se torna obsoleta denomina-se “time-out timer”. Se após esse período, o roteador continuar sem receber a oferta da rota por mais 120 segundos, a rota será removida da tabela de roteamento. O temporizador que controla a remoção das rotas é denominado “garbage collection timer”. OSPF: Open Shortest Path First Hello [multicast] Hello [multicast] Database Description [unicast] Database Description [unicast] A Link State Request [unicast] B Link State Request [unicast] Link State Update [multicast] Link State Update [multicast] Link State Acknowledge [unicast] Link State Acknowledge [unicast] O OSPF é um protocolo de estado de enlace, considerado mais eficiente e escalável que o RIP. Além de ser mais escalável, uma diferença importante do OSPF em relação ao RIP é que ele permite utilizar parâmetros mais genéricos para cálculo das métricas das rotas (como levar em conta a velocidade dos enlaces), ao invés de usar simplesmente o número de saltos. Diferente do RIP que é encapsulado em UDP, o OSPF é encapsulado diretamente no IP (protocolo tipo 89). O OSPF para redes IPv4 está na versão 2, e é definido pelas RFCs 2328 e 1246. As mensagens OSPF são mostradas na figura. De acordo com seu tipo, elas podem ser transmitidas em unicast ou multicast. Os seguintes endereços de multicast são reservados para o uso do OSPF: 224.0.0.5 e 224.0.0.6. O multicast é utilizado sempre que a mesma mensagem puder interessar a mais do que um roteador simultaeamente. As mensagens OSPF são as seguintes (listadas na seqüência mais comum de uso): 1.Hello: usada para descobrir vizinhos e manter o relacionamento entre eles 2.Database Description (Descrição da Base de Dados): lista um diretório de entradas de estado de enlace 3.Link State Request (Solicitação do Estado de Enlace): requisita uma ou mais informações específicas de estado de enlace 4.Link State Update (Atualização do Estado de Enlace): envia a informação de uma ou mais entradas de estado de enlace (LSA - Link State Advertisement) 5.Link State Acknowledge (Reconhecimento do Estado de Enlace): confirma o recebimento seguro da informação de estado de enlace. 28 Terminologia OSPF BACKBONE OSPF Area 0.0.0.0 Area 0 N1 Area 3 Roteador de Fronteira de Área (ABR) R0 N2 R1 Fronteira de AS R3 Area 1 R2 R4 R8 R6 R5 Roteador de Fronteira de AS (ASBR) R7 LSA NSA N1 Area 2 (Stub) Rx Rede RIP Conforme discutimos anteriormente, os protocolos de estado de enlace, como o OSPF, adotam o conceito de divisão em áreas, a fim de diminuir os recursos de memória e processamento gastos no roteador. As áreas são organizadas em uma hierarquia de dois níveis: área zero: backbone do AS e demais áreas: conectadas ao backbone. Se uma única área for utilizada, a quantidade de roteadores é limitada (menos que 200 para roteadores legados). Quando a divisão em áreas é adotada, os roteadores recebem a seguinte denominação: Roteadores Intra-Area: Conhecem apenas a topologia de rede do interior de sua própria área. Roteadores de Fronteira de Área (ABR): Conhecem duas ou mais áreas aos quais estão diretamente conectados. Esse roteadores efetuam agregação de rotas utilizando CIDR (a agregação pode ser ativada ou não). Roteadores de Fronteira de AS (ASBR): Trocam informações com outros AS e podem pertencer a qualquer área. As áreas do OSPF podem ainda, ser dos seguintes tipos: Áreas Stub: Utilizadas para proteger roteadores com pouca capacidade de CPU ou memória. Esse tipo de área é configurada no ABR, que propaga apenas uma rota padrão para os demais roteadores da área. Not So Stubby Area (NSSA): Uma LSA especial denominada LSA-NSSA é utilizada para propagar rotas de uma área Stub para outras áreas que não suporte OSPF (por exemplo RIP). Essa mensagem tem um campo adicional que permite apontar uma gateway diferente do roteador anunciante. Enlaces Virtuais: Permitem criar enlaces virtuais (não físicos) usados para aumentar a conectividade da malha OSPF. Exemplo: interconectar duas áreas adjacentes utilizando um roteador que não tem interface direta com a Área 0. Roteador Designado (Link State Update) vários LSA Roteador Designado de Backup Roteador Designado (Link State Update) vários LSA [224.0.0.5] meio de múltiplo acesso (Link State Update) vários LSA [224.0.0.6] O objetivo do OSPF é que os roteadores de uma rede tenham um conhecimento dos demais roteadores e de suas interfaces. Para isso, os roteadores usam um conjunto de mensagens para fazer uma sincronização de suas “Bases de Estado de Enlace”. Para evitar que informações em excesso sejam trocadas pela rede, a seguinte estratégia é adotada: 1.O roteador anuncia uma lista de enlaces que ele conhece (DataBase Description). Essa mensagem lista os identificadores de entrada da base, mas não envia os dados propriamente dito. 2.O roteador que recebe o anúncio solicita apenas as entradas que estão faltando (Link State Request). 3.O roteador que fez o anúncio envia mensagens contendo os LSA solicitados (Link State Update) 4.O roteador que recebeu o anúncio, confirma o recebimento (Link State Acknoledge) Dependendo da topologia da rede, o processo de sincronização pode levar a um número excessivo de mensagens, pois a mesma base de dados precisará ser replicada em vários roteadores. Se esses roteadores estiverem interligados através de um meio de múltiplo acesso (por exemplo, um HUB ou SWITCH), isto é, um meio com suporte a multicast, então a mesma mensagem poderá ser enviada simultaneamente para vários roteadores da rede, levando a uma redução da quantidade de mensagens na rede, e a um processo mais rápido de sincronização das bases de estado de enlace. Para reduzir a quantidade de mensagens trocadas na rede, além do multicast, o OSPF utiliza uma eleição de dois roteadores denominados: Roteador Designado e Roteador Designado Backup. Essa eleição é feita através das mensagens de hello, que são enviadas em multicast para o endereço 224.0.0.5. A função desses roteadores é evitar o envio de informações duplicadas na rede. Após a eleição, os anúncios de LSA são feitos ao roteador designado e ao roteador designado de backup usando um endereço de multicast 224.0.0.6. O roteador designado distribui os anúncios usando o endereço de multicast 224.0.0.5. Cabeçalho OSPF Byte 2 Byte 1 Version (2) Byte 3 Tipo de Mensagem Byte 4 Tamanho da Mensagem Identificador de Roteador Identificador de Área Checksum da mensagem Tipo de Autenticação Dados de autenticação ... Reservado ID de Chave Tamanho da Autentic. Número de sequência Cabeçalho OSPF Todas as mensagens OSPF possuem um cabeçalho comum, conforme indicado na figura. A versão atual do OSPF é a 2. O tipo da mensagem identifica qual mensagem OSPF está sendo transportada após o cabeçalho. Um roteador OSPF deve ter um identificador único em todo o sistema autônomo. Essa identificação é feita através de dois campos do cabeçalho: identificador de roteador e identificador de área. O identificador de roteador é, por recomendação, o menor endereço IP do roteador. O identificador de área identifica a área OSPF a qual a interface que enviou a mensagem pertence. Esse parâmetro é configurado pelo administrador do roteador. Assim como o RIPv2, o OSPF permite incluir informações de autenticação nas mensagens OSPF, para evitar que roteadores “mal-intecionados” ou “mal-configurados” contaminem a base de estados de enlace da rede. Os campos Tipo de Autenticação, Dados de Autenticação, ID de Chave, Tamanho da Autenticação e Número de Seqüência, estão todos relacionados ao processo de autenticação. Os seguintes tipos de autenticação são suportados: tipo 0: sem autenticação (os campos de autenticação são ignorados) tipo 1: senha simples (utiliza uma senha de 64 bits não criptografada) tipo 3: autenticação criptográfica MD5 Mensagem Hello Byte 2 Byte 1 Byte 3 Byte 4 Máscara de rede Opções Intervalo de Hello Prioridade Roteador Intervalo de morte do roteador Roteador designado Roteador designado de backup Primeiro Vizinho Outros Vizinhos Mensagem Hello A mensagem Hello permite detectar novos vizinhos (roteadores com suporte a OSPF) e verificar se eles estão ativos. As mensagens Hello são enviadas em intervalos de 10 segundos. Caso um roteador deixe de enviar mensagens Hello por mais do que 40 segundos, ele é considerado inativo. As mensagens Hello também são usadas para eleger o roteador designado. Quando o serviço OSPF é configurado em um roteador, o administrador de rede pode setar um valor de “Prioridade do Roteador”, que é transportado na mensagem Hello. O roteador com maior prioridade é eleito. Caso haja empate, o desempate entre prioridades é feito para o roteador com ID mais alto (o ID é geralmente o menor endereço IP do roteador). A mensagem Hello também carrega a lista de todos os vizinhos conhecidos pelo roteador. Os vizinhos são identificados pelo seu ID (menor endereço IP). Mensagem DataBase Description Byte 2 Byte 1 Byte 3 MTU da Interface Byte 4 Opções Reservado I M S Número de sequência da descrição do banco de dados Idade do Estado de Enlace Opções Tipo do Est. Enlace Roteador Anunciante Número de sequência do Estado de Enlace Checksum Tamanho Outros Cabeçalhos de Anúncio de Estado de Enlace LSA Header Identificador de Estado de Enlace .... Database Description A mensagem database description transporta um sumário da base de estados de enlace. Cada entrada da base corresponde a informação sobre um enlace de um roteador da rede. O anúncio completo de uma entrada da base é denominado LSA (Link State Advertisement). A mensagem database description não transporta todos os dados da entrada, somente seu cabeçalho. Por isso, a mensagem é composta por uma lista de “LSA Headers”. O objetivo dessa mensagem é oferecer uma lista de tudo o que o roteador conhece sobre a rede. Se algum roteador estiver interessado em obter mais informações sobre um dado enlace, então ele precisará fazer uma solicitação explícita do LSA desejado, utilizando a mensagem “Link State Request”. O campo MTU indica o tamanho máximo do pacote que a interface que enviou a mensagem é capaz de transportar sem fragmentação. O campo opções traz diversas informações sobre a interface, como o suporte a multicast e a capacidade de criar circuitos. O LSA Header possui vários campos, mas o mais importante é o identificador de estado de enlace, que nada mais é do que o endereço IP da interface sobre a qual é possível solicitar mais informações. 33 Mensagens Link State Update Byte 1 Byte 2 Byte 3 Byte 4 Contador de Anúncios (número de LSAs) Opções Idade do Estado de Enlace (LS) Tipo de LS Identificador de estado do enlace Roteador Anunciado Número de Sequência de Estado do Enlace Checksum do Estado de Enlace (LS) Flags Reservado Tamanho Número de Enlaces Identificador de Enlace (IP ou Subrede) Dado do Enlace (Máscara de Subrede) Tipo de Enlace Contador de TOS Métrica Padrão TOS Reservado Métrica do TOS Link State Acknowledge (LSU = N X LSA) A mensagem de Link State Update pode transporte um ou mais anúncios de estado de enlace (LSA). No OSPF são utilizados 4 tipos de LSA: Tipo 1: Router-Link Entry. Correspondem a anúncios de enlaces de roteador. São produzidos por todos os roteadores e são espalhados dentro de uma única área. Tipo 2: Network-Link Entry. Correspondem a anúncios de enlaces de rede. São produzidos pelo roteador designado e são espalhados em uma única área. Tipo 3 e 4: Summary-Link Entry. Correspondem a anúncios resumidos de enlace. São produzidos pelos roteadores de fronteira de área ABR. Descrevem rotas para destinos em outras áreas e para os roteadores de fronteira de AS. Tipo 5: Autonomous System External Link Entry. Correspondem a anúncios de enlace oriundos de outros sistemas autônomos. São produzidos pelos roteadores de fronteira AS e são espalhados por todos as áreas. Mensagens Link State Acknowledge Byte 2 Byte 1 Byte 3 Idade do Estado de Enlace Byte 4 Opções Tipo do Est. Enlace Identificador de Estado de Enlace Número de sequência do Estado de Enlace Checksum Tamanho Outros Cabeçalhos de Anúncio de Estado de Enlace .... LSA Header Roteador Anunciante Link State Acknowledge A mensagem de reconhecimento de estado de enlace (link state acknowledge), é enviada pelos roteadores que receberam anúncios de estado de enlace (LSA), através de mensagens de link update. Essa mensagem é muito similar a mensagem de descrição de base dados (database description), pois ela é formada por uma lista de LSA headers que estão sendo confirmados. Uma vez que todo os processo de sincronização foi encerrado, todas as mensagens OSPF, com exceção da mensagem Hello, param de ser enviadas. Novas mensagens de database description, link state update e link state acknowledge só serão enviadas em duas situações: quando um roteador apresentar falha na rede ou quando um novo enlace for descoberto por algum roteador da rede. O caso de falha é detectado através das mensagens Hello. Quando um roteador percebe que algum de seus vizinhos parou de enviar mensagens Hello por mais do que 40 segundos, ele considera que os enlaces do vizinho estão inativos, e envia mensagens para os demais roteadores informado apenas essa alteração. O mesmo acontece quando um novo roteador é introduzido na rede. BGP: Border Gateway Protocol Open [unicast] Open ou Notification [multicast] A Update [unicast] B Update [unicast] BGP Speaker KeepAlive [unicast] KeepAlive [unicast] BGP Speaker Route Refresh [unicast] Route Refresh [unicast] O BGP (Border Gateway Protocolol) é um protocolo de roteamento por vetor de caminho. Seu uso é padronizado para sincronização de rotas entre sistemas autônomos (AS). A versão atualmente utilizada do BGP é a 4, definida na RFC 1771. A motivação para criação do BGP foi segmentar a Internet em domínios (ASs) administrados independentemente. Sem essa divisão, a quantidade de rotas divulgadas na Internet seria incrivelmente alta, levando a um colapso da rede. Graças ao BGP, é possível divulgar apenas rotas agregadas para fora de um AS. O BGP é um protocolo mais restritivo do que o OSPF, uma vez que nesse modelo, deseja-se ter um controle mais apurado de quais rotas são divulgadas e para quem. Por essa razão, o BGP foi desenvolvido sobre o TCP (porta padrão 179). De forma semelhante ao OSPF, o BGP utiliza um cabeçalho padrão seguido de 5 tipos de mensagem distintos. Open (Tipo 1): inicia uma sessão e negocia recursos opcionais entre um par de roteadores BGP Update (Tipo 2): anuncia informações de roteamento de um roteador BGP para outro Notification (Tipo 3): usada para indicar problemas com as mensagens Open ou Update KeepAlive (Tipo 4): utilizada para verificar se o parceiro está ativo Route-Refresh (Tipo 5): requisita que um roteador BGP re-anuncie todas as suas rotas Cabeçalho BGP Byte 1 Byte 2 Byte 3 Byte 4 Marcador Marcador (cont.) Marcador (cont.) Marcador (cont.) Tamanho da Mensagem Tipo da Mensagem Versão (4) Cabeçalho BGP Open O cabeçalho BGP contém apenas quatro campos: Marcador, Tamanho da Mensagem, Tipo de Mensagem e Versão. O campo Marcador de 16 bytes existe por razões históricas, e sua principal função é marca o início de uma mensagem BGP. Todas as mensagens BGP trazem esse campo preenchido com 0xff....ff. O campo tamanho tem 2 bytes, mas o tamanho máximo de uma mensagem BGP é 4096 bytes. O campo Tipo de 1 byte define um dos cinco tipos possíveis de mensagem BGP. Um segmento TCP pode transmitir várias mensagens BGP simultaneamente. Por exemplo, é possível ter em um único segmento uma mensagem Keep Alive e várias mensagens Update. Mesmo nesse caso, o cabeçalho BGP precisa ser repetido para cada mensagem. Cabeçalho BGP e Open Byte 2 Byte 1 Byte 3 ID AS Byte 4 Tempo de Suspensão Identificador BGP Tamanho Opcoes Parâmetros Opcionais Parâmetros Opcionais Open A mensagem OPEN é utilizada para estabelecer um canal de comunicação BGP entre um roteador e seu parceiro. Os parceiros BGP não são descobertos como no caso do OSPF, mas indicados pelo administrador do roteador durante o processo de configuração do BGP. Isso acontece porque no BGP estamos falando de troca de rotas entre redes pertencentes a instituições diferentes. Então, somente aquelas instituições que possuem algum tipo de acordo, irão participar de uma negociação BGP. Os campos da mensagem Open são os seguintes: Identificador de AS: número de 16 bits obtido junto a autoridade de registro (e.g. 61033) ou atribuído de forma privada (para comunicação entre AS de uma mesma instituição isolados da Internet). Os números de AS privado devem estar entre 64512 a 65535. Tempo de Suspensão: determina o tempo que o roteador espera (em segundos) sem keep alive, antes de considerar a sessão (isto é, o roteador parceiro) como morta. Geralmente as mensagens de Keep Alive são enviadas a cada 30 segundos, e o tempo de suspensão é de 90 segundos (isto é, a perda de 3 mensagens consecutivas indica que o roteador deve estar inoperante). Identificador de BGP: é o endereço IP da interface do roteador Parâmetros Opcionais: seguem o formato TLV (Tipo – Tamanho – Valor). Existem inúmeras opções disponíveis, com por exemplo, opções de autenticação e capacidades adicionais - AS 4 bytes. Mensagem BGP: Update Byte 1 Byte 2 Byte 3 Byte 4 Tamanho das Rotas Retiradas Corresponde a uma lista de prefixos que está deixando de ser ofertado pelo roteador. Exemplo: 200.1.2.0/24, 200.1.3.0/24, 60.1.0.0/16, etc. Tamanho do Atributos do Caminho Lista de atributos da rota que está sendo anunciada. Cada atributo segue o formato Tipo-Valor-Comprimento Tamanho do NLRI Corresponde a uma lista de prefixos que pode ser acessado através da rota anunciada. Exemplo: 200.1.2.0/24, 200.1.3.0/24, 60.1.0.0/16, etc. rotas retiradas atributos de caminho (rota anunciada) informações de acesso a camada de rede Update A mensagem de update permite adicionar ou remover novas rotas. Ela é composta de 3 seções: Rotas Retiradas (Withdraw Routes), Atributos de Caminho (Path Attributes) e Informações de Acesso a Camada de Rede (NLRI - Network Layer Reachability Information). A seção de rotas retiradas só será utilizada caso o roteador deseje remover a oferta de rotas feitas anteriormente. Caso não haja rotas a serem retiradas, o valor do campo "Tamanho das Rotas Retiradas" é zero. As rotas removidas são identificas pelo seu prefixo, utilizando dois campos: Tamanho (Número de Bits do Prefixo, similar a máscara de subrede) e o Prefixo. Por exemplo, para remover a rota 200.1.2.0/24 o BGP informaria: Tamanho igual a 24 e Prefixo igual a 200.1.2. Bits iguais a zero são sempre adicionados para que o prefixo seja múltiplo de 8. A seção de atributos de caminho e informações de acesso a camada de rede [NLRI] estão diretamente relacionadas. A seção de atributos de caminho define um conjunto de atributos que é comum a todas as rotas anunciadas pela mensagem UPDATE. As rotas anunciadas, propriamente ditas, são listadas na seção NLRI na forma de uma lista de prefixos, representados de forma idêntica ao da seção de rotas retiradas, isto é, com os campos Tamanho e Prefixo. Atributos de Caminho 200.1.2.0/24 AS-PATH: {SA1} NEXT-HOP: B NLRI: {2001.2.0/24, 200.1.3.0/24} C D update SA1 A AS-PATH: {SA2} NEXT-HOP: H NLRI: {200.2.2.0/24, 200.2.3.0/24} B 200.1.3.0/24 G H update AS-PATH: {SA1,SA2} NEXT-HOP: H NLRI: {2001.2.0/24, 200.1.3.0/24} SA2 E F 200.2.3.0/24 K 200.2.2.0/24 L SA3 I J Em uma única mensagem Update é possível anunciar um conjunto de prefixos. Contudo, todos os prefixos anunciados em uma mensagem precisam pertencer a um caminho idêntico. Caso um roteador BGP precise anunciar múltiplos prefixos com caminhos distintos, múltiplas mensagens de Update precisam ser enviadas. Considere o exemplo mostrado na figura. O roteador BGP "D" do sistema autônomo 1 deseja anunciar os prefixos 200.1.2.0/24 e 200.1.3.0/24. Ele pode fazer isso enviando uma única mensagem Update para o roteador H do sistema autônomo 2, pois ambos os prefixos são acessíveis pela mesma rota. Uma rota BGP é descrita por um conjunto amplo de atributos, mas os dois principais são: AS-PATH: seqüência completa de AS até o destino anunciado, usado para detectar loops NEXT-HOP: endereço do roteador BGP que corresponde ao primeiro salto do caminho O roteador H por sua vez, precisa anunciar quatro prefixos para o roteador L do sistema autônomo 3. Dois desses prefixos pertencem ao próprio sistema autônomo 2 e dois prefixos são oriundos do sistema autônomo 1. Nesse caso, como o atributo AS-PATH não é idêntico para todos os prefixos, duas mensagens Update precisam ser utilizadas. Conclusão • A Internet está organizada em sistemas autônomos (AS) • A configuração de rotas dos roteadores da Internet é realizada de forma automática, utilizando-se protocolos de roteamento. • Os protocolos de roteamento para rede IP se dividem em duas grandes categorias: IGP (configuração de rotas no interior do AS) e EGP (configuração de rotas entre AS). • Existem vários protocolos IGP para redes IP: RIP, OSPF, IS-IS. Os protocolos baseados em estado de enlace, como o OSPF e o IS-IS são considerado mais adequados para redes grande. • O único protocolo aceito como EGP para Internet é o BGP. Nesse módulo, nós apresentamos o conceito de sistemas autônomos e protocolos de roteamento. O uso de protocolos de roteamento é bastante comum em empresas de grande porte e obrigatório em operadoras que prestam serviço de acesso a Internet. Em redes de pequeno porte é ainda possível configurar roteadores manualmente, ou utilizar um protocolo de roteamento simples, como o RIP. Para redes de grande porte, contudo, os protocolos de roteamento trazem a vantagem de serem capazes de corrigir rotas de forma dinâmica e automática. Isto é, se existir caminhos alternativos, os protocolos de roteamento são capazes de ativar rotas de maior custo no caso de falhas físicas ou mesmo de software das rotas de menor custo. Para os alunos que desejarem procurar mais informações sobre a organização da Internet em sistemas autônomos, recomenda-se a consulta dos seguintes endereços: http://logbud.com/visual_trace (rastreamento de rotas entre AS) http://www.asnumber.networx.ch/ (plugin de AS para o firefox) http://www.bgp4.as/internet-exchanges (IXP no mundo) http://bgplay.routeviews.org/bgplay/ (visualização de rotas entre AS) 41