Je comprends la prémisse de base derrière les masques de sous-réseau, tels que 255.255.255.0
. Mais tous les exemples de sous-réseau que j'ai vus étaient (de gauche à droite) 1s contigus (bits HI). Par exemple, 255.255.0.0
( /16
) se traduit par les octets suivants:
11111111 . 11111111 . 00000000 . 00000000
Je crois que ces bits doivent être contigus, car le but du sous-réseau est de dériver l'ID d'hôte et les plages d'ID de périphérique disponibles. Mais cela me fait me demander, pourriez-vous jamais avoir un masque de sous-réseau de, disons 255.17.255.0
, ou:
11111111 . 00010001 . 11111111 . 00000000
- Cela arriverait-il jamais? Ou est-il impossible pour les sous-réseaux d'exister sans 1 contigus? Si oui, pourquoi?
- Sinon, s'il est possible de le faire, pourquoi le feriez-vous (quelques exemples concrets)?
networking
ip
subnet
DirtyMikeAndTheBoys
la source
la source
Réponses:
La section 3.1 de la RFC montre les masques autorisés dans le routage inter-domaine sans classe. Les bits doivent être contigus pour que le routage fonctionne correctement.
De plus, en pensant logiquement, cela n'aurait pas vraiment de sens d'avoir d'étranges masques de réseau aléatoires.
la source
Oui, la manière la plus simple d'y penser est que les masques de sous-réseau sont toujours 1s au début. Si un indicateur de taille de sous-réseau n'a pas de 1 au début de la représentation binaire, alors je dirais que l'indicateur de taille de sous-réseau n'est pas un «masque de sous-réseau» approprié, en utilisant les normes modernes.
La RFC 1219 indique que la précédente RFC 950 autorise les bits non contigus. En fait, RFC 950 page 15 (section 3) a clairement un exemple qui "illustre des bits de sous-réseau non contigus". Cependant, il n'y a aucun moyen de convertir ces sous-réseaux en notation CIDR. La notation de style CIDR est ce qu'IPv6 a utilisé (à moins depuis RFC 1884 page 7 , première phrase de l' article 2.4), de sorte que les bits non contigus ont jamais été largement pris en charge pour les réseaux IPv6. RFC 1219 méthode de spécifie que « sous - réseau les bits (masque = 1) sont affectées des plus de travail de bit de poids faible vers le moins ". (La section 3.1 de la RFC 4632 , mentionnée par la réponse de Sami, pointe vers une norme officielle traitant de la notation CIDR.)
La page 2 de la RFC 1878 montre la notation «masque de sous-réseau» standard pour tous les sous-réseaux IPv4 à l'exception de
/0
.Cependant, je vais développer un peu la réponse de Sami, en examinant le «pourquoi» (avec un exemple concret, comme la question l'a demandé) ...
Certains équipements Cisco de qualité professionnelle prennent en charge ce que l'on appelle un «masque générique», qui inverse les bits. Un sous-réseau normal pourrait donc être représenté par quelque chose appelé
00000000.00000000.00000000.11111111
.Avec les masques génériques de Cisco, il n'y avait pas de règle selon laquelle tous les zéros devaient passer en premier. Vous pouvez donc utiliser
00000000.00000000.00000000.11111110
.Cela finirait par créer un groupe contenant toutes les adresses IP paires.
Il était en fait important de le savoir, car la formation de Cisco le couvrait, et donc le processus d'examen des certifications professionnelles de Cisco pourrait poser une question à ce sujet.
Cependant, je pense que c'était surtout inutile. Au lieu de diviser un réseau en deux en utilisant des adresses paires ou des adresses impaires, vous pouvez simplement diviser un réseau en deux en utilisant des adresses peu nombreuses et des adresses élevées, en créant des sous-réseaux normaux moitié moins gros.
Les masques génériques avec des bits non contigus n'étaient pas terriblement utiles et pouvaient être plus difficiles à travailler. Le point du bit de masque de sous-réseau défini sur 1 est de dire que ce bit aide à identifier le sous-réseau dans lequel se trouve un périphérique. . Le résultat était que le support de ces types de masques était une complexité supplémentaire sans beaucoup d'avantages substantiels.
Je suppose que Cisco a finalement convenu qu'il n'y avait aucun intérêt à de tels masques de sous-réseau non traditionnels, car ils ont finalement abandonné la prise en charge des «masques génériques». Les anciens pare-feu Pix prennent en charge les «masques génériques», mais les nouvelles unités ASA utilisent des «masques de sous-réseau» à la place .
Je n'essaierais même pas de créer un réseau avec des «bits de sous-réseau» non contigus dans le masque, car beaucoup de logiciels suivraient les nouvelles tendances / normes et rejetteraient une telle conception de réseau. Même si j'utilisais des logiciels plus anciens, je souhaiterais probablement que mon réseau puisse être facilement modifié pour pouvoir utiliser des logiciels plus récents sans avoir à reconcevoir le réseau. Ainsi, les «bits de sous-réseau» contigus sont la seule solution.
Si on vous pose la question sur un test, je serais confiant de dire que tous les 1 doivent être au début de l'adresse. C'est ce que tout testeur sensé voudrait que la majorité des étudiants apprennent de nos jours.
la source
RFC 950 dit dans le chapitre 2.2:
la proposition concernait donc une opération de bits simple qui ne se soucie pas des bits contigus.
En 1985, le processeur et la mémoire étaient beaucoup plus limités, de sorte que toute opération plus complexe ne cadrait tout simplement pas dans le temps.
Cela devient encore plus explicite dans le chapitre 3:
Cependant, ces RFC semblent obsolètes. Sur Windows 7 SP1 par exemple, il n'est pas possible de définir un tel masque de sous-réseau:
Même sur Windows XP SP2, cela n'était plus possible:
Le clone Windows 98 ReactOS permet cependant de définir le masque de réseau "étrange":
la source
Je suis d'accord avec la réponse de @Sami Kuhmonen:
Cependant, même s'il n'est pas souhaité ou autorisé, il est toujours possible de définir un masque de sous-réseau de 1 non consécutifs. La raison derrière cela: l'
ID réseau et l'ID hôte sont calculés à partir de l'adresse IP et du masque de sous-réseau à l'aide des opérations binaires AND et XOR. Tout le reste n'est pas pertinent.
J'ai testé il y a des années sur Win 2000, cela fonctionne. Les deux ordinateurs avaient un masque 255.160.0.0. Ils étaient dans un LAN sans routeur, donc je ne peux pas parler du comportement du routeur (normalement, vous ne pouvez définir le masque du routeur que dans son interface Web, ce qui le rejettera).
Vous ne pouvez pas non plus saisir un tel masque de sous-réseau «non valide» dans le champ correspondant des paramètres réseau; l'interface graphique refuse de le prendre. Mais vous pouvez tricher en le modifiant directement dans le registre. Redémarrez ensuite ou désactivez + activez la carte réseau pour que les modifications deviennent actives.
Le but de tout cela: euh, probablement aucun.
la source
255.160.0.0
réseaux non adjacents ?