VPSCalcular máscara

Guia prático

Como ler uma máscara wildcard em uma ACL, linha por linha

Uma ACL de três linhas decide quem entra no servidor do escritório. Lemos cada linha como o roteador lê, bit a bit, e mostramos o que acontece quando alguém digita a máscara no lugar da wildcard.

Por · Redação Grupo TAAP · Publicado em · 8 min de leitura

Rack com equipamentos de rede e muitos cabos conectados
Roteadores e firewalls aplicam as listas de acesso a cada pacote que passa por uma interface. Foto: Taylor Vick / Unsplash

O caso: no escritório do guia Como dividir a rede de uma pequena empresa em sub-redes, o Wi-Fi de visitantes ficou em 192.168.10.64/26 e vendas em 192.168.10.128/27. O técnico escreveu uma lista de acesso (ACL) para o servidor e ninguém mais entendeu o que ela faz.

Resposta curta: a ACL bloqueia os 64 endereços dos visitantes, libera os 32 endereços de vendas e libera um único computador, 192.168.10.10. Todo o resto é negado, porque toda ACL termina com uma negação que não aparece escrita.

A lista que vamos ler

Esta é a lista, no formato das ACLs numeradas do Cisco IOS:

access-list 10 deny   192.168.10.64 0.0.0.63
access-list 10 permit 192.168.10.128 0.0.0.31
access-list 10 permit 192.168.10.10 0.0.0.0

Cada linha tem três partes: a ação (permit libera, deny bloqueia), um endereço e uma máscara wildcard. A wildcard diz quais partes do endereço o roteador precisa conferir.

A regra de ouro: 0 confere, 1 tanto faz

A wildcard parece uma máscara de rede ao contrário, e é isso mesmo. A documentação da Cisco define a leitura bit a bit (Cisco):

  • bit 0: o bit do IP tem de ser igual ao do endereço da linha;
  • bit 1: o bit do IP pode ser qualquer coisa.

O nome ajuda a lembrar: wildcard quer dizer "curinga" em inglês. Os bits 1 são os curingas, que valem qualquer coisa; os bits 0 são as cartas que precisam ser iguais.

Para achar a wildcard de uma sub-rede, faça 255 menos cada octeto da máscara. Vendas usa /27, máscara 255.255.255.224:

255.255.255.255 − 255.255.255.224 = 0.0.0.31

A calculadora de máscara wildcard faz essa conta e mostra a faixa que a linha pega.

Linha 1: deny 192.168.10.64 0.0.0.63

Os três primeiros octetos da wildcard são 0: o IP tem de começar com 192.168.10. No último octeto, 63 em binário é 00111111: os 2 primeiros bits são conferidos e os 6 últimos ficam livres.

O resultado é a faixa de 192.168.10.64 a 192.168.10.127, 64 endereços: exatamente a sub-rede /26 dos visitantes. Qualquer pacote vindo dali é bloqueado.

Linha 2: permit 192.168.10.128 0.0.0.31

Agora o último octeto da wildcard é 00011111: 3 bits conferidos e 5 livres. Vamos testar dois IPs do escritório, comparando só os 3 primeiros bits do último octeto:

IP Último octeto em binário 3 primeiros bits Linha da ACL (100) Casa?
192.168.10.140 10001100 100 100 sim
192.168.10.170 10101010 101 100 não

O 192.168.10.140 é de vendas e passa. O 192.168.10.170 é uma câmera (a sub-rede das câmeras vai de 192.168.10.160 a 192.168.10.175) e não casa com esta linha. A linha 2 pega a faixa de 192.168.10.128 a 192.168.10.159, 32 endereços.

Linha 3: um único computador

A wildcard 0.0.0.0 manda conferir todos os 32 bits. Só um IP casa: o próprio 192.168.10.10, que é o computador do técnico. A Cisco aceita um atalho com o mesmo efeito: escrever host 192.168.10.10. Do outro lado, any quer dizer "qualquer endereço", o mesmo que a wildcard 255.255.255.255.

A linha que ninguém escreveu

O roteador lê a lista de cima para baixo e para na primeira linha que casa. Se nenhuma casar, o pacote é negado: toda ACL termina com uma negação implícita, que não aparece no texto (Cisco IOS). Por isso uma lista precisa ter pelo menos um permit, senão bloqueia tudo.

Testando cinco IPs do escritório contra a lista inteira:

IP de origem Primeira linha que casa Resultado
192.168.10.140 linha 2 (permit) liberado
192.168.10.100 linha 1 (deny) bloqueado
192.168.10.170 nenhuma linha: negado no fim bloqueado
192.168.10.10 linha 3 (permit) liberado
192.168.10.30 nenhuma linha: negado no fim bloqueado

O 192.168.10.30 está no administrativo. Ele não aparece em nenhuma linha e cai na negação implícita. Se o administrativo também precisar do servidor, falta uma linha de permit para ele.

Escrevendo a linha que falta

O administrativo usa 192.168.10.0/26. A wildcard sai da mesma conta de sempre: máscara 255.255.255.192, wildcard 0.0.0.63. A lista nova fica assim:

access-list 10 deny   192.168.10.64 0.0.0.63
access-list 10 permit 192.168.10.128 0.0.0.31
access-list 10 permit 192.168.10.0 0.0.0.63
access-list 10 permit 192.168.10.10 0.0.0.0

Agora o 192.168.10.30 cai na linha 3 (permit). O computador do técnico, 192.168.10.10, também está dentro do administrativo, então a linha 4 ficou redundante: ele já é liberado pela linha 3. Ela pode ficar, sem prejuízo, ou sair para deixar a lista mais curta. Como as faixas dos visitantes e do administrativo não se cruzam, a ordem entre essas duas linhas não muda nada.

Monitor com linhas de texto de configuração em fundo escuro
Uma ACL é texto lido de cima para baixo. Uma linha fora de ordem muda o resultado da lista inteira. Foto: Pankaj Patel / Unsplash

Por que a ordem importa

Imagine que alguém, para "simplificar", coloque uma linha liberando a rede toda no topo:

access-list 10 permit 192.168.10.0 0.0.0.255
access-list 10 deny   192.168.10.64 0.0.0.63

Um visitante, como 192.168.10.100, casa logo com a primeira linha (sim, ela pega os 256 endereços de 192.168.10.0 a 192.168.10.255). O roteador para ali e libera. A linha do deny nunca é lida. A regra prática: linhas mais específicas em cima, mais gerais embaixo.

O erro clássico: digitar a máscara no lugar da wildcard

Quem está acostumado com máscara de rede às vezes escreve:

access-list 10 permit 192.168.10.128 255.255.255.224

Numa ACL, o segundo número é lido como wildcard. Com 255.255.255.224, quase todos os bits viram "tanto faz" e só os 5 últimos são conferidos. A linha passa a casar com 134.217.728 endereços espalhados pela internet inteira, um a cada 32. E o pior: o próprio 192.168.10.140, que é de vendas, não casa com ela, enquanto 10.0.0.32 casa.

A calculadora de máscara wildcard do vpsa percebe quando você digita uma máscara (um número que começa com bits 1) e converte sozinha. O roteador não faz essa gentileza: na ACL, o que você digita é a wildcard.

Wildcard "esquisita": quando os bits não são contínuos

Diferente da máscara de rede, a wildcard pode misturar zeros e uns. Um exemplo clássico de estudo:

access-list 20 permit 10.1.0.0 0.0.254.255

O terceiro octeto da wildcard é 11111110: só o último bit dele é conferido, e ele tem de ser 0. Ou seja, a linha pega 10.1.x.y com o terceiro octeto par: 10.1.4.7 casa, 10.1.5.7 não casa. São 32.768 endereços. Isso não dá para escrever com uma máscara de rede comum, e a calculadora avisa quando a wildcard não é contínua.

Como ler qualquer linha em quatro passos

  1. Separe endereço e wildcard. O primeiro número com pontos é o endereço; o segundo, a wildcard.
  2. Ache os octetos 0 e 255. Octeto 0 na wildcard: o octeto do IP tem de ser igual. Octeto 255: qualquer valor serve.
  3. Abra em binário só o octeto do meio-termo. Se a wildcard tiver um octeto como 63 ou 31, escreva em binário e veja quantos bits ficam livres no fim.
  4. Conte os endereços. Cada bit 1 da wildcard dobra a quantidade: 2 elevado ao número de bits 1.

Se a wildcard for "contínua" (zeros e depois só uns), ela corresponde a um prefixo comum:

Prefixo Máscara Wildcard Endereços
/24 255.255.255.0 0.0.0.255 256
/25 255.255.255.128 0.0.0.127 128
/26 255.255.255.192 0.0.0.63 64
/27 255.255.255.224 0.0.0.31 32
/28 255.255.255.240 0.0.0.15 16
/29 255.255.255.248 0.0.0.7 8
/30 255.255.255.252 0.0.0.3 4
/32 255.255.255.255 0.0.0.0 1

Perguntas frequentes

Qual a wildcard de uma rede /24?

0.0.0.255. Faça 255 menos cada octeto de 255.255.255.0. A tabela completa de máscaras está na página inicial e em máscara /24.

A wildcard 0.0.0.3 pega quantos endereços?

4: os 2 últimos bits ficam livres, e 2 × 2 = 4. É a wildcard de uma rede /30, comum em ligações entre roteadores.

Dá para testar uma linha antes de colocar no roteador?

Dá. Digite o endereço e a wildcard da linha na calculadora de máscara wildcard: ela mostra o primeiro e o último endereço que a linha pega e quantos são. Depois confira se os IPs que você quer liberar ou bloquear estão dentro dessa faixa. Para a lista inteira, faça como na tabela deste guia: pegue alguns IPs reais da rede e veja, de cima para baixo, qual é a primeira linha que casa com cada um.

O que quer dizer 0.0.0.0 255.255.255.255?

É "qualquer endereço": a wildcard toda em 1 manda ignorar todos os bits. Na Cisco, a mesma coisa pode ser escrita como any.

Onde colocar a ACL, na entrada ou na saída da interface?

Depende do que você quer filtrar e de onde vêm os pacotes. A mesma lista aplicada no lugar errado pode não filtrar o tráfego que você queria. Confira o caminho dos pacotes e a documentação do seu equipamento antes de aplicar em produção.

Outros fabricantes usam wildcard?

Cada fabricante tem a sua sintaxe. Alguns usam a máscara normal ou a barra (/27) nas regras de firewall. Este guia segue a sintaxe das ACLs numeradas do Cisco IOS.

Teste qualquer linha de ACL na calculadora de máscara wildcard, que já vem preenchida com a linha de vendas logo abaixo.

Leia também: Máscara wildcard na ACL: liberar só a faixa da TI

Faça a conta: Máscara wildcard

Explicação completa

Fontes e referências

  1. Cisco — Configure and Filter IP Access ListsMáscara wildcard em ACL: bit 0 confere, bit 1 ignora; atalhos host e any
  2. Cisco IOS — IP Access List Entry Sequence NumberingLeitura de cima para baixo, primeira linha que casa decide e negação implícita no fim
  3. RFC 950 — Internet Standard Subnetting ProcedureMáscara de sub-rede, de onde sai a wildcard invertida
  4. RFC 4632 — Classless Inter-domain Routing (CIDR)Prefixos /26, /27 e /32 usados nos exemplos
  5. RFC 1918 — Address Allocation for Private InternetsFaixa privada 192.168.0.0/16 da rede do exemplo

Conferimos cada número e cada regra nas fontes acima antes de publicar. Veja como trabalhamos na metodologia e a lista completa de fontes.

Redação Grupo TAAP

Explicamos redes e internet em português simples, com a conta aberta. Usamos automação e IA para apoiar a pesquisa e a redação; os números vêm das calculadoras do site e as regras são conferidas nas fontes primárias.

Leia também

Resultado na horaa conta aparece enquanto você digita
Explicado em portuguêssem jargão e com o passo a passo
Funciona no celularno computador, tablet ou celular
Guarda seu históricosó no seu navegador, sem cadastro