Redes de Dados

Como funcionam os Roteadores




Introdução

A função da camada de rede é realizar a entrega consistente de pacotes fim-a-fim, para aplicações ou outras camadas de protocolos, através de uma infraestrutura de redes interconectadas. Para isso, a mesma executa funções de determinação de caminhos de comunicação, de comutação de pacotes por estes caminhos e de processamento de rotas para um determinado sistema de comunicação.

A função de determinação de caminhos (ou roteamento) permite que os roteadores selecionem qual sua porta mais apropriada para repassar os pacotes recebidos. O serviço de roteamento permite que o roteador avalie os caminhos disponíveis para um determinado destino e estabeleça qual o caminho de preferência para o envio de pacotes para este destino.

Na determinação de caminhos de comunicação, os serviços de roteamento executam:

  • Inicialização e manutenção de tabelas de rotas;
  • Processos e protocolos de atualização de rotas;
  • Especificação de endereços e domínios de roteamento;
  • Atribuição e controle de métricas de roteamento.



As informações de rotas para a propagação de pacotes podem ser configuradas de forma estática pelo administrador da rede ou serem coletadas através de processos dinâmicos executando na rede, chamados protocolos de roteamento. Note-se que roteamento é o ato de passar adiante pacotes baseando-se em informações da tabela de roteamento. Protocolos de roteamento são protocolos que trocam informações utilizadas para construir tabelas de roteamento.

É importante distinguir a diferença entre protocolos de roteamento (routing protocols) e protocolos roteados (routed protocols).

Protocolo roteado é aquele que fornece informação adequada em seu endereçamento de rede para que seus pacotes sejam roteados, como o TCP/IP e o IPX. Um protocolo de roteamento possui mecanismos para o compartilhamento de informações de rotas entre os dispositivos de roteamento de uma rede, permitindo o roteamento dos pacotes de um protocolo roteado. Note-se que um protocolo de roteamento usa um protocolo roteado para trocar informações entre dispositivos roteadores. Exemplos de protocolos de roteamento são o RIP (com implementações para TCP/IP e IPX) e o EGRP.

Roteamento estático e roteamento dinâmico

A configuração de roteamento de uma rede específica nem sempre necessita de protocolos de roteamento. Existem situações onde as informações de roteamento não sofrem alterações, por exemplo, quando só existe uma rota possível, o administrador do sistema normalmente monta uma tabela de roteamento estática manualmente. Algumas rede não têm acesso a qualquer outra rede, e portanto não necessitam de tabela de roteamento. Dessa forma, as configurações de roteamento mais comuns são:

  • Roteamento estático: uma rede com um número limitado de roteadores para outras redes pode ser configurada com roteamento estático. Uma tabela de roteamento estático é construída manualmente pelo administrador do sistema, e pode ou não ser divulgada para outros dispositivos de roteamento na rede. Tabelas estáticas não se ajustam automaticamente a alterações na rede, portanto devem ser utilizadas somente onde as rotas não sofrem alterações. Algumas vantagens do roteamento estático são a segurança obtida pela não divulgação de rotas que devem permanecer escondidas; e a redução do overhead introduzido pela troca de mensagens de roteamento na rede.
  • Roteamento dinâmico: redes com mais de uma rota possível para o mesmo ponto devem utilizar roteamento dinâmico. Uma tabela de roteamento dinâmico é construída a partir de informações trocadas entre protocolos de roteamento. Os protocolos são desenvolvidos para distribuir informações que ajustam rotas dinamicamente para refletir alterações nas condições da rede. Protocolos de roteamento podem resolver situações complexas de roteamento mais rápida e eficientemente que o administrador do sistema. Protocolos de roteamento são desenvolvidos para trocar para uma rota alternativa quando a rota primária se torna inoperável e para decidir qual é a rota preferida para um destino. Em redes onde existem várias alternativas de rotas para um destino devem ser utilizados protocolos de roteamento.
Protocolos de roteamento

Todos os protocolos de roteamento realizam as mesmas funções básicas. Eles determinam a rota preferida para cada destino e distribuem informações de roteamento entre os sistemas da rede. Como eles realizam estas funções, em particular eles decidem qual é a melhor rota, é a principal diferença entre os protocolos de roteamento.

