Comment calculer les numéros de préfixe, de réseau, de sous-réseau et d’hôte?

97

Exemple:

IP: 128.42.5.4

En binaire: 10000000 00101010 00000101 00000100

Sous-réseau: 255.255.248.0

Comment pouvez-vous déterminer le préfixe, le réseau, le sous-réseau et les numéros d’hôte?

utilisateur5032
la source

Réponses:

165

Calcul de la longueur du masque de réseau (également appelé préfixe):

Convertissez la représentation décimale en pointillé du masque de réseau en binaire. Ensuite, comptez le nombre de bits 1 contigus, en commençant par le bit le plus significatif du premier octet (c'est-à-dire le côté gauche du nombre binaire).

255.255.248.0   in binary: 11111111 11111111 11111000 00000000
                           -----------------------------------
                           I counted twenty-one 1s             -------> /21

Le préfixe de 128.42.5.4 avec un masque de réseau 255.255.248.0 est / 21.

Calcul de l'adresse réseau:

L'adresse réseau est le ET logique des bits respectifs dans la représentation binaire de l'adresse IP et du masque de réseau. Alignez les bits des deux adresses et effectuez un ET logique sur chaque paire de bits respectifs. Convertissez ensuite les octets individuels du résultat en décimal.

Table logique ET vérité:

ET logique

128.42.5.4      in binary: 10000000 00101010 00000101 00000100
255.255.248.0   in binary: 11111111 11111111 11111000 00000000
                           ----------------------------------- [Logical AND]
                           10000000 00101010 00000000 00000000 ------> 128.42.0.0

Comme vous pouvez le constater, l’adresse réseau de 128.42.5.4/21 est 128.42.0.0.

Calcul de l'adresse de diffusion:

L'adresse de diffusion convertit tous les bits de l'hôte en 1s ...

Rappelez-vous que notre adresse IP en décimal est:

128.42.5.4      in binary: 10000000 00101010 00000101 00000100

Le masque de réseau est:

255.255.248.0   in binary: 11111111 11111111 11111000 00000000

Cela signifie que nos bits d'hôte sont les 11 derniers bits de l'adresse IP, car nous trouvons le masque de l'hôte en inversant le masque de réseau:

Host bit mask            : 00000000 00000000 00000hhh hhhhhhhh

Pour calculer l'adresse de diffusion, nous forçons tous les bits de l'hôte à être 1:

128.42.5.4      in binary: 10000000 00101010 00000101 00000100
Host bit mask            : 00000000 00000000 00000hhh hhhhhhhh
                           ----------------------------------- [Force host bits]
                           10000000 00101010 00000111 11111111 ----> 128.42.7.255

Calcul des sous-réseaux:

Vous n'avez pas fourni suffisamment d'informations pour calculer les sous-réseaux de ce réseau. En règle générale, vous construisez des sous-réseaux en réaffectant certains des bits de l'hôte en tant que bits de réseau pour chaque sous-réseau. Plusieurs fois, il n’existe pas de bonne façon de sous-réseau d’un bloc ... En fonction de vos contraintes, il peut exister plusieurs moyens valables de sous-réseau d’un bloc d’adresses.

Supposons que nous séparerons 128.42.0.0/21 en 4 sous-réseaux devant contenir chacun au moins 100 hôtes ...

sous-réseau

Dans cet exemple, nous savons qu’il vous faut au moins un préfixe / 25 pour contenir 100 hôtes; J'ai choisi un / 24 car il tombe sur une limite d'octet. Notez que l’adresse réseau de chaque sous-réseau emprunte des bits d’hôte au bloc réseau parent.

Recherche de la longueur du masque de sous-réseau ou du masque de réseau requis:

Comment ai-je su qu'il me faut au moins 25 longueurs de masque pour 100 hôtes? Calculez le préfixe en sauvegardant le nombre de bits d’hôte requis pour contenir 100 hôtes. Il faut 7 bits d’hôte pour contenir 100 hôtes. Officiellement, cela est calculé avec:

Bits de l'hôte = journal 2 (nombre d'hôtes) = journal 2 (100) = 6,643

Comme les adresses IPv4 ont une largeur de 32 bits et que nous utilisons les bits de l'hôte (c'est-à-dire les bits les moins significatifs), il suffit de soustraire 7 à 32 pour calculer le préfixe de sous-réseau minimal pour chaque sous-réseau ... 32 - 7 = 25.

Le moyen paresseux de diviser 128.42.0.0/21 en quatre sous-réseaux égaux:

Comme nous ne voulons que quatre sous-réseaux de l'ensemble du bloc 128.42.0.0/21, nous pourrions utiliser / 23 sous-réseaux. J'ai choisi / 23 car nous avons besoin de 4 sous-réseaux ... c'est-à-dire de deux bits supplémentaires ajoutés au masque de réseau.

C'est une réponse tout aussi valable à la contrainte, en utilisant / 23 sous-réseaux de 128.42.0.0/21 ...

sous-réseau, 2ème option

Calcul du numéro d'hôte:

C’est ce que nous avons déjà fait ci-dessus ... il suffit de réutiliser le masque d’hôte du travail que nous avons effectué lorsque nous avons calculé l’adresse de diffusion 128.42.5.4/21 ... Cette fois, je vais utiliser des 1 à la place de h, car nous avons besoin de effectuer à nouveau un ET logique sur l'adresse réseau.

128.42.5.4      in binary: 10000000 00101010 00000101 00000100
Host bit mask            : 00000000 00000000 00000111 11111111
                           ----------------------------------- [Logical AND]
                           00000000 00000000 00000101 00000100 -----> 0.0.5.4

Calcul du nombre maximum possible d'hôtes dans un sous-réseau:

Pour trouver le nombre maximum d'hôtes, regardez le nombre de bits binaires dans le nombre d'hôtes ci-dessus. Le moyen le plus simple consiste à soustraire la longueur du masque de réseau de 32 (nombre de bits dans une adresse IPv4). Cela vous donne le nombre de bits de l'hôte dans l'adresse. À ce moment...

Nombre maximum d'hôtes = 2 ** (32 - netmask_length) - 2

La raison pour laquelle nous soustrayons 2 ci-dessus est que les numéros d'hôte tous les un et tous les zéros sont réservés. Le numéro d'hôte composé uniquement de zéros est le numéro de réseau. le numéro d'hôte tous-un est l'adresse de diffusion.

En utilisant l'exemple de sous-réseau de 128.42.0.0/21 ci-dessus, le nombre d'hôtes est ...

Nombre maximum d'hôtes = 2 ** (32 - 21) - 2 = 2048 - 2 = 2046

Recherche du masque de réseau maximum (masque d’hôte minimum) contenant deux adresses IP:

Supposons que quelqu'un nous donne deux adresses IP et attend de nous que nous trouvions le masque de réseau le plus long qui les contient. par exemple, si nous avions:

  • 128.42.5.17
  • 128.42.5.67

Le plus simple est de convertir les deux en binaire et de rechercher la chaîne de bits réseau la plus longue du côté gauche de l'adresse.

128.42.5.17     in binary: 10000000 00101010 00000101 00010001
128.42.5.67     in binary: 10000000 00101010 00000101 01000011
                           ^                           ^     ^
                           |                           |     |
                           +--------- Network ---------+Host-+
                             (All bits are the same)    Bits

Dans ce cas, le masque de réseau maximum (masque d’hôte minimum) serait de / 25

NOTE: Si vous essayez de commencer par le côté droit, ne vous laissez pas avoir, juste parce que vous trouvez une colonne de bits correspondante; il pourrait y avoir des bits non appariés au-delà de ces bits correspondants. Honnêtement, la chose la plus sûre à faire est de commencer par le côté gauche.

Mike Pennington
la source
15

La réponse ci-dessus frappe parfaitement le clou. Cependant, lorsque j'ai débuté, il m'a fallu quelques exemples différents provenant de plusieurs sources pour que cela soit réellement réussi. Par conséquent, si vous êtes intéressé par d'autres exemples, j'ai écrit quelques articles de blog sur le sujet - http://www.oznetnerd.com/category/subnetting/

