255.255.255.0: A matemática das máscaras de rede
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...
Parte 8: Conclusão
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.
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:
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:
http://gravatai.ulbra.tche.br/~elgio/calcmasc.php
Mas coloquei um redir no endereço publicado para não haver problemas.