Roteamento em redes de computadores Ismael Flach de Moura Gabriel Nozari Soares Thiago Reis de Souza Rafael dos Santos Diogo Sarmento São Leopoldo, 11 de Maio de 2015 Sumário O Protocolo EIGRP; Formato de Mensagens; Protocolo RTP; Algoritmo Dual; Tipos de Pacotes; Métricas; Convergência; Tabela de Roteamento; Sumarização; Comparação com RIP; Experimento Prático; O Protocolo EIGRP Enhanced Interior Gateway Routing Protocol; É um protocolo classless de vetor à distância criado e desenvolvido pela CISCO; Também possui características de estado de enlace, porém não pode ser chamado de protocolo híbrido! Ele utiliza o máximo de 220 saltos (hops), sendo 100 de default; Possui suporte a VLSM; É possível fazer sumarização automática ou manual. O Protocolo EIGRP O EIGRP é uma evolução de outro protocolo Cisco, o IGRP (Internal Gateway Routing Protocol); A principal motivação para criação do EIGRP foi a necessidade de criação a versão classless do IGRP; O Protocolo EIGRP Formato das Mensagens A porção dos dados de uma mensagem EIGRP é encapsulada em um pacote. Este campo de dados é chamado de Tipo/Tamanho/Valor ou TLV (Type/Length/Value). O cabeçalho do pacote EIGRP é incluído em todos os pacotes EIGRP, independentemente de seu tipo. O cabeçalho do pacote EIGRP e TLV são então encapsulados em um pacote IP. No cabeçalho de pacote IP, o campo de protocolo é definido como 88 para indicar EIGRP e o endereço de destino é definido para o endereço de multicast 224.0.0.10. Se o pacote EIGRP for encapsulado em um quadro Ethernet, o endereço MAC de destino também será um endereço multicast: 01-00-5E-00-00-0A. Mensagem EIGRP Encapsulada O campo Data Link Frame Header, contém as seguintes informações: Endereço de destino MAC = Multicast 01-00-5E-00-00-0A; Endereço de origem MAC = endereço da interface de envio; O IP Packet Header contém: IP Source Address = endereço de origem; IP Desationation Address = Multicast 224.0.0.10; Protocol Field = 88 para o EIGRP; Mensagem EIGRP Encapsulada No EIGRP Packet Header (Figura 2), temos dois campos importantes: Opcode = Tipo de pacote EIGRP: Update, Query, Reply e Hello; Autonomous System Numbers = ID para esse processo de roteamento EIGRP; Mensagens de parâmetros: A mensagem de parâmetros EIGRP, inclui os pesos que o EIGRP utiliza para sua métrica composta. Por padrão, somente a largura de banda e o atraso são considerados, portanto, o campo K1 para largura de banda e o campo K3 para atraso são ambos definidos como 1. Os outros valores K são definidos como zero e Hold Time representa o tempo máximo que o roteador deve esperar para o próximo pacote hello. Mensagens de IP interno e Externo. A mensagem IP interno é utilizada para anunciar as rotas do EIGRP dentro de um sistema autônomo. Os campos mais importante são: Os campos de Métrica; Delay = O atraso é calculado como a soma de atrasos da origem para o destino em unidades de 10 microssegundos Bandwidth = A largura de banda é a mais baixa largura de banda configurada de qualquer interface ao longo da rota. Mensagens de IP interno e Externo. O campo de máscara de subrede; Prefix Lenght. O campo de destino; Destination. A mensagem de IP Externo é utilizada quando rotas externas são importadas para o processo de roteamento EIGRP. O Protocolo RTP O RTP (Realible Transport Protocol), é o protocolo utilizado pelo EIGRP, ele é r esponsável por entrega garantida e ordenada de pacotes EIGRP para todos vizi nhos. O EIGRP foi criado como um protocolo de roteamento independente de camada de rede, portanto, não pode utilizar os serviços de UDP ou TCP porque o IPX e Appletalk não utilizam protocolos da pilha TCP/IP. O RTP envia pacotes por unicast ou multicast. Alguns pacotes EIGRP precisam ser transmitidos de forma confiável e outros não. Por exemplo, em uma rede qu e tem capacidade multicast, como a Ethernet, não é necessário o envio de men sagens confiáveis para todos os vizinhos individualmente. O EIGRP envia uma única mensagem multicast do tipo HELLO com uma indica ção no pacote, informando os receptores que o pacote não precisa ser reconhe cido. Outros tipos de pacote, como o UPDATE, necessitam ser reconhecidos e i sso é indicado no pacote. O Protocolo RTP A transmissão confiável tem uma provisão para enviar pacotes multicast rapidamente quando houver pacotes não reconhecidos pendentes. Essa medida ajuda a assegurar que o tempo de convergência continue baixo na presença de vários links de velocidade diferentes. Algoritmo DUAL O Diffusing Update Algorithm (DUAL) e usado no EIGRP para definir rotas livres de loop de forma dinâmica e otimizada. Ele permite que o EIGRP tenha um tempo de convergência comparável com os protocolos de estado de link, pois apenas os roteadores afetados por uma mudança na topologia são envolvidos no processo de recalculo de rota, o que permite que múltiplos roteadores sincronizem ao mesmo tempo. O DUAL usa o conceito de computação difusa para coordenar os dados trocados entre os roteadores, que faz uso de algoritmos de roteamento distribuído e que cresce ao incluir novos roteadores que são afetados por uma mesma alteração topológica e diminui ao excluir roteadores não afetados, o que permite o ajuste dinâmico de escopo e sua finalização rapidamente. Algoritmo DUAL Esse comportamento traz como beneficio um baixo uso de processamento nos roteadores, baixo uso da rede para transferência de dados, boa escalabilidade e complexidade inferior a outros protocolos IGP. Caracteristicas utilizados pelo algoritmo DUAL para evitar loops: Sucessor: Roteador vizinho que é utilizado para o encaminhamento de pacotes e é a rota de menor custo para a rede de destino; Distância viável (FD): Soma dos custos dos enlaces para alcançar a rede de destino. Também é conhecido como a métrica para a rota; Sucessor viável (FS): Sucessor confiável para um caminho alternativo para a rede, ou seja, um caminho de backup para um sucessor viável. Se trata de um vizinho que tem um caminho de backup sem loop para a mesma rede que o sucessor; Distância reportada (RD) ou Distância anunciada (AD): Métrica total ao longo de um caminho para uma rede de destino conforme anunciado por um vizinho de cima no EIGRP; Pacotes EIGRP O EIGRP utiliza os seguintes tipos de pacote diferentes: Pacotes Hello; Pacotes de Atualização (Update); Pacotes de Consulta e Resposta (Query e Reply); Estes pacotes fazem parte de todo o processo de detecção de vizinhos. Pacotes EIGRP Pacotes Hello Pacotes de atualização (Update) São utilizados pelo EIGRP para detectar vizinhos e formar adjacências com esses vizinhos. Os pacotes hello do EIGRP são multicasts e utilizam entrega não confiável. São utilizados pelo EIGRP para propagar informações de roteamento. Os pacotes de atualização são enviados somente quando uma métrica muda. Eles contêm apenas as informações de roteamento necessárias e são enviados somente aos roteadores que precisam. Estes pacotes utilizam entrega confiável e são enviados como multicast quando exigidos por vários roteadores, ou como unicast quando exigidos somente por um único roteador. Pacotes de Consulta e Resposta (Query e Reply) Ambos são utilizados pelo Algoritmo de Roteamento (DUAL) ao procurar redes e ao realizar outras tarefas. Consultas e respostas utilizam entrega confiável. Consultas utilizam multicast, enquanto respostas são sempre enviadas como unicast. Métricas O EIGRP apresenta um calculo de métrica baseado nos coeficientes “K”, os quais podem ser alterados pelo usuário para que o calculo de métrica se encaixe melhor em diferentes ambientes de rede. Cada “K” representa uma métrica diferente e os mesmos podem assumir valores de 0 ou 1, e seu valor influencia diretamente no calculo final da métrica. Abaixo segue a lista de “K’s” e seus valores padrão: K1: representa a banda disponível. Por padrão, seu valor é 1; K2: habilita a influencia do congestionamento de rede para simular a banda disponível para o calculo da métrica. Seu valor padrão é 0; K3: quando habilitado (k3 = 1) usa o valor de delay, também conhecido como latência, no calculo da métrica. Por padrão, seu valor é 1; K4: habilita o uso da qualidade do link para influenciar o calculo da métrica. Por padrão seu valor é 0; K5: representa a perda de pacotes. Seu valor padrão é 0; K6: representa um atributo de extensão. Existem 2 atributos de extensão atualmente, instabilidade e energia. Atualmente esse “K” não é usado. Métricas Segue abaixo o calculo usado pelo EIGRP: métrica = ([K1 * bandwidth + (K2 * bandwidth) / (256 - load) + K3 * delay] * [K5 / (reliability + K4)]) * 256 Esse calculo pode ser resumido de acordo com os valores definidos para os “K’s”. Quando K5 = 0, ela se resume para: métrica = ([k1 * bandwidth + (k2 * bandwidth)/(256 - load) + k3 * delay]) * 256 E quando os valores padrão de K estão em uso, a formula simplificada é: métrica = bandwidth + delay A banda (bandwidth) e o delay são calculados a partir das seguintes formula: bandwidth = (10000000/bandwidth(i)) * 256 delay = delay(i) * 256 Métricas Os roteadores cisco não fazem cálculos de ponto flutuante, logo em cada etapa do calculo os resultados obtidos são arredondados para o valor inteiro mais próximo. Abaixo temos um exemplo de topologia onde simularemos o calculo. Métricas Primeiramente, vamos calcular a rota pelo roteador “four”. Nesta rota, temos 2 valores de banda, 56 Kb e 10000 Kb, logo nosso valor para bandwith(i) = 56 Kb. Para delay, temos 2000, 100 e 100 respectivamente, logo delay(i) = 2000 + 100 + 100 = 2200. Usando a formula simplificada para o calculo da metrica temos: métrica = [10000000/bandwidth(i) + delay(i)] * 256 = [10000000/56 + 2200] * 256 = [178571 + 2200] * 256 = 180771 * 256 = 46277376 Métricas Na rota através do roteador “three” temos 128 Kb e 10000 Kb para banda, e 1000, 100 e 100 para delay, logo bandwith(i) = 128 Kb e delay(i) = 1200. métrica = [10000000/bandwidth(i) + delay(i)] * 256 = [10000000/128 + 1200] * 256 = [78125 + 1200] * 256 = 79325 * 256 = 20307200 Com as metricas 46277376 para a rota atraves do roteador “four” e 20307200 para o roteador “three”, o roteador “one” identifica que a melhor rota e através do roteador “three” e guarda a mesma em sua tabela de roteamento. Convergência O EIGRP Tem 5 tipos de Convergências: Feasible distance: “Distância Viável”, esta é a melhor métrica ao longo de todos os caminhos para uma rede remota. Reported distance: Essa é a métrica de uma rede remota, como relatado por um vizinho. É métrica da tabela de roteamento do vizinho. Successor: Successor é o melhor caminho para uma rede remota. A rota successor é usada pelo EIGRP para encaminhar o tráfego para um destino e é armazenado na tabela de roteamento. Convergência Feasible successor: “Sucessor Viável”, O caminho que não é um sucessor, mas satisfaz a condição de viabilidade. O feasible successor é um caminho cuja “reported distance” é menor do que a “feasible distance”, e é considerada como uma via de backup. Feasibility condition: “Condição Viável”, Quando múltiplos caminhos para a mesma subrede existem, Reported Distance(RD) precisa ser menor do que a Feasible Distance(FD). Convergência Olhando o exemplo da acima, vemos que o Roteador 1 tem duas rotas para a rede A: uma através o roteador três, e outra do roteador Quatro. A rota através o Roteador Quatro tem um custo de 46277376 e uma distância relatada de 307.200. Enquanto rota através o Roteador Três tem um custo de 20307200 e uma distância relatada de 307.200. Convergência Note que em cada caso EIGRP calcula-se a distância relatada a partir do roteador anunciando o caminho para a rede. Em outras palavras, a distância relatada do Roteador 4, é a métrica para chegar a uma rede A pelo roteador 4, e a distância relatada do Roteador 3, é a métrica para chegar a uma rede A pelo roteador 3. EIGRP escolhe a rota pelo o Roteador 3 como o melhor caminho, e usa a métrica através o Roteador 3 como a distância viável. Uma vez que a distância relatada para esta rede através o roteador 4 é menor do que a distância viável, o roteador 1 Considera o caminho através o roteador 4 um sucessor viável. Convergência Quando o link entre Roteadores 1 e 3 se perde, o roteador 1 examina cada caminho que ele conhece para Rede A e descobre que ele tem um sucessor viável através Roteador 4. O Roteador 1 usa essa rota, usando a métrica através o Roteador 4 como a nova distância viável. A rede converge instantaneamente, e atualiza para vizinhos o único tráfego de protocolo de roteamento. Tabela de Roteamento A tabela de roteamento do EIGRP é influenciada pelas alterações ocorridas em seus vizinhos, estados das rotas, tabelo de topologia e pelas tags de rota. A seguir todos esses itens serão abordados de forma mais detalhada. Manutenção e descoberta de vizinhos: Para distribuir informações de roteamento através de uma rede, o EIGRP usa atualizações de roteamento incrementais não periódicas. Ou seja, EIGRP somente envia atualizações de roteamento sobre caminhos que foram alterados quando esses caminhos mudam. Tabela de Roteamento Estados de Rota: A entrada da tabela de topologia para um destino pode ter um de dois estados, passivo e ativo. Uma transição de rota tem seu estado quando há uma alteraçã o na topologia da rede. Isto pode ser causado por uma falha da ligação, falha d o nó, ou um aumento de custo de ligação. Os dois estados são os seguintes: Passivo: A rota é considerada no estado Passivo quando um roteador não está executando um recálculo de rota. Quando uma rota está em estado passivo ela é utilizável, e o próximo hop é visto como parte do caminho para chegar ao destino. Ativo: Uma rota está em estado Ativo quando um roteador está computando o Successor Directed Acyclic Graph(SDAG) para o destino. Tabela de Roteamento Tabela de topologia Contém todos os destinos anunciados pelos roteadores vizinhos. Quem é responsável pelo preenchimento da tabela utilizada pela Máquina de estados finitos DUAL são os módulos dependentes de protocolos. A Tabela de topologia apresenta todas as rotas apreendidas pelos roteadores e nela são apresentadas a melhor rota (sucessor route) e as rotas alternativas (feasible sucessor) que, em momento de uma determinada falha, pode rapidamente ativar uma nova rota. Tabela de Roteamento Tags de Rotas Como o EIGRP suporta rotas internas e externas, as rotas internas se originam em um AS. Sendo assim, uma rota interna é considerada quando uma rede configurada com o EIGRP é anexada diretamente e é propagada juntamente com suas informações no AS. Estas rotas recebem tags individuais, contendo as seguintes informações categorizadas como identidade de sua origem e as mesmas permitem que o administrador da rede personalize o roteamento, controlando políticas de forma flexível: • ID do roteador EIGRP que redistribuiu a rota; • Tag específica configurada pelo administrador; • Número do AS de destino; • ID do protocolo externo; • Medida do protocolo Externo; • Flags de bit para a rota padrão. Sumarização O Protocolo EIGRP automaticamente sumariza os endereços baseado na classe do endereço IP, como por exemplo, o prefixo 192.168.1.128/25 será anunciado automaticamente como 192.168.1.0/24 (classful).Para desabilitar a sumarização no EIGRP, basta digitar o comando “no auto-summary” dentro do processo. Além da sumarização automática que resume os destinos baseado na Classe IP, a sumarização manual permite o ajuste fino e efetivo com a configuração do IP e máscara sumarizada. Segue as duas formas de sumarização do EIGRP. Sumarização Auto-sumarização; EIGRP executa uma auto-sumarização cada vez que cruza uma fronteira entre duas grandes redes diferentes. Por exemplo, na Figura abaixo, o reteador two anuncia apenas a rede 10.0.0.0/8 para o roteador one, porque a interface do roteador two usada para chegar no roteador one, está em uma grande rede diferente. Sumarização Sumarização Manual; EIGRP permite que você resumir rotas internas e externas em praticamente qualquer limite bits usando sumarização manual. Por exemplo, na Figura 2, Router two sumariza o 192.1.1.0/24, 192.1.2.0/24 e 192.1.3.0/24 no bloco CIDR 192.1.0.0/22. Comparativo EIGRP x RIP EIGRP Tabelas Tipo Topologia, Contém Valor-K, AS, características do Autenticação, estado de sub-rede. enlace, Vizinho, Roteamento. RIP Roteamento Parâmetros Vizinhos Outros Fatores Balanceamento de carga de custos desiguais, Métrica com vários critérios, rápida convergência, Algoritimo DUAL. Vetor – distância, IGP. Vetor-distância. Sub-rede, Alto uso de banda, Autenticação. não possui tabela de topologia, limite de 15 saltos. Comparativo EIGRP x RIP O Protocolo RIP é baseado em algoritmo de Vetor de distância, e foi projetado para trabalhar com redes de tamanho moderado que não possuem muita complexabilidade, por esse motivo é considerado um protocolo IGP, que é um protocolo usado dentro de um AS(Autonomous System), ou seja um grupo de roteadores controlados por uma única autoridade administrativa. O protocolo EIGRP suporta VLSM e CIDR, assim permitindo que uma porção de endereços IPs seja dividida recursivamente em pequenos pedaços. Experimento prático Em nosso estudo de caso utilizamos a topologia onde formam utilizados 6 roteadores interligados por meio de um switch utilizando a rede 192.168.1.0/29 e interligados por 6 redes deferentes entre cada rotador conforme a lista abaixo a seguir: Rede entre R1 e R2 192.168.0.0/30 Rede entre R2 e R6 192.168.0.5/30 Rede entre R6 e R5 192.168.0.8/30 Rede entre R5 e R4 192.168.0.12/30 Rede entre R4 e R3 192.168.0.16/30 Rede entre R3 e R1 192.168.0.20/30 Experimento prático A seguir demostraremos o funcionamento do EIGRP na topologia abaixo.