Endereçamento de Rede – IPv4
O endereçamento é uma função-chave dos protocolos da camada de rede que permitem a comunicação de dados entre os hosts na mesma rede ou em redes diferentes. O Internet Protocol versão 4 (IPv4) permite o endereçamento hierárquico para pacotes que trans- portam dados.
Projetar, implementar e gerenciar um plano de endereçamento IPv4 eficaz assegura que a rede opere com eficácia e eficiência.
Este capítulo examinará em detalhes a estrutura dos endereços IPv4 e sua aplicação à construção e teste de redes e sub-redes IP.
Neste capítulo, você vai aprender a:
Explicar a estrutura do endereçamento IP e demonstrar a habilidade de converter números binários e decimais de 8 bits.
A partir de um endereço IPv4, classificar por tipo e descrever como é usado na rede.
Explicar como os endereços são designados a redes pelos provedores de Internet e dentro de redes pelos administradores.
Determinar a porção de rede de um endereço de host e explicar o papel da máscara de sub-rede ao se dividir as redes.
A partir das informações e critérios de projeto de um endereçamento IPv4, calcular os componentes de endereçamento ade- quados.
Usar utilitários comuns de teste para verificar e testar a conectividade de rede e o status operacional da pilha de protocolo IP em um host.
Cada dispositivo de uma rede deve ter uma definição exclusiva. Na camada de rede, os pacotes de comunicação precisam ser identifica- dos com os endereços de origem e de destino dos dois sistemas finais. Com o IPv4, isso significa que cada pacote tem um endereço de origem de 32 bits e um endereço de destino de 32 bits no cabeçalho da Camada 3.
6.0.1 INTRODUÇÃO AO CAPÍTULO
6.1.1 A ANATOMIA DE UM ENDEREÇO IPV4
Esses endereços são usados na rede de dados como padrões binários. Dentro dos dispositivos, a lógica digital1 é aplicada à sua interpretação. Para nós, na rede humana, uma string de 32 bits é difícil de interpretar e ainda mais difícil de lembrar. Portanto, repre- sentamos endereços IPv4 usando o formato decimal pontuada2.
Decimal com Pontos
Padrões binários que representam endereços IPv4 e são expressos como decimais com pontos, separando-se cada byte do padrão biná- rio, chamado de octeto3, com um ponto. É chamado de octeto por que cada número decimal representa um byte ou 8 bits.
Por exemplo, o endereço:
10101100000100000000010000010100 é expresso no formato decimal com pontos como:
172.16.4.20 Porção de Rede e Host
Para cada endereço IPv4, uma porção dos bits mais significativos representa o endereço de rede. Na Camada 3, definimos uma rede como grupo de hosts que têm padrões de bits idênticos na porção de endereço de rede de seus endereços.
Embora todos os 32 bits definam o endereço do host, temos um número variável de bits que são chamados de porção de host do endereço. O número de bits usados nessa porção de host determina o número de hosts que podemos ter na rede.
Por exemplo, se precisamos ter pelo menos 200 hosts em determinada rede, precisaremos usar bits suficientes na porção de host para poder representar pelo menos 200 combinações de bits distintas.
Para atribuir um endereço único a cada um dos 200 hosts, usaremos todo o último octeto. Com 8 bits, pode-se conseguir um total de 256 combinações de bits diferentes. Isso significa que os bits dos três primeiros octetos representariam a porção de rede.
Obs.: O cálculo do número de hosts e a determinação de que porção dos 32 bits se refere à rede será tratado mais adiante neste capítulo.
Para entender a operação de um dispositivo na rede, precisamos ver os endereços e outros dados do modo que o dispositivo os vê - pela notação binária. Isso quer dizer que precisamos ter alguma habilidade em conversão de binário para decimal.
Dados representados em binário podem representar muitas formas diferentes de dados para a rede humana. Nessa conside- ração, vamos nos referir ao binário conforme relacionado ao endereçamento IPv4. Isso quer dizer que olharemos para cada byte (octeto) como número decimal no intervalo de 0 a 255.
Notação Posicional
Aprender a converter de binário para decimal exige entendimento da base matemática de um sistema de numeração chamado notação posicional4. Notação posicional significa que um dígito representa valores diferentes dependendo da posição que ocupa. Mais especifi- camente, o valor que o dígito representa é aquele valor multiplicado pela potência da base, ou raiz5, representada pela posição que o dígito ocupa. Alguns exemplos vão ajudar a esclarecer como esse sistema funciona.
Para o número decimal 245, o valor que o 2 representa é 2*10^2 (2 vezes 10 na potência 2). O 2 está no que costumamos chamar de posição das centenas. A notação posicional se refere a essa posição como posição de base^2, porque a base, ou raiz, é 10 e a potência é 2.
Usando a notação posicional no sistema de numeração de base 10, 245 representa:
1 Também conhecida como álgebra booleana. Consiste em operações AND, OR, IF.
2 Formato seguido por um endereço IP. Por exemplo: 10.0.0.1.
3 Grupo de 8 bits binários. É similar, mas não é o mesmo que byte. Uma aplicação numa rede de computadores usa o octeto para dividir endereços IPv4 em 4 componentes.
4 Notação Posicional ou sistema de notação local-valor é um sistema de numeração do qual cada posição está relacionada com a próxima por um multi- plicador constante, uma taxa comum, chamada de base ou raiz daquele sistema de enumeração.
5 O número de vários dígitos únicos, incluindo zero, que um sistema de enumeração posicional usa para representar números. Por exemplo, no sistema binário (base 2) a raiz é 2. No sistema decimal (base 10), a raiz é 10.
6.1.2 CONHEÇA OS NÚMEROS – CONVERSÃO BINÁRIA PARA DECIMAL
245 = (2 * 10^2) + (4 * 10^1) + (5 * 10^0) ou
245 = (2 * 100) + (4 * 10) + (5 * 1) Sistema de Numeração Binário
No sistema de numeração binário a raiz é 2. Portanto, cada posição representa potências de 2 crescentes. Nos números binários de 8 bits, as posições representam estas quantidades:
2^7 2^62^5 2^4 2^32^2 2^1 2^0 128 64 32 16 8 4 2 1 O sistema de numeração de base 2 só tem dois dígitos: 0 e 1.
Quando interpretamos um byte como número decimal, temos a quantidade que a posição representa se o dígito é 1 e não temos quantidade se o dígito é 0, como mostrado na figura.
1 1 1 1 1 1 1 1 128 64 32 16 8 4 2 1
Um 1 em cada posição significa que acrescentamos o valor daquela posição ao total. Essa é a adição quando há um 1 em cada posição de um octeto. O total é 255.
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
Um 0 em cada posição indica que o valor para aquela posição não é acrescentado ao total. Um 0 em cada posição dá um total de 0.
0 0 0 0 0 0 0 0 128 64 32 16 8 4 2 1 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 0
Note na figura que uma combinação diferente de uns e zeros resultará em um valor decimal diferente.
Veja a figura os passos para converter um endereço binário para um endereço decimal.
No exemplo, o número binário:
10101100000100000000010000010100 é convertido para:
172.16.4.20
Tenha em mente estes passos:
Divida os 32 bits em 4 octetos.
Converta cada octeto para decimal.
Acrescente um "ponto" entre cada decimal.
Não precisamos só ser capazes de converter de binário para decimal, mas também de decimal para binário. Muitas vezes precisamos examinar um octeto individual de um endereço apresentado em notação decimal com pontos. Isso acontece quando os bits de rede e os bits de host dividem um octeto.
Como exemplo, se um host com o endereço 172.16.4.20 está usando 28 bits para o endereço de rede, precisaríamos examinar o binário no último octeto para descobrir que esse host está na rede 172.16.4.16. Esse processo de extrair o endereço de rede do ende- reço de host será explicado mais adiante.
Valores de Endereço entre 0 e 255
Visto que nossa representação de endereços é limitada a valores decimais para um único octeto, só examinaremos o processo de conversão de binário de 8 bits para os valores decimais de 0 a 255.
Para começar o processo de conversão, começamos determinando se o número decimal é igual a ou maior do que nosso maior valor decimal representado pelo bit mais significativo6. Na posição mais significativa, determinamos se o valor é igual a ou maior do que 128. Se o valor for menor que 128, colocamos um 0 na posição 128 e passamos para a posição 64.
Se o valor na posição 128 for maior ou igual a 128, colocamos um 1 na posição 128 e subtraímos 128 do número que está sendo convertido. Daí, comparamos o restante dessa operação com o próximo valor menor, 64. Continuamos esse processo para todas as posições de bit restantes.
Veja a figura um exemplo desses passos. Convertemos 172 para 10101100.
6 A posição do bit num número que tem o maior valor. Às vezes é chamado de bit a esquerda.
6.1.3 CONHEÇA OS NÚMEROS – CONVERSÃO DE DECIMAL PARA BINÁRIO
Resumo de Conversão
A figura resume a completa conversão de 172.16.4.20 da notação decimal com pontos para a notação binária.
Dentro do intervalo de endereço de cada rede IPv4, temos três tipos de endereço:
Endereço de rede - O endereço pelo qual nos referimos à rede
Endereço de broadcast - Endereço especial usado para enviar dados a todos os hosts da rede
6.2.1 TIPOS DE ENDEREÇOS NUMA REDE IPV4
Endereços de host - Os endereços designados aos dispositivos finais da rede Endereço de Rede
O endereço de rede é um modo padrão de se referir a uma rede. Por exemplo, poderíamos chamar a rede mostrada na figura como a
"rede 10.0.0.0". Esse é um modo muito mais conveniente e descritivo de se referir à rede do que usar um termo como "a primeira rede".
Todos os hosts na rede 10.0.0.0 terão os mesmos bits de rede.
Dentro do intervalo de endereços IPv4 de uma rede, o primeiro endereço é reservado para o endereço de rede. Esse endereço possui o valor 0 para cada bit de host do endereço.
Endereço de Broadcast
O endereço de broadcast7 IPv4 é um endereço especial para cada rede, que permite comunicação a todos os hosts naquela rede. Para enviar dados para todos os hosts em uma rede, um host pode enviar um único pacote que é endereçado para o endereço de broadcast da rede.
O endereço de broadcast usa o último endereço do intervalo da rede. Esse é o endereço no qual os bits da porção de host são todos 1s. Para a rede 10.0.0.0 com 24 bits de rede, o endereço de broadcast seria 10.0.0.255. Esse endereço também é chamado de broadcast direcionado8.
Endereços de Host ou Endereços Válidos
Como descrito anteriormente, todo dispositivo final precisa de um endereço único para encaminhar um pacote para um host. Nos ende- reços IPv4, atribuímos os valores entre o endereço de rede e o de broadcast para os dispositivos naquela rede.
Prefixos de Rede
Uma pergunta importante é: Como sabemos quantos bits representam a porção de rede e quantos bits representam a porção de host?
Quando expressamos um endereço de rede IPv4, acrescentamos um tamanho de prefixo ao endereço de rede. O tamanho do prefixo é o número de bits no endereço que nos dá a porção de rede. Por exemplo, em 172.16.4.0 /24, o /24 é o tamanho do prefixo - ele nos diz que os primeiros 24 bits são o endereço de rede. Isso deixa os 8 bits restantes, o último octeto, como porção de host. Mais adiante neste capítulo, aprenderemos mais um pouco sobre outra entidade que é usada para especificar a porção de rede de um endereço IPv4 para os dispositivos de rede. É chamada de máscara de sub-rede. A máscara de sub-rede consiste em 32 bits, exatamente como o endereço, e usa 1s e 0s para indicar que bits do endereço são bits de rede e que bits são bits de host.
Nem sempre se designa um prefixo /24 às redes. Dependendo do número de hosts na rede, o prefixo designado pode ser diferente. Ter um número de prefixo diferente muda o intervalo de host (de endereços válidos) e o endereço de broadcast de cada rede.
Note que o endereço de rede pode continuar o mesmo, mas o intervalo de endereços válidos e o endereço de broadcast são diferentes para tamanhos de prefixo diferentes. Nessa figura você também pode ver o número de hosts que podem ser endereçados nas mudanças de rede.
7 Endereço que deve representar uma transmissão de um dispositivo para todos os dispositivos com base no endereço de broadcast específico.
8 Uma única cópia de um broadcast direcionado é roteada para a rede específica, de onde é definida para todos os terminais naquela rede.
Neste momento, você talvez esteja se perguntando: Como calculamos esses endereços? Esse processo de cálculo exige que olhemos esses endereços como binários.
No exemplo de divisões de rede, precisamos olhar o octeto do endereço onde o prefixo divide a porção de rede da porção de host. Em todos esses exemplos, é o último octeto. Embora seja comum, o prefixo também pode dividir qualquer octeto.
Para começar a entender esse processo de determinar as atribuições de endereços, vamos transformar alguns exemplos em binários.
Veja a figura um exemplo de atribuição de endereço para a rede 172.16.20.0 /25.
No primeiro quadro, vemos a representação do endereço de rede. Com um prefixo de 25 bits, os últimos 7 bits são os bits de host. Para representar o endereço de rede, todos esses bits de host são bits '0'. Isso faz com que o último octeto do endereço seja 0. O endereço de rede fica assim: 172.16.20.0 /25.
No segundo quadro, vemos o cálculo do primeiro endereço de host. Ele é sempre um valor acima do endereço de rede. Nesse caso, o último dos sete bits de host se torna um bit '1'. Com o bit menos significativo de endereço de host configurado para 1, o primeiro endereço de host ou endereço válido é 172.16.20.1.
O terceiro quadro mostra o cálculo do endereço de broadcast da rede. Portanto, todos os sete bits de host usados nessa rede são '1s'. Pelo cálculo, obtemos o valor 127 para o último octeto. Isso nos deixa com um endereço de broadcast 172.16.20.127.
O quarto quadro mostra o cálculo do último endereço de host ou endereço válido. O último endereço de host de uma rede é sempre um a menos que o de broadcast. Isso significa que o bit menos significativo de host é um bit '0' e todos os outros bits de host são bits '1'. Como já visto, isso torna o último endereço de host da rede igual a 172.16.20.126.
Embora para esse exemplo tenhamos expandido todos os octetos, só precisamos examinar o conteúdo do octeto dividido.
6.2.2 CÁLCULO DE ENDEREÇO DE REDE, HOST E BROADCAST
Em uma rede IPv4, os hosts podem se comunicar através de um desses três modos:
Unicast - o processo de envio de um pacote de um host para um host individual
Broadcast - o processo de envio de um pacote de um host para todos os hosts numa rede
Multicast - o processo de envio de um pacote de um host para um grupo de hosts selecionados
Esses três tipos de comunicação são usados para fins diferentes nas redes de dados. Em todos os três casos, o endereço IPv4 do host de origem é colocado no cabeçalho do pacote como sendo o endereço origem.
Tráfego Unicast
A comunicação Unicast é usada como comunicação normal host a host tanto em redes cliente/servidor como ponto-a-ponto.
Os pacotes Unicast usam o endereço de host do dispositivo de destino como endereço de destino e podem ser roteados através de redes interconectadas. O broadcast e o multicast, porém, usam endereços especiais como endereços de destino. Visto que usam esses ende- reços especiais, os broadcasts em geral se restringem à rede local. O escopo9 do tráfego de multicast também pode ser limitado à rede local ou roteado por redes interconectadas.
Numa rede IPv4, o endereço unicast aplicado a um dispositivo final é chamado de endereço de host. Para a comunicação uni- cast, os endereços de host atribuídos aos dois dispositivos finais são usados como endereços IPv4 de origem e destino. Durante o pro- cesso de encapsulamento, o host de origem coloca o seu endereço IPv4 no cabeçalho do pacote unicast como sendo o endereço do host origem e o endereço IPv4 do host de destino no cabeçalho do pacote como sendo o endereço de destino. A comunicação usando um pacote unicast pode ser enviada por meio de redes interconectadas usando os mesmos endereços.
Obs.: Neste curso, todas as comunicações entre os dispositivos são comunicações unicast, a menos que outra coisa seja indi- cada.
Transmissão de Broadcast
Visto que o tráfego de broadcast é usado para enviar pacotes para todos os hosts na rede, um pacote usa um endereço especial de broadcast. Quando um host recebe um pacote com o endereço de broadcast como sendo o endereço de destino, ele processa o pacote como se fosse um pacote para o seu endereço unicast.
9 Tamanho de certo item. Por exemplo, um escopo de endereço também é conhecido como intervalo de endereço do início do intervalo até o fim.
6.2.3 UNICAST, BROADCAST, MULTICAST – TIPOS DE COMUNICAÇÃO
A transmissão de broadcast é usada para localização de serviços/dispositivos especiais para os quais não se conhece o endereço ou quando um host precisa fornecer informações a todos os hosts na rede.
Alguns exemplos de uso de transmissão de broadcast são:
Mapear os endereços da camada superior para os endereços da camada inferior.
Solicitar um endereço
Trocar informações de roteamento por meio de protocolos de roteamento
Quando um host precisa de informações, ele envia uma solicitação, chamada consulta ou mesmo solicitação, para o endereço de broadcast. Todos os hosts da rede recebem e processam a consulta. Um ou mais hosts com a informação solicitada respondem, em geral usando unicast.
De modo similar, quando um host precisa enviar informações para os hosts em uma rede, ele cria e envia um pacote de broad- cast com as informações.
Diferentemente do unicast, em que os pacotes podem ser roteados por todas as redes, os pacotes de broadcast em geral são restritos à rede local. Essa restrição depende da configuração do roteador que limita a rede e do tipo de broadcast. Há dois tipos de broadcasts: broadcast direcionado e broadcast limitado10.
Broadcast Direcionado
Um broadcast direcionado é enviado para todos os hosts em uma rede específica. Esse tipo de broadcast é útil para enviar um broadcast para todos os hosts numa rede não local. Por exemplo,para um host fora da rede se comunicar com os hosts dentro da rede 172.16.4.0 /24, o endereço de destino do pacote precisa ser 172.16.4.255. Isso é exibido na figura. Embora os roteadores não encaminhem broad- casts direcionados por padrão, podem ser configurados para fazer isso.
Broadcast Limitado
O broadcast limitado é usado para comunicação que é limitada a hosts da rede local. Esses pacotes usam um endereço IPv4 de destino 255.255.255.255. Roteadores não encaminham esse broadcast. Os pacotes endereçados para um endereço de broadcast limitado só aparecerão na rede local. Por essa razão, uma rede IPv4 também é conhecida como domínio de broadcast. Os roteadores formam a fronteira para um domínio de broadcast.
Como exemplo, um host dentro da rede 172.16.4.0 /24 poderia fazer broadcast para todos os hosts nessa rede usando um pacote com endereço de destino 255.255.255.255.
Como você já aprendeu antes, quando um pacote é transmitido por broadcast, ele usa recursos da rede e também força todos os hosts da rede que o recebem a processar o pacote. Portanto, o tráfego de broadcast deve ser limitado para que não tenha um efeito prejudicial no desempenho da rede ou dos dispositivos. Visto que os roteadores separam domínios de broadcast, subdividir as redes com tráfego excessivo de broadcast pode melhorar o desempenho da rede.
10 Um broadcast enviado para uma rede específica ou uma série de redes.
Transmissão Multicast
A transmissão multicast é projetada para preservar a largura de banda da rede IPv4. Ela reduz o tráfego permitindo que um host envie um único pacote para um conjunto de hosts selecionados. Para alcançar múltiplos hosts de destino usando a comunicação unicast, um host de origem teria que enviar um pacote individual endereçado para cada host de destino. Com o multicast, o host origem pode enviar um único pacote que pode atingir milhares de hosts de destino.
Alguns exemplos de transmissão multicast são:
Distribuição de vídeo e áudio
Troca de informações de roteamento por protocolos de roteamento
Distribuição de software
Feeds de notícias Clientes Multicast
Os hosts que querem receber determinados dados multicast são chamados de clients multicast. Os clientes multicast usam serviços iniciados por um programa cliente para subscrever para o grupo multicast11.
Cada grupo multicast é representado por um único endereço multicast de destino. Quando um host IPv4 subscreve para um grupo multicast, o host processa os pacotes endereçados a esse endereço multicast bem como pacotes endereçados a seu endereço unicast com alocação exclusiva. Como veremos, o IPv4 tem um intervalo de endereços especial reservado de 224.0.0.0 a 239.255.255.255 para endereçamento de grupos multicast.
Expresso em formato decimal com pontos, o intervalo de endereço IPv4 vai de 0.0.0.0 a 255.255.255.255. Como você já viu, nem todos esses endereços podem ser usados como endereços de host para comunicação unicast.
Endereços Experimentais
Um intervalo principal de endereços reservados para propósitos especiais é o intervalo de endereços experimentais IPv4 de 240.0.0.0 a 255.255.255.254. Atualmente, esses endereços são registrados como reservados para uso futuro (RFC 3330). Isso sugere que eles pode- riam ser convertidos para endereços válidos. Atualmente, não podem ser usados em redes IPv4. Contudo, esses endereços podem ser usados para pesquisa ou testes.
11 Um grupo multicast é um grupo que recebe uma transmissão multicast. Os membros de um grupo multicast têm o mesmo endereço IP multicast a fim de receber a mesma transmissão.