Encaminhamento IP Resumo Algoritmos Escalabilidade 1 Visão geral sobre encaminhamento Forwarding vs Routing forwarding: processo de seleccionar uma porta de saída baseado no endereço de destino e na tabela de encaminhamento routing: processo pelo qual a tabela de encaminhamento é construída A rede como um gráfico Problema: Encontrar o caminho com menor custo entre dois nós Factores estáticos: topologia dinâmicos: carga C 4 B 3 9 A 1 D 1 1 E 6 2 F 2
Distance Vector Cada nó mantém um conjunto de três parâmetros (Destino, Custo, NextHop) Troca mensagens de update com os routers vizinhos periodicamente (na ordem de vários segundos) Sempre que há alterações das tabelas (triggered update) Cada update é uma lista com os pares: (Destino, Custo) Actualiza a tabela local quando recebe uma rota melhor menor custo quando vem do next-hop Refresca as rotas existentes; remove-as se o tempo de vida expirou 3 Exemplo A F B E C G D Destino Custo NextHop A 1 A C 1 C D 2 C E 2 A F 2 A G 3 A 4
Anéis (Loops) B A C D E Exemplo 1 F F detecta que o link para G falhou F actualiza a distância para G para infinito e envia update para A A actualiza distância para G para infinito uma vez que usa F para chegar a G A recebe um update periodicamente de C com 2 saltos para G A actualiza a distância para G para 3 e envia um update para F F decide que consegue atingir G em 4 saltos via A G 5 Anéis (Loops) B A C D E Exemplo 2 O link de A para E falha A anuncia uma distância para E de infinito B e C anunciam uma distância para E de 2 B decide que consegue chegar a E em 3 saltos ; informa A F G A decide que consegue chegar a E em 4 saltos; informa C C decide que pode alcançar E em 5 saltos 6
Como resolver o problema dos anéis (Loops) Considerar o custo 16 como infinito Split horizon Split horizon with poison reverse 7 Link State Routing Estratégia Enviar para todos os nós (não apenas para os vizinhos) informação acerca dos links ligados directamente (não é a tabela de encaminhamento completa) Link State Packet (LSP) Contém o ID do nó que criou o LSP Uma lista das ligações operacionais O custo de cada ligação Número de sequência (SEQNO) Tempo de vida (TTL) para este pacote 8
Link State Routing (cont) Um procedimento chamado flooding é usado para distribuir os LSPs por todo o domínio. Flooding rápido e fiável Armazena o LSP mais recente de cada nó Envia o LSP para todos os nós excepto o nó de onde recebeu Independentemente do LSP ser novo ou não, é retornado um reconhecimento ao nó que enviou Um nó gera um novo LSP (periodicamente ou quando há alteração da topologia) Incrementa o SEQNO No reboot inicia o SEQNO a 0 Decrementa o TTL para cada LSP armazenado Descarta quando TTL=0 9 Link State Routing (cont) A informação distribuída pelos LSP permite constituir uma base de dados distribuída contendo uma descrição dinâmica da rede, descrevendo os componentes e as ligações entre eles Vantagens em relação ao Distance Vector + eficiente + fiável livre de anéis maior velocidade de convergência Adaptação a alterações da topologia 10
Cálculo de rotas O algoritmo Dijkstra (shortest path) Assumindo N conjunto de nós no gráfico l (i, j) custo não negativo para a ligação (i, j) s o nó actual M conjunto de nós incorporados até ao momento C(n) custo do caminho de s para o nó n M = {s} for each n in N - {s} C(n) = l(s, n) while (N!= M) M = M union {w} such that C(w) is the minimum for all w in (N - M) for each n in (N - M) C(n) = MIN(C(n), C (w) + l(w, n )) 11 Métricas Métrica original da ARPANET Mede o número de pacotes na fila de espera em cada link Não toma em consideração a latência nem a largura de banda Nova métrica ARPANET Marca cada pacote que entra com o seu tempo de chegada (AT) Grava o tempo da partida (DT) Quando o link-level ACK chega, calcula Atraso = (DT - AT) + Transmissão + Latência Se ocorrer timeout, faz o reset do DT para o tempo de saída para retransmissão Custo do link = atraso médio sobre um determinado período de tempo 12
Como fazer Routing escalável Endereçamento plano vs hierárquico Uso ineficiente do espaço de endereçamento hierárquico Uma classe C com 2 hosts (2/255 = 0.78% eficiência) Uma classe B com 256 hosts (256/65535 = 0.39% eficiência) Muitas redes As tabelas de encaminhamento não são escaláveis Os protocolos de propagação de rotas não são escaláveis 13 Sub-redes Adicionar outro nível à hierarquia endereço/encaminhamento: sub-redes A máscara da sub-rede define uma partição variável dentro da parte do host As sub-redes são visíveis apenas dentro do site Número da rede Número do Host Endereço classe B 111111111111111111111111 00000000 Máscara da Sub-rede (255.255.255.0) Número da rede Subnet ID Host ID Endereço na sub-rede 14
Classes IP e Máscaras de rede naturais Classe A 255.0.0.0 Classe B 255.255.0.0 Classe C 255.255.255.0 15 Máscaras Classe C As máscaras seguintes podem ser usadas para dividir uma rede Classe C: 252 (11111100) 64 sub-redes de 2 estações 248 (11111000) 32 sub-redes de 6 estações 240 (11110000) 16 sub-redes de 14 estações 224 (11100000) 8 sub-redes de 30 estações 192 (11000000) 4 sub-redes de 62 estações 128 (10000000) 2 sub-redes de 126 estações 16
Exemplo de Sub-redes Subnet mask: 255.255.255.128 Subnet number: 128.96.34.0 128.96.34.15 128.96.34.1 H1 R1 H3 128.96.34.130 128.96.33.14 128.96.34.129 R2 Subnet mask: 255.255.255.128 Subnet number: 128.96.34.128 128.96.33.1 Subnet mask: 255.255.255.0 Subnet number: 128.96.33.0 H2 128.96.34.139 Tabela de encaminhamento do router R1 Subnet Number Subnet Mask Next Hop 128.96.34.0 255.255.255.128 interface 0 128.96.34.128 255.255.255.128 interface 1 128.96.33.0 255.255.255.0 R2 17 Algoritmo de Forwarding D = endereço IP de destino for each entry (SubnetNum, SubnetMask, NextHop) D1 = SubnetMask & D if D1 = SubnetNum if NextHop is an interface deliver datagram directly to D else deliver datagram to NextHop Usa o default gateway se não encontrar uma rota Não é necessário que todos os 1s da máscara de subrede sejam contíguos Permite configurar múltiplas subredes na mesma rede física As subredes não são visíveis a uma determinada distância na Internet 18
Supernetting Atribuir a redes próximas (mesmo domínio) blocos de endereços de rede contiguos Designa-se CIDR: Classless Inter-Domain Routing Representa os blocos por um par (first_network_address, count) O tamanho do bloco tem que ser uma potência de 2 Usaumamáscara(CIDR mask) paraidentificaro tamanho do bloco Todos os routers devem suportar endereçamento CIDR 19 Propagação de rotas Conhecer um router Os hosts conhecem o router local os routers locais conhecem os routers do site Os routers do site conhecem os routers do núcleo Os routers do núcleo conhecem tudo Autonomous System (AS) Corresponde a um domínio administrativo exemplos: Universidades, grandes empresas, backbone da rede Atribuí a cada AS um número de 16 bits Hierarquia de propagação em dois níveis interior gateway protocol (cada AS selecciona o seu) exterior gateway protocol (Internet standard) 20
Protocolos de encaminhamento interiores RIP: Route Information Protocol Distribuído com o Unix Algoritmo distance-vector baseado no número de routers Para redes pequenas é simples e eficaz. Para redes de grande dimensão, o seu mecanismo de difusão das tabelas de encaminhamento de 30 em 30 seg não é adequado OSPF: Open Shortest Path First standard Internet Usa o algoritmo link-state, que permite a um router enviar informações acerca de qualquer modificação no estado das suas ligações suporta balanceamento de carga suporta autenticação 21 Estrutura da Internet Passado recente Stanford NSFNET backbone ISU Berkeley BARRNET regional PARC NCAR Westnet regional UNM UNL MidNet regional KU UA 22
Estrutura da Internet Actualmente Large corporation Peering point Consumer ISP Backbone service provider Consumer ISP Peering point Small corporation Large corporation Consumer ISP 23 EGP: Exterior Gateway Protocol Visão geral Desenhado para a Internet estruturado em árvore Optimizado para alcançar o máximo de destinos Mensagens do Protocolo Aquisição dos vizinhos: um router pede que outro seja seu par; os pares trocam informação de routing Alcance da vizinhança:um router periodicamente testa se o outro continua alcançável; trocam mensagens HELLO/ACK Actualização de rotas: os pares periodicamente trocam as suas tabelas de routing (distance-vector) 24
BGP-4: Border Gateway Protocol Tipos de AS stub AS: tem uma única conexão com outro AS Transporta apenas tráfego local multihomed AS: tem conexões com mais do que um AS Recusa-se a transportar tráfego não local transit AS: tem conexões com mais do que um AS Transporta tráfego local e em transito Cada AS tem: Um ou mais routers de fronteira um BGP speaker que informa: Redes locais Outras redes alcançáveis (transit AS) Fornece informação sobre os caminhos 25 BGP Exemplo O speaker para AS2 informa alcance para P e Q As redes 128.96, 192.4.153, 192.4.32 e 192.4.3, podem ser alcançadas directamente a partir do AS2 O speaker para o backbone informa Backbone network (AS 1) Regional provider A (AS 2) Regional provider B (AS 3) Customer P (AS 4) Customer Q (AS 5) Customer R (AS 6) Customer S (AS 7) 128.96 192.4.153 192.4.32 192.4.3 192.12.69 192.4.54 192.4.23 As redes 128.96, 192.4.153, 192.4.32, e 192.4.3 podem ser alcançadas através de (AS1, AS2). O speaker pode cancelar caminhos previamente anunciados 26
Medidas contra falta de endereços Alocação criativa do espaço de endereçamento IP Encaminhamento inter-domínios sem classes Endereçamento privado e translação de endereços IPv6 ou IPng 27 IP Versão 6 Características Endereços de 128 bits (classless) Multicast Suporte para serviços em tempo real Autenticação e segurança Autoconfiguração Fragmentação fim-a-fim Extensões para protocolos Cabeçalho 40-bytes cabeçalho base Cabeçalhos extendidos (ordenação fixa, normalmente comprimento fixo) fragmentação source routing Autenticação e segurança Outras opções 28