O caso: uma pequena empresa de exemplo usa a rede 192.168.10.0/24. O roteador aceita acesso de administração por SSH de qualquer computador da rede. O técnico quer liberar esse acesso só para a faixa da equipe de TI, de 192.168.10.32 a 192.168.10.63, e o equipamento pede a regra no formato "endereço + máscara wildcard". Os endereços do caso são um exemplo.
Resposta curta: a faixa da TI é uma /27. A máscara de rede dela é 255.255.255.224, e a wildcard é 0.0.0.31. A regra fica permit 192.168.10.32 0.0.0.31. Ela casa 32 endereços, de 192.168.10.32 a 192.168.10.63, e deixa de fora o resto da rede.
O que é a máscara wildcard
A máscara de rede diz quais bits do endereço pertencem à rede. A wildcard faz o papel oposto: diz quais bits o equipamento pode ignorar na hora de comparar.
A regra de leitura é simples:
- bit 0 na wildcard: o bit do endereço precisa ser igual ao da regra;
- bit 1 na wildcard: o bit pode ser qualquer um.
Esse formato aparece em listas de acesso (ACL) e no comando network do OSPF, em roteadores e switches da Cisco e de outros fabricantes que seguem o mesmo estilo de configuração. A documentação de exemplos de ACL da Cisco usa exatamente essa lógica.
Muitos equipamentos, como os roteadores MikroTik e a maioria dos roteadores domésticos, escrevem a mesma faixa no formato com barra, o CIDR: 192.168.10.32/27. O CIDR está descrito no RFC 4632. A wildcard é só outra forma de escrever a mesma faixa.
Passo 1: descubra o tamanho da faixa
A equipe de TI do exemplo tem até 20 computadores e notebooks. Uma /27 comporta 30 aparelhos, o que dá folga. Em números redondos, o bloco tem 32 endereços no total: 32 = 2 elevado a (32 − 27).
Os blocos de uma /27 começam em múltiplos de 32 no último número. Por isso a faixa da TI começa em 192.168.10.32 e termina em 192.168.10.63. Se você escolher um início que não é múltiplo de 32, a regra vai casar outra faixa, como mostra a seção de erros.
Passo 2: faça a conta da wildcard
A conta mais rápida é subtrair a máscara de 255.255.255.255, octeto por octeto.
| 1º octeto | 2º octeto | 3º octeto | 4º octeto | |
|---|---|---|---|---|
| Tudo 1 | 255 | 255 | 255 | 255 |
| Máscara /27 (255.255.255.224) | 255 | 255 | 255 | 224 |
| Wildcard (subtração) | 0 | 0 | 0 | 31 |
O resultado é 0.0.0.31. É o mesmo valor que a conversão direta do prefixo dá: 0.0.0.31.
Em binário fica mais fácil ver a inversão. A máscara tem 27 bits 1 seguidos de 5 bits 0. A wildcard tem o contrário:
- máscara:
11111111.11111111.11111111.111|00000 - wildcard:
00000000.00000000.00000000.000|11111 - rede da TI:
11000000.10101000.00001010.001|00000
Os 5 últimos bits da wildcard estão em 1. Eles são os bits que variam de um computador para outro dentro da faixa da TI. Todos os outros precisam bater com 192.168.10.32.
Passo 3: tabela de consulta
Para as faixas mais usadas em escritório, vale ter a tabela à mão.
| Prefixo | Máscara de rede | Wildcard | Endereços no bloco | Aparelhos que cabem |
|---|---|---|---|---|
| /22 | 255.255.252.0 | 0.0.3.255 | 1.024 | 1.022 |
| /23 | 255.255.254.0 | 0.0.1.255 | 512 | 510 |
| /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: o último octeto da wildcard é sempre o tamanho do bloco menos 1, enquanto o bloco cabe nesse octeto. Bloco de 32, wildcard terminando em 31.
Passo 4: escreva a regra
Num roteador Cisco com IOS, uma lista de acesso padrão resolve o caso. Os comandos abaixo são um modelo. Confira a sintaxe no manual do seu equipamento antes de aplicar.
access-list 10 permit 192.168.10.32 0.0.0.31
line vty 0 4
access-class 10 in
A primeira linha cria a lista 10 e libera a faixa da TI. As duas seguintes aplicam a lista às sessões de administração remota (as linhas "vty", usadas pelo SSH).
Toda ACL desse tipo termina com uma negação implícita: quem não casou com nenhuma linha é bloqueado. Por isso não é preciso escrever a regra de bloqueio do resto da rede. Mas atenção: se o seu próprio computador estiver fora da faixa liberada, você perde o acesso ao aplicar a regra. Faça o teste a partir de um computador da TI e mantenha uma sessão aberta até confirmar.
Passo 5: teste com endereços reais
Antes de aplicar, confira quais endereços a regra deixa passar. A tabela compara alguns computadores da rede de exemplo com a regra 192.168.10.32 0.0.0.31.
| Endereço | Quem é (exemplo) | Casa com a regra? |
|---|---|---|
| 192.168.10.32 | primeiro endereço da faixa | Sim |
| 192.168.10.40 | notebook da TI | Sim |
| 192.168.10.63 | último endereço da faixa | Sim |
| 192.168.10.64 | primeiro endereço depois da faixa | Não |
| 192.168.10.70 | computador do financeiro | Não |
O 192.168.10.63 entra e o 192.168.10.64 fica de fora. É nas bordas que os erros aparecem, então teste sempre o primeiro e o último endereço e o vizinho de cada lado.
Erros comuns
Usar a máscara de rede no lugar da wildcard. Escrever permit 192.168.10.32 255.255.255.224 parece certo, mas inverte a lógica. O equipamento passa a ignorar os 27 primeiros bits e a comparar só os 5 últimos. Resultado: casa qualquer endereço do mundo cujo último octeto seja múltiplo de 32. O endereço 10.20.30.64, que nem é da sua rede, casa: sim. E o notebook da TI em 192.168.10.40, que deveria passar, casa: não.
Escrever o tamanho do bloco em vez do bloco menos 1. A wildcard 0.0.0.32 tem um único bit 1. Ela casa só dois endereços. Com a regra 192.168.10.32 0.0.0.32, o 192.168.10.40 casa? Não. O certo é 0.0.0.31.
Começar a faixa fora do múltiplo do bloco. Se você escrever 192.168.10.40 0.0.0.31, os bits ignorados apagam a diferença e a regra cobre a faixa inteira de 192.168.10.32 a 192.168.10.63. Alguns equipamentos corrigem o endereço sozinhos, outros mostram aviso. Escreva sempre o primeiro endereço do bloco para não confundir quem ler a configuração depois.
Esquecer a negação implícita. A ACL bloqueia tudo o que não foi liberado. Se outra regra da mesma lista precisa liberar um servidor de monitoramento, ela tem que estar escrita.
Confundir wildcard com CIDR no roteador doméstico. Se o painel pede "192.168.10.32/27", não escreva a wildcard. Use o prefixo.
Wildcard maior que uma /24
A wildcard também cobre faixas que atravessam o terceiro octeto. Se a empresa usa 192.168.10.0/23, a wildcard é 0.0.1.255. A regra permit 192.168.10.0 0.0.1.255 casa:
| Endereço | Casa com 192.168.10.0 0.0.1.255? |
|---|---|
| 192.168.10.5 | Sim |
| 192.168.11.20 | Sim |
| 192.168.12.20 | Não |
Aqui vale a mesma regra do múltiplo. A /23 tem de começar num terceiro octeto par. Escrever 192.168.11.0 com 0.0.1.255 cobre a mesma faixa de 192.168.10.0 a 192.168.11.255, e não 192.168.11.0 a 192.168.12.255 como muita gente imagina.
Checklist antes de aplicar a regra
- Defina a faixa e o prefixo. Confira se o início é múltiplo do tamanho do bloco.
- Calcule a wildcard: 255.255.255.255 menos a máscara.
- Teste o primeiro e o último endereço da faixa e os vizinhos de fora.
- Confira se o computador de onde você configura está dentro da faixa liberada.
- Mantenha uma sessão aberta e teste uma nova conexão antes de salvar a configuração.
- Anote na documentação da rede a faixa em CIDR e em wildcard, lado a lado.
Perguntas frequentes
Qual é a máscara wildcard da /24?
0.0.0.255. A máscara de rede é 255.255.255.0, e a subtração de 255.255.255.255 deixa só o último octeto livre. Ela casa 256 endereços.
Qual é a wildcard da máscara 255.255.255.252?
0.0.0.3. Essa máscara é a /30, usada em ligações entre dois roteadores. O bloco tem 4 endereços e comporta 2 aparelhos.
Como liberar um único endereço com wildcard?
Use a wildcard 0.0.0.0, que exige todos os 32 bits iguais. Em muitos equipamentos dá para escrever host 192.168.10.40, que é a mesma coisa.
O que significa a wildcard 255.255.255.255?
Que nenhum bit precisa bater. Ela casa qualquer endereço IPv4, os 4.294.967.296 possíveis. Muitos equipamentos aceitam a palavra any com o mesmo efeito.
Quantos endereços a wildcard 0.0.0.31 cobre?
- Ela tem 5 bits em 1, e cada bit livre dobra a quantidade: 2 elevado a 5 dá 32. Desses, 30 servem para aparelhos se a faixa for uma sub-rede inteira.
A wildcard do OSPF é a mesma da ACL?
A conta é a mesma. No comando network 192.168.10.32 0.0.0.31 area 0, ela indica quais interfaces do roteador entram no OSPF. A diferença é o uso, não o cálculo.
Quer conferir a wildcard da sua faixa e testar se um endereço casa com a regra? Use a calculadora de máscara wildcard.
Leia também: Como ler uma máscara wildcard em uma ACL