Admins, si ce message est considéré comme du spam, n'hésitez pas à le supprimer.

Edit: Selon la suggestion de YLearn, je vais essayer de saisir les parties pertinentes de la première partie de ma série, sans coller l’entrée entière ici.

Prenons 195.70.16.159/30 comme exemple.

Comme il s'agit d'un / 30, nous savons que la partie hôte sera dans le quatrième octet. Convertissons cela en binaire:

128 64 32 16  8  4 2 1
SN  SN SN SN SN SN H H
 1   0  0  1  1  1 1 1

Maintenant, pour trouver l’adresse réseau, nous n’ajoutons que les bits SN qui ont un 1 en dessous. (128 + 16 + 8 + 4 = 156).

Lorsque vous ajoutez ce numéro 156 aux trois premiers octets de l'adresse, l'adresse réseau 195.70.16.156 nous reste.

Maintenant que nous savons que la première adresse utilisable est toujours l’adresse réseau plus une, il suffit d’effectuer le calcul suivant: (156 + 1 = 157).

Cela nous donne une première adresse utilisable de 195.70.16.157.

Maintenant passons un instant à la dernière adresse utilisable et trouvons l’adresse de diffusion. Pour savoir ce que c'est, il suffit d'ajouter tous les H bits ensemble (qu'ils soient 1 ou 0), puis d'ajouter ce numéro à l'adresse de réseau. (2 + 1 + 156 = 159).

Cela nous donne une adresse de diffusion de 195.70.16.159.

Et enfin, travaillons sur la dernière adresse utilisable. Ce processus est similaire à la recherche de la première adresse utilisable. Cependant, au lieu d’en ajouter une à l’adresse réseau, nous en soustrayons une de l’adresse de diffusion. (159 - 1 = 158).

Cela nous donne une dernière adresse utilisable de 195.70.16.158.

Et là nous l'avons! Notre temaplte est complet. Pour référence facile, la voici à nouveau:

  • Adresse réseau: 195.70.16.156
  • Première adresse utilisable: 195.70.16.157
  • Dernière adresse utilisable: 195.70.16.158
  • Adresse de diffusion: 195.70.16.159

En tant que raccourci, vous pouvez également utiliser cette formule. Cela fonctionne sur des sous-réseaux de n'importe quelle taille:

  • Première adresse utilisable = adresse réseau + 1
  • Adresse de diffusion = Adresse réseau suivante - 1
  • Dernière adresse utilisable = Adresse de diffusion - 1
OzNetNerd
la source
4
Petite mise en garde (presque insignifiante): la formule de la dernière adresse utilisable au bas fonctionne pour tous les sous-réseaux sauf un / 31 ... voir la RFC 3021 . C'est une exception petite mais pertinente si quelqu'un essayait d'utiliser votre algorithme dans le code.
Mike Pennington
11

Je ne veux rien enlever à l'excellente réponse de Mike Pennington , que j'ai promue sans relâche, mais je continue à voir des questions qui ne sont pas directement abordées dans sa réponse, et j'ai créé quelque chose qui était à l'origine basé sur la réponse de Mike, mais j'ai plus d'informations pour répondre aux questions qui se sont posées au fil du temps. Malheureusement, il est trop volumineux et j'ai dû le diviser en deux réponses.


Partie 1 de 2


IPv4 Math

Étant donné une adresse IPv4 et le masque de réseau IPv4 (le masque de réseau peut également être dérivé d'une longueur de masque de réseau ou d'un masque d'hôte), vous pouvez déterminer un grand nombre d'informations sur un réseau IPv4: adresse réseau, adresse de diffusion réseau, adresses hôte totales, total utilisable Adresses d’hôte, première adresse d’hôte utilisable et dernière adresse d’hôte utilisable.

Je ne saurais trop insister sur le fait que vous devez faire le calcul IPv4 en binaire. Je pense que chaque ingénieur réseau (ou ingénieur réseau potentiel) a essayé de trouver un moyen de faire tout cela en décimal, comme je suis sûr que vous le ferez *. Le problème est que 10 (décimal) n’est pas une puissance de 2 (binaire), de sorte que décimal et binaire ne se convertissent pas naturellement entre eux de la même manière que l’hexadécimal (base 16) se convertit naturellement en binaire, car 16 est une puissance de 2. .

Il semble que l’utilisation de la notation décimale à point pour IPv4 ait été une erreur prématurée qui ne peut pas être corrigée à présent, mais IPv6 a adopté dès le début l’utilisation de l’hexadécimal, et il est facile de convertir entre hexadécimal et binaire.

Si vous ne possédez pas de calculatrice IP (probablement pas autorisé dans les examens de classe d'éducation réseau ou les tests de certification), il est utile de créer un graphique des valeurs des bits dans un octet. Comme il s'agit de données binaires, chaque valeur de bit correspond à 2 fois la même valeur de chiffre dans le prochain chiffre moins significatif. Chaque chiffre correspond à la base numérique multipliée par le même chiffre dans le prochain chiffre le moins significatif. Ceci est également vrai pour toute autre base de nombres, y compris le nombre décimal (base 10), où chaque valeur de chiffre correspond à 10 fois la valeur du même chiffre dans la prochaine position de nombre moins significative. Pour les chiffres binaires (bits):

---------------------------------------------------------
| Bit # |   7 |   6 |   5 |   4 |   3 |   2 |   1 |   0 |
---------------------------------------------------------
| Value | 128 |  64 |  32 |  16 |   8 |   4 |   2 |   1 |
---------------------------------------------------------

Lorsque décimale concerne les puissances de 10, binaire, les puissances de 2. Notez que pour chaque nombre de bits dans le tableau ci-dessus, la valeur correspondante est égale à 2 de la puissance du nombre de bits.

For our example IPv4 dotted-decimal address of 198.51.100.223:
1st octet: 198 = 128 + 64 +  0 +  0 + 0 + 4 + 2 + 0 = 11000110
2nd octet:  51 =   0 +  0 + 32 + 16 + 0 + 0 + 2 + 1 = 00110011
3rd octet: 100 =   0 + 64 + 32 +  0 + 0 + 4 + 0 + 0 = 01100100
4th octet: 223 = 128 + 64 +  0 + 16 + 8 + 4 + 2 + 1 = 11011111

For our example IPv4 binary address of 11000110001100110110010011011111:
1st octet: 11000110 = 128 + 64 +  0 +  0 + 0 + 4 + 2 + 0 = 198
2nd octet: 00110011 =   0 +  0 + 32 + 16 + 0 + 0 + 2 + 1 =  51
3rd octet: 01100100 =   0 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 100
4th octet: 11011111 = 128 + 64 +  0 + 16 + 8 + 4 + 2 + 1 = 223

Vous devrez également vous souvenir de vos tables de vérité de l’école (en mathématiques binaires, 0 est faux et 1 est vrai):

-----------------------------------------
| False AND False = False | 0 AND 0 = 0 |
-----------------------------------------
| False AND True  = False | 0 AND 1 = 0 |
-----------------------------------------
| True  AND False = False | 1 AND 0 = 0 |
-----------------------------------------
| True  AND True  = True  | 1 AND 1 = 1 |
-----------------------------------------

-----------------------------------------
| False OR False = False  | 0 OR 0 = 0  |
-----------------------------------------
| False OR True  = True   | 0 OR 1 = 1  |
-----------------------------------------
| True  OR False = True   | 1 OR 0 = 1  |
-----------------------------------------
| True  OR True  = True   | 1 OR 1 = 1  |
-----------------------------------------

* Si vous effectuez des calculs IPv4 pendant de nombreuses années, vous pouvez arriver au point où vous pouvez effectuer des conversions binaires / décimales dans votre tête. Vous pouvez ensuite avoir l'impression de pouvoir effectuer des calculs IPv4 en valeurs décimales. Même si je peux le faire dans ma tête, je revérifierai toujours avec une calculatrice IP, ou convertirai en binaire, effectuerai le calcul et reconvertirai en décimal avant de passer à un changement dans un réseau de production.


Adresse IPv4

La notation décimale pointée IPv4, par exemple 198.51.100.223, est simplement destinée à faciliter la lecture d’une adresse IPv4 par les humains. Les quatre sections distinctes, appelées octets, n’ont aucune signification pour IPv4. Ne commettez pas l’erreur commune de penser que les octets ont une signification particulière. Une adresse IPv4 est en réalité un nombre binaire sur 32 bits. C'est ainsi que les périphériques réseau voient et utilisent une adresse IPv4.

Notre exemple d'adresse IPv4 198.51.100.223est en fait 11000110001100110110010011011111destiné à un périphérique du réseau. Vous pouvez donc voir que la représentation décimale en pointillé facilite réellement la tâche des humains. Chaque octet correspond à huit bits de l’adresse à 32 bits (d’où le terme couramment utilisé, «octet»), ce qui donne quatre octets ( 32 address bits / 8 bits per octet = 4 octets). Notre exemple d'adresse binaire 32 bits est séparé en quatre octets, puis chaque octet binaire est converti en un nombre décimal *:

Binary address: 11000110001100110110010011011111
                ---------------------------------------------
Binary octets:  | 11000110 | 00110011 | 01100100 | 11011111 |
Decimal octets: |      198 |       51 |      100 |      223 |
                ---------------------------------------------
Dotted-decimal: 198.51.100.223

Comme chaque octet a une longueur de huit bits, chaque octet aura une valeur comprise entre 0et 255(toute valeur supérieure à 255est invalide). La raison en est que 2^8 = 256: 2(la base du nombre binaire) à la puissance de 8(huit bits par octet) est égal à 256, le nombre de valeurs différentes pouvant être exprimées par un octet de huit bits. Rappelez-vous que la première valeur est 0, de sorte que la 256valeur th sera inférieure de 1 au nombre total de valeurs pouvant être exprimées ( 256 – 1 = 255).

Pour effectuer correctement le calcul IPv4, vous devez le faire en binaire, sinon vous ferez des erreurs qui vous causeront des problèmes et de la frustration. Cela signifie que vous devez convertir la notation décimale séparée par des points en binaire avant d'essayer de la manipuler:

Dotted-decimal: 198.51.100.223
                ---------------------------------------------
Decimal octets: |      198 |       51 |      100 |      223 |
Binary octets:  | 11000110 | 00110011 | 01100100 | 11011111 |
                ---------------------------------------------
Binary address: 11000110001100110110010011011111

* Les zéros non significatifs d'une adresse IPv4 en points décimaux peuvent être interprétés par certaines applications et langages de programmation comme des valeurs octales (base 8) plutôt que décimales (base 10), ce qui entraîne des erreurs et les zéros non significatifs doivent être évités pour la représentation IPv4 en points décimaux, mais les zéros au début sont nécessaires pour les octets d'adresse IPv4 binaires car ils représentent des positions de bits dans l'adresse complète et le fait de laisser une position de bits réduira l'adresse et modifiera la valeur binaire.


Masque de réseau IPv4

Un masque de réseau IPv4 est utilisé pour diviser une adresse IPv4 en deux parties: la partie réseau et la partie hôte. La division peut être à n’importe quel nombre de bits, elle peut donc être comprise dans un octet, et non dans une limite d’octets, comme beaucoup de personnes le supposent à tort. Un masque de réseau IPv4 a la même taille qu’une adresse IPv4 (32 bits) et s’exprime en notation décimale pointée de la même manière que l’exprimerait une adresse IPv4 en notation décimale pointée (quatre octets de huit bits, séparés par un période). Par exemple, 255.255.248.0.

Un masque de réseau IPv4 se compose d’un nombre de 1bits consécutifs (représentant la partie réseau d’une adresse), suivi d’un nombre de 0bits (représentant la partie hôte de l’adresse). Le nombre total de 1bits et le nombre total de 0bits s'ajoutent au 32nombre de bits d'une adresse IPv4 ou d'un masque de réseau. Pour notre exemple de masque de réseau:

Dotted-decimal: 255.255.248.0
                ------------------------------------------------
Decimal octets: |      255 |      255 |         248 |        0 |
Binary octets:  | 11111111 | 11111111 | 11111 | 000 | 00000000 |
                ------------------------------------------------
                | 21 Network bits             | 11 Host bits   |
                ------------------------------------------------

Comme vous pouvez le constater, la division entre les parties réseau et hôte de l'adresse IPv4 à l'aide de ce masque particulier se situe dans un octet et non dans une limite d'octet.

Un masque de réseau IPv4 est souvent représenté par le nombre de 1bits consécutifs qu'il contient. On appelle cela la longueur de masque de réseau ou la longueur de préfixe. Elle est représentée par un /nombre de 1bits consécutifs dans le masque de réseau. Pour notre exemple, compter le nombre de 1bits consécutifs 21, ce qui peut être représenté par /21.

Pour une longueur de masque, vous pouvez calculer la représentation décimale en pointillé du masque. Notez simplement le nombre de 1bits pour la longueur du masque et ajoutez suffisamment de 0bits à la fin pour obtenir le nombre total de 32bits. Convertissez le nombre binaire obtenu en représentation décimale à points:

Mask length:    /21
                ------------------------------------------------
                | 21 Network bits             | 11 Host bits   |
                ------------------------------------------------
Binary octets:  | 11111111 | 11111111 | 11111 | 000 | 00000000 |
Decimal octets: |      255 |      255 |         248 |        0 |
                ------------------------------------------------
Dotted-decimal: 255.255.248.0

L'exemple peut être représenté de manière traditionnelle 198.51.100.223avec un masque de réseau 255.255.248.0ou comme le CIDR (routage interdomaine) plus moderne 198.51.100.223/21.


Adresse réseau IPv4

Une adresse réseau IPv4 est une adresse IPv4 avec tous les bits de l'hôte définis sur 0. L'adresse réseau IPv4 peut être calculée par un bit ANDdes bits respectifs dans la représentation binaire de l'adresse IPv4 et du masque de réseau IPv4. Alignez les bits des deux adresses et effectuez une opération binaire ANDsur chaque paire de bits respectifs, puis convertissez les octets individuels du résultat en décimal.

Pour notre exemple d'adresse IPv4 198.51.100.223et de masque de réseau 255.255.248.0:

Decimal address:        198.51.100.223/21
Binary address octets:  11000110 00110011 01100100 11011111
Binary mask octets:     11111111 11111111 11111000 00000000 AND
                        -----------------------------------
Binary network octets:  11000110 00110011 01100000 00000000
Decimal network octets:      198       51       96        0
Dotted-decimal network: 198.51.96.0

Comme vous pouvez le constater, l’adresse réseau de 198.51.100.223/21is est 198.51.96.0. Notez que vous ne pouvez pas compter sur les octets pour vous indiquer quelle partie de l'adresse est le réseau et quelle partie de l'adresse est destinée aux hôtes.

Vous pouvez utiliser cette méthode pour déterminer si deux adresses se trouvent sur le même réseau ou sur des réseaux différents *. Si, par exemple, vous voulez voir si votre 198.51.100.223/21adresse est sur le même réseau IPv4 avec un hôte auquel l' 198.51.102.57adresse a été attribuée , déterminez votre adresse réseau IPv4 (comme ci-dessus). Ensuite, déterminez l’adresse réseau IPv4 de l’hôte en question à l’aide de votre masque de réseau IPv4 (les hôtes d’un même réseau utilisent le même masque de réseau et vous n’avez peut-être pas le masque, mais uniquement l’adresse de l’hôte de destination):

Decimal address:        198.51.102.57/21
Binary address octets:  11000110 00110011 01100110 00111001
Binary mask octets:     11111111 11111111 11111000 00000000 AND
                        -----------------------------------
Binary network octets:  11000110 00110011 01100000 00000000
Decimal network octets:      198       51       96        0
Dotted-decimal network: 198.51.96.0

Comparez l'adresse réseau IPv4 obtenue à l'adresse réseau IPv4 d'origine et notez que les adresses réseau sont égales. Les adresses des hôtes sont donc sur le même réseau.

Voyons maintenant si vous êtes sur le même réseau que l' 74.125.69.100adresse Google:

Decimal address:        74.125.69.100/21
Binary address octets:  01001010 01111101 01000101 01100100
Binary mask octets:     11111111 11111111 11111000 00000000 AND
                        -----------------------------------
Binary network octets:  01001010 01111101 01000000 00000000
Decimal network octets:       74      125       64        0
Dotted-decimal network: 74.125.64.0

Comparez l'adresse réseau IPv4 obtenue à l'adresse réseau IPv4 d'origine et notez que les adresses réseau sont différentes. Les adresses des hôtes se trouvent donc sur des réseaux différents.


* Il s'agit de la méthode utilisée par un hôte source pour déterminer s'il s'agit d'un hôte de destination situé sur le même réseau que l'hôte source.


Masque d'hôte IPv4

Une valeur utile, souvent négligée, utile dans l'adressage IPv4 est le masque d'hôte IPv4. Un masque d'hôte IPv4 est simplement l'inverse du masque de réseau IPv4. Vous pouvez créer un masque d'hôte binaire à partir d'un masque de réseau binaire ou un masque de réseau binaire à partir d'un masque d'hôte binaire, simplement en inversant les 1s et 0s du masque de départ:

Dotted-decimal network mask: 255.255.248.0
Decimal network mask octets:      255      255      248        0
Binary network mask octets:  11111111 11111111 11111000 00000000 invert
                             -----------------------------------
Binary host mask octets:     00000000 00000000 00000111 11111111
Decimal host mask octets:           0        0        7      255
Dotted-decimal host mask:    0.0.7.255

Il est possible de créer mathématiquement un masque hôte à partir du masque de réseau ou le masque de réseau à partir du masque hôte en soustrayant le masque de départ du masque le plus long ( /32ou du masque tout-un).

Cela peut être fait en binaire:

Binary all-ones mask octets: 11111111 11111111 11111111 11111111
Binary network mask octets:  11111111 11111111 11111000 00000000 -
                             -----------------------------------
Binary host mask octets:     00000000 00000000 00000111 11111111
Decimal host mask octets:           0        0        7      255
Dotted-decimal host mask:    0.0.7.255

Cela peut aussi être fait en décimal (un octet composé d'un seul 255), mais assurez-vous de le convertir en binaire avant d'essayer de l'utiliser pour la manipulation d'adresse:

Decimal all-ones mask octets: 255 255 255 255
Decimal network mask octets:  255 255 248   0 -
                              ---------------
Decimal host mask octets:       0   0   7 255
Dotted-decimal host mask:     0.0.7.255

Adresse de diffusion réseau IPv4

Une adresse de diffusion réseau IPv4 est l'adresse réseau IPv4 avec tous les bits de l'hôte définis sur 1. Il existe plusieurs façons de calculer l'adresse de diffusion réseau IPv4.

Pour notre exemple, adresse IPv4 198.51.100.223et masque de réseau 255.255.248.0.

Vous pouvez effectuer un bitwise ORavec l'adresse IPv4 ou l'adresse réseau avec le masque d'hôte:

Decimal address octets:        198       51      100      223
Binary address octets:    11000110 00110011 01100100 11011111
Binary host mask octets:  00000000 00000000 00000111 11111111 OR
                          -----------------------------------
Binary broadcast octets:  11000110 00110011 01100111 11111111
Decimal broadcast octets:      198       51      103      255
Dotted-decimal broadcast: 198.51.103.255

Vous pouvez simplement ajouter la valeur du masque d’hôte IPv4 à la valeur de l’adresse réseau IPv4:

Binary network octets:    11000110 00110011 01100000 00000000
Binary host mask octets:  00000000 00000000 00000111 11111111 +
                          -----------------------------------
Binary broadcast octets:  11000110 00110011 01100111 11111111
Decimal broadcast octets:      198       51      103      255
Dotted-decimal broadcast: 198.51.103.255

C'est aussi quelque chose que vous pouvez faire en décimal:

Decimal network octets:   198  51  96   0
Decimal host mask octets:   0   0   7 255 +
                          ---------------
Decimal broadcast octets: 198  51 103 255
Dotted-decimal broadcast: 198.51.103.255

Total des adresses d'hôte réseau IPv4

Le nombre total d'adresses IPv4 pour un réseau correspond 2à la puissance du nombre de bits de l'hôte, ce qui correspond 32au nombre de bits du réseau. Pour notre exemple de /21réseau (masque de réseau 255.255.248.0), il existe 11des bits d’hôte ( 32 address bits – 21 network bits = 11 host bits). Cela signifie qu'il y a 2048des adresses d'hôte totales dans un /21réseau IPv4 ( 2^11 = 2048).


Nombre total d'adresses de réseau IPv4 utilisables

À l'exception des /31réseaux (masque de réseau 255.255.255.254) et /32(masque de réseau 255.255.255.255), le nombre d'adresses hôtes utilisables sur un réseau IPv4 est égal au nombre total d'adresses hôtes du réseau moins 2(car les adresses réseau et de diffusion IPv4 sont inutilisables pour les adresses hôte du réseau, doivent les soustraire du nombre d’adresses hôtes utilisables). Pour notre exemple de réseau /21( 255.255.248.0), il existe 2046des adresses hôtes utilisables ( 2^11 - 2 = 2046).


Première adresse d'hôte réseau IPv4 utilisable

À l'exception des /31réseaux (masque de réseau 255.255.255.254) et /32(masque de réseau 255.255.255.255), la première adresse d'hôte réseau IPv4 utilisable est l'adresse réseau IPv4 plus 1(l'adresse de réseau IPv4 n'est pas utilisable pour une adresse d'hôte réseau). Pour notre exemple de réseau de 198.51.96.0/21, la première adresse d’hôte réseau utilisable est 198.51.96.1( 198.51.96.0 + 1 = 198.51.96.1). Définissez simplement le bit de poids faible de l'adresse réseau binaire IPv4 sur 1:

Decimal network octets:      198       51       96        0
Binary network octets:  11000110 00110011 01100000 00000000
                        -----------------------------------
Binary address octets:  11000110 00110011 01100000 00000001
Decimal address octets:      198       51       96        1
Dotted-decimal address: 198.51.96.1

Dernière adresse d'hôte réseau IPv4 utilisable

À l'exception des /31réseaux (masque de réseau 255.255.255.254) et /32(masque de réseau 255.255.255.255), la dernière adresse d'hôte réseau IPv4 utilisable est l'adresse de diffusion réseau IPv4 moins 1(l'adresse de diffusion réseau IPv4 n'est pas utilisable pour une adresse d'hôte réseau). Pour notre exemple de réseau de 198.61.96.0/21, la dernière adresse d’hôte réseau utilisable est 198.51.103.254( 198.51.103.255 - 1 = 198.51.103.254). Définissez simplement le bit de poids faible de l'adresse de diffusion réseau binaire IPv4 sur 0:

Decimal broadcast octets:      198       51      103      255
Binary broadcast octets:  11000110 00110011 01100111 11111111
                          -----------------------------------
Binary address octets:    11000110 00110011 01100111 11111110
Decimal address octets:        198       51      103      254
Dotted-decimal address:   198.51.103.254

Assemblage du réseau IPv4

Pour notre exemple d'adresse réseau IPv4 198.51.100.223et de masque 255.255.248.0(ou 198.51.100.223/21), nous pouvons calculer beaucoup d'informations réseau:

Host address:                       198.51.100.223
Network mask:                       255.255.248.0
Network mask length:                21
Host mask:                          0.0.7.255
Host mask length:                   11
*Network address:                   198.51.96.0
*First usable network host address: 198.51.100.1
*Last usable network host address:  198.51.103.254
*Network Broadcast address:         198.51.103.255
Total network host addresses:       2048
Usable network host addresses:      2046

* Les examens en classe et les tests de certification en réseau vous demanderont de pouvoir les calculer rapidement pour un réseau IPv4, en fonction de l'adresse et du masque (ou de la longueur du masque). Vous pouvez utiliser les astuces ci-dessous pour une vérification rapide de vos réponses:

  • Adresse réseau (indice: un nombre pair)
  • Première adresse d'hôte utilisable (indice: adresse réseau plus 1, un nombre impair)
  • Dernière adresse d'hôte utilisable (indice: adresse de diffusion moins 1, un nombre pair)
  • Adresse de diffusion (indice: adresse réseau plus masque d’hôte, nombre impair)

Les conseils ci-dessus ne s'appliquent pas aux /31réseaux (masque de réseau 255.255.255.254) ou /32(masque de réseau 255.255.255.255).

Si vous avez suffisamment de temps pour votre examen et si vous rencontrez un problème faisant appel à plusieurs méthodes, vous devez utiliser plusieurs méthodes pour vérifier la réponse.


Suite dans la réponse suivante ...

Ron Maupin
la source
9

Suite de la réponse précédente ...


Partie 2 de 2


Sélection d'une adresse IPv4 Network Gateway (Router)

Une passerelle est un hôte du réseau qui sait comment transférer des paquets vers d'autres réseaux, et toute adresse d'hôte réseau utilisable peut lui être affectée. Certaines personnes attribuent simplement des adresses de passerelle à une adresse d’hôte réseau utilisable, certaines attribuent toujours la première adresse d’hôte réseau utilisable à une passerelle et certaines personnes affectent toujours la dernière adresse d’hôte réseau utilisable à une passerelle. L'adresse de réseau hôte utilisable que vous affectez à une passerelle importe peu, mais vous devez essayer d'être cohérent.


Réseaux IPv4 /31(masque de réseau 255.255.255.254)

À l'origine, les /31réseaux (masque de réseau 255.255.255.254) étaient inutilisables car il n'y a qu'un seul bit d'hôte, ce qui vous donne deux adresses d'hôte réseau au total, mais le nombre d'adresses d'hôte réseau utilisables est le nombre total d'adresses d'hôte réseau moins 2( 2 total host addresses - 2 = 0 usable host addresses).

Les liens point à point ne nécessitent que deux adresses d’hôte (une pour chaque extrémité du lien). La méthode traditionnelle d’attribution de réseaux IPv4 nécessitait l’utilisation de /30réseaux (masque de réseau 255.255.255.252) pour les liaisons point à point, mais cela gaspillait la moitié des adresses d’hôte réseau car un /30réseau avait quatre adresses d’hôte réseau au total, mais deux seulement étaient utilisables. ( 2^2 – 2 = 2)

En raison de la pénurie d’adresses IPv4, une norme a été créée pour permettre l’utilisation de /31réseaux pour des liaisons point à point. Cela a du sens car il n’est pas nécessaire de diffuser sur de tels réseaux: tous les paquets envoyés par un hôte du réseau sont destinés au seul autre hôte du réseau, à savoir, effectivement. Sur un /31réseau, l'adresse réseau est la première adresse hôte utilisable et l'adresse de diffusion est la dernière adresse hôte utilisable.

Malheureusement, tous les fournisseurs (Microsoft en particulier) ne prennent pas en charge la norme d'utilisation de /31réseaux sur des liaisons point à point, et vous verrez le plus souvent des liens point à point utilisant des /30réseaux.


Réseaux IPv4 /32(masque de réseau 255.255.255.255)

Un /32réseau (masque de réseau 255.255.255.255) est à la fois un réseau sans adresse hôte et une adresse hôte, elle-même. Il n'y a qu'une seule adresse sur le réseau, c'est l'adresse du réseau. Comme il n'y a pas d'autres hôtes sur le réseau, le trafic doit être routé vers et depuis l'adresse réseau.

Ces adresses sont souvent utilisées sur des interfaces réseau virtuelles définies à l'intérieur d'un périphérique pouvant acheminer des paquets entre ses interfaces virtuelles et physiques. Un exemple de cela est de créer une interface virtuelle dans un périphérique réseau à utiliser comme source ou destination pour le périphérique lui-même. Une interface virtuelle ne peut pas être abandonnée à cause d'un problème physique, par exemple un câble débranché et si le périphérique comporte plusieurs chemins, d'autres périphériques peuvent toujours communiquer avec le périphérique à l'aide de l'adresse de l'interface virtuelle lorsqu'une interface physique du périphérique est inutilisable pour une raison quelconque. .


Sous-réseaux IPv4

La mise en sous-réseau d’un réseau crée plusieurs réseaux plus longs à partir d’une adresse réseau et d’un masque. L'idée de base est que vous empruntez des bits de poids fort de la partie hôte du réseau d'origine. Supposons que vous souhaitiez créer 14 sous-réseaux de taille égale à partir de notre 198.51.96.0/21réseau d' origine . Puisque vous empruntez des bits de poids fort à la partie hôte du réseau d'origine, vous obtiendrez un nombre qui est une puissance de 2, mais 14n'est pas une puissance de 2, vous devez donc obtenir la puissance immédiatement supérieure de 2, qui se trouve être 16( 16 = 2^4). La puissance de 2, dans ce cas 4, correspond au nombre de bits d’hôte d’ordre élevé nécessaires à l’emprunt pour que le nombre de sous-réseaux soit créé. Vous pouvez également utiliser une formule mathématique pour déterminer le nombre de bits requis:Log2(X subnets) = Y borrowed bits, arrondi à la valeur entière suivante:

Log2(14 subnets) = 3.807354922, rounded up = 4 borrowed bits

Pour notre exemple de besoin de 14 sous-réseaux de taille égale sur le 198.51.96.0/21réseau d' origine , en commençant par 0s * pour le premier sous-réseau, ajoutez-le 1à la partie sous-réseau pour obtenir le prochain sous-réseau:

           ----------------------------------------------
Original:  | 21 network bits       | 11 host bits       |
           ----------------------------------------------
Network:   | 110001100011001101100 | 0000 |  0000000    | = 198.51.96.0/21
Subnet 1:  | 110001100011001101100 | 0000 |  0000000    | = 198.51.96.0/25
Subnet 2:  | 110001100011001101100 | 0001 |  0000000    | = 198.51.96.128/25
Subnet 3:  | 110001100011001101100 | 0010 |  0000000    | = 198.51.97.0/25
Subnet 4:  | 110001100011001101100 | 0011 |  0000000    | = 198.51.97.128/25
Subnet 5:  | 110001100011001101100 | 0100 |  0000000    | = 198.51.97.128/25
Subnet 6:  | 110001100011001101100 | 0101 |  0000000    | = 198.51.98.128/25
Subnet 7:  | 110001100011001101100 | 0110 |  0000000    | = 198.51.99.0/25
Subnet 8:  | 110001100011001101100 | 0111 |  0000000    | = 198.51.99.128/25
Subnet 9:  | 110001100011001101100 | 1000 |  0000000    | = 198.51.100.0/25
Subnet 10: | 110001100011001101100 | 1001 |  0000000    | = 198.51.100.128/25
Subnet 11: | 110001100011001101100 | 1010 |  0000000    | = 198.51.101.0/25
Subnet 12: | 110001100011001101100 | 1011 |  0000000    | = 198.51.101.128/25
Subnet 13: | 110001100011001101100 | 1100 |  0000000    | = 198.51.102.0/25
Subnet 14: | 110001100011001101100 | 1101 |  0000000    | = 198.51.102.128/25
           ----------------------------------------------
Subnetted: | 25 network bits              | 7 host bits |
           ----------------------------------------------

           ----------------------------------------------
Unused:    | 110001100011001101100 | 111  | 00000000    | = 198.51.103.0/24
           ----------------------------------------------

* Il existe un mythe persistant selon lequel les sous-réseaux tout-zéros et tout-un ne peuvent pas être utilisés pour les sous-réseaux, comme pour les adresses d'hôte, mais ce mythe a été explicitement dissipé il y a de nombreuses années par une norme. Malheureusement, ce mythe s’applique à certaines classes d’éducation de réseau et la bonne solution pour ces classes (incorrectes) serait d’utiliser les 2ème à 15ème sous-réseaux.


Il est possible de sous-réseau d'un réseau en sous-réseaux de tailles variées (chaque réseau IPv4 est un sous-réseau de l' 0.0.0.0/0adresse réseau), comme dans l'exemple ci-dessus, où le sous-réseau inutilisé est un /24sous - réseau, mais cela nécessite une planification minutieuse pour que les sous-réseaux résultants démarrent le bit correct.

Par exemple, supposons que nous ayons besoin d’ /26un /27sous - réseau et d’un sous - réseau de notre 198.51.96.0/21réseau. Il existe deux façons de procéder: commencer par le /26sous - réseau ou par le /27sous - réseau.

En commençant par le /26sous - réseau:

Original: | 110001100011001101100 | 00000000000    | /21
Subnet 1: | 110001100011001101100 | 00000 | 000000 | /26

Ajoutez 1à la partie sous-réseau pour obtenir la position de départ du prochain sous-réseau:

Subnet 2: | 110001100011001101100 | 00001 | 000000 | /26

Ensuite, étendez le deuxième sous-réseau à /27:

Subnet 2: | 110001100011001101100 | 000010 | 00000 | /27

Notez que nous sommes en train de sous-réseaux du deuxième /26sous-réseau dans un /27sous - réseau, et cela fonctionne bien car 27est plus grand que 26.

En commençant par le /27sous - réseau:

Original: | 110001100011001101100 | 00000000000    | /21
Subnet 1: | 110001100011001101100 | 000000 | 00000 | /27

Ajoutez 1à la partie sous-réseau pour obtenir la position de départ du prochain sous-réseau:

Subnet 2: | 110001100011001101100 | 000001 | 00000 | /27

Notez qu'il ne reste pas assez de bits dans la partie hôte (cinq bits d'hôte) pour prendre en charge un /26réseau nécessitant six bits d'hôte ( 32 address bits – 26 network bits = 6 host bits). Si nous utilisons cela comme position de départ pour le /26sous - réseau, nous chevaucherons les /26réseaux précédents et suivants . Nous devons laisser un espace de la taille d’un /27réseau pour la position de départ du /26réseau:

