01 - Delimita Rede vs Host
video: https://youtu.be/... no frontmatter da nota.Delimita Rede vs Host
1. Definição Fundamental
A máscara de rede funciona como um gabarito que divide um endereço IPv4 em duas porções: a parte de Rede (identifica o grupo) e a parte de Host (identifica o dispositivo individual dentro do grupo). Imagine uma folha de papel com furos: onde há furos, você consegue ver o que está escrito no IP (Rede); onde não há furos, a informação é bloqueada (Host).
Tecnicamente, a máscara é uma sequência de 32 bits que deve ser lida em conjunto com o endereço IP. Sem a máscara, o IP é um número sem significado prático — não se sabe qual parte dele é a "vizinhança" e qual é a "casa".
Características Formais
- Tamanho: 32 bits (4 octetos), mesmo formato do IPv4.
- Estrutura: bits
1contínuos à esquerda (rede) seguidos de bits0contínuos à direita (host). - Continuidade obrigatória: nunca há
0entre1s — a máscara é sempre "contígua". - Notações: decimal pontuado (
255.255.255.0) ou CIDR (/24). - RFC de referência: RFC 950 (subnetting) e RFC 1519 (CIDR).
2. Regra de Ouro: Bits 1 = Rede, Bits 0 = Host
- Bits
1na máscara: indicam que os bits correspondentes no endereço IP pertencem à Rede. - Bits
0na máscara: indicam que os bits correspondentes no endereço IP pertencem ao Host.
Em outras palavras, a máscara é o divisor de águas entre o endereço "do bairro" e o endereço "da casa". O número de bits 1 define o tamanho do bairro; o número de bits 0 define quantas casas cabem nele.
Exemplo /24
Máscara: 11111111.11111111.11111111.00000000 (255.255.255.0)
└─────── Rede (24 bits) ───────┘ └─ Host (8 bits) ─┘
3. A Operação Lógica AND (O "Como" Funciona)
Para separar a rede do host, o hardware (placa de rede/roteador) realiza uma operação booleana AND bit a bit entre o IP e a máscara. O resultado é o endereço de rede.
Regra do AND:
1 AND 1 = 1|1 AND 0 = 0|0 AND 0 = 0
Exemplo Profundo
Analisando o IP 192.168.10.150 com a máscara 255.255.255.0:
Passo 1: Converter para Binário
- IP:
11000000.10101000.00001010.10010110(192.168.10.150) - Máscara:
11111111.11111111.11111111.00000000(255.255.255.0)
Passo 2: Aplicar o AND
IP: 11000000.10101000.00001010.10010110
MÁSCARA: 11111111.11111111.11111111.00000000
-------------------------------------------- AND
REDE: 11000000.10101000.00001010.00000000 => 192.168.10.0
Observe que os primeiros 24 bits "passaram" (foram preservados), enquanto os últimos 8 bits foram "zerados". Isso define que a rede é 192.168.10.0.
4. Exemplos em Diferentes Prefixos
/8 (Classe A histórica)
IP: 00001010.00000000.00000000.00000001 (10.0.0.1)
MÁSCARA: 11111111.00000000.00000000.00000000 (255.0.0.0)
----------------------------------- AND
REDE: 00001010.00000000.00000000.00000000 => 10.0.0.0
/16 (Classe B histórica)
IP: 10101100.00010000.00001111.00100101 (172.16.15.37)
MÁSCARA: 11111111.11111111.00000000.00000000 (255.255.0.0)
----------------------------------- AND
REDE: 10101100.00010000.00000000.00000000 => 172.16.0.0
/24 (Classe C histórica)
IP: 11000000.10101000.00001010.10010110 (192.168.10.150)
MÁSCARA: 11111111.11111111.11111111.00000000 (255.255.255.0)
----------------------------------- AND
REDE: 11000000.10101000.00001010.00000000 => 192.168.10.0
5. A Importância da Delimitação
Essa separação serve para o computador tomar uma decisão crítica de Encaminhamento (Forwarding):
- Destino na mesma Rede: Se o IP de destino, após passar pela máscara, resultar na mesma ID de Rede que a minha, eu uso o Protocolo ARP e entrego o quadro diretamente via Switch (Camada 2).
- Destino em Rede Diferente: Se o resultado for diferente, eu sei que o host está em outra "vizinhança". Eu não tento falar com ele diretamente; eu entrego o pacote para o meu Gateway Padrão (Roteador).
Pseudocódigo do Processo de Decisão
def encaminha(ip_origem, ip_destino, mascara):
rede_origem = AND(ip_origem, mascara)
rede_destino = AND(ip_destino, mascara)
if rede_origem == rede_destino:
# Mesma rede: entrega direta via ARP + Switch L2
entrega_direta(ip_destino)
else:
# Rede diferente: envia ao gateway padrão
envia_ao_gateway(ip_destino)
Esse é o algoritmo básico que toda pilha TCP/IP executa para cada pacote transmitido.
6. Máscaras Não-Tradicionais (Subnetting)
A delimitação nem sempre acontece exatamente nos limites dos octetos. Podemos delimitar no meio de um octeto — isso é o subnetting.
Exemplo /25 (Máscara 255.255.255.128)
- Máscara em binário:
11111111.11111111.11111111.10000000 - A delimitação ocorre após o 25º bit.
- O último octeto foi dividido: o primeiro bit dele pertence à Rede, e os outros 7 pertencem ao Host.
Exemplo /26 (Máscara 255.255.255.192)
MÁSCARA: 11111111.11111111.11111111.11000000 (255.255.255.192)
Os dois primeiros bits do 4º octeto são de rede; os 6 últimos são de host. Isso cria 4 sub-redes dentro de um /24 (00, 01, 10, 11), cada uma com 64 endereços.
7. Sem Máscara, Não Há IP Útil
Um endereço IP sem máscara é ambíguo: 192.168.10.50 pode ser um host da rede 192.168.10.0/24, ou da 192.168.10.0/23, ou até da 192.168.0.0/16. A máscara é obrigatória em toda configuração:
Linux: ip addr add 192.168.10.50/24 dev eth0
Cisco: ip address 192.168.10.50 255.255.255.0
Windows: netsh interface ip set address "Ethernet" static 192.168.10.50 255.255.255.0 192.168.10.1
8. IPv4 vs IPv6
No IPv4, a máscara pode ser expressa em decimal pontuado ou em notação CIDR. No IPv6, apenas a notação CIDR é suportada — não existe representação decimal de máscara. O motivo é cultural e histórico: o IPv6 foi padronizado em 1998 (RFC 4291), quando o CIDR já era padrão.
| Característica | IPv4 | IPv6 |
|---|---|---|
| Notação decimal | Sim (255.255.255.0) |
Não |
| Notação CIDR | Sim (/24) |
Sim (/64) |
| Comprimento da máscara | 0 a 32 bits | 0 a 128 bits |
| Máscara típica LAN | /24 |
/64 |
9. Continuidade Obrigatória dos Bits
A máscara deve sempre ser uma sequência contínua de 1s seguida de 0s. Máscaras como 255.255.0.255 (11111111.11111111.00000000.11111111) são inválidas — nenhum roteador as aceita. A razão é matemática: a operação AND só funciona como divisor de fronteira se a máscara for contígua; caso contrário, o conceito de "rede" perde sentido.
Validação em Python
import ipaddress
try:
net = ipaddress.ip_network('192.168.10.0/255.255.0.255')
except ValueError as e:
print(e) # "Netmask is not contiguous"
10. Resumo Técnico
| Atributo | Valor |
|---|---|
| Função | Criar a fronteira lógica entre rede e host |
| Mecanismo | Operação lógica AND bit a bit (IP + Máscara) |
| Formato | 32 bits: 1s contínuos à esquerda, 0s contínuos à direita |
| Notações | Decimal pontuado (255.255.255.0) ou CIDR (/24) |
| Flexibilidade | Permite redes de qualquer tamanho, quebrando rigidez das classes |
| Em IPv6 | Apenas notação CIDR |
11. Conclusão
A máscara de sub-rede é o divisor de águas do endereçamento IP. Sem ela, roteadores não saberiam distinguir "rede" de "host", decisões de forwarding seriam impossíveis e o conceito de sub-rede não existiria. Entender a operação AND, a regra dos bits contínuos, a representação em decimal e CIDR, e a diferença entre IPv4 e IPv6 no tratamento da máscara é pré-requisito essencial para qualquer profissional de redes. As próximas seções aprofundam o papel dos bits 1 (rede), bits 0 (host) e a notação CIDR que modernizou o endereçamento IP.