Explicação sobre sub-redes e notação CIDR (com exemplos)
IPAddress-Lookup.com ·
Se alguma vez ficaste a olhar para um endereço como 192.168.1.0/24 e se perguntou o que é que aquela barra e aquele número realmente significam, está exatamente no sítio certo. A sub-rede e a notação CIDR estão no cerne da forma como as redes modernas são concebidas, protegidas e encaminhadas, mas o tema tem a reputação de ser intimidante. Não tem de ser assim. Assim que compreender que um endereço IP é, na verdade, apenas uma sequência de bits e que uma máscara de sub-rede simplesmente indica onde termina a parte da «rede» e começa a parte do «host», tudo o resto faz sentido. Neste guia, iremos desenvolver o conceito a partir dos princípios básicos, analisar vários exemplos reais na íntegra e fornecer-lhe uma ficha de referência que pode manter ao lado do seu teclado. Ao longo do caminho, poderá verificar todos os cálculos por si próprio com a nossa ferramenta Calculadora de Sub-redes.
O que é uma sub-rede e por que razão a criamos?
Uma sub-rede, abreviatura de sub-rede, é uma subdivisão lógica de uma rede IP maior. Em vez de colocar todos os dispositivos numa única rede plana e enorme, os engenheiros dividem esse espaço de endereços em blocos mais pequenos e autónomos. Cada bloco é uma sub-rede com o seu próprio intervalo de endereços, o seu próprio endereço de rede e o seu próprio endereço de difusão. Os routers encaminham o tráfego entre sub-redes, enquanto os dispositivos dentro de uma única sub-rede podem comunicar diretamente entre si sem a intervenção de um router.
A subdivisão em sub-redes não é um trabalho supérfluo. Existem várias razões concretas pelas quais as redes são divididas desta forma:
- Eficiência e conservação de endereços. Atribuir a uma organização um único bloco gigante desperdiça endereços. A subdivisão em sub-redes permite atribuir exatamente o número de endereços de que um departamento, piso ou filial necessita efetivamente, em vez de arredondar para a classe mais próxima e mais ampla.
- Domínios de difusão mais pequenos. Certos tipos de tráfego, como os pedidos ARP, são difundidos para todos os anfitriões de uma sub-rede. Numa rede plana com milhares de dispositivos, esse tráfego torna-se paralisante. A divisão em sub-redes mantém cada domínio de difusão pequeno e a rede rápida.
- Segmentação de segurança. Ao colocar servidores, Wi-Fi para visitantes e estações de trabalho internas em sub-redes separadas, é possível aplicar regras de firewall e listas de controlo de acesso entre elas. Um dispositivo de visitante comprometido não consegue aceder a um servidor de base de dados se ambos se encontrarem em sub-redes isoladas.
- Roteamento mais simples e rápido. Os routers tomam decisões com base em prefixos de rede. Sub-redes bem concebidas podem ser resumidas numa única rota, reduzindo as tabelas de roteamento e acelerando as decisões de encaminhamento na Internet.
Uma breve revisão sobre o sistema binário: bits, octetos e máscaras
Um endereço IPv4 tem 32 bits. Escrevemo-lo como quatro números decimais separados por pontos, como 192.168.1.10, mas cada um desses números é, na verdade, um grupo binário de 8 bits chamado octeto. Oito bits por octeto, quatro octetos, equivalem a um total de 32 bits. Cada octeto pode conter um valor entre 0 e 255, porque oito bits podem representar 2^8 = 256 valores distintos.
As posições dos bits num octeto têm os valores posicionais 128, 64, 32, 16, 8, 4, 2 e 1. Para converter, some as posições que contêm um 1. Por exemplo, o octeto 11000000 é 128 + 64 = 192, e 10101000 é 128 + 32 + 8 = 168. Portanto, 192.168.1.10 em binário é:
- 192 =
11000000 - 168 =
10101000 - 1 =
00000001 - 10 =
00001010
A máscara de sub-rede é outro valor de 32 bits, mas é especial: é sempre uma sequência de 1s seguida de uma sequência de 0s. Os 1s indicam a parte da rede do endereço e os 0s indicam a parte do anfitrião. Uma máscara de 255.255.255.0 é 11111111.11111111.11111111.00000000 em binário, o que corresponde a 24 uns seguidos de 8 zeros. Para determinar a rede à qual um endereço pertence, realiza-se uma operação AND bit a bit entre o endereço e a máscara: sempre que a máscara tiver um 1, o bit do endereço é mantido; sempre que a máscara tiver um 0, o bit passa a ser 0. Essa operação AND é o cálculo mais importante de toda a subdivisão de sub-redes.
Endereçamento por classes: uma breve lição de história
Nos primórdios da Internet, os endereços eram atribuídos em «classes» fixas com base no valor do primeiro octeto. Isto denomina-se endereçamento por classes e, embora esteja obsoleto, compreendê-lo explica por que razão o CIDR representou uma melhoria tão significativa.
- A Classe A abrangia os primeiros octetos de 1 a 126, utilizava uma porção de rede de 8 bits (máscara
255.0.0.0, uma/8) e atribuía a cada rede cerca de 16,7 milhões de hosts. - A Classe B abrangia os octetos de 128 a 191, utilizava uma porção de rede de 16 bits (máscara
255.255.0.0, a/16) e oferecia cerca de 65 000 hosts por rede. - A Classe C abrangia os números de 192 a 223, utilizava uma parte de rede de 24 bits (máscara
255.255.255.0, a/24) e disponibilizava apenas 254 hosts utilizáveis.
O problema era a rigidez. Uma organização que precisasse de 2 000 endereços era demasiado grande para uma Classe C (254 hosts), mas tinha de receber uma Classe B (65 000 hosts), desperdiçando mais de 60 000 endereços. Com a Internet a crescer exponencialmente, este desperdício ameaçava esgotar completamente o espaço IPv4. Era necessário algo mais flexível.
Entra em cena o CIDR: a notação explicada bit a bit
O CIDR, ou Classless Inter-Domain Routing (Roteamento Interdomínios Sem Classes), foi introduzido em 1993 para substituir o rígido sistema de classes. Em vez de vincular o tamanho da rede ao primeiro octeto, o CIDR permite que a fronteira entre a rede e o host se situe em qualquer ponto dos 32 bits. Expressamos isto com a já familiar notação de barra, chamada de prefixo CIDR.
O número após a barra é simplesmente a contagem de bits 1 na máscara de sub-rede, ou seja, quantos bits pertencem à rede. Assim:
/8significa 8 bits de rede, máscara255.0.0.0(o antigo tamanho da Classe A)./16significa 16 bits de rede, máscara255.255.0.0(o antigo tamanho da Classe B)./24significa 24 bits de rede, máscara255.255.255.0(o antigo tamanho da Classe C)./26significa 26 bits de rede, máscara255.255.255.192, restando apenas 6 bits de host.
A fórmula mágica para determinar quantos endereços um prefixo contém é 2^(32 − n), em que n é o comprimento do prefixo. Como todo o espaço IPv4 tem 32 bits, subtrair os bits de rede deixa os bits de anfitrião, e 2 elevado a essa potência dá o número total de endereços no bloco. Para um /24 isso equivale a 2^(32−24) = 2^8 = 256 endereços no total. Para um /26 são 2^(32−26) = 2^6 = 64 endereços. Quanto maior for o número do prefixo, menor será a sub-rede.
Calcular os valores-chave de uma sub-rede
Cada sub-rede tem alguns endereços especiais que terá de identificar. Eis o que cada um significa e como o encontrar.
- Endereço de rede. O primeiro endereço do bloco. Todos os bits de host são 0. Este endereço identifica a própria sub-rede e não pode ser atribuído a um dispositivo.
- Endereço de difusão. O último endereço do bloco. Todos os bits de anfitrião são 1. O tráfego enviado para aqui chega a todos os anfitriões da sub-rede, pelo que também não pode ser utilizado como endereço de anfitrião.
- Primeiro host utilizável. Um endereço acima do endereço de rede (rede + 1).
- Último host utilizável. Um endereço abaixo do endereço de difusão (difusão − 1).
- Total de endereços. 2^(32 − n).
- Hosts utilizáveis. O total menos 2, porque os endereços de rede e de difusão estão reservados. A fórmula é 2^(32 − n) − 2.
Há mais um valor que vale a pena conhecer: a máscara curinga. É o inverso da máscara de sub-rede, obtida invertendo cada bit (subtraindo cada octeto de 255). Enquanto uma máscara de sub-rede de 255.255.255.0 seleciona a rede, a sua máscara curinga 0.0.0.255 seleciona o intervalo de hosts. As máscaras curinga aparecem constantemente nas listas de controlo de acesso da Cisco e na configuração do OSPF, pelo que vale a pena reconhecê-las.
Exemplo prático 1: 192.168.1.0/24
Comecemos pelo caso mais simples possível. Um /24 termina nitidamente num limite de octeto, pelo que não são necessárias manobras binárias. Com 24 bits de rede, a parte do anfitrião corresponde ao último octeto na íntegra.
| Propriedade | Valor |
|---|---|
| Notação CIDR | 192.168.1.0/24 |
| Máscara de sub-rede | 255.255.255.0 |
| Máscara curinga | 0.0.0.255 |
| Endereço de rede | 192.168.1.0 |
| Endereço de difusão | 192.168.1.255 |
| Primeiro anfitrião utilizável | 192.168.1.1 |
| Último anfitrião utilizável | 192.168.1.254 |
| Total de endereços | 256 (2^8) |
| Hosts utilizáveis | 254 |
Esta é a clássica rede doméstica e de pequenos escritórios. Tudo, desde .1 até .254 está disponível para os dispositivos, .0 é o nome da rede e .255 é o endereço de difusão.
Exemplo prático 2: 10.0.0.0/26
Agora, um prefixo que não cai num limite de octeto. Um /26 significa 26 bits de rede, pelo que o último octeto é dividido: os seus dois primeiros bits pertencem à rede e os seis bits restantes são bits de host. Seis bits de host dão 2^6 = 64 endereços no total por sub-rede. Isso significa que /26 as sub-redes avançam em incrementos de 64 no último octeto: 0, 64, 128, 192.
Concentrando-nos no primeiro bloco 10.0.0.0/26, a máscara de rede é 255.255.255.192 porque 11000000 no último octeto é igual a 192.
| Propriedade | Valor |
|---|---|
| Notação CIDR | 10.0.0.0/26 |
| Máscara de sub-rede | 255.255.255.192 |
| Máscara curinga | 0.0.0.63 |
| Endereço de rede | 10.0.0.0 |
| Endereço de difusão | 10.0.0.63 |
| Primeiro anfitrião utilizável | 10.0.0.1 |
| Último anfitrião utilizável | 10.0.0.62 |
| Total de endereços | 64 (2^6) |
| Hosts utilizáveis | 62 |
A próxima sub-rede na sequência seria 10.0.0.64/26 (hosts .65 a .126, difusão .127), depois 10.0.0.128/26, e, finalmente 10.0.0.192/26. Repare como o tamanho do bloco, 64, é exatamente o «número mágico» que determina onde cada sub-rede começa.
Exemplo prático 3: 172.16.5.0/28
O nosso último exemplo reduz ainda mais a sub-rede. Uma /28 tem 28 bits de rede e apenas 4 bits de anfitrião, o que dá 2^4 = 16 endereços no total e apenas 14 anfitriões utilizáveis. O octeto final é utilizado 11110000 para a parte da rede, o que equivale a 240, pelo que a máscara é 255.255.255.240. As sub-redes avançam em incrementos de 16.
| Propriedade | Valor |
|---|---|
| Notação CIDR | 172.16.5.0/28 |
| Máscara de sub-rede | 255.255.255.240 |
| Máscara curinga | 0.0.0.15 |
| Endereço de rede | 172.16.5.0 |
| Endereço de difusão | 172.16.5.15 |
| Primeiro anfitrião utilizável | 172.16.5.1 |
| Último anfitrião utilizável | 172.16.5.14 |
| Total de endereços | 16 (2^4) |
| Hosts utilizáveis | 14 |
A /28 é um tamanho popular para pequenas redes ponto a ponto e para segmentos de servidores rigorosamente controlados, onde se pretende apenas um pequeno número de endereços. Se precisasse apenas de dois anfitriões, por exemplo, para uma ligação entre dois routers, teria de reduzir até um /30, que oferece exatamente 2 endereços utilizáveis.
A ficha de referência sobre sub-redes
Em vez de recalcular as potências de dois todas as vezes, memorize ou marque como favorito a tabela abaixo. Ela abrange os prefixos mais comuns, desde /24 até /30, indicando a máscara, o caractere curinga, o tamanho do bloco (total de endereços) e o número de hosts utilizáveis.
| CIDR | Máscara de sub-rede | Caractere curinga | Total de endereços | Hosts utilizáveis |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 0.0.0.255 | 256 | 254 |
| /25 | 255.255.255.128 | 0.0.0.127 | 128 | 126 |
| /26 | 255.255.255.192 | 0.0.0.63 | 64 | 62 |
| /27 | 255.255.255.224 | 0.0.0.31 | 32 | 30 |
| /28 | 255.255.255.240 | 0.0.0.15 | 16 | 14 |
| /29 | 255.255.255.248 | 0.0.0.7 | 8 | 6 |
| /30 | 255.255.255.252 | 0.0.0.3 | 4 | 2 |
Repare no padrão elegante: cada passo de um bit no prefixo reduz para metade o número de anfitriões, e cada valor de máscara no último octeto é um dos seguintes: 128, 192, 224, 240, 248, 252. Esses são os únicos valores válidos que um octeto de máscara final pode assumir.
VLSM: sub-redes de tamanhos diferentes
A subdivisão tradicional em sub-redes divide uma rede em partes de tamanho igual, o que é um desperdício quando os seus departamentos têm necessidades muito diferentes. O Variable Length Subnet Masking (VLSM) resolve este problema, permitindo-lhe aplicar comprimentos de prefixo diferentes dentro da mesma rede global. Na prática, está a subdividir uma sub-rede.
Suponha que possui 192.168.10.0/24 e precise de servir um departamento com 100 hosts, outro com 50 hosts e duas ligações de router com 2 hosts cada. Com o VLSM, alocaria:
- A
/25(126 hosts) para o departamento maior:192.168.10.0/25. - A
/26(62 hosts) para o departamento médio:192.168.10.128/26. - Dois
/30blocos (2 hosts cada) para as ligações do router, retirados do espaço restante.
A regra de ouro do VLSM é atribuir primeiro as sub-redes maiores e prosseguir para as menores, para que os blocos se encaixem perfeitamente sem se sobreporem. É assim que os planos de endereçamento no mundo real evitam o desperdício, deixando ainda margem para crescimento.
Uma nota sobre os prefixos IPv6
Tudo o que foi referido acima diz respeito ao IPv4, mas a notação CIDR aplica-se diretamente ao IPv6, apenas com números muito maiores. Um endereço IPv6 tem 128 bits em vez de 32, pelo que os prefixos vão até /128. O mais importante a saber é o /64: por convenção de longa data, uma única sub-rede IPv6 é um /64, o que reserva os primeiros 64 bits para o prefixo de rede e os últimos 64 bits para o anfitrião, ou «identificador de interface». Isso deixa 2^64 endereços por sub-rede, um número quase inimaginável, razão pela qual o IPv6 raramente se preocupa com as manobras de conservação de endereços que dominam a sub-rede do IPv4. Se quiser uma comparação mais aprofundada entre os dois protocolos, consulte o nosso guia sobre IPv4 vs IPv6.
Resumindo
A sub-rede resume-se a três conceitos: um endereço IP tem 32 bits, a máscara determina onde termina a rede e a fórmula 2^(32 − n) indica o tamanho de cada bloco. Domine estes conceitos e o resto é aritmética. Comece por identificar o prefixo, converta-o num tamanho de bloco, determine os endereços de rede e de difusão, e o intervalo utilizável surge entre eles. Pratique com alguns exemplos e o processo tornar-se-á algo natural. Quando quiser verificar o seu trabalho instantaneamente, introduza qualquer endereço e prefixo na nossa ferramenta Calculadora de Sub-redes e compare os resultados com os seus.
Perguntas frequentes
Por que razão subtraímos 2 do total de endereços para obter os hosts utilizáveis?
Em cada sub-rede IPv4, dois endereços estão reservados e não podem ser atribuídos a dispositivos: o endereço de rede (todos os bits de host definidos como 0), que identifica a sub-rede, e o endereço de difusão (todos os bits de host definidos como 1), que é utilizado para alcançar todos os hosts de uma só vez. Subtraindo estes dois, obtém-se o número de endereços que pode efetivamente atribuir aos anfitriões, ou seja, 2^(32 − n) − 2.
Qual é a diferença entre uma máscara de sub-rede e um prefixo CIDR?
Ambos expressam exatamente a mesma informação em dois formatos diferentes. Uma máscara de sub-rede, como 255.255.255.0 é um valor decimal pontuado de 32 bits, enquanto o prefixo CIDR /24 é simplesmente o número de bits 1 nessa máscara. Qualquer máscara pode ser escrita como um prefixo e vice-versa; a notação CIDR é apenas mais curta e menos propensa a erros.
O que significa, na verdade, o /24 num endereço IP?
O número após a barra é o comprimento do prefixo, ou seja, quantos dos 32 bits do endereço definem a rede. Um /24 reserva os primeiros 24 bits para a rede e deixa 8 bits para os anfitriões, produzindo um total de 256 endereços (2^8) e 254 endereços utilizáveis. É equivalente à máscara de sub-rede 255.255.255.0.
Por que razão o CIDR substituiu o endereçamento com classes?
O endereçamento com classes obrigava os tamanhos das redes a dar saltos enormes: 254 anfitriões, depois 65 000, depois 16 milhões, sem nada entre eles. As organizações recebiam habitualmente muito mais endereços do que precisavam, desperdiçando o espaço limitado do IPv4. O CIDR permite que o limite da rede recaia em qualquer bit, pelo que os blocos podem ser dimensionados à medida, e também permite que as rotas sejam resumidas, reduzindo as tabelas de encaminhamento.
Para que serve uma máscara curinga?
Uma máscara curinga é o inverso bit a bit de uma máscara de sub-rede, obtida subtraindo cada octeto de 255. Enquanto uma máscara de sub-rede corresponde à parte da rede, uma máscara curinga especifica quais os bits que podem variar. Aparece principalmente nas listas de controlo de acesso da Cisco e em protocolos de encaminhamento como o OSPF para descrever intervalos de endereços de forma concisa.
As mesmas regras de sub-rede aplicam-se ao IPv6?
O conceito CIDR é idêntico: um comprimento de prefixo após uma barra marca o limite da rede. A diferença está na escala. Os endereços IPv6 têm 128 bits em vez de 32, e o tamanho padrão da sub-rede é de /64, o que proporciona 2^64 endereços de anfitrião por sub-rede. Como o espaço é tão vasto, a sub-rede IPv6 centra-se na estrutura e na hierarquia, em vez de tentar aproveitar até ao último endereço.