Original: | 110001100011001101100 | 00000000000     | /21
Subnet 1: | 110001100011001101100 | 000000 |  00000 | /27
Unused:   | 110001100011001101100 | 000001 |  00000 | /27
Subnet 2: | 110001100011001101100 | 00001  | 000000 | /26

Un /26sous-réseau doit toujours commencer sur une /26limite: toutes les deuxièmes /27limites de sous-réseau, toutes les quatre /28limites, toutes les huitièmes /29limites, etc. Cette règle s'applique à toute taille de sous-réseau: un sous-réseau doit commencer sur une limite d'un sous-réseau plus long, égale 2à la puissance. de la taille de sous-réseau la plus longue moins la taille de sous-réseau. Par exemple, un /23sous - réseau doit démarrer sur tous les 4 /25réseaux ( 2^(25 - 23) = 2^2 = 4).

Tenter de configurer un périphérique avec une adresse réseau qui commence sur une mauvaise limite de bits entraînera des problèmes étranges et difficiles à résoudre, ou le périphérique générera une erreur concernant le chevauchement des réseaux. Certaines personnes essaient de le faire avec une décimale en pointillés, ce qui peut entraîner des erreurs. Par exemple, les 198.51.96.0/27adresses des hôtes du réseau sont 198.51.96.0complètes 198.51.96.31. Si vous le savez et essayez d'utiliser le 198.51.96.32/26réseau, vous rencontrerez des problèmes car ce réseau démarre sur une mauvaise limite de bits et chevauche le /27réseau (vérifiez en utilisant un bit ANDavec les adresses et les masques du réseau). C'est évident en binaire, mais ce n'est pas si évident en pointillé-décimal. Vous pouvez apprendre que les /26réseaux doivent commencer sur un multiple de décimal64 limite, mais le voir en binaire peut vous dire avec certitude si vous avez commis une erreur ou non.


