IPv6 (IPng) IP de próxima geração Material do curso - Endereço da sala virtual http://salasvirtuaisibta.universia.com.br/cursos/aplic/index.php?cod_curso=1028 Perspectiva - As redes IP “tradicionais” preenchem as necessidades das novas redes? - Grande abrangência: muito maior do que a existente - Suporte a vários tipos de serviço, incluindo - Serviços de tempo real - Qualidade de serviço - Segurança intrínsica Histórico A versão 4 do protocolo IP (a que usamos hoje) foi a primeira versão que permaneceu quase inalterada desde o seu surgimento no final da década de 1970. A longevidade da versão 4 mostra que o projeto é flexível e poderoso. A versão número 5 do protocolo foi descartada para evitar posteriores confusões e ambigüidade e pulada depois de uma série de erros e implementações mal-sucedidas. • Foram necessários vários anos para que o IETF pudesse projetar uma nova versão desse protocolo: a versão 6. No fim de um primeiro momento, o projeto ficou conhecido como SIP (Simple IP), porém hoje essa nomenclatura é usada para Session Initial Protocol, não mais se referenciando ao Simple IP. O Simple IP tornou-se base para uma proposta estendida, que incluía idéias de outras propostas que ficou conhecida como SIPP (Simple IP Plus). • Ao final dessa fase do projeto, o IETF decidiu atribuir à revisão do IP o nome de IPv6 (ele também é conhecido como IPng – IP The Next Generation). Histórico • Embora a força motriz por trás desse fenômeno de crescimento esteja relacionada a aplicações de computadores, estamos verificando a demanda cada vez maior de vários outros mercados, como: – – – • • Dispositivos Pessoais de comunicação: PDAs, telefones celulares, e outros dispositivos de comunicação sem fio endereçáveis na rede. Todos esses dispositivos requerem um endereço único e devem ser capazes de reconfigurar-se automaticamente com um endereço correto quando passam de uma localidade remota para outra. Entretenimento em rede: Vídeo sob demanda, som estéreo de alta qualidade e televisão interativa serão acessíveis via Internet. Por exemplo, no universo de televisão conectada à rede, toda TV torna-se uma máquina da Internet e precisa de um endereço IP. Dispositivos controlados por rede: Uma gama de dispositivos de aplicações simples, tais como dispositivos eletrônicos de segurança, etc. controlados por chaveamento analógico atualmente, serão controlados via rede de pacotes e necessitam de endereçamento para acesso à rede. Cada um desses por si só já representa um considerável número de terminais. Além disso, outras necessidades estão surgindo: necessidade de roteamento em larga escala, configuração e reconfiguração automática, autenticação e encriptação de dados. Histórico Com a demanda de crescimento exponencial ininterrupto do uso da Internet, temos enfrentado cada vez mais: 1. Problema de endereçamento IP: já vimos que “todos” os aparelhos eletrônicos vão se ligar à rede 2. Falta de suporte para as novas aplicações, que exigem: - Reserva de recursos Atrasos controlados Variação de atraso (jitter) dentro de parâmetros específicos O IPv4 foi criado em uma situação muito diferente... Assim, surgiu o IPv6 Histórico O que é IPv6 ? • IPv6 é uma nova geração do protocolo IP • Tem como principais objetivos: 1. Aumentar o número de endereços de rede e 2. Prover uma melhor eficiência na transmissão de pacotes nas redes de computadores, além de suprir deficiências do IPv4. • Características principais: • Capacidade de endereçamento expandida: de 32 bits para 128 bits; • Maior suporte para campos opcionais e extensões; • Capacidade para identificação de fluxo (QoS nativo no protocolo); • Autenticação e Privacidade baseada no IPSec; http://www.tcpipguide.com/free/t_InternetProtocolVersion6IPv6IPNextGenerationIPng.htm IPv4 x IPv6 1 - Formato do cabeçalho: IPv4 x IPv6 2 – Espaço do Endereçamento: • O novo espaço do endereço é a mudança mais evidente – O IPv6 representa um endereço usando 128 bits, contra os 32 bits usados no IPv4. – Assim, o espaço disponível, ou seja, o nro de endereços disponíveis, agora é proporcional a 2128 IPv4 x IPv6 3 – Fragmentação • • A fragmentação de pacotes IPv4 é realizada, usualmente, pelos gateways. No caso do IPv6, isso é feito pela estação origem. Vamos voltar a falar disso daqui a pouco IPv4 x IPv6 4 – Outras diferenças – Três tipos de endereço (unicast, multicast e anycast) – Hierarquia de endereço estendida – Formato de cabeçalho flexível – Suporte para auto-reconfiguração e auto-endereçamento – Suporte para alocação de recursos – Segurança Datagrama A figura abaixo mostra o conteúdo e o formato de um cabeçalho IPv6 básico (40 bytes) • • • • • • • • V (Version) TF (Traffic Class) FL (Flow Label) PL (Payload Length) NH (Next Header) HL (Hop Limit) SA (Source Address) DA (Destination Address) Formato e conteúdos de um cabeçalho básico IPv6. O tamanho de cada campo é dado em bits. Fonte: RFC 1752, RFC 1883, RFC 2373. Datagrama – campos do cabeçalho • FL (Flow Label) – 24 bits – Implementa um mecanismo de reserva de recurso através da definição de “fluxos” – Um fluxo é um “grupo” de datagramas associados (por exemplo, os vários pacotes que pertencem a um vídeo) – O campo FL define um rótulo (um número) que é usado pelos roteadores, em conjunto com o endereço de origem, para associar o datagrama a um particular fluxo. Datagrama – alguns campos do cabeçalho • TF (Traffic Class) – 4 bits – – Especifica a prioridade do pacote de dados. Define dois grupos de pacotes: – No primeiro (prioridade de 0 a 7), pacotes podem responder a controle de congestionamento, a exemplo das redes Frame Relay. Usado para pacotes que não sofrem com variações de tempo – O segundo (prioridade de 8 a 15) corresponde a pacotes que não podem sofrer controle de congestionamento ou seja, dados críticos como voz e vídeo. • NH (Next header)- 8 bits: indica o tipo do próximo cabeçalho do datagrama (protocolo de camada mais alta ou cabeçalho de extensão IP) Datagrama – campos do cabeçalho Valores do Campo Next Header Cabeçalhos de extensão • Na versão IPv4, as várias opções do protocolo estão disponíveis no cabeçalho padrão, tornando o processamento complexo (sempre) • O IPv6 usa um esquema mais flexível – – Existe um cabeçalho obrigatório, presente em todos os datagramas Opções são definidas através de cabeçalhos de EXTENSÃO, opcionais Formato geral do datagrama IPv6 - Fonte: RFC 1752, RFC 1883, RFC 2373. Cabeçalhos de extensão Cada um dos cabeçalhos básico e de extensão contém um campo PRÓXIMO CABEÇALHO (NEXT HEADER) que os roteadores intermediários e o destino final utilizam para desmembrar o datagrama. O processamento é seqüencial – o campo PRÓXIMO CABEÇALHO em cada cabeçalho diz o que aparece em seguida. Fonte: http://www.tcpipguide.com Os cabeçalhos de extensão • Os cabeçalhos de extensão podem ser – – “salto-a-salto”: examinados em todos os saltos ou “fim-a-fim”: significativo apenas para o último salto. • Existe uma ordem para a montagem dos cabeçalhos: – Para diminuir o tempo de processamento, o IPv6 exige que os cabeçalhos de extensão utilizados por roteadores intermediários sejam colocados antes dos cabeçalhos de extensão usados pelo destino final. Os cabeçalhos de extensão: formato geral TIPO TAMANHO VALOR Cada opção é descrita por um conjunto de três informações: • Tipo • Tamanho do campo de dados (o valor) • Valor (os dados em si) Os cabeçalhos de extensão: formato geral Fonte: http://www.tcpipguide.com Cabeçalho de Fragmentação • • • No IPv6, a fragmentação é fim-a-fim, sendo que nenhuma fragmentação ocorre nos roteadores intermediários. A origem, que é responsável pela fragmentação, tem duas escolhas: ela pode usar a MTU (*) mínima garantida de 1280 octetos ou realizar a descoberta de MTU do caminho (Path MTU Discovery) para identificar a menor MTU ao longo do caminho até o destino. De qualquer forma, a origem fragmenta o datagrama de modo que cada fragmento seja menor que a MTU esperada do caminho. CONSEQUENCIA: o IPv6 não suporta alterações de rota. (*)MTU – Maximum Transmit Unit Cabeçalho de Roteamento • O cabeçalho de roteamento contém uma lista de um ou mais nodos que devem ser "visitados" no caminho para o destino. Os cabeçalhos de roteamento sempre começam com um bloco de 32 bits divididos em 4 campos de 8 bits cada < ENDEREÇO 1 > < ENDEREÇO 2> Cabeçalho de Roteamento • Campos do cabeçalho de roteamento: – – – Next Header (8 bits): identifica o próximo cabeçalho; Header extension length (8 bits): tamanho do header em unidades de 64 bits; Routing type (8 bits): identifica um tipo de roteamento; – O único tipo definido até o momento é o “roteamento de origem não estrito” (Routing type = 0) – Segments left: (8 bits): número de nodos intermediários (listados explicitamente) que devem ainda ser visitados antes do destino. Cabeçalho de Roteamento • O cabeçalho para o roteamento de origem não estrito tem mais 8 bits reservados e 24 bits de “strict/loose bit map”. Esses bits são numerados da esquerda para a direita, cada um correspondendo a um hop, indicando se o próximo destino deve ser um vizinho deste (1 = strict) ou não (0 = loose) Endereçamento no IPv6 1030 endereços IP por habitante da Terra! Endereçamento no IPv6 • Para fazer com que esse diagrama fique na escala correta, o retângulo do espaço de endereçamento do IPv6 deveria ser representado por um quadrado do tamanho do sistema solar!! Fonte: http://www.tcpipguide.com Endereçamento - Notação Os endereços IPv6 possuem 128 bits (16 bytes) que são divididos em 8 blocos separados por ":” (dois pontos). Cada bloco possui 16 bits em notação hexadecimal. Forma Padrão: X:X:X:X:X:X:X:X, onde cada X representa um valor hexadecimal. Ex.: FE80:0000:0000:0000:0202:B3FF:FE1E:8329 Forma Abreviada: quando um endereço possui uma seqüência de zeros, existem duas possíveis formas de abreviação. A primeira simplificação é possível quando uma das divisões do endereço (16 bits) possui apenas zeros, neste caso não é necessário escrever todos os zeros apenas um: Endereçamento - Notação A segunda é possível quando várias divisões consecutivas do endereço possuem apenas zeros, nestes casos usa-se o operador "::" para indicar grupos de 16 bits (divisões) contendo apenas zeros. Esta notação só pode ser utilizada uma vez no endereço para substituir uma seqüência de zeros iniciais e/ou finais deste: Endereçamento - Notação Combinação IPv4/IPv6: Combinação de Endereços IPv4 e IPv6, em ambientes que utilizam simultaneamente endereços IPv4 e IPv6 pode-se utilizar uma notação onde os formatos dos endereços das duas versões são representados no mesmo endereço. O formato do endereço segue a seguinte sintaxe: X:X:X:X:X:X:d.d.d.d Ex.: 0000:0000:0000:0000:0000:0000:87.100.68.3 0000:0000:0000:0000:0000:FFFF:129.144.52.38 Endereçamento Tipos de Endereços: • Unicast: endereço utilizado para identificar uma interface IPv6. • Multicast: endereço utilizado para especificar um grupo de interfaces • Anycast: especifica um conjunto de computadores com o mesmo prefixo; o datagrama é encaminhado pelo caminho mais curto para um deles. • Observação: não existe endereço de broadcast em IPv6. Alocação de espaços • • • Definida na RFC 3513 (substitui a 2373) Diferentes “categorias” de endereço são codificadas nos primeiros bits do prefixo (do terceiro ao décimo) Exemplos de alguns espaços já atribuídos pelo IETF: Bits iniciais 0000 0000 001 Fração do espaço total 1/256 1/8 Alocação Endereços especiais (loopback e outros) Endereços Unicast (com agregação) 1111 1110 10 1/1024 Endereço Link local Unicast 1111 1111 1/256 Endereços Multicast http://www.tcpipguide.com/free/t_IPv6AddressSpaceAllocation-2.htm Alocação de espaços • • Uma maneira mais simples de entender a alocação dos endereços IPv6 é considerar que o espaço de endereçamento foi dividido em oito partes (oitavas): – A que tem endereços que começam com “001” foi reservada para endereços Unicast – A que tem endereços que começam com “000” foi reservada para gerar blocos especiais menores (nem todos estão definidos) – A que tem endereços que começam com “111” foi reservada para subblocos de endereços locais e multicast (também, nem todos estão definidos) – Todos as outras cinco “oitavas” do espaço de endereçamento não foram ainda atribuídas (e não estão em uso). RESULTADO: apenas 14% do espaço total de endereços está atualmente em uso!! 86% dos endereços ainda estão reservados para “uso futuro”. Formato geral do endereço Unicast • • Os endereços Unicast (a oitava que começa com “001”) são os endereços destinados às interfaces de sistemas como computadores e dispositivos genéricos Como são os mais comuns, esses endereços têm uma estrutura bem definida, chamada de “Global Unicast Address Format” Nome do campo Prefix Tamanho (em bits) “n” Descrição Global Routing Prefix: o identificador da rede ou prefixo do endereço, usado para roteamento - Definido pelos organismos gestores da Internet Subnet ID “m” Subnet Identifiier: número que indica uma subrede dentro da rede (local) - Definido internamente, pelos administradores de rede (ISP ou empresas) Interface ID 128-(n+m) Interface ID: identificador único dentro de uma rede e sub-rede (não pode ter outro igual) - Definido pelo administrador da rede Formato geral do endereço Unicast • • Em teoria: “n” e “m” podem ter qualquer valor Mas, na prática, adotou-se: – – • Prefixos têm 48 bits, ou seja, “n” = 48 Subnet IDs têm 16 bits, ou seja, “m” = 16 O formato geral de um endereço Unicast então fica 001 Os três primeiros bits são iguais a “001” Fonte: http://www.tcpipguide.com/free/t_IPv6GlobalUnicastAddressFormat-2.htm Formato geral do endereço Unicast • Dada essa formatação, empresas “normais” receberão um bloco de endereços definido por um prefixo de 48 bits – O campo Subnet ID pode ser usado para segmentar suas subredes internas (casa haja necessidade) • O campo de Prefixo tem apenas uma restrição: os três primeiros bits são “001”. Houve muita discussão, inclusive com a publicação de uma RFC já obsoleta, sobre a estruturação dos 45 bits restantes. Atualmente, não há um formato para o campo do Prefixo. Ele foi deixado em aberto para que organizações de distribuição nacional (como a Fapesp) e ISPs distribuam suas redes a seus clientes da maneira mais eficiente possível. O mais importante é considerar que não há estruturas fixas (classes como no IPv4) para manter o esquema de endereçamento flexível. • • Formato geral do endereço Unicast • • • • Relembrando: usando 64 bits para o prefixo e o identificador de subrede, ainda “sobram” 64 bits para o identificador da interface. No padrão IPv4, endereços IP não tinham nenhuma relação com os endereços de nível 2 (MAC). Agora, no padrão IPv6, há espaço suficiente para se fazer um mapeamento direto entre esses dois endereços. O formato EUI-64, ligeiramente modificado, (definido para endereços MAC pelo IEEE) está sendo sugerido como base para o identificador da interface. – Problema desse esquema: toda vez que o hardware mudar, o endereço IP da interface também mudará. Endereços Unicast especiais • Além dos endereços padrão descritos até agora, foram definidos também endereços especiais para necessidades específicas. • Existem dois tipos de endereços especiais – Reservados e privados • Endereços Reservados: – – prefixo iniciado por “0000 0000” Usados para integração com endereços IPv4, para endereço de loopback e para definir um endereço “não especificado” Endereços UNICAST reservados Endereços IPv6 compatíveis com IPv4: este tipo de endereço é utilizado para fazer tunelamento de pacotes IPv6 dinamicamente sobre uma infra-estrutura IPv4. Exemplo: ::200.1.10.25 Endereços IPv6 mapeados em endereços IPv4: este tipo de endereço é utilizado para representar endereços de host que somente possuam endereçamento IPv4 e também quando um host IPv6 envia um pacote para um nó que só suporta IPv4. Exemplo: ::FFFF:200.1.10.25 Endereços Unicast reservados • Endereço de loopback: – O endereço “0:0:0:0:0:0:0:1” ou “::1” foi reservado para testes de interface – Nenhuma interface pode ter esse endereço • Endereço “não especificado” – O endereço “0:0:0:0:0:0:0:0” ou “::” foi reservado para funções específicas nos protocolos de auto-endereçamento – Nenhuma interface pode ter esse endereço Endereços UNICAST privados • Esses endereços não podem ser roteados fora da rede e portanto, são usados exclusivamente dentro dessa mesma rede O endereço de link local é utilizado em um único link para configuração de auto-endereçamento, descoberta de vizinhança ou quando nenhum roteador está presente. Os endereços deste tipo seguem a seguinte estrutura: O endereço de site local foi projetado para ser utilizado em um único site sem a necessidade de um prefixo global (similar aos endereços privados do IPv4). Este endereço possui a seguinte estrutura: Endereços MULTICAST • Os endereços multicast são utilizados para identificar um conjunto de nós. • Um endereço multicast é identificado através do prefixo FF (1111 1111) nos bits mais significativos do endereço. • O protocolo IPv4 já suportava o endereçamento multicast, mas este foi redefinido e melhorado no IPv6. O formato de um endereço multicast no IPv6 segue o formato: Endereços MULTICAST • Os bits do campo “escopo” definem o alcance do endereço, que pode ir de um segmento de rede à toda a Internet. Tabela dos bits do campo ESCOPO Fonte:http://www.tcpipguide.com/free/t_IPv6MulticastandAnycastAddressing.htm Endereços MULTICAST Fonte:http://www.tcpipguide.com/free/t_IPv6MulticastandAnycastAddressing.htm Endereços ANYCAST • Os endereços anycast são endereços atribuídos a um grupo interfaces de rede. • Definida pela RFC 1546 • A princípio, os endereços anycast possuem dois usos: • identificar um grupo de roteadores que provê acesso a um determinado domínio; • identificar todos os roteadores da empresa que provêem acesso à Internet. • A diferença em relação ao Multicast é que o datagrama é entregue para apenas uma interface (não todas) Endereços ANYCAST • Os endereços Anycast não tem nenhum formato especial • Basta “atribuir” o mesmo endereço Unicast a mais de uma interface. • Os endereços anycast têm as seguintes restrições: - Um endereço anycast não pode ser utilizado como endereço de origem - Um endereço anycast não pode ser assinalado a um host, mas somente a um roteador IPv6 (pelo menos por enquanto) Endereçamento - Autoconfiguração • A autoconfiguração de endereços permite uma operação plug-and-play de hosts na Internet. Quando a máquina for ligada, ela deve automaticamente associar um endereço IP à sua interface de rede. • Existem duas formas de autoconfiguração no IPv6: • configuração stateful: onde há um servidor de configuração, com o qual o host se comunica. • configuração stateless: onde o host constrói seu endereço IP a partir do seu endereço de interface de rede. Esse endereço é único, aplicado apenas para hosts e não para roteadores. Não necessita de configuração manual, mas não especifica os servidores de DNS, o prefixo, lifetime e default route. Assume que a interface tem um único interface ID. • Com base no seu endereço de placa de rede, resta, portanto, saber o prefixo ao qual o host pertencerá. Uma forma é se usar o prefixo de uso local, que atende essa necessidade. Para redes que não estão conectadas, é uma ótima solução. Para redes conectadas, o roteador dessa rede deve informar aos hosts o devido prefixo da rede. Maiores informações, consulte a RFC 2462 Conclusão • Aumento no número de endereços (de 232 a 2128) • Simplificação do header aumentando a eficiência • Arquitetura hierárquica de rede aumentando eficiência de roteamento • Suporte para a maioria dos protocolos de roteamento • Suporte para autoconfiguração e plug-and-play • Eliminação da necessidade de NAT • Implementação de IPSec e QoS embutida no protocolo • Suporte avançado para Mobile IP e dispositivos móveis • Aumento no número de endereços multicast Fim