Prévia do material em texto
Protocolos IPV4 e IPV6 Endereços IPV4 – 1 byte = 8 bits O protocolo IP foi definido para transmissão de dados com base em endereços virtuais, usados para interconexão de redes de comunicação de chaveamento de pacotes. Ele opera na camada de rede e é responsável pela transmissão de conjuntos de dados chamados de datagramas, desde o nó de origem até o nó de destino. Para longos datagramas, o protocolo na versão IPv4 encarrega-se de fragmentá-los na origem e reconstruí-los no destino. A fragmentação foi excluída da versão IPv6. Cada pacote de dados enviado pelo IP convencionou-se chamar de datagrama. Um datagrama é formado por duas partes, sendo uma fixa de 20 bytes, que é nominada header, e outra variável, que contém os dados da comunicação. A estrutura do header (cabeçalho) de um datagrama do IPv4 e os campos do header do datagrama são apresentados: Estrutura e Campos do Header · Versão: 4 bits. Versão no Protocolo IP no IPV4, tem o valor 4. · IHL: 4 bits. Comprimento do header em palavras de 32 bits. Seu valor varia de 5 a 15. · Serviços Diferenciais: 8 bits. Os 6 bits superiores designam a classe do serviço e os 2 bits inferiores designam sinalizações de congestinamento de pacotes · Tamanho Total: 16 bits. Informa o tamanho total do datagrama, que é a soma do tamanho do header com a áera de dados, com valor máximo de 65.535 bytes. · Identificação: 16 bits. Contém a identificação de um bloco de dados recebido pela origem. No caso de um bloco de dados muito grande que é fragmentado em pedaços menores, essa identificação é a mesma para todos os datagramas que contenham fragmentos do bloco original, permitindo que seja reconstruído no destino. · Bit Nulo: 1 bit. Não utilizado · DF: 1 bit. Bit de impedimento de fragmentação. Quando ativado, indica que, se a área de dados for muito grande, ela não deve ser fragmentada e uma mensagem de erro deve ser enviada para o nó de origem. · MF: 1 bit. Bit de idenficação do último fragmento. Quando ativado, indica que mais fragmentos ainda estão por serem enviados. Quando desativado, indica que esse é o último fragmento. · Deslocamento de Fragmento: 13 bits. Indica a posição do fragmento no bloco de dados original. · Tempo de Vida: 8 bits. Contador do tempo de vida de um datagrama. Toda vez que um datagrama passa por um roteador (hop), esse contador é decrementado. Caso siga a zero, esse datagrama é descartado e uma mensagem de erro é enviada para o nó de origem. · Protocolo: 8 bits. Indica a qual protocolo de nível superior o datagrama pertence. · Checksum de Cabeçalho (Header): 16 bits. Valor de verificação da integridade do header, calculado com base num algoritmo específico. Existe um erro de repetição caso um valor indicado no header seja diferente do calculado. O valor de checksum é calculado a cada trajeto do datagrama (hop), até chegar ao nó de destino. · Endereço de Origem: 32 bits. Endereço de IP do nó de origem. · Endereço de Destino: 32 bits. Endereço de IP do nó de destino. · Opções: o campo opção varia de 0 a mais bytes, em múltiplos de 4 bytes. É usado para especificar aspectos de segurança, roteando os registros de controle de desempenho da rede. Está em desuso atualmente. O endereço de um nó na rede IPv4 é composto de 4 bytes, ou 32 bits. Portanto, o número máximo é de 4.294.967.296 (232) endereços distintos. A princípio, basta ter um endereço IP válido e conhecer o endereço IP do nó de destino da internet para que se consiga estabelecer uma conexão, não importa o quão distante estejam entre si. Cada endereço IPv4 pode ser decomposto em duas partes. A primeira refere-se ao endereço da rede, e a segunda, ao endereço do nó na rede. Esses endereços são organizados em classes, conforme apresentado: Classes de endereços do IPV4 Nos endereços da classe A, temos um menor número de redes e um maior número máximo de nós (hosts) na rede. Já nas redes de classe C, temos um maior número de redes, compostas por um menor número máximo de nós em cada uma. A classe D é usada para comunicação multicast, isto é, de um nó para muitos nós simultaneamente. A classe E foi reservada para o futuro. Na prática Numa rede classe C, com endereço 192.168.2.0, teremos, por exemplo, os seguintes endereços válidos: · 192.168.2.0 – primeiro endereço IP da faixa é interpretado como sinônimo do próprio endereço do nó. Ele é usado em tabelas internas de configuração de rede desse nó. · 192.168.2.1 – primeiro endereço disponível para um nó da rede. · 192.168.2.21 – exemplo de outro endereço disponível. · 192.168.2.254 – último endereço disponível para um nó dessa rede. · 192.168.2.255 – último endereço IP da faixa (todos os bits do endereço de host com valor 1) é usado para endereçar todos os nós da faixa. Enviando uma mensagem para esse endereço, todos os nós daquela rede interpretarão que a mensagem foi endereçada para eles, individualmente. Suponha que a rede 192.168.2.0 deva ser subdividida em outras 2 redes, chamadas de sub-redes: · Sub-rede 1: 192.168.2.0, com 126 endereços disponíveis, de 192.128.2.1 a 192.168.2.126. · Sub-rede 2: 192.168.2.128, com 126 endereços disponíveis, de 192.128.2.129 a 192.168.2.254. Para esses casos, foi criada uma notação chamada de “máscara de sub-rede” para indicar explicitamente em um endereço IP o que faz parte do endereço da rede e o que faz parte do endereço dos nós. Essa notação é obtida adicionando-se ao final do endereço um caractere “/” seguido de um número decimal. Esse número que denominaremos “L” corresponde ao número de bits do campo de endereço de rede, contados da esquerda para a direita, conforme exemplificado: Máscara de sub-rede Por questões históricas de implementação, a máscara de sub-rede assim chamada era composta de números 1 consecutivos correspondentes aos bits que faziam parte do endereço da rede. Endereços IPV6 O primeiro requisito da versão 6 do protocolo IP (IPv6) foi o de ampliar o espaço de endereçamento da internet. Na versão IPv4, o espaço de endereçamento era limitado a 232, ou algo em torno de quatro bilhões e trezentos mil endereços. Com a representação de endereços no IPv6, passou-se de 32 bits para 128 bits de comprimento. O primeiro requisito da versão 6 do protocolo IP (IPv6) foi o de ampliar o espaço de endereçamento da internet. Na versão IPv4, o espaço de endereçamento era limitado a 232, ou algo em torno de quatro bilhões e trezentos mil endereços (COFFEEN, 2014). Com a representação de endereços no IPv6, passou-se de 32 bits para 128 bits de comprimento. Na representação em binário, um endereço do IPv6 poderia, por exemplo, ser este: 00100000 00000001 00001101 10111000 00000000 00010000 10101010 00100000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 Outra representação consiste em descrevê-lo na notação hexadecimal (dezesseis valores possíveis), em que cada grupo de 4 bits é representado por um número de 0 a 9, ou por uma letra de A a F. O dígito A representa o valor 10 em decimal, B é 11, até o dígito F, que representa o valor 15. As letras de A até F podem ser maiúsculas ou minúsculas. Adotou-se o caractere “:” como separador de cada 4 dígitos hexadecimais. O endereço anterior poderia ser reordenado então em grupos de 4 bits, para depois ser convertido para a notação hexadecimal, como a seguir: BINÁRIO 00100000 00000001 00001101 10111000 00000000 00010000 10101010 00100000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 HEXADECIMAL 2001:0db8:0010:aa20:0000:0000:0000:0001 Para simplificar a escrita, adotou-se ainda como convenção representar um conjunto de 4 dígitos zero (0000) em hexadecimal como sendo apenas um 0, como também omitir os dígitos 0 à esquerda de cada conjunto de quatro dígitos. O endereço anterior poderia ser escrito então apenas como: HEXADECIMAL 2001:db8:10:aa20:0:0:0:1 Com um pouco mais de simplificação, convencionou-se que dígitos 0 hexadecimais consecutivos poderiam simplesmente ser substituídos por “::”, desde que feita uma única vez, resultando na formafinal hoje amplamente empregada para a representação de endereços IPv6: HEXADECIMAL 2001:db8:10:aa20::1 Mas lembre-se de que a abreviação de grupos de 0 por :: só pode ser feita uma única vez para não gerar ambiguidade. Suponha um endereço IPv6 como este: HEXADECIMAL 2001:db8:0:0:C60E:980D:0:0 Aplicando a regra de abreviação :: uma única vez, esse endereço poderia ser representado de duas maneiras equivalentes: HEXADECIMAL 2001:db8::C60E:980D:0:0 ou 2001:db8:0:0:C60E:980D:: O uso da notação de máscara de sub-rede é o mesmo do IPv4. Por exemplo, está definido que dos 128 bits que definem o endereço IPv6 a seguir, os primeiros 58 bits da esquerda para a direita referem-se ao endereço da rede, e os demais 70 bits restantes referem-se ao endereço dos nós na rede: 2001:db8:10:aa20::1/58 Para saber mais Além da ampliação do espaço de endereços IPv6, diversos objetivos foram definidos para a especificação do protocolo IPv6: · Reduzir o tamanho das tabelas de roteamento. · Simplificar o protocolo para acelerar o roteamento de pacotes entre redes. · Melhorar a segurança com serviços de autenticação e privacidade. · Ampliar o tratamento de tipos de serviços específicos, como de transmissão de dados em tempo real. · Manter o endereço IP mesmo para equipamentos móveis. · Facilitar a evolução do protocolo no futuro. · Permitir por anos a convivência das duas versões IPv4 e IPv6. A partir de uma análise da estrutura do header de um datagrama IPv6, podemos concluir que houve uma simplificação, agora apresentando um menor número de campos em comparação com a versão anterior. Por exemplo, o campo de tamanho total de header do IPv4 foi eliminado, uma vez que o header do IPv6 tem tamanho fixo, assim como o campo de checksum do header para verificação de erros, que também foi excluído. Conheça também na figura a descrição e o tamanho de cada campo do header do datagrama do IPv6: Estrutura do header do datagrama do IPv6 · Versão: 4 bits. Versão do protocolo IP tem valor 6 no caso do IPV6. · Serviços Diferenciais: 8 bits. Usado para distinguir diferentes tipos de serviços e respectivos requisitos de entrega de pacotes, como o de tratamento em tempo real. · Rótulo de Fluxo: 20 bits. Permite que a origem possa marcar pacotes com o mesmo rótulo, indicando que possuem o mesmo requisito e que sua entrega deva ser tratada da mesma maneira · Tamanho da Carga Útil: 16 bits. Determina o número de butes agregados ao datagrama após o header fixo de 40 bits. Cada datagrama, portanto, pode transportar no máximo 216 bytes, ou 65.535 bytes. · Próximo Cabeçalho: 8 bits. Indica qual o tipo de cabeçalho de extensão seguinte ao cabeçalho atual, caso haja essa extensão. · Limite de Hops: 8 bits. Define o número máximo de saltos (hops) que pode existir entre os nós de origem e destino. Cada roteador pelo qual o datagrama passa é contado como um hop. · Endereço de Origem: 128 bits. Endereço IPV6 do nó de origem, com 16 bytes de comprimento. · Endereço de Destino: 128 bits. Endereço IPV6 do nó de destino, com 16 bytes de comprimento. Pilha de protocolos IPV4 x IPV6 A transição do IPv4 para o IPv6 ainda está em curso, empregando diversas técnicas para sustentação da convivência entre endereços de versões diferentes. As técnicas de transição podem ser classificadas segundo a sua funcionalidade: · Pilha dupla: consiste em manter no mesmo equipamento uma pilha IPv4 e IPv6, operando simultaneamente de forma nativa. · Túnel: envolve a criação de um túnel para a comunicação de pacotes IPv4 em IPv6 e vice-versa. · Tradução: permite que pacotes IPv6 sejam convertidos em pacotes IPv4 e vice-versa. Podem ainda ser divididas em: · Stateful: demandam a manutenção de tabelas de estado com informações sobre endereços ou pacotes. Consomem mais recursos de processamento e memória e apresentam pior desempenho. · Stateless: cada pacote é tratado de maneira independente dos demais anteriores. São escaláveis, com boa relação custo-desempenho. A técnica conhecida como pilha dupla (DS – dual stack) deve ser usada sempre que possível, porque assegura que o protocolo IPv4 continue operando de maneira estável, enquanto o protocolo IPv6 seja implantado de maneira nativa. Isso favorece uma implantação gradual, até que toda a internet tenha se convertido para o IPv6 e o IPv4 tenha a sua pilha desabilitada. Funcionamento da transição IPv4-IPv6 com pilha dupla A figura apresenta uma solução de pilha dupla de protocolos TCP/IP onde a camada de Rede é subdividida em duas partes paralelas, uma representando o protocolo IPv4 e outra o protocolo IPv6, que operam simultaneamente. Duas linhas são desenhadas representando os fluxos de pacotes que partem e chegam na aplicação. No sentindo descendente, representando pacotes enviados pela Aplicação, as linhas partem da camada de Aplicação, passando pela camada de Transporte onde temos os protocolos TCP/UDP, passando pela Camada de Rede, uma pelo protocolo IPv4 e outra pelo protocolo IPv6 e, finalmente, passando pela camada Física. A linha identificada como IPv4 passa pela camada de Rede apenas no protocolo IPv4. A linha identificada como IPv6 passa pela camada de Rede apenas no protocolo IPv4. No sentido ascendente, de pacotes chegando à camada de Aplicação, a ordem de passagem em todas as camadas é invertida. Com a pilha dupla, os servidores podem atender diretamente às demandas que cheguem por meio de pacotes IPv6 vindos de nós com sua implementação nativa. Não há penalização por já utilizar o IPv6. Para as demandas que cheguem com o protocolo IPv4, os serviços também estarão disponíveis, garantindo a compatibilidade enquanto durar a transição. Do ponto de vista dos clientes, uma consulta a um servidor de nomes (DNS – domain name server) preparado para operar num ambiente de transição, como definido pela RFC 3596, retornará com dois endereços, um com o formato IPv4 e outro com IPv6. Caso o nó cliente tenha exclusivamente um endereço IPv4 ou IPv6, a decisão sobre qual endereço utilizar fica clara. Mas caso tenha os dois endereços, aplicará então um algoritmo-padrão para decidir qual a sua melhor opção, conforme definido pela RFC 3484 A taxa de adoção do IPv6 ainda é baixa, e o esgotamento dos endereços do IPv4 já é uma realidade. Podemos identificar que o uso de endereços IPv6 medidos pelo Google (2020) é de cerca de 30% dos acessos feitos pela internet em janeiro de 2020. Protocolo DHCP · Usos da desse protocolo · Formalização · · Serviços prestados via protocolo DHCP · Interface de configuração do servidor DHCP · 3 tipos de alocação de endereços IP · Modelo em que o protocolo opera: cliente-servidor · Riscos potenciais WEB NOVOS SLIDES DA WEB