Cisco CCNAv7 - Binário e endereços IPv4
Introdução
Section titled “Introdução”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.
O endereço IPv4 em binário
Section titled “O endereço IPv4 em binário”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"]
| Octeto | 1º | 2º | 3º | 4º |
|---|---|---|---|---|
| Decimal | 192 | 168 | 10 | 1 |
| Binário | 11000000 | 10101000 | 00001010 | 00000001 |
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.
Convertendo um endereço IPv4
Section titled “Convertendo um endereço IPv4”A conversão é feita octeto por octeto, usando os métodos do post anterior.
Exemplo: converter 172.16.254.3 para binário
| Octeto | Decimal | Cálculo | Binário |
|---|---|---|---|
| 1º | 172 | 128 + 32 + 8 + 4 | 10101100 |
| 2º | 16 | 16 | 00010000 |
| 3º | 254 | 128 + 64 + 32 + 16 + 8 + 4 + 2 | 11111110 |
| 4º | 3 | 2 + 1 | 00000011 |
Resultado: 10101100.00010000.11111110.00000011
Exemplo: converter 11000000.10101000.01100100.00001010 para decimal
| Octeto | Binário | Cálculo | Decimal |
|---|---|---|---|
| 1º | 11000000 | 128 + 64 | 192 |
| 2º | 10101000 | 128 + 32 + 8 | 168 |
| 3º | 01100100 | 64 + 32 + 4 | 100 |
| 4º | 00001010 | 8 + 2 | 10 |
Resultado: 192.168.100.10
A máscara de sub-rede em binário
Section titled “A máscara de sub-rede em binário”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
| Octeto | 1º | 2º | 3º | 4º |
|---|---|---|---|---|
| Decimal | 255 | 255 | 255 | 0 |
| Binário | 11111111 | 11111111 | 11111111 | 00000000 |
| Significado | Rede | Rede | Rede | Host |
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 octeto | Binário | Decimal |
|---|---|---|
| 0 | 00000000 | 0 |
| 1 | 10000000 | 128 |
| 2 | 11000000 | 192 |
| 3 | 11100000 | 224 |
| 4 | 11110000 | 240 |
| 5 | 11111000 | 248 |
| 6 | 11111100 | 252 |
| 7 | 11111110 | 254 |
| 8 | 11111111 | 255 |
Prefixos comuns
Section titled “Prefixos comuns”| Prefixo | Máscara decimal | Uso comum |
|---|---|---|
| /8 | 255.0.0.0 | Redes muito grandes |
| /16 | 255.255.0.0 | Redes grandes |
| /24 | 255.255.255.0 | LANs comuns (casas, escritórios) |
| /25 | 255.255.255.128 | Divide uma /24 em duas |
| /26 | 255.255.255.192 | Divide uma /24 em quatro |
| /30 | 255.255.255.252 | Ligações ponto a ponto entre roteadores |
Encontrando o endereço da rede
Section titled “Encontrando o endereço da rede”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 IP | Bit da máscara | Resultado (AND) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Ou seja, o resultado é 1 somente quando os dois bits são 1.
Exemplo simples: 192.168.10.77 /24
Section titled “Exemplo simples: 192.168.10.77 /24”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º | |
|---|---|---|---|---|
| IP | 11000000 | 10101000 | 00001010 | 01001101 |
| Máscara | 11111111 | 11111111 | 11111111 | 00000000 |
| AND (rede) | 11000000 | 10101000 | 00001010 | 00000000 |
| Decimal | 192 | 168 | 10 | 0 |
Endereço de rede: 192.168.10.0.
Exemplo com sub-rede: 192.168.10.77 /26
Section titled “Exemplo com sub-rede: 192.168.10.77 /26”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 |
| AND | 01000000 |
| Decimal | 64 |
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ção | Como o binário ajuda |
|---|---|
| Sub-redes | Os bits “emprestados” do host definem quantas sub-redes e hosts existem |
| Máscaras e prefixos | A barra (/24, /26…) é a contagem de bits 1 |
| Roteamento | O 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óstico | Entender 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.
Parte 1: converta à mão
Section titled “Parte 1: converta à mão”Converta para binário (octeto por octeto):
| Endereço | Biná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
Parte 2: use o seu próprio endereço
Section titled “Parte 2: use o seu próprio endereço”- Descubra o IP e a máscara do seu computador:
ip address show(no Windows, ipconfig)
- Converta o IP e a máscara para binário.
- Faça o AND bit a bit e encontre o endereço de rede.
- 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/24e192.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.
Resumo
Section titled “Resumo”- 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.