Algumas das características que diferenciam os protocolos de roteamento são:

  • Convergência: quando a topologia de uma rede muda graças a crescimento, reconfiguração ou falha, a base de conhecimento da topologia da rede, representada pelas tabelas de roteamento nos roteadores, deve também mudar para se adaptar à nova topologia. Esta adaptação ou convergência deve ser tão rápida quanto possível, para reduzir o período de instabilidade de uma rede.
  • Overhead: o processo de roteamento não deve consumir recursos excessivos para atingir seus objetivos. A necessidade de se propagar as informações de roteamento entre os roteadores de maneira rápida e eficiente deve considerar a banda adicional dos enlaces de comunicação utilizada para tal, bem como a complexidade dos algorítmos envolvidos deve considerar a capacidade de processamento dos roteadores que será desviada do tratamento dos pacotes para a implementação destes algoritmos.
  • Cálculo das métricas: a métrica de um determinado caminho para o envio de pacotes através de uma rede é a medida da qualidade deste caminho, sendo que quanto menor a métrica de um caminho, melhor ele é. Os algorítmos de roteamento calculam a métrica baseando-se em uma única característica de um caminho ou combinando várias características, como:
    • Capacidade de tráfego de um enlace (ou banda disponível);
    • Atrasos envolvidos no enlace, que podem ser influenciados pela banda disponível ou por possíveis congestionamentos no mesmo;
    • Confiabilidade, referente à taxa de erros presente no enlace;
    • Carga, que demonstra a ocupação do enlace;
    • Hop count, ou o número de roteadores pelos quais um pacote passa até chegar ao destino.
A implementação de um protocolo de roteamento envolve a execução de um algoritmo para a determinação das rotas para envio de pacotes. Estes algorítmos podem ser classificados em dois tipos principais: distance-vector e link-state.

Algoritmos distance-vector




Os algoritmos distance-vector mantém uma base de dados de informação de topologia que permite a determinação da direção (vector) e distância para qualquer enlace na rede. Tais algoritmos não permitem a um roteador conhecer a exata topologia de uma inter-rede, pois armazenam nas tabelas de rotas somente a informação da sua porta ou do roteador (direção) para o qual o pacote deve ser enviado e da distância (métrica) que o mesmo deve percorrer até o destino. As atualizações de rotas destes algoritmos envolvem o envio da tabela de rotas inteira de um roteador para os roteadores vizinhos, e são executadas periodicamente ou toda vez que for detectada uma

mudança na topologia da rede. Quando um roteador recebe uma atualização de um roteador vizinho, ele verifica se esta atualização envolve informação de uma melhor rota para alguma das redes por ele conhecidas. Caso positivo, ele atualiza sua própria tabela de rotas.

Algoritmos link-state

Os algoritmos link-state (também conhecidos como shortest-path-first) mantém uma base de dados complexa com informações de todos os roteadores e como eles se interconectam. Estas informações permitem a recriação da exata topologia da inter-rede. As atualizações de rotas destes algorítmos em um roteador envolvem o envio para seus roteadores vizinhos de mensagens chamadas LSP(link state packets) que descrevem o estado corrente de todos os enlaces aos quais ele está conectado. Os roteadores vizinhos por sua vez armazenam estas informações em uma base de dados de estado de conexões e repassam estes LSP para todos os seus vizinhos, e assim sucessivamente. Desta forma todo roteador na inter-rede recebe o original ou uma cópia do LSP enviado por qualquer outro roteador. Cada vez que um LSP causa uma mudança na base de dados de estado de conexão de um roteador, o algorítmo recalcula os melhores caminhos e atualiza a tabela de rotas deste roteador.

Protocolos de roteamento interno

Protocolos de roteamento são divididos em dois grupos gerais: protocolos internos e externos. Protocolos internos são utilizados dentro de sistemas de rede independentes. Na terminologia TCP/IP, estes sistemas independentes são chamados de sistemas autônomos (AS – autonomous systems). Em sistemas autônomos, informações são trocadas através do protocolo interno escolhido pelo administrador do sistema autônomo. Existem vários protocolos internos, como por exemplo RIP e Hello.

Rounting Information Protocol (RIP) é o protocolo interno mais comum. RIP seleciona a rota com o menor “hop count” (métrica) como a melhor rota. O Hop count representa o número de gateways através do qual os dados devem passar para chegar ao destino. RIP assume que a melhor rota é a que utiliza o menor número de gateways. Esta forma de escolher a melhor rota algumas vezes é chamado de algoritmo distance-vector.

O caminho mais longo que RIP aceita são 15 hops. Se a métrica de uma rota é maior que 15, RIP considera o destino unreachable e descarta a rota. Por isso, RIP não pode ser utilizado em sistemas autônomos onde as rotas ultrapassam 15 hops. Além disso, RIP assume que o menor caminho é o melhor, sem considerar o congestionamento da rota. Existem protocolos internos que superam estas limitações.

Hello é um protocolo interno desenvolvido para calcular a melhor rota baseado no delay como o fator decisivo para escolher a melhor rota. Delay é o tempo que um pacote leva para fazer a viagem entre a origem e o destino, através da rota. Um pacote Hello contém a hora em que foi enviado. Quando o pacote chega ao destino, o sistema receptor subtrai a hora registrada no pacote da hora atual do sistema, para estimar quanto tempo o pacote levou para chegar.