Dimensionnement du sous-réseau basé sur le nombre d'hôtes

Les questions d'examen courantes vous donneront un réseau et vous demanderont de créer plusieurs sous-réseaux de tailles différentes en fonction du nombre d'hôtes pour chaque sous-réseau. Si vous le pouvez, vous devez préciser si le nombre d'hôtes est basé sur le nombre total d'adresses d'hôtes sur le réseau ou sur le nombre d'hôtes utilisables sur le réseau. (Par exemple, si la question demande un sous-réseau avec 256ou des 255hôtes, un /24réseau vous donnera le 256total des adresses d’hôte, mais uniquement 254des adresses d’hôte utilisables. Une telle question peut être une question piège, et la réponse correcte dépend du fait que le question signifie le total des adresses d’hôte ou des adresses d’hôte utilisables.)

Exemple de question:

Given the 198.51.96.0/21 network, subnet it for the following departments:
    Department 1:  500 hosts
    Department 2:  100 hosts
    Department 3:  200 hosts
    Department 4: 1000 hosts

Comme nous l'avons vu dans la section Sous-réseau IPv4 sur les réseaux, le moyen le plus simple de procéder consiste à trier les départements en fonction du nombre d'hôtes le plus élevé au nombre le plus petit car nous n'aurons pas besoin de gérer les lacunes du réseau:

