Skip to content

Cisco CCNAv7 - Binário e endereços IPv4

No módulo de endereçamento, você vai calcular redes, sub-redes e quantidade de hosts. Tudo isso começa aqui: o endereço IPv4 que você vê como 192.168.10.1 é, para o computador, uma sequência de 32 bits. Neste post, você vai aprender a ler um endereço IPv4 em binário e a entender o papel do binário nas máscaras de sub-rede.

Um endereço IPv4 tem 32 bits, divididos em quatro grupos de 8 bits (os octetos). Para ficar mais fácil para as pessoas, cada octeto é escrito em decimal e separado por pontos. Essa forma é chamada de notação decimal pontilhada.

flowchart LR
  A["Binário:<br/>11000000.10101000.00001010.00000001"] --> B["Decimal pontilhado:<br/>192.168.10.1"]
Octeto1º2º3º4º
Decimal192168101
Binário11000000101010000000101000000001

Cada octeto vai de 0 a 255, por isso 192.168.10.300 não é um endereço IPv4 válido: 300 não cabe em 8 bits.

A conversão é feita octeto por octeto, usando os métodos do post anterior.

Exemplo: converter 172.16.254.3 para binário

OctetoDecimalCálculoBinário
1º172128 + 32 + 8 + 410101100
2º161600010000
3º254128 + 64 + 32 + 16 + 8 + 4 + 211111110
4º32 + 100000011

Resultado: 10101100.00010000.11111110.00000011

Exemplo: converter 11000000.10101000.01100100.00001010 para decimal

OctetoBinárioCálculoDecimal
1º11000000128 + 64192
2º10101000128 + 32 + 8168
3º0110010064 + 32 + 4100
4º000010108 + 210

Resultado: 192.168.100.10

Todo endereço IPv4 vem acompanhado de uma máscara de sub-rede, que indica quais bits pertencem à rede e quais pertencem ao host (o dispositivo). Em binário, a máscara é sempre:

  • uma sequência de 1s (a parte da rede), seguida por
  • uma sequência de 0s (a parte do host).

Exemplo: máscara 255.255.255.0

Octeto1º2º3º4º
Decimal2552552550
Binário11111111111111111111111100000000
SignificadoRedeRedeRedeHost

São 24 bits 1 seguidos de 8 bits 0. Por isso, essa máscara também é escrita como /24, a notação de prefixo, em que o número depois da barra é a quantidade de bits 1.

flowchart LR
  A["IP 192.168.10.77<br/>máscara /24"] --> B["Rede:<br/>192.168.10"]
  A --> C["Host:<br/>77"]

Valores possíveis em um octeto da máscara

Section titled “Valores possíveis em um octeto da máscara”

Como os bits 1 vêm sempre à esquerda, só existem 9 valores possíveis para um octeto de máscara:

Bits 1 no octetoBinárioDecimal
0000000000
110000000128
211000000192
311100000224
411110000240
511111000248
611111100252
711111110254
811111111255
PrefixoMáscara decimalUso comum
/8255.0.0.0Redes muito grandes
/16255.255.0.0Redes grandes
/24255.255.255.0LANs comuns (casas, escritórios)
/25255.255.255.128Divide uma /24 em duas
/26255.255.255.192Divide uma /24 em quatro
/30255.255.255.252Ligações ponto a ponto entre roteadores

O endereço de rede é o “nome” da rede à qual o host pertence. Para obtê-lo, o dispositivo faz uma operação bit a bit chamada AND entre o endereço IP e a máscara:

Bit do IPBit da máscaraResultado (AND)
000
010
100
111

Ou seja, o resultado é 1 somente quando os dois bits são 1.

Nos três primeiros octetos, a máscara é 11111111, então o IP é copiado. No último, a máscara é 00000000, e o resultado é 0.

1º2º3º4º
IP11000000101010000000101001001101
Máscara11111111111111111111111100000000
AND (rede)11000000101010000000101000000000
Decimal192168100

Endereço de rede: 192.168.10.0.

A máscara /26 é 255.255.255.192. Só o último octeto precisa de cálculo:

Último octeto
IP (77)01001101
Máscara (192)11000000
AND01000000
Decimal64

Endereço de rede: 192.168.10.64.

Por que o binário é importante em redes?

Section titled “Por que o binário é importante em redes?”
SituaçãoComo o binário ajuda
Sub-redesOs bits “emprestados” do host definem quantas sub-redes e hosts existem
Máscaras e prefixosA barra (/24, /26…) é a contagem de bits 1
RoteamentoO roteador compara bits do endereço de destino com os da tabela de rotas
Listas de controle de acesso (ACL)Usam wildcard masks, que são máscaras “invertidas”
DiagnósticoEntender por que dois dispositivos estão (ou não) na mesma rede

Mini laboratório: endereços IP em binário

Section titled “Mini laboratório: endereços IP em binário”

Objetivo: converter endereços reais da sua rede e conferir o resultado.

Converta para binário (octeto por octeto):

EndereçoBinário
10.0.0.1?
192.168.1.1?
255.255.255.0?
172.16.0.254?
Ver respostas
  • 10.0.0.1 = 00001010.00000000.00000000.00000001
  • 192.168.1.1 = 11000000.10101000.00000001.00000001
  • 255.255.255.0 = 11111111.11111111.11111111.00000000
  • 172.16.0.254 = 10101100.00010000.00000000.11111110
  1. Descubra o IP e a máscara do seu computador:
ip address show

(no Windows, ipconfig)

  1. Converta o IP e a máscara para binário.
  2. Faça o AND bit a bit e encontre o endereço de rede.
  3. Confira com Python:
python3 -c "import ipaddress; print(ipaddress.ip_interface('192.168.10.77/26').network)"

Troque o endereço e o prefixo pelos seus. O resultado deve ser igual ao seu cálculo.

Perguntas para fixar:

  • Quantos bits 1 tem a máscara 255.255.255.192? Qual é o prefixo?
  • Por que a máscara nunca pode ser 11110111?
  • Dois hosts, 192.168.10.20/24 e 192.168.10.200/24, estão na mesma rede?
Ver respostas
  • 24 + 2 = 26 bits 1, ou seja, /26.
  • Porque os 1s precisam ser contínuos, da esquerda para a direita, seguidos apenas por 0s.
  • Sim: com /24, os três primeiros octetos definem a rede (192.168.10), e os dois estão nela.
  • Um endereço IPv4 tem 32 bits, em 4 octetos escritos em decimal e separados por pontos.
  • Cada octeto vai de 0 a 255, e a conversão é feita octeto por octeto.
  • A máscara de sub-rede tem 1s contínuos à esquerda (rede) e 0s à direita (host); o prefixo conta os bits 1.
  • O AND entre o IP e a máscara resulta no endereço da rede.
  • O binário é a base do endereçamento, das sub-redes e do roteamento.