Protocolos de roteamento externos

Protocolos de roteamento externos são utilizados para trocar informações de roteamento entre sistemas autônomos. As informações de roteamento que passam entre sistemas autônomos são chamadas de informações de alcançabilidade (reachability). Informações de alcançabilidade são informações sobre quais redes podem ser alcançadas através de um sistema autônomo específico.

Exterior Gateway Protocol (EGP) é um dos protocolos de roteamento externos mais comum. Implementações de EGP não tentam escolher a melhor rota para um destino. EGP atualiza informações de distance-vector, mas não avalia estas informações. Os valores de distance-vector de sistemas autônomos distintos não são comparados diretamente, porque cada sistema autônomo pode utilizar um critério diferente para desenvolver estes valores. EGP deixa a decisão da “melhor” rota para outro protocolo.

Um outro protocolo de roteamento, Border Gateway Protocol (BGP), está começando a substituir EGP. Assim como EGP, BGP troca informações de alcançabilidade entre sistemas autônomos, mas BGP pode fornecer mais informações sobre cada rota, e pode utilizar estas informações para selecionar a melhor rota. BGP chama estas informações de “atributos de caminho”. Estes atributos podem incluir informações utilizadas para selecionar rotas baseando-se em preferências administrativas. Este tipo de roteamento (algumas vezes chamado de policy based routing) utiliza razões não técnicas (por exemplo, política, organizacional ou de segurança) para fazer decisões de roteamento. BGP é necessário para implementar uma nova estrutura de rede composta de sistemas autônomos equivalentes que é mais “expansível” que a estrutura hierárquica antiga.

É importante lembrar que a maioria dos sistemas não precisam de um protocolo de roteamento externo. Protocolos de roteamento externo só são necessários em sistemas autônomos e que precisam trocar informações entre si. Somente o gateway que conecta os dois sistemas autônomos precisa executar um protocolo de roteamento externo.

Escolha do protocolo de roteamento

Embora existam vários protocolos de roteamento, normalmente é fácil fazer uma escolha. Para redes locais, RIP é a escolha mais comum. Se você precisa de protocolo de roteamento externo, observe que, para que sistemas autônomos se comuniquem, eles devem utilizar o mesmo protocolo. Portanto, se já existe um sistema autônomo funcionando, o novo sistema autônomo deve utilizar o mesmo protocolo de roteamento que o sistema autônomo existente.

A seguir são apresentados dois protocolos de roteamento: RIP e EGP.

RIP – Rounting Information Protocol

Na inicialização do protocolo RIP de um roteador, ele envia um pedido para atualização de informações de roteamento, e ouve as respostas ao seu pedido. Quando um sistema configurado para fornecer informações RIP ouve o recebe um pedido, ele responde com um pacote de atualização baseado nas informações de sua tabela de roteamento. O pacote de atualização contém o endereço destino da tabela de roteamento, e a métrica associada com cada destino. Pacotes de atualização são emitidos frequentemente, para informações de roteamento atualizadas.

Quando uma atualização RIP é recebida, o roteador atualiza a tabela de roteamento baseado nas informações da resposta. Se a atualização de roteamento contém uma rota para um destino que não consta na tabela local, a nova rota é acrescentada. RIP também remove rotas da tabela de roteamento. Existem duas maneiras disso ser feito. A primeira acontece quando o gateway para um destino indica que a rota possui mais que 15 hops, a rota é removida. A segunda é que RIP assume que um gateway que não envia informações de atualizações por um período excessivo de tempo não está operacional.

EGP – Exterior Gateway Protocol

EGP é um protocolo para troca de informações de roteamento com gateways de outros sistemas autônomos. Antes de enviar informações de roteamento, o sistema deve trocar mensagens “EGP Hello” e “EGP I-Heard-You” (I-H-Y) com o gateway. Hello e I-H-Y são pacotes EGP especiais utilizados para estabelecer um diálogo entre dois gateways que falam EGP. Computadores que comunicam-se através de EGP são chamados de EGP neighbors, e a troca de mensagens Hello e I-H-Y são chamadas “adquirindo um vizinho”.

Uma vez que o vizinho é adquirido, o sistema pede informações de roteamento do vizinho. Este pedido de informações é chamado de poll. O vizinho responde enviando um pacote de informações de alcançabilidade chamado update. Se o sistema recebe um poll de um vizinho, ele responde com seu pacote update.

Quando o sistema recebe um pacote update de seu vizinho, ele inclui as rotas do update na sua tabela de roteamento. Mas se o vizinho não responder em três poll consecutivos, o sistema assume que o vizinho não está ativo e remove a rota para o vizinho da tabela de roteamento.




Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *