Você sabe o que significam matematicamente as máscaras de rede? Um /24, /25? Um 255.255.128.0 define o quê? No iptables um 10.1.0.0/28 tem qual finalidade? E o que isto tem a ver com as classes de IPs? Para quem não for alérgico à escovação de bits...
Por envolver operações binárias e conceitos de redes, este artigo pode não ter sido do interesse de muitos leitores. Mas tenho observado nos fóruns que muita gente não sabe o que são máscaras de rede e se perdem quando este conceito é empregado, por exemplo, em configurações de firewall.
O que significa dizer que estou executando um DROP no IP 10.1.0.0/28?
# iptables -A FORWARD -s 10.1.0.0/28 -j DROP
Quem está realmente sendo bloqueado? A resposta agora tem explicação: estão sendo bloqueados todos os ips que ao se realizar AND bit a bit com /28 resulte em 10.1.0.0. Na prática todos entre 10.1.0.0 e 10.1.0.15, pois este será o IP da rede e de broadcast que um /28 determina.
Ainda resta dizer que o uso de máscaras de forma apropriada é usado para subdividir uma faixa de ips públicos que determinada instituição recebeu em várias redes. Se eu tenho um /24, sei que posso montar uma rede com até 254 máquinas (sim, 254, pois tem o endereço de rede e de broadcast que não posso usar em máquina). Uma rede! Mas se eu quero DUAS, cada uma com 100 máquinas, posso quebrar este /24 em dois /25. Ou em quatro /26... Ou ainda em três redes, uma /25 e duas outras /26.
Claro que para isto ai tem que ir mais a fundo no conceito de máscaras, pois pode não parecer, mas este artigo procurou fornecer apenas uma introdução ao assunto.
Referências
Este conceito de máscaras é bastante técnico e na Internet geralmente se encontram simplificações populares, como receitas de bolo. Nada como bons livros, principalmente os que descrevem o protocolo TCP/IP ou direto na veia, lendo as RFCs. Não seria ético da minha parte tornar público aqui minha preferência por este ou aquele livro, em detrimento de outro, mas se alguém se interessar pelo assunto, envie-me um email que terei maior prazer em responder.
Possuo em minha página pessoal um script em PHP para realizar o cálculo de máscara de redes, com um diferencial que ele mostra o números em seu formato binário, dentro do conceito que descrevi aqui. O mesmo pode ser encontrado em:
[2] Comentário enviado por m4tri_x em 28/11/2007 - 10:37h
Olá, agradeço antes mesmo de ler completamente o artigo, tive uma prova sobre isso na faculdade ontem, eu não tinha encontrado nenhum artigo interessante como esse, vlw kra, continua assim...
[]´s
[7] Comentário enviado por Iron Fist em 28/11/2007 - 15:26h
Elgio, você já ouviu falar em ips não roteaveis?
Eu acredito que os ips não roteaveis sejam os da família de redes 10.0.0.0, 127.0.0.1 e 192.168.0.0.
sabe onde eu posso achar alguma informação "segura" (isto é, consistente) sobre elas?
Ah, e uma pergunta. Eu tive algumas aulas de redes, mas depois de ler seu artigo, fiquei com uma dúvida.
Por acaso estes ips pertencem à classe A B ou C?
10.0.0.0 = Classe A
127.0.0.0 = Classe B
192.168.0.0 = Classe C?
É possível também a mascara permitir que um ip seja transformado em uma família de IP de Classe A? Por exemplo:
192.0.0.0/8 é possível?
[8] Comentário enviado por elgio em 28/11/2007 - 15:47h
"Não roteáveis" é um termo muito ruim, não deve ser usado. Quem diz "não roteáveis" quer dizer "não válidos na Internet", ou seja, roteadores bem configurados da Internet NÃO IRÃO ROTEÁ-LOS, mas não que o Ip tem um "problema no seu DNA" que não permite serem roteados... :-D
O termo correto é Ips PRIVADOS, para uso somente interno, INTRANET.
Os ips "válidos" na Internet são chamados ips Públicos.
Os Privados são:
10.0.0.0/8: isto abrange desde 10.0.0.0 até 10.255.255.255. O 9.X.X.X e o 11.X.X.X são PÚBLICOS, ou seja, possuem DONO.
172.16.0.0/12: isto vai de 172.16.0.0 até 172.31.255.255. Erro COMUM: o 172.15. e o 172.32. SÃO PÚBLICOS!!
192.168.0.0/16: isto vai de 192.0.0.0 até 192.168.255.255
Além destes ips PRIVADOS tem os reservados e que não podem ser usados. O 0.0.0.0 por exemplo está reservado (usado como origem em requizições DHCP por exemplo). O 127.X.X.X é para localhost e assim vai com outros.
Quanto a 192.0.0.0/8, CASUALMENTE este exemplo invade a área de ips PÜBLICOS e deve ser evitado. NÃO que não funcione, veja bem... mas com esta máscara (/8) estarias definindo uma rede que começa em 192.0.0.0 (que não é PRIVADA) e termina em 192.255.255.255 (que também não é PRIVADA).
No mais, liberte-se das classes. Só porque um IP é classe A não quer dizer que tu não possa usar um /24 nele!
Lá é o lugar "quente" para ver atribuições de ips e portas.
Sobre os ips, mais especificamente: http://www.iana.org/assignments/ipv4-address-space
Veja que o Iana diz as GRANDES alocações.
para ver como cada país redistribuiu, ai tem que se ir no gestor de ips de cada um dos países. (eles só dizem de quem é o /8)
Veja o exemplo:
010/8 Jun 95 IANA - Private Use See [RFC1918]
Tem uma RFC que define o seu uso!
Veja que tem muito "Varius Registers" inclusive para alguns privados.
[10] Comentário enviado por kalib em 28/11/2007 - 16:30h
Parabéns Elgio...excelente artigo...além de ser um conteúdo de grande importância para qualquer profissional da área de redes, foi abordado com qualidade.
Parabéns. ;]
[16] Comentário enviado por forkd em 29/11/2007 - 19:21h
Bom artigo!
Em 2005 eu fiz um programa pra exibir os dados de um endereço IP e sua máscara (este último é opcional). A primeira versão foi feita em C, mas depois eu refiz o código em Java, como um applet. Os códigos-fonte estão na minha página de scripts do VOL e a versão em Java pode ser acessada a partir de www.freewebs.com/jlojunior (necessário JRE para executar).
Infelizmente eu não usei métodos muito eficientes para trabalhar com os dados passados (manipulação direta de bits), mas o funcionamento é perfeito.
Abraço!
[20] Comentário enviado por cytron em 14/02/2008 - 02:06h
Legal heim! Eis um artigo q pode ter 50 páginas que ainda não cansa de ler. Ficou muito bem escrito. Reaprendi bastante sobre máscaras. Estava tudo enferrujado kkkkk!!!
elgio... vou dar uma sugestão e aposto que a comunidade em peso vai apoiar, ou pelo menos quem passar por aqui:
Faça um novo artigo sobre máscaras, mas dessa vez um modo avançado, aprofundando mais nas entranhas do IP e seu roteamento. Não é todo mundo que domina com tanta naturalidade o assunto e escreve tão bem.
Vamos lá galera! Quem sabe ele se comove eheheheh!!!
[29] Comentário enviado por anarco2002 em 07/12/2008 - 10:50h
Ótimo artigo, parabéns!
Gostaria de saber o porquê de se usar uma máscara /16 numa rede com ip classe A... Exemplo: 10.45.0.0/16..
Grato,
Antonio A. Correia
[31] Comentário enviado por maran em 02/03/2009 - 14:25h
Muito bom Elgio, hoje consigo interpretar perfeitamente este seu artigo,
pois estou realizando um curso voltado a estes aspectos.
Este mundo de bits é muito louco, VLSM, subnetar as redes, dividir o que já esta dividido.
Muito facinante, e o melhor é você depois de conhecer um pouco deste mundo, é ir em uma empresa e perguntar para alguem, porque você usa 255.255.255.0
Ai a pessoa responde :
É o padrão!!
Além de que é por ai que começa a segurança de uma rede, alem de sua performance, uma rede bem subnetada, pode evitar inasões, alem de que ganha em potencial, pois o broadcast é menor, assim consiguimos um menor delay!
Você poderia mostrar alguns outros exemplos um pouco diferentes na parte onde , explicou esta parte de /24 /28 /30, enfim!
Alguns exemplos de como é possivel descobrir qual é o host 900 da tal rede e em qual subrede o mesmo se encontra, enfim, para mostrar pra galera o quão longe podemos ir neste mundo.
[33] Comentário enviado por xerxeslins em 24/03/2009 - 21:40h
Gostei muito do artigo. Ajudou-me a entender um pouco mais sobre máscaras de rede.
Porém, fiquei com uma dúvida. Quebrei a cabeça tentando resolver, mas não consegui.
minha rede local possui um roteador com o seguinte IP:
192.168.2.1.
e tem 4 máquinas que recebem os seguintes IPs:
192.168.2.2
192.168.2.3
192.168.2.4
192.168.2.5
Como seria a notação da máscara da minha rede, supondo que eu não poderia acrescentar outras máquinas? (ou seja, não poderia existir o 192.168.2.6).
Se eu disser que é 192.168.2.0/24
eu estarei dizendo que o último octeto está livre para determinar vários hosts (mais de 5 inclusive), mas o que eu deveria colocar depois da barra ao invés de 24, se o intervalo máximo de hosts fosse de 192.168.2.1 até 192.168.2.5 apenas?
De 192.168.2.1 até 192.168.2.5 NÃO TEM COMO.
Assim como se quisesse ter 9 máquinas (de 192.168.2.1 até 192.168.2.9) terias que puxar para um /28 criando uma rede com 16 ips!! 8, 16, 32, 64, 128, 256,... sempre potência de 2.
[43] Comentário enviado por spyke em 10/01/2012 - 16:42h
amigo, estudei 1 semestre disso na escola, e demorei muito mais tempo pra aprender o que aprendi aqui, obrigado por essa aula, e continue a fazer artigos desse nível.
[44] Comentário enviado por piratex em 13/02/2012 - 02:22h
Excelênte !! Estava com umas dúvidas, já faz 3 anos que me formei em Analise de Sistemas, lá paguei Redes básico e avançado, mas já havia esquecido de alguns conceitos e seu artigo me fez relembrar tudo =D Achei melhor inclusive do que abrir o Kurose ou o Tanenbaum !!! Muito obrigado !!
[48] Comentário enviado por MAPOGOS em 10/02/2014 - 13:52h
ótimo artigo, tem que term um tempo com muita atenção para ler isto ja que estou no horário de trabalho.
Minha dúvida é os cálculos de maskarades e gateway e Ip com por exemplo 192.168.0.1/24...
Eu esqueci esta aula.
Como posso fazer estes cálculos
[53] Comentário enviado por MAPOGOS em 27/04/2015 - 13:12h
Eu ja li sobre esta escovação de bits muito interessante.
E tenho um Modem/Hub/Roterador com Ip 192.168.0.1 e outro 10.0.0.1.
Esta Classe de rede 192 é uma e 10 ´outra classe.
Não podem dar conflitos?
[54] Comentário enviado por removido em 26/03/2017 - 23:26h
Muito bom o artigo.
Questão para os alunos:
Dada uma rede 200.200.200.0, calcule as máscaras de forma que sejam criadas sub-redes com 10 hosts por sub-rede. Mostre as possíveis sub-redes criadas e seus respectivos ranges de endereços (sub-rede, broadcast e hosts).
Use papel e lápis, não use o comando ipcalc ou site.