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 3: Seu IP é Classe A, Classe B ou Classe C?
Na verdade isto já não importa mais para efeitos de roteamento, mas até 1993 era a forma usada para realizar roteamento IP.
Nesta técnica os ips foram catalogados em Classes, para determinar o roteamento. O objetivo do roteamento por classes era disponibilizar uma forma muito rápida (matematicamente) dos roteadores calcularem o destino. Basicamente determinou-se que dos 32 bits de um número IP, parte dele (alguns bits iniciais) diriam qual a rede de destino e outra parte dele (bits finais) diriam qual o número do host dentro desta rede. Se apenas 8 bits iniciais disserem qual rede é, um roteador só precisa analisar estes 8 bits para determinar o destino e não todos os 32. Sempre visando o menor custo, ainda mais em uma época onde o hardware não é o que temos hoje!
A pergunta importante é: quantos bits dizem qual rede é e quantos bits dizem qual host? Nesta decisão é que entraram as classes:
Classe A: sempre que um número IP começar com 0, é classe A. Genericamente pode-se dizer que um classe A possui o formato:
0XXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
Observe o quanto isto facilitava (não se usa mais ISTO, lembre-se!) as operações de roteamento: se eu sou um roteador classe A e o primeiro bit do IP que devo rotear NÃO FOR ZERO, pronto, pra que olhar os demais bits se já sei que o destino não é aqui? (novamente o CEP: pra que olhar os demais dígitos do CEP se o 9 me diz que é RS e eu sou uma agência de correios de SP?)
Como o primeiro bit será sempre ZERO, isto obriga o primeiro octeto do IP a ser 0XXXX XXXX, o que restringe as possibilidades deste octeto a ser de 0 a 127. Por isto que popularmente se diz que um IP Classe A é o que vai de 0.0.0.0 até 127.255.255.255. Mas isto no popular, pois os roteadores não fazem if (if octeto UM maior que zero e menor que 127, então é classe A), eles fazem operações bit a bit! Se primeiro bit for ZERO, é um classe A.
Sendo um Classe A (primeiro bit em ZERO), os próximos SETE bits dizem qual é a rede e os demais qual o HOST dentro desta rede:
0RRRRRRR HHHHHHHH HHHHHHHH HHHHHHHH
Veja, a definição da classe determina a quantidade de bits para rede. No caso de um classe A, tem-se sete bits para rede e 24 para host. Quem adquiria uma faixa Classe A para si (grandes empresas) podia suprir até 2^24 hosts, algo próximo de 16 milhões de máquinas. Coisa para poucos, pois existiam apenas 127 redes deste tipo no mundo (novamente, estou simplificando para não fugir do foco, embora os números não sejam exatamente estes por conta de reservas de ips, números de rede e broadcast).
Classe B: sempre que um número IP começar com 10, é classe B e sendo desta classe, os próximos 14 bits é que dizem que rede é, sobrando os últimos 16 para determinar qual a host:
10RRRRRR RRRRRRRR HHHHHHHH HHHHHHHH
Com 16 bits para host, cada rede poderia ter até 65536 hosts (simplificando!!) e um total de 16384 redes classe B existem (2 elevado na 14).
Classe C: sempre que um número IP começar com 110, é classe C e sendo desta classe, os próximos 21 bits é que dizem que rede é, sobrando os últimos 8 para determinar qual a host:
110RRRRR RRRRRRRR RRRRRRR HHHHHHHH
Com isto cada rede pode ter até 256 ips e muitas redes deste tipo existiram (em torno de 2 milhões).
Ainda existe o Classe D (começa com 1110) reservado para tráfego multicast (ainda usado) e o Classe E (1111) reservado para uso futuro. Como para uso normal, unicast, tem-se apenas o classe A, B e C, o último ip válido ainda hoje é o que começa com 223 (224 já é classe D).
Nesta técnica os ips foram catalogados em Classes, para determinar o roteamento. O objetivo do roteamento por classes era disponibilizar uma forma muito rápida (matematicamente) dos roteadores calcularem o destino. Basicamente determinou-se que dos 32 bits de um número IP, parte dele (alguns bits iniciais) diriam qual a rede de destino e outra parte dele (bits finais) diriam qual o número do host dentro desta rede. Se apenas 8 bits iniciais disserem qual rede é, um roteador só precisa analisar estes 8 bits para determinar o destino e não todos os 32. Sempre visando o menor custo, ainda mais em uma época onde o hardware não é o que temos hoje!
A pergunta importante é: quantos bits dizem qual rede é e quantos bits dizem qual host? Nesta decisão é que entraram as classes:
Classe A: sempre que um número IP começar com 0, é classe A. Genericamente pode-se dizer que um classe A possui o formato:
Observe o quanto isto facilitava (não se usa mais ISTO, lembre-se!) as operações de roteamento: se eu sou um roteador classe A e o primeiro bit do IP que devo rotear NÃO FOR ZERO, pronto, pra que olhar os demais bits se já sei que o destino não é aqui? (novamente o CEP: pra que olhar os demais dígitos do CEP se o 9 me diz que é RS e eu sou uma agência de correios de SP?)
Como o primeiro bit será sempre ZERO, isto obriga o primeiro octeto do IP a ser 0XXXX XXXX, o que restringe as possibilidades deste octeto a ser de 0 a 127. Por isto que popularmente se diz que um IP Classe A é o que vai de 0.0.0.0 até 127.255.255.255. Mas isto no popular, pois os roteadores não fazem if (if octeto UM maior que zero e menor que 127, então é classe A), eles fazem operações bit a bit! Se primeiro bit for ZERO, é um classe A.
Sendo um Classe A (primeiro bit em ZERO), os próximos SETE bits dizem qual é a rede e os demais qual o HOST dentro desta rede:
Veja, a definição da classe determina a quantidade de bits para rede. No caso de um classe A, tem-se sete bits para rede e 24 para host. Quem adquiria uma faixa Classe A para si (grandes empresas) podia suprir até 2^24 hosts, algo próximo de 16 milhões de máquinas. Coisa para poucos, pois existiam apenas 127 redes deste tipo no mundo (novamente, estou simplificando para não fugir do foco, embora os números não sejam exatamente estes por conta de reservas de ips, números de rede e broadcast).
Classe B: sempre que um número IP começar com 10, é classe B e sendo desta classe, os próximos 14 bits é que dizem que rede é, sobrando os últimos 16 para determinar qual a host:
Com 16 bits para host, cada rede poderia ter até 65536 hosts (simplificando!!) e um total de 16384 redes classe B existem (2 elevado na 14).
Classe C: sempre que um número IP começar com 110, é classe C e sendo desta classe, os próximos 21 bits é que dizem que rede é, sobrando os últimos 8 para determinar qual a host:
Com isto cada rede pode ter até 256 ips e muitas redes deste tipo existiram (em torno de 2 milhões).
Ainda existe o Classe D (começa com 1110) reservado para tráfego multicast (ainda usado) e o Classe E (1111) reservado para uso futuro. Como para uso normal, unicast, tem-se apenas o classe A, B e C, o último ip válido ainda hoje é o que começa com 223 (224 já é classe D).
http://gravatai.ulbra.tche.br/~elgio/calcmasc.php
Mas coloquei um redir no endereço publicado para não haver problemas.