Department 4: 1000 hosts
Department 1:  500 hosts
Department 3:  200 hosts
Department 2:  100 hosts

Vous pouvez arrondir chaque puissance à la puissance élevée suivante de 2 pour obtenir le nombre d'adresses total requises pour chaque sous-réseau, puis déduire le nombre de bits d'hôte requis de l'exposant de la puissance de 2:

Department 4: 1024 total host addresses = 2^10 = 10 host bits
Department 1:  512 total host addresses = 2^9  =  9 host bits
Department 3:  256 total host addresses = 2^8  =  8 host bits
Department 2:  128 total host addresses = 2^7  =  7 host bits

Vous pouvez également modifier la formule précédente pour rechercher le nombre de bits requis pour un nombre particulier de sous-réseaux de taille égale afin de déterminer le nombre de bits d'hôte requis pour chaque sous-réseau:, Log2(X hosts) = Y host bitsarrondi à la valeur entière suivante:

Department 4: Log2(1000 hosts) = 9.96578428466209, rounded up = 10 host bits
Department 1: Log2( 500 hosts) = 8.96578428466209, rounded up =  9 host bits
Department 3: Log2( 200 hosts) = 7.64385618977472, rounded up =  8 host bits
Department 2: Log2( 100 hosts) = 6.64385618977473, rounded up =  7 host bits

