Prévia do material em texto
REDES DE COMPUTADORES AULA 5 Prof. Luis Rohling 2 CONVERSA INICIAL No modelo TCP/IP, temos como principais protocolos o TCP, que opera na camada de transporte, e o IP, que opera na camada de Internet, que equivale à camada de rede no modelo OSI, sendo que as atribuições de cada uma dessas camadas já foram vistas em conteúdos anteriores. Assim, nesta aula, iremos estudar a operação detalhada do protocolo IP, nas versões IPv4 e IPv6, e como esses protocolos implementam as funções da camada de Internet. Figura 1 – O protocolo da camada de Internet Fonte: Rohling, 2022. Conforme vimos em conteúdo anterior, as atribuições da camada de rede no processo de comunicação nas redes de dados são: • Processamento da comunicação ponta a ponta; • Endereçamento dos dispositivos finais; • Encapsulamento e desencapsulamento; • Roteamento. O protocolo definido pelo IETF que irá operar na camada de Internet é o Protocolo Internet (IP – Internet Protocol), cuja versão utilizada atualmente é o IPv4, que está operando em conjunto com a nova versão 6 (IPv6) no modelo chamado de pilha dupla (dual stack). ACESSO AO MEIO INTERNET TRANSPORTE APLICAÇÃO IPv4 e IPv6 Modelo TCP/IP 3 Também é importante observarmos que mesmo com mudança da versão do protocolo da camada de Internet, não é necessária nenhuma alteração no protocolo de transporte, ou seja, temos o mesmo protocolo TCP operando da mesma maneira tanto para o IPv4 quanto para o IPv6, conforme vimos em estudo anterior. Para o encaminhamento dos dados por meio da rede, o protocolo IP irá então encapsular os segmentos recebidos da camada de transporte, acrescentando o cabeçalho da camada de rede, e, assim, montando os pacotes IP. Essa estrutura de informação – que são os pacotes IP – será encaminhada até o destinatário, passando pelos diversos links de dados, nos quais ocorrerá a troca de protocolos da camada de enlace de dados, de acordo com a tecnologia empregada em cada conexão. Uma das características do protocolo IP é que ele é chamado de protocolo “sem conexão”, ou seja, não é estabelecido nenhum tipo de comunicação entre os terminais antes do envio dos dados. Na prática, quem irá estabelecer essa conexão é o protocolo TCP, por meio do processo chamado de “Handshake triplo”, visto em conteúdo anterior. Portanto, a única atribuição do protocolo de rede é fazer com que as mensagens sejam entregues ao destinatário, incluindo as mensagens iniciais, que estabelecem a sessão de comunicação que é feita pelo protocolo TCP. Além de não estabelecer nenhum tipo de conexão, o protocolo IP também não possui nenhum mecanismo de confirmação de entrega, o que, na prática, novamente é feito pelo protocolo TCP. Ou seja, temos todos os requisitos de uma comunicação confiável implementada com a utilização do conjunto de protocolos TCP e IP, que operam de forma complementar. TEMA 1 – O PACOTE IP A estrutura de comunicação formada na camada de rede, também chamada de PDU, é o pacote IP, que será formado pelo acréscimo do cabeçalho do protocolo de rede ao segmento recebido da camada de transporte. 4 Figura 2 – Cabeçalho dos pacotes IP Fonte: Rohling, 2022. No cabeçalho dos pacotes é que teremos as informações necessárias para que sejam implementadas as funções da camada de rede, tais como os endereços de origem e de destino dos pacotes, bem como as informações de controle do processo de encaminhamento de tráfego por meio da rede, que é o roteamento. Inclusive, com a evolução do protocolo IP, na versão IPv6 temos diversas melhorias implementadas em relação ao IPv4, as quais impactam a alteração das informações inseridas no cabeçalho dos pacotes. Uma dessas alterações é o tamanho do campo de endereços, que possibilita o endereçamento de muitos outros terminais, aumentando a quantidade de dispositivos conectados à Internet. 1.1 O cabeçalho IPv4 O cabeçalho do protocolo IPv4 possui um comprimento total de 20 bytes, em que temos diversos campos, conforme mostrado na figura a seguir. Camada de Transporte Segmento TCP CABEÇALHO IP Segmento TCP Camada de Rede Pacote IP 5 Figura 3 – Cabeçalho IPv4 Fonte: Rohling, 2022. O primeiro campo do cabeçalho, que possui quatro bits de comprimento, indica a versão do protocolo IP que está contido no pacote. Assim, ao receber o pacote, o terminal já poderá determinar qual é o conteúdo do pacote, ou seja, quais são os campos seguintes, pois os cabeçalhos dos protocolos IPv4 e IPv6 são diferentes. Assim, os pacotes IPv4 terão, no campo Versão, o valor binário igual a 0100, que corresponde ao valor quatro em decimal. No segundo byte do cabeçalho, temos o campo identificado como DSCP, que é utilizado para a implementação dos mecanismos de qualidade de serviço nas redes, que é o chamado QoS. Assim, este campo poderá ser utilizado pelos dispositivos intermediários de rede, que são os roteadores, para aplicar um tratamento diferenciado para o tráfego que atravessa a rede. Porém, no processo de roteamento da Internet, normalmente esse campo não é utilizado, ou seja, não haverá nenhum tratamento diferenciado para o tráfego WEB. Outro campo de fundamental importância no processo de roteamento, que é uma das atribuições da camada de rede, é o campo identificado como TTL, abreviação de Time To Live, o qual representa o limite de vida do pacote dentro da rede com um tamanho de oito bits. Como os pacotes poderão ser roteados por vários caminhos, poderemos ter os loops dentro da rede, de modo que o pacote seria encaminhado indefinidamente, ocupando a rede e não conseguindo ser encaminhado para o seu destino. Assim, esse campo tem o seu valor decrementado cada vez que é encaminhado por um roteador dentro da rede. Versão DSCP Identificação Tamanho Flag Deloc.Fragmento TTL Protocolo Soma de verificação Endereço IP de origem Endereço IP de Destino 20 bytes Byte1 Byte2 Byte3 Byte4 6 Quando o valor desse campo atingir o valor zero, o pacote é descartado, não sendo mais roteado. Ou seja, esgotada a quantidade de encaminhamentos, que são chamados de saltos, o pacote não é mais encaminhado, por isso o campo é chamado de tempo de vida, apesar de não estar associado diretamente a um relógio. Como os campos do cabeçalho do pacote IP são preenchidos pelo terminal que irá enviar os dados, esse campo é definido, por padrão, pelo próprio sistema operacional que está sendo executado no terminal, tanto no computador do usuário quanto no servidor. Assim, podemos ter inclusive valores diferentes de TTL para cada sentido da comunicação, ou seja, o valor de TTL inserido pelo cliente pode ser diferente do valor de TTL inserido pelo servidor. De modo semelhante ao protocolo Ethernet, o protocolo IP também insere no seu cabeçalho um valor para identificar qual é o protocolo de camada superior que está encapsulado no pacote IP, que consiste no campo mostrado na figura que mostra os campos do cabeçalho e que está identificado como Protocolo, cujo tamanho é de oito bits. Para identificar o remetente e o destinatário dos pacotes IP, o protocolo IP insere no cabeçalho os endereços IP de origem e de destino, que são dois campos de 32 bits cada. Assim, os roteadores que realizam o processo de encaminhamento do tráfego na rede IP irão analisar o endereço de destino contido no cabeçalho de cada pacote, definindo por qual interface será encaminhado o pacote. 1.2 O cabeçalho IPv6 O cabeçalho do pacote IPv6 é diferente do cabeçalho do pacote IPv4, possuindo uma menor quantidade de campos, pois a operação do protocolo IPv6 apresenta diversas evoluções em relação à versão anterior. Com o aumento do tamanho do identificador, que é o endereço IP, teremos a necessidade de um tamanho maior do cabeçalho, já que o espaço necessáriopara cada endereço (de origem e de destino) será quatro vezes maior. Assim, o espaço ocupado no cabeçalho para esses endereços, que era de 64 bits no cabeçalho IPv4, será de 256 bits no protocolo IPv6, pois os endereços são de 128 bits. 7 Assim, para diminuir o tamanho do cabeçalho, o IPv6 utiliza um campo chamado de Próximo Cabeçalho, o qual permite acrescentar mais cabeçalhos, se necessário, conforme mostrado na figura a seguir. Figura 4 – Cabeçalho IPv6 Fonte: Rohling, 2022. Assim como no IPv4, o primeiro campo do cabeçalho IPv6 é o campo que indica a versão do protocolo, que, nesse caso, conterá o valor binário 0110, que equivale ao valor de seis em decimal. O próximo campo identifica a classe de tráfego e equivale ao campo DSCP do protocolo IPv4, de modo a manter a compatibilidade com os mecanismos de QoS já implementados para a versão anterior. O IPv6 introduziu um novo campo, o Rótulo de Fluxo. Esse campo é utilizado para agilizar o processo de roteamento, de modo que os fluxos de tráfego iguais tenham o mesmo processamento pelos roteadores. O próximo campo do cabeçalho IPv6, que é o Tamanho do Payload, irá indicar qual é a quantidade de dados recebidos da camada superior, os quais estão inseridos no pacote IP. Versão Classe de tráfego Tamanho do Payload Rótulo de fluxo Próximo Cabeçalho Limite de saltos Endereço IP de origem Endereço IP de Destino 40 bytes Byte1 Byte2 Byte3 Byte4 8 Caso seja necessário inserirmos mais informações para o processo do IPv6, o campo Próximo Cabeçalho será utilizado para indicar que antes dos dados da camada superior, chamada Payload, existirá mais um cabeçalho, cujos campos dependerão do tipo de cabeçalho adicional. O campo TTL do cabeçalho do protocolo IPv4 foi renomeado no protocolo IPv6, sendo agora identificado como Limite de Saltos, porém, com a mesma funcionalidade da versão anterior. Assim, esse campo tem uma identificação mais adequada em relação à sua funcionalidade no IPv6. Os dois últimos campos do cabeçalho, de 128 bits cada, são os endereços de Origem e de Destino do pacote IP, utilizados pelos roteadores para o processo de encaminhamento dos pacotes na rede, da mesma maneira que para o IPv4. TEMA 2 – O ENDEREÇAMENTO IP Para a identificação dos computadores na rede IP, temos o endereço IP, que deve ser atribuído a cada dispositivo que necessite estabelecer um processo de comunicação na rede. Esse identificador tem que ser exclusivo para que o processo de encaminhamento dos pacotes na rede (roteamento) possa localizar corretamente o destinatário do pacote IP. Assim, quando for conectado em uma rede, seja por meio de uma conexão com cabo UTP ou em uma rede wireless, o seu computador receberá esse identificador, o qual dependerá do esquema de endereçamento da rede à qual foi conectado. Para que você possa identificar qual é o endereço atribuído ao seu computador, se estiver utilizando o sistema operacional Windows, deverá abrir a tela de comandos com a digitação do comando “cmd” na linha de pesquisa, abrindo uma tela identificada como “Prompt de comando”, conforme mostrado na figura a seguir. Para visualizar o endereço IP, o comando a ser utilizado é o “ipconfig”. 9 Figura 5 – Identificando o endereço IP do computador Fonte: Rohling, 2022. Neste exemplo, podemos verificar que o computador está operando com as duas versões do protocolo IP, possuindo um endereço IPv4 (192.168.15.153) e um endereço IPv6 (2804:7f4:358c:e14:5cf1:97b2:2927:652). Além do endereço IPv4, temos também a Máscara de Sub-rede, que, neste caso, é 255.255.255.0. Para o IPv6, temos, ainda, o endereço de link local (fe80::80c6:f1e7:60fc:8b7). Mais adiante, veremos a diferença entre esses endereços e a forma como foram atribuídos ao computador. 2.1 A máscara de rede Outra característica do identificador de camada de rede é o endereço IP, que é dividido em duas partes, sendo que a primeira parte representa a identificação da rede, enquanto a segunda representa a identificação dos hosts dentro da rede. Para que possamos identificar essa divisão, teremos um parâmetro adicional indicado pela notação de uma barra seguida do valor que corresponde à quantidade de bits que representa a rede. Assim, um endereço Ipv4 seguido da notação “/24” indicará que esse endereço tem os seus primeiros 24 bits representando a rede, e os últimos oito bits identificando os hosts dentro desta rede. 10 Outra forma de identificarmos essa divisão entre a parte de rede e a parte de hosts é a utilização da chamada máscara de rede, que também é um identificador de 32 bits representado em decimal. Figura 6 – O endereço Ipv4 Fonte: Rohling, 2022. No exemplo mostrado acima, temos o endereço 192.168.100.25/24, ou seja, com uma máscara igual a 255.255.255.0, indicando que os primeiros 24 bits identificam a rede, que é a rede 192.168.100, e os últimos oito bits identificando o host nessa rede, que é o host 25. Para o endereço Ipv6, não temos a utilização da máscara de rede, mas apenas a indicação da divisão entre a parte de rede e de host com a notação da barra, chamada de comprimento de prefixo. O endereço 2804:7f4:358c:e14:5cf1:97b2:2927:652/64 tem os primeiros 64 bits para a representação da rede 2804:7f4:358c:e14, e os últimos 64 bits para a identificação do host dentro dessa rede, que é o host 5cf1:97b2:2927:652. 2.2 O endereço IPv4 O endereço IPv4 é formado por um conjunto de 32 bits, sendo representado no formado decimal, em uma notação com quatro valores separados por pontos. Assim, o conjunto de 32 bits é separado em quatro grupos de oito bits, chamados de octetos. Cada um desses octetos é então convertido para o seu valor decimal. Para realizarmos a conversão dos valores binários para decimal, podemos utilizar o método da soma dos pesos dos bits. A primeira etapa desse processo de conversão é a definição do peso de cada bit, conforme mostrado na figura a seguir. Endereço IPv4: 192.168.100.25 Máscara: 255.255.255.0 Bits de rede Bits de Host 11 Figura 7 – O peso dos bits BIT 7 6 5 4 3 2 1 0 Peso 27 26 25 24 23 22 21 20 Decimal 128 64 32 16 8 4 2 1 Fonte: Rohling, 2022. Definido o valor de cada bit, para a conversão de um valor binário de oito bits deveremos então realizar a multiplicação dos valores dos bits pelos seus pesos, realizando a soma do resultado dessas multiplicações para obter o valor decimal equivalente. Para convertermos o valor binário 10110010 para o seu valor decimal, teremos: 101100102 = (1 × 128) + (0 × 64) + (1 × 32) + (1 × 16) + (0 × 8) + (0 × 4) + (1 × 2) + (0 × 1) = 178 Assim, um endereço IPv4 será representado por quatro valores decimais, que poderão variar de 0 a 255, correspondendo aos valores decimais equivalentes aos valores binários 00000000 a 11111111, respectivamente. Porém, além do endereço IPv4, os dispositivos conectados em uma rede IPv4 também deverão ter um segundo parâmetro, que também é um conjunto de 32 bits, identificado como Máscara de Rede ou de Sub-rede. A finalidade da máscara é permitir que o terminal identifique o endereço da rede à qual ele está conectado, por meio da aplicação dessa máscara sobre o endereço IP atribuído ao terminal. O processo de aplicação da máscara de rede sobre o endereço IP consiste em executar uma operação binária do tipo AND, bit a bit, entre o endereço IP e a máscara. O resultado de uma operação AND será igual a um apenas quando os dois valores forem iguais a um, sendo zero caso um dos valores (ou ambos) seja igual a zero. Figura 8 – A operação AND binária 0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1 12 Assim, se o primeiro bit da operação AND for a máscara, de acordo com a figura anterior, o resultado da operação será igual ao valor do segundo bit. Dessa forma, ao aplicarmos a máscara sobreo endereço IP, o resultado será igual ao valor dos octetos do endereço IP em que a máscara for igual a um. Considerando que temos como endereço do terminal o 192.168.10.10 com máscara 255.255.255.0, ao aplicarmos a máscara, teremos o resultado mostrado na figura a seguir. Figura 9 – Aplicação da máscara IP Fonte: Rohling, 2022. Portanto, o endereço da rede será 192.168.10.0, que consiste no resultado da operação AND da máscara sobre o endereço do terminal. 2.3 O endereço IPv6 O identificador do protocolo IPv6 é formado por um conjunto de 128 bits, representado em hexadecimal, de maneira semelhante ao endereço MAC do protocolo Ethernet. Assim, cada quatro bits do endereço IPv6 é representado por um caractere hexadecimal, em um total de 32 caracteres. Para a separação dos valores, é utilizada a notação de dois pontos entre conjuntos de dezesseis bits, ou seja, entre conjuntos de quatro caracteres hexadecimais. 192 168 10 10 11000000 10101000 00001010 00001010 255 255 255 0 11111111 11111111 11111111 00000000 11000000 10101000 00001010 00000000 192 168 10 0 Endereço IP Máscara Endereço da rede 13 Assim, conforme mostrado anteriormente, um exemplo de endereço IPv6 seria o 2804:7f4:358c:e14:5cf1:97b2:2927:652. Porém, no exemplo acima, você pode notar que nem todos os valores separados por dois pontos contêm os quatro valores em hexadecimal. Isso ocorre porque temos algumas regras que permitem a simplificação da representação de um endereço IPv6. A primeira regra para a simplificação estabelece que os valores iguais a zero que estejam à esquerda e dentro de um intervalo de valores separados por pontos poderão ser suprimidos. Assim, no exemplo anterior, o endereço com a representação completa dos valores e com a inserção dos valores iguais a zero que foram suprimidos seria 2804:07f4:358c:0e14:5cf1:97b2:2927:0652. Dependendo dos valores contidos no endereço, podemos ter uma redução significativa na quantidade de caracteres utilizados para representar um determinado endereço IPv6. Como exemplo, podemos considerar o endereço 2001:001f:010a:0003:0b36:0001:009c:0005, que pode ser simplificado e escrito como 2001:1f:10a:3:b36:1:9c:5. A segunda regra para a simplificação da representação do endereço IPv6 é a supressão total das sequências de valores iguais a zero. No entanto, essa simplificação não pode ser aplicada em duas sequências separadas, caso contrário, não seria possível a formação do conjunto de 128 bits novamente com base em um valor simplificado dessa forma. Como exemplo de aplicação dessa regra, podemos representar o endereço IPv6 2001:001f:0000:0000:00000:001c:09b8:000f sendo escrito como 2001:1f::1c:9b8:f. TEMA 3 – OS TIPOS DE ENDEREÇOS O processo de comunicação nas redes de dados em relação ao destinatário dos pacotes IP pode ocorrer de três maneiras distintas: comunicações em unicast, multicast e broadcast. Portanto, será necessário um mecanismo de identificação do destinatário dos pacotes de acordo com cada um desses tipos de comunicação. Na comunicação em unicast, temos apenas um destinatário da mensagem, conforme mostrado na figura a seguir. 14 Figura 10 – A comunicação em unicast Fonte: Rohling, 2022. 3.1 O Broadcast IPv4 Quando estudamos o protocolo Ethernet, vimos o mecanismo de broadcast de camada de enlace empregado por este protocolo, no qual o endereço de destino inserido no cabeçalho do quadro Ethernet é preenchido com bits 1, ou seja, um conjunto de 48 bits 1, o que equivale ao endereço MAC igual a FF:FF:FF:FF:FF:FF. Assim, ao receber um quadro com esse endereço de destino, o switch irá encaminhar o quadro para todas as interfaces, menos para a interface na qual o quadro foi recebido. Os computadores conectados à rede Ethernet, quando recebem um quadro com o endereço MAC de Broadcast como endereço de destino, também processam o quadro, realizando o desencapsulamento do pacote IP, que é encaminhado para a camada superior (camada de rede). Da mesma forma, o protocolo IP também possui um mecanismo de identificação do tráfego de Broadcast utilizado no campo de endereço contido no cabeçalho dos pacotes IP. Na comunicação em broadcast, portanto, os destinatários da mensagem serão todos os computadores conectados à rede, conforme mostrado na figura a seguir. 15 Figura 11 – A comunicação em unicast Fonte: Rohling, 2022. Para o envio de mensagens de broadcast, o protocolo Ipv4 utiliza um mecanismo semelhante ao Ethernet, com o preenchimento dos endereços com bits 1. Porém, no caso do protocolo IPv4, poderemos ter um endereço de Broadcast “absoluto” semelhante ao MAC de broadcast, com bits iguais a um em todas as posições do endereço de 32 bits. Assim, o endereço de Broadcast Ipv4 será, em notação decimal, igual a 255.255.255.255. Porém, como os roteadores não encaminham o tráfego de broadcast entre as redes, o mais comum é a utilização do endereço de broadcast da rede, obtido com o preenchimento da parte do endereço que representa os hosts em uma rede também com bits iguais a um. Na rede 192.168.10.0/24, por exemplo, teremos como endereço de broadcast o endereço 192.168.10.255, pois como temos uma máscara de rede de 24 bits, isso significa que os últimos oito bits são para os hosts, e o endereço de broadcast da rede é gerado com a colocação de bits 1 em todas as posições dos bits de host, que equivalem ao valor decimal igual a 255. 16 Figura 12 – O endereço de Broadcast Fonte: Rohling, 2022. 3.2 O Multicast O terceiro tipo de comunicação é o Multicast, no qual o destinatário da mensagem é um grupo de dispositivos terminais (figura 13), e não todos os terminais conectados à rede, como ocorre na comunicação em broadcast. Segundo o que vimos no protocolo Ethernet, teremos um conjunto de endereços específicos para esse tipo de comunicação. Endereço IP: 192 168 10 10 11000000 10101000 00001010 00001010 Máscara: 255 255 255 0 11111111 11111111 11111111 00000000 Endereço da rede: 11000000 10101000 00001010 00000000 192 168 10 0 Endereço de broadcast da rede: 11000000 10101000 00001010 11111111 192 168 10 255 17 Figura 13 – A comunicação em multicast Fonte: Rohling, 2022. Para o envio das mensagens em multicast utilizando o protocolo IPv4, temos um intervalo de endereço que foi reservado pelo IETF para esse tipo de comunicação. O intervalo de endereços de multicast vai do endereço 224.0.0.0 até o 239.255.255.255. Assim, esses endereços serão utilizados na configuração dos aplicativos que operam utilizando a comunicação em muticast, tanto no servidor quanto nos clientes. Além da configuração dos terminais, é necessária a configuração adequada dos dispositivos intermediários de rede, principalmente dos roteadores que farão o encaminhamento desse tráfego. O protocolo IPv6 também possui endereços definidos especificamente para o processo de multicast, os quais são divididos em duas categorias e identificados como Multicast Atribuído e Multicast Solicitado. Para o primeiro, temos dois endereços: • FF02::1, o endereço de Multicast de todos os nós; • FF02::2, o endereço de Multicast de todos os roteadores. Esses endereços são utilizados no processo de configuração básica dos hosts em uma rede IPv6 para a troca de mensagens entre o roteador e os hosts conectados à rede. Assim, os pacotes IPv6 enviados com o endereço FF02::1 no campo de endereço de destino no cabeçalho dos pacotes serão processados por todos os hosts conectados à rede. 18 Os pacotes IPv6 enviados com o endereço FF02::2 no campo de endereço serão processados por todos os roteadores conectados à rede, mesmo que tenhamos apenas um roteador, pois, dessa forma, os hosts não precisam conhecer o endereço do roteador na suaconexão com a rede LAN para estabelecer a comunicação com o mesmo. TEMA 4 – ENDEREÇOS PÚBLICOS E PRIVADOS Na definição dos endereços IPv4 a serem utilizados para a identificação dos hosts que poderiam se conectar à rede de dados, o padrão publicado pelo IETF definiu uma organização em classes, de forma que as máscaras de rede seriam definidas em função dos próprios endereços. Porém, essa divisão dos endereços em classes acabou se demostrando um fator de limitação para o crescimento do número de hosts que poderiam se conectar à Internet, fazendo com que houvesse um grande desperdício de endereços. Assim, nas redes atuais, essa classificação das redes em classes já não é mais adotada, contudo, nesse caso, é necessário que tenhamos também a informação sobre a máscara de rede para podermos identificar à qual rede o endereço pertence. 4.1 As classes de endereços IPv4 Para a definição das classes de endereços IPv4, o critério empregado foi o valor dos bits iniciais de cada endereço, com base nos quais poderia então ser definida a máscara de rede a ser empregada. Dessa forma, foram definidas as classes de endereço A, B e C, em que os endereços de classe A utilizam uma máscara de oito bits, os endereços de classe B utilizam uma máscara de 16 bits, e os endereços de classe C utilizam uma máscara de 24 bits. Quanto ao valor dos endereços de cada uma das classes, os endereços de classe A têm o seu primeiro bit igual a zero. Assim, os endereços de classe A terão no seu primeiro octeto um valor decimal de 0 a 127; os de classe B terão como os dois primeiros bits os valores um e zero, de forma que o valor decimal do primeiro octeto será um valor entre 128 e 191; e os de classe C iniciarão com a sequência de três bits iguais a um, um e zero, de forma que o valor decimal do primeiro octeto poderá variar entre 192 e 223. Dessa forma, temos as classes e máscaras utilizadas por cada uma das classes conforme mostrado na tabela a seguir: 19 Tabela 1 – Classes de endereço IPv4 Classe Endereços Máscara padrão A 1.0.0.0/8 até 126.0.0.0/8 255.0.0.0 B 128.0.0.0/16 até 191.0.0.0/16 255.255.0.0 C 192.0.0.0/24 até 223.0.0.0/24 255.255.255.0 Fonte: Rohling, 2022. Assim, um host que utilize o endereço 200.10.10.25 deverá utilizar uma máscara de 24 bits, ou seja, 255.255.255.0, pois o octeto inicial é igual a 200, estando entre os valores 192 e 223, que delimitam a classe C. De outra forma, dizemos que o endereço 200.10.10.25 é um endereço de classe C. 4.2 Os endereços IPv4 privados Apenas a mudança na utilização das classes padrão, definidas incialmente para o endereçamento IPv4, não foi suficiente para atender à demanda crescente do número de hosts que precisavam se conectar à Internet, sendo então adotado o conceito de endereços IPv4 públicos e privados. Nesta divisão, foram então definidos três blocos de endereços que seriam privados, a fim de serem utilizados para a identificação dos hosts nas redes LAN, sendo que esses endereços não são rotados na rede WAN. Assim, podemos atribuir um endereçamento na rede local independentemente dos endereços utilizados nas outras redes locais, que, inclusive, podem estar utilizando os mesmos endereços. Dessa forma, o IETF definiu os seguintes blocos de endereços para serem utilizados como endereços privados: • 10.0.0.0/8; • 172.16.0.0/12; • 192.168.0.0/16. Utilizando o conceito de classes, que continua sendo a referência para identificarmos as máscaras padrão dos endereços, poderemos utilizar para o endereçamento das redes LAN: • Uma classe A (classe 10.0.0.0/8); • 16 classes B, que vão da classe 172.160.0.0/16 a 172.31.0.0/16; • 256 classes C, que vão da classe 192.168.0.0/24 a 192.168.255.0/24. 20 Figura 14 – O endereçamento privado nas redes LAN Fonte: Rohling, 2022. Porém, para permitir que os hosts da rede LAN possam acessar os servidores na rede WAN, é necessário que os endereços contidos no cabeçalho dos pacotes IP sejam trocados em um processo chamado NAT (Network Address Translation). Esse processo normalmente é executado pelo roteador, que fará a troca de endereços para cada pacote encaminhado da rede LAN para a rede WAN. Além disso, o roteador também deverá fazer a troca dos endereços nos pacotes que retornarem da WAN, de forma que sejam encaminhados para o host correto na rede LAN. Figura 15 – O processo de NAT Fonte: Rohling, 2022. LAN 1 192.168.10.0/24 LAN 2 192.168.20.0/24 10.10.34.15 IP privado Servidor WEB 200.10.20.35 IP público NAT 135.12.47.143 21 No exemplo da figura acima, o roteador fará a troca do endereço de origem dos pacotes IP enviados pelo computador para o servidor, normalmente utilizando o endereço da interface do roteador na sua conexão com a Internet. Assim, os pacotes gerados pelo computador terão como endereço IP de origem o 10.10.34.15 e como IP de destino o 200.10.20.35. Ao passar pelo roteador, o endereço de origem, no cabeçalho do pacote IP, será substituído pelo 135.12.47.143, que é o endereço público do roteador. Ao receber as respostas do servidor, que terão como endereço de destino o 135.12.47.143, o roteador fará a troca desse endereço para o 10.10.34.15, encaminhando o pacote IP para a rede LAN. 4.2 Os endereços IPv6 de link local e de unicast global Para o protocolo IPv6, o IETF não adotou mais a divisão entre endereços públicos e privados, ou seja, uma das principais diferenças entre o IPv4 e o IPv6 é que não temos mais o processo de tradução de endereços (NAT). Assim, no protocolo IPv6, para que um host estabeleça um processo de comunicação com a Internet, ele terá um endereço exclusivo e válido chamado de endereço de Unicast Global. Uma vez que será roteado na Internet, esse endereço terá que ser atribuído pelo provedor de acesso à internet, chamado ISP, de acordo com os endereços que foram alocados para esse provedor de acesso. O outro tipo de endereço definido no protocolo IPv6 é chamado de endereço de Link Local. Ele é atribuído de maneira automática pelo próprio sistema operacional do terminal do usuário, desde que esse sistema ofereça suporte ao IPv6. Assim, não é mais necessário nenhum serviço de rede externo para que um host estabeleça uma comunicação na rede local. Toda a comunicação na LAN será realizada utilizando o endereço de Link Local, cuja rede alocada para esse endereçamento é FE80::/64. Na figura a seguir, podemos identificar esses dois tipos de endereço IPv6, nos quais observamos dois endereços de Unicast Global que estão na rede 2804:7f4:358c:e14::/64 e um endereço de Link Local que está na rede FE80::/64. 22 Figura 16 – Os endereços IPv6 Fonte: Rohling, 2022. Na figura, podemos constatar também outra diferença entre os protocolos IPv4 e IPv6, pois pode haver mais de um endereço IPv6 atribuído a uma interface, o que não ocorre no IPv4. TEMA 5 – A DIVISÃO EM SUB-REDES No processo de comunicação nas redes IP, uma das funções do dispositivo de encaminhamento de tráfego (roteador) é a conexão entre os chamados domínios de Broadcast. Em outras palavras, o roteador irá separar os domínios de Broadcast de forma que o tráfego de Broadcast recebido pelo roteador em uma de suas interfaces não será enviado para as demais. O tráfego de Broadcast gera uma ocupação total da rede, e a quantidade desse tipo de tráfego aumenta à medida que o número de hosts conectados em uma rede aumenta. Assim, redes com muitos hosts conectados terão uma degradação do seu desempenho em função do tráfego de Broadcast. Portanto, a solução para diminuir o impacto do tráfego de Broadcast no desempenho das redes é a segmentação da rede, dividindo-a em domínios de Broadcast menores. Para isso, além da necessidade de mais interfaces disponíveis no roteador, é necessária também a divisão do endereçamento da rede, com a criação das chamadas sub-redes.23 Para que não seja necessário que o roteador possua diversas interfaces físicas, uma solução é a utilização das subinterfaces, nas quais temos a configuração das interfaces lógicas e das redes virtuais, as VLANs. O processo de criação das sub-redes consiste basicamente na alteração da máscara de rede, de forma que a quantidade de bits alocados para a identificação da rede seja aumentada com a utilização de bits que eram alocados para a identificação dos hosts, processo chamado de “empréstimo”. Ou seja, a máscara de rede original será aumentada, alocando mais bits para a parte de rede do endereço, sendo que esses bits “emprestados” serão utilizados para formar as sub-redes. 5.1 Divisão no limite dos octetos Uma das formas mais simples para a divisão em sub-redes é a utilização de uma das classes de endereço IPv4 alocadas para as redes privadas, realizando o deslocamento da máscara para o próximo octeto. Podemos utilizar uma rede de classe B, em que temos 16 bits para a parte de rede e 16 bits para a parte de host, e realizarmos o deslocamento da máscara para o próximo octeto, ou seja, de /16 para /24. Assim, teremos então a divisão da rede de classe B em redes de classe C, com a criação das sub-redes de classe C, conforme a figura a seguir: Figura 17 – Divisão em sub-redes Fonte: Rohling, 2022. REDE REDE HOST HOST REDE REDE Sub- Rede HOST Rede classe B (/16): máscara 255.255.0.0 Sub-rede classe C (/24): máscara 255.255.255.0 24 Assim, se utilizarmos a rede privada de classe B 172.16.0.0/16 e realizarmos o deslocamento da máscara para o próximo octeto, teremos a divisão dessa rede em 256 novas sub-redes de classe C, conforme segue: • 1ª Sub-rede: 172.16.0.0/24; • 2ª Sub-rede: 172.16.1.0/24; • 3ª Sub-rede: 172.16.2.0/24; • 4ª Sub-rede: 172.16.3.0/24; • 5ª Sub-rede: 172.16.4.0/24; • ... • 256ª Sub-rede: 172.16.255.0/24. A quantidade de sub-redes criadas é calculada com base nas combinações binárias possíveis por meio do número de bits de host que foram “emprestados” para a criação das sub-redes, que, nesse caso, foram oito bits. Assim, temos: 2n = 28 = 256 sub-redes Em cada uma dessas redes poderemos ter até 254 endereços de host, pois teremos oito bits para a parte de host, sendo que a primeira combinação será o endereço da rede, e o último endereço será o de broadcast da rede, conforme vimos anteriormente. Assim, nessa divisão de uma classe B em classes C, termos: 2n - 2 = 28 – 2 = 254 endereços de host Além da divisão de uma classe B em classes C, podemos ainda realizar a divisão de uma classe A em classes B ou em classes C. Para isso, deveremos realizar a mudança da máscara de rede de /8 de uma rede classe A para uma máscara /16, criando sub-redes classe B, ou para uma máscara /24, criando sub- redes classe C. Como temos apenas uma classe A reservada pelo IETF para o endereçamento privado, que é a rede 10.0.0.0/8, poderemos então dividir essa rede em classes B, obtendo 256 sub-redes com 65534 endereços de host em cada uma, ou dividir a rede 10.0.0.0/24 em 65536 sub-redes, com 254 endereços de host em cada uma delas. 25 Portanto, para definirmos qual classe de endereço devemos utilizar como base e a classe de endereços a ser criada, devermos avaliar a quantidade de hosts que teremos na maior sub-rede e a quantidade de sub-redes a serem criadas. 5.2 Divisão fora do limite dos octetos Além do processo de divisão em sub-redes no limite dos octetos, uma outra forma de realizarmos essa divisão em sub-redes é utilizarmos uma máscara, realizando o “empréstimo” de alguns bits de host para a parte de rede, e não um octeto inteiro. Assim, podemos, por exemplo, criar sub-redes por meio de uma classe C, o que ocorreu na prática em relação aos endereços válidos, em função do esgotamento do espaço de endereçamento do protocolo IPv4. Dessa forma, os provedores de acesso à Internet normalmente alocam para seus clientes um espaço de endereçamento menor que uma classe C, realizando a divisão em sub-redes com máscaras de até /30, principalmente nos links de conexão entre o roteador do provedor e o roteador do cliente, que utilizarão esse endereço IPv4 para realizar o processo de NAT. Porém, neste caso é necessário realizarmos o cálculo utilizando a representação binária dos endereços e das máscaras, pois a divisão é realizada dentro dos octetos. A quantidade de bits a serem “emprestados” segue a mesma regra vista anteriormente, ou seja, de acordo com a quantidade de sub-redes a serem criadas. Assim, a quantidade de bits necessários para a criação das sub- redes será calculada por 2n, em que n é o número de bits de sub-rede. Para criarmos dez sub-redes, nas quais teremos até 300 hosts em cada uma, é necessário definirmos a quantidade mínima de bits para a parte de sub- rede e para a parte de host. Nesse caso, teremos: a) Endereços de host = 2n - 2 = 29 – 2 = 510 endereços de host; b) Quantidade de sub-redes = 2n = 24 = 16 sub-redes. Portanto, serão necessários no mínimo nove bits para a parte de host e quatro bits para a parte de sub-rede. Dessa forma, não poderíamos utilizar um endereço de classe C, pois o total de bits de host já é menor que a quantidade de endereço de hosts necessários. 26 Porém, se utilizarmos um endereço classe B, como temos 16 bits de host, poderemos então “emprestar” os quatro bits para a formação das sub-redes, restando ainda 12 bits para a parte de host, que é suficiente para endereçar os 300 hosts em cada sub-rede. Então, utilizando a rede 172.16.0.0/16, por exemplo, faremos a divisão desta em sub-redes com máscara /20, pois teremos os 16 bits da rede de classe B original, acrescidos dos quatro bits de sub-rede, totalizando 20 bits. Essa divisão é mostrada na tabela a seguir: Tabela 2 – O terceiro octeto binário Rede 172 16 00000000 0 /16 1ª Sub-rede 172 16 00000000 0 172.16.0.0/20 2ª Sub-rede 172 16 00010000 0 172.16.16.0/20 3ª Sub-rede 172 16 00100000 0 172.16.32.0/20 4ª Sub-rede 172 16 00110000 0 172.16.48.0/20 5ª Sub-rede 172 16 01000000 0 172.16.64.0/20 16ª Sub-rede 172 16 11110000 0 172.16.240.0/20 Fonte: Rohling, 2022. Nesta tabela, foi representado o terceiro octeto em binário a fim de que possamos realizar as combinações binárias possíveis para a formação das sub- redes. Como temos 12 bits para host, poderemos ter até 212 – 2 = 4094 hosts em cada sub-rede. Assim, para a quarta sub-rede, por exemplo, teremos como endereço de rede 172.16.48.0/20, e para o endereçamento dos hosts dentro dessa rede, teremos o intervalo de 172.16.48.1/20 até 172.16.63.254/20, sendo o endereço de broadcast o 172.16.63.255/20. Além da divisão fora do limite dos octetos, com a aplicação de uma mesma máscara de sub-rede para todas as sub-redes criadas, também podemos aplicar novamente o processo de divisão de sub-redes por meio de uma das redes criadas na primeira divisão. Tal processo é chamado de VLSM (Variable Length Subnet Mask), sendo conhecido como máscara de sub-rede de tamanho variável. Na divisão da rede 172.16.0.0/16 em sub-redes com máscara /20 mostrada acima, poderíamos tomar a última sub-rede /20 criada, ou seja, a rede 172.16.240.0/20, e realizarmos a sua divisão em sub-redes /24, conforme segue: 27 • 1ª Sub-rede: 172.16.240.0/24; • 2ª Sub-rede: 172.16.241.0/24; • 3ª Sub-rede: 172.16.242.0/24; • 4ª Sub-rede: 172.16.243.0/24; • ... • Última Sub-rede: 172.16.255.0/24. 5.3 Divisão de sub-redes IPv6 No caso do endereçamento IPv6, como a configuração da rede é feita de maneira automática com a criação do endereço de Link Local, não seria necessária a divisão em sub-redes, pois cada rede LAN conectada a uma interface física ou virtual do roteador habilitado com o protocolo IPv6 terá o seu endereçamento associado a uma rede FE80::/64. Porém, caso seja necessária a divisão de uma rede deUnicast Global fornecida pelo provedor de acesso à Internet, poderemos então aplicar o mesmo método empregado no IPv4, fazendo-se a mudança do comprimento do prefixo. Assim, por meio de uma rede /64, poderíamos criar sub-redes /68 com a utilização de quatro bits de host “emprestados”. Esse deslocamento de quatro bits do comprimento do prefixo permitirá que criemos 16 sub-redes, que serão geradas com base nas combinações do caractere hexadecimal utilizado para criá-las, que irá variar de 0 (zero) até F. Nesse caso, utilizando-se a rede 2001:db8:acad:1::/64 para a criação de sub- redes /68, por exemplo, teríamos as seguintes sub-redes IPv6: • 1ª Sub-rede: 2001:db8:acad:1::/68; • 2ª Sub-rede: 2001:db8:acad:1:1000::/68; • 3ª Sub-rede: 2001:db8:acad:1:2000::/68; • 4ª Sub-rede: 2001:db8:acad:1:3000::/68; • 5ª Sub-rede: 2001:db8:acad:1:4000::/68; • ... • 16ª Sub-rede: 2001:db8:acad:1:F000::/68. Porém, mesmo sendo um cálculo bastante simples, os endereços das sub-redes podem não ser tão fáceis de identificar, podendo ainda causar algumas dúvidas e até mesmo levar a erros de configuração. 28 Assim, poderíamos então realizar o deslocamento do comprimento do prefixo no limite dos hextetos, ou seja, com o deslocamento de 16 bits no comprimento do prefixo. Dessa forma, considerando-se a rede IPv6 do exemplo anterior, a rede 2001:db8:acad:1::/64 poderia ser dividida em redes /80, conforme segue: • 1ª Sub-rede: 2001:db8:acad:1::/80; • 2ª Sub-rede: 2001:db8:acad:1:1::/80; • 3ª Sub-rede: 2001:db8:acad:1:2::/80; • 4ª Sub-rede: 2001:db8:acad:1:3:/80; • 5ª Sub-rede: 2001:db8:acad:1:4::/80; • ... • Última sub-rede: 2001:db8:acad:1:FFFF::/80. Com essa divisão, obteremos, então, 65.536 sub-redes, as quais são diferenciadas pelo quinto hexateto, que varia de 0 (zero) até FFFF. A quantidade total de sub-redes é determinada pelo mesmo processo de cálculo das redes IPv4, que, nesse caso, em função dos 16 bits “emprestados” para a formação de sub-redes, será de: 216 = 65.536 sub-redes FINALIZANDO A comunicação na rede de dados atual, sobretudo a Internet, utiliza como protocolo da camada de rede o Protocolo IP nas versões IPv4 e IPv6, que implementam as funcionalidades do processo de comunicação, isto é, o processamento da comunicação ponta a ponta, o endereçamento dos dispositivos finais, o encapsulamento e desencapsulamento e o roteamento. Assim, nesta aula, vimos a estrutura dos pacotes IP com os principais campos inseridos nos seu cabeçalho, nos quais temos também os endereços IP de origem e de destino, os quais fornecem a informação necessária para que seja estabelecida a comunicação ponta a ponta. Para o endereçamento dos dispositivos finais, temos diversos tipos de endereços, sendo que, no protocolo IPv4, temos a divisão em classes de endereços, bem como a divisão entre endereços públicos e privados. Já para o endereçamento IPv6, temos os endereços de Link Local e os endereços de Unicast Global. 29 Em ambos os casos, temos a atribuição do endereçamento a ser utilizado no acesso à Internet definido pelos provedores de acesso, que farão o roteamento do tráfego dos seus clientes até o destino, incluindo o encaminhamento do tráfego para a rede de outros provedores. O processo de roteamento executado pelos roteadores será baseado nas informações contidas nos pacotes, que são os endereços IPv4 ou IPv6 de destino e a base de dados sobre as redes, a qual é elaborada pelos roteadores e chamada de tabela de roteamento. Essas tabelas de roteamento conterão basicamente os endereços das redes e as interfaces pelas quais os pacotes devem ser encaminhados para chegarem até a rede de destino. Como podemos ter milhares ou até mesmo milhões de redes na Internet, uma forma de reduzir o tamanho das tabelas de roteamento é a utilização de máscaras com tamanhos menores em relação às máscaras padrão, o que é chamado de CIDR (Classless Inter-Domain Routing). Com a utilização do CIDR, é realizado um “resumo” das redes que um determinado roteador possui conectadas no processo de divulgação da informação sobre essas redes para os demais roteadores. Inclusive, essa notação baseada em CIDR foi vista em nossa aula, em que discutimos que um dos intervalos de endereçamento IPv4 utilizado para as redes privadas é o 172.16.0.0/12, que representa as redes de classe B de 172.16.0.0/16 até 172.31.0.0/16. Outro aspecto prático em relação às redes de dados é o fato de que nas redes LAN de maior porte, tais como as redes empresariais, é necessária a segmentação da rede para diminuir o impacto do tráfego de broadcast com a criação de sub-redes. Porém, ao realizarmos essa divisão, é necessária a definição de um endereçamento distinto para cada uma das sub-redes criadas com a utilização dos endereços privados, no caso das redes IPv4. Para a definição do endereçamento a ser utilizado em uma rede LAN, é necessário conhecermos a quantidade de hosts que serão conectados em cada sub-rede, bem como a quantidade de sub-redes que serão criadas. Com base nesses dados, poderemos definir qual será a classe de endereço IPv4 a ser utilizada, assim como o tamanho de máscara a ser utilizada para a criação das sub-redes. 30 Visto o mecanismo de endereçamento da camada de rede, posteriormente, estudaremos a última camada do modelo TCP/IP, abordando as principais aplicações utilizadas nas redes de dados e os protocolos empregados por essas aplicações. 31 REFERÊNCIAS CHAPPEL, L. Diagnosticando redes: Cisco internetwork toubleshooting. São Paulo: Pearson Education do Brasil, 2002. MAIA, L. P. Arquitetura de redes de computadores. 2. ed. Rio de Janeiro: LTC, 2013. TANEMBAUM, A. S. Redes de computadores. 2. ed. São Paulo: Pearson Education do Brasil, 2011. FINALIZANDO REFERÊNCIAS