Bernadete di Azevedo Galindo
1 Introdução Inst tituto de Info ormátic ca - UF FRGS Redes de Computadores Internet Protocol version 6 (IPv6) Aula 21 Com crescimento da Internet IPv4 apresenta alguns problemas Esgotamento de endereços IPv4 No máximo 2 32 combinações possíveis ( endereços 4.3 bi) Necessário, ainda, considerar os endereços reservados Esquema de classes é penalizante Desperdício de endereços IP (grande vilã rede classe B) Escalabilidade em tabelas de roteamento Política inicial era distribuir endereços de redes por demanda sem preocupação geográfica ex /16 (Inglaterra), /16 (Brasil), /16 (USA) Sucessivas previsões para esgotamento de endereços IPv4 Em 1996 (ARIN): 100% dos endereços classe A, 62% dos endereços classe B, 37% dos endereços classe C alocados Algo precisava ser feito!! Redes de Computadores 2 Soluções possíveis para os problemas do IPv4 Internet Protocol version 6 (IPv6) Implementação de um novo protocolo (IPng ou IPv6) Dificuldade de mudança Soluções paliativas CIDR: Classless InterDomain Routing NAT: Network Address Translator Benefícios das soluções paliativas Sobrevida da capacidade de endereçamento IP (NAT e CIDR) Redução de tabelas de roteamento (CIDR) Efeito colateral (desvantagem) CIDR e NAT tiraram a pressão para a adoção do IPv6 Entretanto, Internet continua vítima de seu sucesso Esgotamento de endereçamento IPv4: 2011!! (Isso mesmo, 2011) Estoques da IANA distribuídos para as autoridades regionais (RIR) Não há como escapar: IPv6 é inevitável! Solução para suprir a demanda de endereços IPs e de novos serviços Novo protocolo definido em uma série de RFCs RFC1752:recomendações para próxima geração IP RFC2460: especificação completa RFC2373: formato de endereços etc... Redes de Computadores 3 Redes de Computadores 4
2 Objetivos do IPv6 Estrutura do pacote Internet Protocol version 6 Suportar bilhões de nós (mesmo com desperdício) Reduzir tamanho de tabelas de roteamento Simplificar o protocolo (melhorar desempenho de roteadores) Oferecer autenticação e privacidade Suporte a qualidade d de serviços Melhorar capacidade de multidifusão (multicast) Permitir evolução do protocolo Possibilitar a convivência de protocolos novos com antigos 40 bytes bytes IPv6 Header Header extensão... Header extensão Transporte (TPDU) Zero ou mais variável Cabeçalho (header) de tamanho fixo de 40 bytes Simplificado em relação ao IPv4 (menos campos) Seguido por headers de extensão (opcionais) Hop-by-hop, routing, fragment, authentication, encapsulating security, destination options Não é necessário a presença de todos, porém os que existirem deverão respeitar essa ordem Redes de Computadores 5 Redes de Computadores 6 Cabeçalho IPv6 Cabeçalhos de extensão Versão (6) Controle de tráfego: classes e prioridades Tamanho da área após o header IPv6 Especifica o próximo header: extensão ou protocolo de nível superior (TCP, UDP) 40 bytes Nro. máximo de hops (TTL) Identifica uma sequência de pacotes com uma característica comum (QoS ou encaminhamento via tabela de label invés do uso de tabela de roteamento). Implementa circuitos virtuais. Carga útil Zero ou mais cabeçalhos de extensão Dados de protocolos (TCP, UDP, etc) Cabeçalho de extensão Próximo cabeçalho Comprimento Informações da opção em particular... ão Cabeça alho padrão Cabeç çalho extens dado os (payload) Carga útil Redes de Computadores 7 Redes de Computadores 8
3 Conceito de fluxo Endereço IPv6 O rótulo de fluxo permite criar circuito virtual usando o IPv6 Fluxo Sequência de pacotes que compartilham características ti em comum (mesmo caminho, mesmas restrições de segurança, QoS, etc) Roteador IPv6 Possui uma tabela de fluxo Consultada antes da tabela de roteamento O fluxo é definido com o auxílio dos protocolos RTP e RSVP 128 bits = endereços (340 undecilhões ou cerca de 3,4x10 27 end. IPv6 por pessoa no mundo 10 bi) Notação Hexadecimal: oito quartetos de quatro dígitos hexadecimais Ex.: 2001:0DB1:AB11:521E:1213:0FAC:6531:0AB1 Possível omitir zeros a esquerda em qualquer grupo (ex: 00FA FA) Quartetos com zeros consecutivos podem ser representados pela sequência :: (uma única vez) sempre tem que ter 8 quartetos Ex.: ::1 (loopback), 2001::DB8:1511, 2001::, 2011:DB8:12:: Mista: empregada para endereços IPv4 em IPv6 Ex.: :: CIDR para identificar a parte do prefixo (Ex.: 2801:80:40::/48 = bloco IPv6 destinado d à ) Redes de Computadores 9 Redes de Computadores 10 Endereços IPv6: formação Tipos de endereços IPv6 IPv6 não tem conceito de classes, apenas de prefixo (blocos) Prefixo* Sufixo Prefixo Não se usa para definir sub-redes!!! Permite a existência de 2 64 redes distintas ( ) Dividido em: provider id, subscriber id e subnet id O sufixo é sempre de 64 bits Serve para identificar uma interface IPv6 em um enlace Pode ser configurado a partir de: Endereço MAC da placa de rede OU endereço atribuído (1 a ) OU endereço IPv4 *Campos do prefixo depende do tipo de endereço IPv6 Especiais Unicast Identifica uma única interface de rede (comunicação um-para-um) Três tipos diferentes: global unicast, link local, unique local, Endereços especiais: IPv4 mapeado em IPv6, loopback e não especificado Multicast Identifica um conjunto de interfaces (comunicação um-para-muitos) Suporte obrigatório em IPv6 Anycast Identifica um conjunto de interfaces (comunicação um-para-um-de-muitos) Destinado para serviços de descoberta, balanceamento de carga, suporte a mobilidade e serviços de localização. Redes de Computadores 11 Redes de Computadores 12
4 Endereços especiais: não especificado, loopback, mapeado Endereços unicast Derivados do bloco reservado 0000::/8 Endereço não especificado Sub-bloco bl de um único endereço (::0/128) Usado na inicialização para indicar a ausência de um endereço atribuído Loopback Sub-bloco de um único endereço (::1/128 ou ::1) Mapeados: usados na transição de IPv4 a IPv6 Endereço compatível: comunicação de nós IPv4 sobre estrutura IPv6 96 bits em zero seguidos do endereço IPv4 (32 bits), bloco 0000::/96 Endereço mapeado: comunicação entre nós IPv4 e IPv6 80 bits em zero, 16 bits em um, seguidos do endereço IPv4 (32 bits) Bloco 0000::FFFF/96 (ex.: 0000::FFFF: /96) 13 13/96) Link Local Address: bloco FE80::/10 Válidos somente no enlace em que são definidos Sufixo é definido id a partir do endereço MAC da placa de rede (EUI-64) Unique Local Address (ULA): bloco FC00:/7 Equivalente aos endereços privativos do IPv4 Subdivido em dois grupos FC00::/8: endereços privativos, mas atribuídos por uma autoridade Internet FD00::/8: endereços privativos atribuídos localmente Global Unicast Address: bloco 2000::/3 Divididos em 3 partes: prefixo global (48 bits), sub-rede (16 bits) e sufixo (64 bits) Equivalente aos endereços públicos IPv4, isso é, roteável Atribuidos pelas autoridades da Internet (RIRs) Redes de Computadores 13 Redes de Computadores Endereço multicast Endereços anycast Bloco FF00::/8 Endereço de multicast é dividido em quatro partes Prefixo (8 bits): F000::/8 Flag (4 bits): grupo permanente (0000) ou temporário (1111) Escopo (4 bits): local a nó, enlace, site, organização ou global Identificador do grupo (112 bits) Suporte obrigatório em nós IPv6 Grupos especiais Solicited node Multicast all-nodes Multicast all-routers Um mesmo endereço unicast atribuido a mais de uma interface São derivados do bloco de unicast Roteadores devem ter suporte a anycast (anycastt subnet-router) t ) Prefixo da sub-rede e identificador da interface zerado Roteadores selecionam a qual dos vários o pacote é encaminhado Critério de menor custo Nós devem ser configurados explicitamente e as rotas devem ser /128 Usos do anycast Descoberta de serviços na rede (DNS, proxy HTTP, etc) Localização de recursos na rede Balanceamento de carga Mobilidade IPv6 Redes de Computadores 15 Redes de Computadores 16
5 Alguns detalhes do IPv6... Espaço de endereçamento do IPv6 Identificador de interface Sufixo de 64 bits que identifica uma interface em um enlace Tipicamente i é um número obtido Manualmente Automaticamente de forma randômica Com auxílio de chave de cifragem pública A partir do endereço MAC (padrão EUI-64) Endereço IPv6 bloco 2001:DB8::/32 Reservado para ser usado em textos, documentos e aulas Objetivo é não expor nenhum endereço público em material técnico/didático Dividido em vários blocos de tamanhos diferentes Cada bloco tem um objetivo especial Maioria dos blocos ainda estão não atribuídos (uso futuro) Prefixo IPv6 Alocação Porção 0000::/8 Endereços eços especiais s 1/ ::/8 Reserved by IETF 1/ ::/7 Reserved by IETF 1/ ::/6 Reserved by IETF 1/ ::/5 Reserved by IETF 1/ ::/4 Reserved by IETF 1/ ::/3 Global Unicast 1/8 4000::/3 Reserved by IETF 1/8 6000::/3 Reserved by IETF 1/8 8000::/3 Reserved by IETF 1/8 Prefixo IPv6 Alocação Porção A000::/3 Reserved by IETF 1/8 C000::/3 Reserved by IETF 1/8 E000::/4 Reserved by IETF 1/16 F000::/5 Reserved by IETF 1/32 F800::/6 Reserved by IETF 1/64 FC00::/7 Unique Local Unicast 1/128 FE00::/9 Reserved by IETF 1/512 FE80::/10 Link Local Unicast 1/1024 FEC0::/10 Reserved by IETF 1/1024 FF00::/8 Multicast 1/256 Redes de Computadores 17 Redes de Computadores 18 ICMPv6 Descoberta de vizinhos Engloba as funcionalidades do ICMP, ARP e IGMP do IPv4 Mensagens são divididas em quatro grupos Relatórios de erro similar ao IPv4 Informativas Descoberta de vizinhos novidades d do IPv6 Participação em grupo Permite encontrar roteadores, IPv6 e endereços de enlace dos vizinhos Dividida em quatro subgrupos: Solicitação it de roteador e anúncio de roteador Descoberta do roteador padrão (default gateway) Solicitação de vizinho e anúncio de vizinho Similar ao ARP (dado um IPv6, qual é o MAC associado) Solicitação reversa de vizinho e anúncio reverso de vizinho Dado um endereço MAC do vizinho, qual é o IPv6 associado Redirecionamento Funcionamento idêntico ao do IPv4 Redes de Computadores 19 Redes de Computadores 20
6 Participação em grupo Autoconfiguração Similar ao IGMP do IPv4 Consulta a participação em grupo Relatório de participação i em grupo Usado em conjunto com os protocolos de multicast O IPv6 oferece suporte a auto-configuração Mecanismo que permite a atribuição de endereços unicast aos nós IPv6 com uma interferência mínima Dois tipos: Autoconfiguração stateless Autoconfiguração statefull Redes de Computadores 21 Redes de Computadores 22 Autoconfiguração stateless Autoconfiguração statefull Empregada nas seguintes situações Sem configuração manual dos nós (estações) Sem servidores adicionais (ex. DHCP) Procedimento Gera um unique link local address a partir do identificador da interface Prefixo FE80::/64 + identificador da interface Envia mensagem ICMPv6 (router solicitation) para o roteador do enlace local Mensagem para o grupo de multicast all-routers Roteador responde com mensagem ICMPv6 (router advertisement) Contém o prefixo da sub-rede Gera um global unicast address concatenando o prefixo com o identificador da interface Controle mais rígido dos endereços IPv6 atribuídos Fornecer opções de configuração da rede Definir endereços que não são baseados em MAC Definir políticas de atribuição de endereços Empregada quando Não é encontrado nenhum roteador para fornecer prefixo Mensagens router advertisement indicam esse método Baseado na existência de um servidor DHCPv6 Cliente se comunica com servidor usando um endereço link-local Servidor DHCP pertence ao grupo multicast FF02::1:2 ou FF05::1.3 Existência de relay DHCP, se servidor estiver fora do enlace Serviço diferente do DHCPv4 Redes de Computadores 23 Redes de Computadores 24
7 Mecanismos de transição IPv4 para IPv6 Políticas de alocação de endereços IPv6 Pilha dupla Máquinas possuem duas pilhas de protocolo: IPv4 e IPv6 Falam os dois protocolos dependendo d d do interlocutor t (IPv4 ou IPv6) Tunelamento Encapsula um datagrama IPv4 em um pacote IPv6 ou vice-versa versa Várias técnicas: 6to4 (RFC 3056), Teredo (RFC 4380), ISATAP (RFC 52) Tradução de protocolo Transforma datagramas IPv4 em pacotes IPv6 ou vice-versa Várias técnicas: SIIT (RFC 2765), NAT-PT (RFC 2766, 4966), BIS (RFC 2767) e BIA (RFC 3338) mais extensões no DNS (RFC 3596) Já vem sendo atribuídos no mundo inteiro Cada RIR possui um bloco /12 LACNIC recebeu o bloco 2800::/12 e o NIC.br é um /16 deste bloco Utilização e demanda é medida em número de blocos e não por quantidade de endereços como no IPv4 Todas as redes acabam por ter um prefixo de 64 bits Abordagens One size fits all: baseada na atribuição de blocos /48 para todos usuários RFC 3177 dá uma série de recomendações Conservadora: blocos de /56 para usuários domésticos e PMEs Redes de Computadores 25 Redes de Computadores 26 Alocação de endereços IPv6 Leituras complementares Distribuição de forma hierárquica Solicitação no Brasil é para o NIC.br html : 2801:80:40::/ Permite 2 16 sub-redes 64 Bloco/48 Bloco/56 Prefixos alocados aos RIRs IANA Afrinic 2C00::/12 Bloco/12 APNIC 2400::/12 RIR ARIN 2600::/12 LACNIC: 2800::/12 Bloco/32 RIPE NCC: 2A00::/12 Provedor Permite 2 8 sub-redes 56 8 Bloco/64 Para uma única interface 64 Tanenbaum, A. Redes de Computadores (4 a ed.), bookman, Capítulo 5, seção Carissimi, i i A.; Rochol, J; Granville, L.Z; Redes de Computadores. Série Livros Didáticos. Bookman Capítulo 5, seção5.5.3 Muito material da Internet, mas a referência de base é: Redes de Computadores 27 Redes de Computadores 28
8 Tipos de endereços IPv6 Unicast Multicast Anycast Redes de Computadores 29 Redes de Computadores 30 Endereços unicast Endereços Multicast Link-local address: bloco FE80::/10 Válidos somente no enlace em que são definidos Sufixo é definido id a partir do endereço MAC (EUI-64 bits) Unique-local Address (ULA): bloco FC00::/7 Equivalente aos endereços privativos do IPv4 Subdivido em FC00::/8 endereços privados, mas atribuídos por uma autoridade Internet FD00::/8 endereço privado atribuídos localmente Global unicast: bloco 2000::/3 Endereços públicos e roteáveis Atribuidos pelas autoridade da Internet Bloco FF00::/8 Grupos especiais Solicited-node it d Multicast all-nodes Multicast all-routers Redes de Computadores 31 Redes de Computadores 32
9 Endereços Anycast Endereços IPv6 especiais Um mesmo endereço atribuídos a várias interfaces Roteadores selecionam qual deles usar com base em O equipamento mais próximo O caminho de menor custo Endereço de loopback Não atribuídos Mapeamento Especiais Redes de Computadores 33 Redes de Computadores 34 Endereços IPv6 no Brasil Bloco atribuído pela LACNIC é o 2801::/16 gerenciado pelo Nic.br Prefixo (/64) é dividido em 3 partes: /32: companhias de telecomunicações /48: empresas e organizações em geral Ex.: 2801:80:40::/48 = bloco IPv6 destinado à /56: usuários finais Consequência é que um usuário pode definir até sub-redes Sufixo (/64) não é subdividido como acontece no IPv4 Redes de Computadores 35 Redes de Computadores 36
10 Endereço IPv6 Hop-by-hop p header Composto por 128 bits Alguns números impressionantes = endereços 56 octilhões (5,6 x ) end. IP por ser humano (16 bilhões habitantes 2 34 ) 79 octilhões (7,9 x ) de vezes a quantidade de endereços IPv4 Representado por oito grupos de 16 bits separados por dois pontos Representado em hexadecimal (0-F) Ex.: 2001:0DB1:AB11:521E:1213:0FAC:6531:0AB1 Possível omitir zeros a esquerda em qualquer grupo (ex: 00FA FA) Seções com zeros consecutivos podem ser representados pela sequência :: (uma única vez) Ex.: ::1 (loopback), 2001::DB8:1511, 2001::, 2011:DB8:12:: Informações que todos os roteadores devem examinar Composto por três campos: Tipo (nextt header) ) : identificação do próximo header que o segue Extensão: quantidade de bytes que o compõem (em unidades de 64 bits) Opções: implementa um tipo de serviço, possui: Tipo do serviço implementado Tamanho da área de dados associado a esse serviço Área de dados associada a esse serviço (parâmetros) Tam. Mínimo (64 bits) 2 32 bytes Redes de Computadores 37 Redes de Computadores 38 Opções hop-by-hop p Routing header Apenas duas implementadas: Jumbo Payload: envio de área de dados superiores a bytes Router alert: Indica que o conteúdo do pacote exige tratamento especial Multicast Listener Discovery y( (MLD) e Resource Reservation Protocol (RSVP) Bits do campo de tipo informa ação a ser tomada se opção não é implementada 00: salta o header e analisa o próximo 01: descarta o pacote 10: descarta o pacote e envia erro (ICMP) 11: descarta o pacote e envia erro ICMP se não é multicast Contém uma lista de um ou mais nós intermediários a serem percorridos até chegar o destino Composto por quatro campos: Tipo (next header): identifica o próximo header que o segue Extensão: tamanho em unidades de 64 bits deste header Tipo de roteamento Indicação de quantos roteadores ainda faltam até o destino Redes de Computadores 39 Redes de Computadores 40
11 Routing header: exemplo Fragmentation header (1) Decrementado a cada atualização do endereço de destino do header IPv6 Roteamento copia o endereço do destino i para o header IPv6 (campo de destino) Redes de Computadores 41 Fragmentação só é realizada na origem (sistema final) Nós intermediários (roteador) não realizam fragmentação Fonte pode descobrir a MTU mínima da rede para otimizar i a transmissão Uma rede IPv6 deve suportar uma MTU mínima de 1280 bytes Composto por quatro campos: Tipo (next header): : identificador do próximo header que o segue Offset do fragmento Flag More Identificador do fragmento Redes de Computadores 42 Fragmentation header (2) Authentication header Tipo próximo header extensão ou transporte Medido em unidades de 64 bits (8 bytes) Identificador do pacote para reconstrução 0: last fragment 1: more fragment Garante a origem da mensagem e a integridade dos dados Baseado na cifragem e decifração da área de dados através de chaves públicas e privadas Composto por quatro campos: Tipo (next header): ) identifica o próximo header que o segue Extensão do cabeçalho de autenticação Número empregado para obtenção da chave secreta Valor MD5 (checksum) do header Lenght Key number (32) Signature MD5 (Checksum) Redes de Computadores 43 Redes de Computadores 44
12 Encrypted security header Destination header Permite o envio de dados cifrados Modo transporte Modo túnel Formato similar ao hop-by-hop Fornece informações para o nó destino Informações são procedimentos a serem feitos e/ou tratados t pelo nó destino Não há martelo batido sobre todas as alternativas de procedimentos Redes de Computadores 45 Redes de Computadores 46 Endereços especiais Endereços especiais: mapeado, loopback e não especificado Não especificado Usado na inicialização, quando a máquina ainda não tem seu IPv6 Sub-bloco bl com um único endereço (0000::/128) Loopback Sub-bloco bloco com um único endereço (0000::1/128 ou ::1) Compatível Permite comunicação entre interfaces IPv6 usando os endereços IPv4 Sub-bloco 0000::/96 (ex.: 0000:: /96 ou :: /96) Mapeado Permite comunicação IPv6 com IPv4 Sub-bloco 0000::FFFF/96 (ex.: 0000:FFFF: /96) Derivados do bloco reservado 0000::/8 Endereços mapeados: usados na transição IPv4 para IPv6 Endereço compatível (bloco 0000::/96) 96 bits em zero seguido do endereço IPv4 (32 bits) Empregado para comunicar nós em IPv4 em estrutura IPv6 Endereço mapeado (bloco 0000::FFFF/96) 80 bits em zero, 16 bits em 1, seguido do endereço IPv4 (32 bits) Empregado quando um nó IPv6 deseja enviar algo a um nó IPv4 Endereço de loopback É um único endereço (::1 ou 0000:1/128) Endereço não especificado Indica a ausência de endereço atribuído (::0/128) Redes de Computadores 47 Redes de Computadores 48
13 Mas antes deles... tem o Identificador de Interface Global Unicast Address É o sufixo do endereço (64 bits) Interface IDentifier (IID) Deve ser único dentro do mesmo prefixo de sub-rede Pode ser usado em múltiplas interfaces de um mesmo nó, desde que estejam em sub-redes diferentes Tipicamente é um número obtido: Manualmente Automaticamente e de forma randômica Com o auxílio de chave de cifragem pública A partir do endereço MAC no formato EUI-64 Bloco de endereços para identificação unicast Equivalente aos endereços públicos IPv4 Endereço roteável e público na Internet t IPv6 Prefixo 2000::/3, ou seja, endereços Dividido em três partes Prefixo global (n=48 bits), sendo que os três primeiros são fixos (001) Empregado para roteamento na Internet IPv6 Sub-rede (m=16 bits) Identifica uma sub-rede dentro de uma organização (até 2 16 sub-redes) Identificador de interface (q=64 bits) Derivado do endereço MAC (48bits) ou EUI-64 Redes de Computadores 49 Redes de Computadores 50 Endereços Privativos Mais sobre o Link Local Address Emprega dois blocos para endereços privados Prefixo FE80::/10 (link local) Destinado a uso interno dentro de uma organização (dentro de um enlace) É um endereço privativo Formato: Prefixo bloco (10 bits) + 38 bits zerados + 16 bits zerados + 64 bits (sufixo) Prefixo FC00::/7 (unique local) Destinado a uso interno dentro de uma organização (vários enlaces) Não se espera que seja roteado na Internet global IPv6 Formato: Prefixo do bloco (7 bits), escopo (1 bit), randômica (40 bits), sub-rede (16 bits) e identificador (64 bits) Prefixo FE80::/64 Não é globalmente único Configuração automática (stateless) Uma máquina gera seu próprio IPv6 a partir do endereço EUI-64 Uso interno dentro de um domínio de broadcast (não é roteado) Conversão do MAC Para EUI-64 Endereço MAC da placa de rede (EUI-64) 48 FFFE Redes de Computadores 51 Redes de Computadores 52
14 Mais sobre Unique local Address (ULA) Composto por quatro partes Prefixo (7 bits): FC00::/7 Flag Local (1 bit): 1 = alocado localmente, l 0 = alocado globalmente l Identificador global (40 bits): gerado aleatoriamente Identificador interface (EUI-64) Características Enlace possui um prefixo /48 com grande possibilidade de ser único Não se espera que seja roteável dentro da Internet IPv6 Permite a conexão de redes distintas para formar uma maior sem necessitar renomear interfaces (não há conflitos, pois os prefixo são diferentes) É independente de provedor Redes de Computadores 53