Une fois que vous avez le nombre de bits d’hôte requis pour chaque sous-réseau, effectuez le calcul mathématique pour obtenir le sous-réseau spécifique à chaque service. N'oubliez pas d'ajouter 1à un sous-réseau pour obtenir l'adresse de départ du prochain sous-réseau:

Original:     | 110001100011001101100 |    00000000000 | = 198.51.96.0/21
Department 4: | 110001100011001101100 | 0 | 0000000000 | = 198.51.96.0/22
Department 1: | 110001100011001101100 | 10 | 000000000 | = 198.51.100.0/23
Department 3: | 110001100011001101100 | 110 | 00000000 | = 198.51.102.0/24
Department 2: | 110001100011001101100 | 1110 | 0000000 | = 198.51.103.0/25
Unused:       | 110001100011001101100 | 1111 | 0000000 | = 198.51.103.128/25

Recherche d'un sous-réseau particulier

Il peut vous être demandé de fournir les informations réseau d'un sous-réseau particulier d'un réseau donné. Par exemple, il peut vous être demandé de fournir les informations réseau du 23e /26sous- 198.51.96.0/21réseau du réseau. Puisque vous avez besoin du 23e sous-réseau, vous pouvez convertir 22(rappelez 0- vous, c'est le premier sous-réseau, donc le 23e sous-réseau serait 22*) en binaire: Décimal 22= Binaire 10110. Utilisez le nombre binaire converti dans la partie sous-réseau de l'adresse:

Original:  | 110001100011001101100 |    00000000000 | = 198.51.96.0/21
Subnet 23: | 110001100011001101100 | 10110 | 000000 | = 198.51.101.128/26

Une fois que vous avez identifié la 23ème adresse réseau 198.51.101.128/26, vous pouvez calculer les autres informations réseau (comme décrit dans les sections précédentes):

Network address:                   198.51.101.128
Network mask length:               26
Network mask:                      255.255.255.192
Host mask length:                  6
Host mask:                         0.0.0.63
First usable network host address: 198.51.101.1
Last usable network host address:  198.51.101.62
Broadcast address:                 198.51.101.63
Total network host addresses:      64
Usable network host addresses:     62

* Il existe un mythe persistant selon lequel les sous-réseaux tout-zéros et tout-un ne peuvent pas être utilisés pour les sous-réseaux, comme pour les adresses d'hôte, mais ce mythe a été explicitement dissipé il y a de nombreuses années par une norme. Malheureusement, ce mythe s’applique à certaines classes d’éducation de réseau et la bonne solution pour ces classes (incorrectes) consiste à utiliser le 24e sous-réseau ( 23décimal, 10111binaire) dans notre exemple de sous-réseaux de taille égale, plutôt que le 23e ( 22décimal, 10110binaire) sous-réseau.


Trouver un hôte de réseau particulier

Vous pouvez être invité à rechercher l'adresse d'un hôte particulier d'un réseau donné. Par exemple, vous pouvez être invité à donner l'adresse de l'hôte pour le 923e hôte du 198.51.96.0/21réseau. Comme vous avez besoin de l'hôte 923rd, vous pouvez convertir 923en binaire: Decimal 923= Binary 1110011011. Ajoutez le nombre binaire converti à l'adresse réseau:

Binary network: | 110001100011001101100 | 00000000000 |
Binary 923:     | 000000000000000000000 | 01110011011 | +
                  -----------------------------------
Host address:   | 110001100011001101100 | 01110011011 | = 198.51.99.155

Le plus grand réseau commun pour deux hôtes *

Il se peut que vous receviez deux (ou plus) adresses d’hôte différentes et qu’on vous demande de définir le plus grand réseau (le plus petit nombre d’hôtes) contenant les deux adresses d’hôte. Par exemple, recherchez le plus grand réseau commun de 198.51.100.223et 198.51.101.76.

Commencez par convertir les adresses décimales en points en fichiers binaires:

198.51.100.223 = 11000110001100110110010011011111
198.51.101.76  = 11000110001100110110010101001100

Ensuite, à partir du bit de poids fort (à l'extrême gauche), comparez les adresses binaires à chaque position de bit jusqu'à ce que les bits situés à la même position ne correspondent pas:

198.51.100.223 = | 11000110001100110110010 | 011011111 |
198.51.101.76  = | 11000110001100110110010 | 101001100 |

Comptez le nombre de bits correspondants, 23dans ce cas, pour obtenir la longueur du masque. Vous pouvez ensuite prendre l'une ou l'autre adresse et effectuer une opération ANDau niveau des bits avec le masque de réseau pour obtenir le réseau commun. Faire cela sur les deux adresses devrait résulter dans le même réseau, et si ce n'est pas le cas, alors vous avez mal calculé, ou vous avez manqué une position de bit sans correspondance.

198.51.100.223  = 11000110001100110110010011011111
/23 mask length = 11111111111111111111111000000000 AND
                  --------------------------------
Binary network:   11000110001100110110010000000000 = 198.51.100.0/23

198.51.101.76   = 11000110001100110110010111011111
/23 mask length = 11111111111111111111111000000000 AND
                  --------------------------------
Binary network:   11000110001100110110010000000000 = 198.51.100.0/23

Notez que les deux adresses réseau correspondent. Cela signifie que le plus grand réseau commun pour les deux adresses d’hôte est 198.51.100.0/23(notation CIDR) ou (traditionnel) 198.51.100.0avec un masque de 255.255.254.0.


* Vous pouvez voir ceci appelé le plus petit réseau commun (ou une variante, par exemple un réseau minimum ou un masque). Le réseau le plus petit est en réalité 0.0.0.0/0( 0bits de réseau) et constitue le réseau commun à toutes les adresses IPv4. Il s'agit donc du plus petit réseau commun entre toutes les adresses IPv4. La confusion survient parce que de nombreuses personnes examinent la partie hôte de l'adresse et considèrent sa taille comme étant la taille du réseau, plutôt que la taille de la partie réseau de l'adresse.


Adressage public ou privé

IPv4, en soi, n'a pas la notion d'adressage public et privé, ni la distinction entre. L’adressage privé IPv4 a été choisi de manière arbitraire et les FAI, par convention, ne transmettront pas les paquets sur l’Internet public en utilisant des adresses dans l’espace adresse privée, mais les périphériques réseau et les hôtes n’ont aucune idée si une adresse est publique ou privée.

Il existe trois plages d'adresses définies dans l'adressage privé IPv4:

  1. 10.0.0.0/8
  2. 172.16.0.0/12
  3. 192.168.0.0/16

Adressage réseau de classe

À l'origine, les adresses IPv4 étaient divisées en classes de réseau. L'adressage par classe était obsolète depuis des décennies et la mise en réseau moderne est basée sur le routage interdomaine sans classe (CIDR). Malheureusement, de nombreux cours de formation en réseau et examens de certification insistent sur le fait de tester vos connaissances en matière d'adressage par classe. Veuillez vous familiariser avec les mathématiques IPv4 précédentes de ce document et vous familiariser avec celles-ci avant de vous familiariser avec l'adressage en classe.

Les classes d'adresses IPv4 sont toutes basées sur les premiers bits de l'adresse:

Class   Address Starts With      Address Range                 Default Size*
  A     First one bit    = 0       0.0.0.0 to 127.255.255.255        /8
  B     First two bits   = 10    128.0.0.0 to 191.255.255.255       /16
  C     First three bits = 110   192.0.0.0 to 223.255.255.255       /24
  D     First four bits  = 1110  224.0.0.0 to 239.255.255.255       N/A
  E     First four bits  = 1111  240.0.0.0 to 255.255.255.255       N/A
  • Les réseaux de classe A ont un masque de réseau par défaut de 255.0.0.0( /8) et un masque d’hôte par défaut de 0.255.255.255, vous donnant le 16,777,216total des adresses d’hôte par réseau.
  • Les réseaux de classe B ont un masque de réseau par défaut de 255.255.0.0( /16) et un masque d’hôte par défaut de 0.0.255.255, vous donnant le 65,536total des adresses d’hôte par réseau.
  • Les réseaux de classe C ont un masque de réseau par défaut de 255.255.255.0( /24) et un masque d’hôte par défaut de 0.0.0.255, vous donnant le 256total des adresses d’hôte par réseau.
  • Les adresses de classe D sont utilisées pour la multidiffusion, chaque adresse étant utilisée individuellement pour représenter un groupe d'hôtes abonnés à une adresse de multidiffusion. Cela signifie que les adresses de classe D n’ont normalement pas le concept de masque de réseau.
  • Les adresses de classe E sont réservées et ne peuvent être utilisées pour quoi que ce soit. Il existe une exception à cette règle, à savoir l’adresse de diffusion limitée 255.255.255.255, qui est une adresse individuelle que chaque hôte d’un réseau considérera comme la sienne. Cela signifie que tout ce qui 255.255.255.255sera envoyé sera reçu et traité par tous les hôtes du réseau.

Étant donné que chaque classe a une taille de réseau par défaut, certaines questions supposent le masque par défaut pour une adresse donnée; par conséquent, tous les calculs doivent être effectués en fonction du masque de réseau par défaut. Pour notre exemple d'adresse 198.51.100.223:

Binary: 11000110 00110011 01100100 11011111

Notez que les trois premiers bits d’adresse sont 110, c’est-à-dire qu’il s’agit d’une adresse de classe C, et qu’en dehors de tout masque ou de toute longueur de masque, le masque de réseau est supposé être 255.255.255.0( /24), ce qui en fait l’adresse de réseau 198.51.100.0.


* Ne commettez pas l'erreur commune de penser que le masque de réseau dicte la classe de réseau, c'est l'inverse. Par exemple, beaucoup de gens considèrent n'importe quel /24réseau comme un réseau de classe C, mais ce n'est même pas vrai à distance. Par exemple, étant donné qu'il s'agit d'un 10.11.12.0/24réseau, de nombreuses personnes l'appellent à tort en raison d'un masque de réseau, même si le premier bit de l'adresse 0est un réseau de classe A, même si son masque de réseau est plus long que celui par défaut. Masque de réseau de classe A, ce qui signifie qu’il s’agit d’un sous-réseau d’un réseau de classe A et non d’un réseau de classe C.

Ron Maupin
la source
6

(Pour essayer de conserver toutes les réponses au masque de réseau à un endroit, après les autres excellentes réponses, j'ai ajouté celui-ci à propos d'une méthode visuelle.)

Dimensionnement du sous-réseau basé sur le nombre d'hôtes

Ceci est pour la question commune « Comment puis-je couper une taille de réseau donné en n morceaux permettant x 1 hôtes dans le réseau 1, x 2 hôtes dans le réseau 2, etc ...? » peut absolument être résolu en suivant les méthodes décrites dans les autres excellentes réponses.

Cependant, certaines personnes pourraient souhaiter une méthode plus visuelle et des astuces générales.

Méthode visuelle "Glasscutter"

J'enseigne souvent une compréhension visuelle de ceci avec la méthode suivante:

Imaginons d’abord une guillotine en papier comme celle-ci:

guillotine en papier glissante

( Image de Wikipedia par Nathan CC BY-SA 3.0)

Les propriétés de ce type de massicot sont qu’il ne coupe que des lignes droites, qu’il coupe toujours à travers le papier et qu’il coupe perpendiculairement à un côté. Notre guillotine est difficile: elle ne coupera que le papier en deux et nous ne pouvons pas couper à moins de 1 cm du bord.

  • Combien d'adresses sont disponibles au total pour votre bloc de départ?
  • Supposons ont été divisés a / 22 a 1024 adresses
  • Obtenez un morceau de papier avec autant de centimètres carrés (et un ratio carré ou 2x1)
  • Par conséquent, je reçois un morceau de 32 cm sur 32 cm qui a 1024 cm²
  • À plusieurs reprises
    1. Choisissez une pièce (s'il y en a plus d'une)
    2. Coupez-le en deux (sous contraintes: seulement des coupes rectangulaires, en deux, rien en dessous de 1 cm)
  • Il y a souvent différentes coupes que vous pouvez faire et vous devez faire un choix
  • Pour obtenir n réseaux, vous devez faire n-1 coupes
  • Parfois, vous vous retrouvez avec des morceaux supplémentaires (en fonction de la manière dont vous voulez répartir les "déchets")

Voici une illustration du processus. Vous voyez qu’il n’ya qu’un seul type de coupe possible entre la coupe 1 et la coupe 2, mais pour la coupe 3, nous faisons un choix: couper le petit morceau (rouge) ou le gros morceau (bleu), ce qui donne deux possibilités différentes.

mon propre dessin

C’est ce que l’on appelle souvent le problème de la guillotine, problème que j’ai appris en tant que «coupeur de verre», car le verre à vitre doit vraiment être coupé à fond. Ce problème pourrait être appelé «coupeur de verre binaire» car il est toujours coupé en moitiés.

Quand je le fais réellement dans la vie réelle, je réduis mentalement le voile en regardant une grille comme celle-ci. Je me souviens que / 26 doit commencer par 0, .64, 128 ou .192; Je sais peut-être que la septième ligne louée a besoin de la septième / 30 dans le quart supérieur, mais je ne me souviendrai pas que c’est 0,216.

La grille peut évidemment être utilisée pour représenter le troisième octet également, et chaque carré représente a / 24. Maintenant, on dit que a / 18 commence par .0, .64, .128 ou .192.

entrez la description de l'image ici

Conseils techniques généraux

La procédure générale est la suivante:

  • arrondir chaque taille requise dans le plus petit bloc suffisamment grand
  • veillez à respecter les règles globales (souvent "maximisez l'adressage disponible", parfois "autorisez le double pour la croissance" ou "facilitez le routage")
  • allouez les sous-réseaux aux adresses COMMENÇANT AVEC LE PLUS GRAND et descendant au plus petit ( c'est la partie qu'ils oublient généralement de vous dire )
  • suivez toutes les règles spécifiques (les questions de test ont souvent des règles supplémentaires, parfois aussi abstraites que "Aucune adresse réseau ne peut contenir un 7")
  • vérifiez qu'il y a de la place pour toutes les adresses implicites (diffusions, routeurs)
  • si un réseau est petit (/ 30, / 31 ou / 32), portez une attention particulière, car il existe des cas extrêmes pour les réseaux avec 4, 2 et 1 hôtes et les détails dépendent du problème exact que vous résolvez.
jonathanjo
la source
5

Exemple:

IP: 128.42.5.4

En binaire: 10000000 00101010 00000101 00000100

Sous-réseau: 255.255.248.0

Comment pouvez-vous déterminer le préfixe, le réseau, le sous-réseau et les numéros d’hôte?

      32768     16384  8192  4096  2048  1024   512   256  ----> Binary
        128       192   224   240   248   252   254   255  ----> Sunet Mask
        /17       /18   /19   /20   /21   /22   /23   /24  ----> CIDR  
      32766     16382  8190  3094  2046  1022   510   254  ----> Host


      128     64    32     16     8     4    2     1   ----> Binary
      128    192   224    240   248   252   254   255  ----> Sunet Mask
      /25    /26   /27    /28   /29   /30   /31   /32  ----> CIDR  
      126     62    30     14     6     2    *     -   ----> Host 

     128        64        32       16        8         4         2        1
  10000000   01000000  00100000 00010000  00001000  00000100  00000010   00000001

   Example 
   Network=192.168.1.0 /24;  
   Network Address with Subnet mask =  192.168.1.0 subnet 255.255.255.0 
   Ip address range 192.168.1.0----192.168.1.255
   Fist available ip address  192.168.1.1; 
   Last available ip address  192.168.1.254; 
   Broadcast address = 192.168.1.255;
   254 Host

   Network=192.168.1.0 /25;
   Network Address with Subnet mask =  192.168.1.0 subnet 255.255.255.128
   Ip address range 192.168.1.0----192.168.1.128
   Fist available ip address  192.168.1.1; 
   Last available ip address  192.168.1.126;
   Broadcast address = 192.168.1.127;  
   126 Hosts

   When the CIDR increased ex. /24. /25.  the network will divided by the 
   binary number.
   /25  increase network   0-128| 128- 256 |                   you will have 2 Networks 
   /26  increase network   0-64 | 64 - 128 | 128-192 | 192-256 you will have 4 Networks 
    .
    .
    .
   /32......
bkpxfdifo
la source