Redes de computadores: Camada de rede(2) Prof. Dr. Amine BERQIA [email protected] http://w3.ualg.pt/~bamine/ Formato datagrama IPv4 bit 0 VERS 4 HLEN 8 Tipo deServiço Identificação Time to Live 16 19 24 31 Comprimento total Flags Tipo Offset de fragmento Checksum de cabeçalho Endereço IP origem Endereço IP Destino Opções de IP (pode ser omitido) DADOS Padding Datagramas IP Pode-se atrasar Duplicado Entregue fora de ordem Perdido Pode mudar rotas de pacote para pacote Sem conexão IPv6(1) Motivação: Vamos ficar sem Classes B disponíveis (dentro de anos). Eventualmente todo o espaço de endereçamento de 32 bits irá esgotar. Embora 32 bits representa 4 bilhões nos, o routing hierárquico não distribui endereços uniformemente. Simplesmente não sabemos escalonar encaminhamentos para além de algumas dezenas de milhares de redes. Assim, aumentando o tamanho dos endereços IP resolve os problemas 1 e 2, mas não ajuda com o problema de escalonamento. IPv6(2) IPv6(3) Este é um problema de engenharia no sentido que distribuir actualizações de rotas, calcular novas tabelas de routing, e guardar todas as rotas consome recursos de processador e memória. Podemos faze-lo para 10,000 redes, talvez até mesmo 100,000, mas não para 1,000,000. Encontrar o equilíbrio certo entre estes custos é difícil. A necessidade de mais endereços dá-nos uma oportunidade para melhorar em outros aspectos de actual IP (IPv4). Repare no cabeçalho da Figura anterior, e a utilização do espaço de endereçamento. Durante o período de transição, serão incluídos endereços de IPv4 em endereços de IPv6. Transição De IPv4 Para IPv6 Durante a transição, nem todos os routers serão actualizados para IPv6; Como irá a rede funcionar? Duas aproximações propostas: Dual Stack e Tunneling Dual Stack: • Alguns routers com pilha dupla (v6, v4); outros são só routers de v4 • Routers de pilha dupla traduzem o pacote a para um pacote v4 se o próximo router for só v4 • DNS pode ser usado para determinar se um router é pilha dupla ou não • Serão perdidas algumas informações e características de v6 se um pacote tiver que passar por qualquer router v4 Encaminhamento IP Executado por routers Baseado em tabelas Encaminha numa base de pulo-por-pulo (hop-by-hop) Endereço de destino é utilizado para determinação da rota Sumário Routing/Forwarding Retira cabeçalhos da camada 2 Extrai o campo de endereço de destino, D, Procura D na tabela de encaminhamento Procura próximo endereço de salto, N, Envia datagrama para N Adiciona cabeçalhos da camada 2 Operações Básicas de Routing (1) Basic Routing A.34 4321 A.24 3483 B.29 4923 A.1 D.1 D.3 3984 D.90 1834 B.56 4002 B.1 Router C.1 C.45 8732 C.88 6202 Operações Básicas de Routing (2) Routing Table Layer 2 <--> Layer 3 Table Network Interface Network.Host Layer 2 A 0 A.34 4321 B 1 A.24 3483 C 2 B.29 4923 D 3 B.56 4002 C.45 8732 C.88 6202 D.3 3948 D.90 1834 Operações Basicas de Routing (3) From C.45 to A.34 C.45 knows that A.34 isn't on the same net and sends it to router at C.1 Note DA for layer 2 3012 8732 JIP A 34 C 45 Data FCS Inside the router the Layer 2 headers and trailers are removed leaving only the layer 3 packet. The router looks up the packet's DA in the routing table and forwards to the appropriate interface. A 34 C 45 Data 45 Data At the interface, layer 2 headers and trailers are added back. DA is the address of the destination host. SA is the address of the router. FCS is recalculated. 4321 2398 JIP A 34 C FCS Routing de TCP/IP IP Routing 140.192.10.5 0060CA23BE45 140.192.10.25 0060CA34CD29 140.192.100.34 0060CA4AD2EE 140.192.10.1 00C0C1AA3411 140.192.201.1 00C0C1AA3410 140.192.201.22 0060CA3499CC 140.192.201.126 0060CA3499DE 140.192.100.8 0060CAAABBCC 140.192.100.1 00C0C1AA3412 Router 140.192.34.1 00C0C1AA3413 140.192.34.34 0060CA114499 140.192.34.35 0060CA7819AA Routing TCP/IP (2) Layer 2 <--> Layer 3 Table ARP Table Routing Table Network Interface Network.Host Layer 2 140.192.10.0 0 140.192.10.5 0060CA23BE45 140.192.100.0 1 140.192.10.25 0060CA34CD29 140.192.201.0 2 140.192.100.34 0060CA4AD2EE 140.192.34.0 3 140.192.100.8 0060CAAABBCC 140.192.201.22 0060CA3499CC 140.192.201.126 0060CA3499DE 140.192.34.34 0060CA114499 140.192.34.35 0060CA7819AA TCP/IP Routing(3) From 140.192.34.34 to 140.192.10.5 140.192.34.34 knows that 140.192.10.5 isn't on the same net and sends it to router at 140.192.34.1 Note DA for layer 2 00C0C1AA3413 0060CA114499 IP 140.192.10.5 140.192.34.34 Data FCS Inside the router the Layer 2 headers and trailers are removed leaving only the layer 3 packet. The router looks up the packet's DA in the routing table and forwards to the appropriate interface. 140.192.10.5 140.192.34.34 Data At the interface, layer 2 headers and trailers are added back. DA is the address of the destination host. SA is the address of the router. FCS is recalculated. 0060CA23BE45 00C0C1AA3411 IP 140.192.10.5 140.192.34.34 Data FCS Exemplo duma tabela de Routing IP Tabela (b) é para router do centro (a) O Conceito O endereço de destino num cabeçalho dum datagram refere-se sempre ao último destino. Quando um router remeter o datagrama a outro router, o endereço do próximo salto não aparece no cabeçalho do datagrama. Requisitos dum Protocolo de Routing Tamanho de tabela de encaminhamento eficiente Mensagens de controlo de encaminhamento eficientes Robustez e fiabilidade • prevenir loops • evite buracos negros • tempo de reconvergência é curto Fonte de Informação da tabela de Rotas Manual • Tabela criada à mão • Útil em redes pequenas • Útil se rotas nunca mudam Automático • tabelas criada/actualizada por software • Necessário em redes grandes • Altera rotas de quando ocorrem falhas Calcule Caminho melhor/mais curto Métrica Possível • distância geográfica • custo económico • capacidade Algoritmos para Calcular Caminho mais Curto Distance Vector • Troca que tabelas de routing com routers vizinhos • por exemplo, RIP, RIPv2 Estado de ligação • Routers trocam informação do estado de ligação • por exemplo, OSPF Distance Vector Routers anunciam periodicamente e aprendem sobre redes IP Custo da rota está baseado em saltos até à rede (número de routers para passar) Quando acontece falhas de ligações cálculos são feitos de novo Problema de Contagem Infinita O que acontece quando a ligação 1 < - >5 falha? Será que 5 pensa que pode chegar lá através do 2? Resolver o Problema de Contagem Infinita Esperar • Espere por um período de tempo antes de trocar caminhos. Anunciar rota valida com custo infinito. Baseado em temporizadores. Informar o caminho completo • Garante que não há loops, mas caro. Horizonte dividido (split horizon) • Não anuncie rotas a vizinhos se a rota foi recebida daquele vizinho. Não é à prova de falha. Outras Melhorias de Distance Vector Actualizações despelotadas • Anuncia mudanças assim que as aprende. Pode ajudar a melhorar tempo de convergência. Pode criar instabilidade de encaminhamentos por agitar rotas. Poison Reverse • Usado com Split Horizon. Anuncia custo infinito no lugar de nada. Algoritmo de Actualização difusa (DUAL) • Parecido ao Esperar, mas routers são informados de caminhos quebrados. Complexo. Não popular. Estado de ligação Routers distribuem informação de custo de ligação e de topologia para todos os outros routers na sua área. Todos os routers têm informação completa sobre a rede. Cada router calcula o seu próprio caminho óptimo para os destinos. Assegura ambientes livres de loops.