Eu entendo a premissa básica por trás de máscaras de sub-rede, como 255.255.255.0
. Mas todos os exemplos de sub-rede que eu vi foram (da esquerda para a direita) 1s contíguos (bits HI). Por exemplo, 255.255.0.0
( /16
) se traduz nos seguintes octetos:
11111111 . 11111111 . 00000000 . 00000000
Eu acredito que esses bits devem ser contíguos, porque todo o ponto de sub-redes é a identificação de host derive e varia de IDs de dispositivos disponíveis. Mas me faz pensar: você pode ter uma máscara de sub-rede de, digamos 255.17.255.0
, ou:
11111111 . 00010001 . 11111111 . 00000000
- Isso aconteceria alguma vez? Ou é impossível existir sub-redes sem 1s contíguos? Se sim, por quê?
- Caso contrário, se é possível fazer isso, por que você faria (alguns exemplos concretos)?
networking
ip
subnet
DirtyMikeAndTheBoys
fonte
fonte
Respostas:
A seção 3.1 no RFC mostra as máscaras permitidas no roteamento entre domínios sem classe. Os bits devem ser contíguos para que o roteamento funcione corretamente.
Além disso, ao pensar logicamente, não faria sentido ter máscaras de rede aleatórias estranhas.
fonte
Sim, a maneira mais fácil de pensar é que as máscaras de sub-rede são sempre 1s no início. Se um indicador de tamanho de sub-rede não tiver 1s no início da representação binária, eu diria que o indicador de tamanho de sub-rede não é uma "máscara de sub-rede" adequada, usando padrões modernos.
A RFC 1219 afirma que a RFC 950 anterior permite bits não contíguos. De fato, a RFC 950 página 15 (seção 3) tem claramente um exemplo que “ilustra bits de sub-rede não contíguos". No entanto, não há como converter essas sub-redes em notação CIDR. A notação no estilo CIDR é o que o IPv6 usou (em menos desde a RFC 1884 página 7 , primeira frase da seção 2.4), portanto, bits não contíguos nunca foram amplamente suportados por redes IPv6 O método da RFC 1219 especifica que “bits de sub-rede (máscara = 1) são atribuídos a partir do bit mais significativo para o mínimo ". (A seção 3.1 da RFC 4632 , mencionada pela resposta de Sami, aponta para um padrão oficial que discute a notação CIDR.)
A página 2 da RFC 1878 mostra a notação "máscara de sub-rede" padrão para todas as sub-redes IPv4, exceto a
/0
.No entanto, vou elaborar um pouco a resposta de Sami, analisando o "porquê" (com um exemplo concreto, como a pergunta pedia) ...
Alguns equipamentos Cisco de nível profissional suportam algo chamado "máscara curinga", que inverte os bits. Portanto, uma sub-rede normal pode ser representada por algo chamado
00000000.00000000.00000000.11111111
.Com as máscaras curinga da Cisco, não havia uma regra de que todos os zeros tivessem que ir primeiro. Então você poderia usar
00000000.00000000.00000000.11111110
.Isso acabaria criando um grupo que continha todos os endereços IP com número par.
Isso era realmente importante de se saber, porque o treinamento da Cisco o cobria e, portanto, o processo de exame das certificações profissionais da Cisco poderia perguntar sobre isso.
No entanto, acho que foi principalmente inútil. Em vez de dividir uma rede pela metade usando endereços pares ou ímpares, você pode dividir uma rede pela metade usando endereços com números baixos e endereços com números altos, criando sub-redes normais com a metade do tamanho.
Máscaras curinga com bits não contíguos não eram muito úteis e poderiam ser mais difíceis de trabalhar. O ponto do bit de máscara de sub-rede definido como 1 é dizer que o bit ajuda a identificar em qual sub-rede um dispositivo está. Não há motivo convincente para que esses bits sejam espalhados pelo endereço, em vez de apenas agrupá-los no início do endereço. . O resultado foi que o suporte a esses tipos de máscaras era uma complexidade adicional, sem muitos benefícios substanciais.
Eu acho que a Cisco finalmente concordou que não há sentido em máscaras de sub-rede não tradicionais, porque elas acabaram com o suporte para "máscaras curinga". Os firewalls Pix mais antigos suportam "máscaras curinga", mas as unidades ASA mais recentes usam "máscaras de sub-rede" padrão .
Eu nem tentaria criar uma rede com "bits de sub-rede" não contíguos na máscara, porque muitos softwares seguiriam as tendências / padrões mais recentes e rejeitariam esse design de rede. Mesmo se eu estivesse usando um software mais antigo, provavelmente desejaria que minha rede pudesse ser facilmente modificada para poder usar um software mais novo sem precisar redesenhar a rede. Portanto, “bits de sub-rede” contíguos são o único caminho a percorrer.
Se você fizer a pergunta em um teste, eu ficaria confiante em dizer que todos os 1s precisam estar no início do endereço. É isso que qualquer testador sensato gostaria que a maioria dos alunos aprendesse hoje em dia.
fonte
A RFC 950 diz no capítulo 2.2:
portanto, a proposta era sobre uma operação de bit simples que não se importa com bits contíguos.
Em 1985, a CPU e a memória eram muito mais limitadas, portanto, qualquer operação mais complexa simplesmente não cabia no tempo.
Isso se torna ainda mais explícito no capítulo 3:
No entanto, esses RFCs parecem estar desatualizados. No Windows 7 SP1, por exemplo, não é possível definir uma máscara de sub-rede:
Mesmo no Windows XP SP2, isso não era mais possível:
O clone do Windows 98 ReactOS, no entanto, permite definir a máscara de rede "estranha":
fonte
Concordo com a resposta de @Sami Kuhmonen:
No entanto, mesmo que não seja desejado ou permitido, ainda é possível definir uma máscara de sub-rede de 1s não consecutivos. O motivo por trás disso:
O ID da rede e o ID do host são calculados a partir do endereço IP e da máscara de sub-rede usando as operações binárias AND e XOR. Tudo o resto é irrelevante.
Eu testei isso anos atrás no Win 2000, ele funciona. Ambos os computadores tinham uma máscara 255.160.0.0. Eles estavam em uma LAN sem roteador, por isso não posso falar sobre o comportamento do roteador (normalmente você pode definir a máscara do roteador apenas na interface da web, que a rejeitará).
Você também não pode inserir uma máscara de sub-rede 'inválida' no campo correspondente das configurações de rede; a GUI se recusa a aceitá-lo. Mas você pode trapacear, alterando-o diretamente no registro. Depois, reinicie ou desative + ative a NIC para que as alterações sejam ativadas.
O objetivo de tudo isso: hum, provavelmente nenhum.
fonte
255.160.0.0
redes não adjacentes ?