Question Comment fonctionne le sous-réseau IPv4?


C'est un Question canonique à propos des sous-réseaux IPv4.

En relation:

Comment fonctionne le sous-réseau et comment le faites-vous? par la main ou dans ta tête?  Quelqu'un peut-il expliquer à la fois conceptuellement et avec plusieurs exemples? Défaut de serveur génère de nombreuses questions de devoirs de sous-réseau. Nous pourrions donc utiliser une réponse pour les diriger sur le défaut de serveur lui-même.

  • Si j'ai un réseau, comment puis-je comprendre comment se séparer?
  • Si on me donne un masque de réseau, comment puis-je savoir à quoi sert la gamme de réseaux il?
  • Parfois, il y a une barre oblique suivie par un nombre, quel est ce nombre?
  • Parfois, il y a un masque de sous-réseau, mais aussi un masque générique, ils ressemblent à la même chose mais sont-ils différents?
  • Quelqu'un a mentionné quelque chose à propos de savoir binaire pour cela?

422
2017-08-04 15:51


origine




Réponses:


Les sous-réseaux IP permettent aux routeurs de choisir les destinations appropriées pour les paquets. Vous pouvez utiliser des sous-réseaux IP pour casser des réseaux plus importants pour des raisons logiques (pare-feu, etc.) ou un besoin physique (domaines de diffusion plus petits, etc.).

En termes simples, toutefois, les routeurs IP utilisent vos sous-réseaux IP pour prendre des décisions de routage. Comprenez comment fonctionnent ces décisions et comprenez comment planifier des sous-réseaux IP.

Compter jusqu'à 1

Si vous parlez couramment la notation binaire (base 2), vous pouvez ignorer cette section.

Pour ceux qui restent: honte de ne pas parler couramment la notation binaire!

Ouais, c'est peut-être un peu dur. Il est vraiment très facile d'apprendre à compter en binaire et d'apprendre des raccourcis pour convertir des fichiers binaires en nombres décimaux et inverses. Vous devriez vraiment savoir comment le faire.

Compter en binaire est si simple parce qu'il suffit de savoir compter jusqu'à 1!

Pensez au "compteur kilométrique" d'une voiture, sauf que contrairement à un compteur kilométrique traditionnel, chaque chiffre ne peut compter que de 1 à 0. Lorsque la voiture est sortie d'usine, le compteur kilométrique indique "00000000".

Lorsque vous avez parcouru votre premier kilomètre, l'odomètre indique "00000001". Jusqu'ici tout va bien.

Lorsque vous avez parcouru votre deuxième kilomètre, le premier chiffre du compteur kilométrique revient à "0" (car sa valeur maximale est "1") et le deuxième chiffre du compteur kilométrique passe à "1", ce qui permet de lire le compteur kilométrique " 00000010 ". Cela ressemble au numéro 10 en notation décimale, mais en fait à 2 (le nombre de miles parcourus jusqu'à présent) en notation binaire.

Lorsque vous avez parcouru le troisième kilomètre, l'odomètre indique "00000011", car le premier chiffre de l'odomètre tourne à nouveau. Le nombre "11", en notation binaire, est le même que le nombre décimal 3.

Enfin, lorsque vous avez parcouru votre quatrième kilomètre, les deux chiffres (qui indiquaient "1" à la fin du troisième kilomètre) reviennent à la position zéro et le troisième chiffre passe à la position "1", ce qui nous donne " 00000100 ". C'est la représentation binaire du nombre décimal 4.

Vous pouvez mémoriser tout cela si vous voulez, mais vous n'avez vraiment besoin que de comprendre Comment le petit compteur kilométrique "bascule" à mesure que le nombre qu'il compte augmente. C'est exactement la même chose que pour un compteur kilométrique traditionnel, sauf que chaque chiffre ne peut être que "0" ou "1" sur notre "compteur kilométrique binaire" fictif.

Pour convertir un nombre décimal en binaire, vous pouvez avancer le compteur kilométrique, cochez-en une case en comptant à voix haute jusqu'à ce que vous l'ayez convertie un nombre de fois égal au nombre décimal que vous souhaitez convertir en binaire. Tout ce qui est affiché sur le compteur kilométrique après tout ce que la comptabilisation et le roulement serait la représentation binaire du nombre décimal que vous avez compté jusqu'à.

Puisque vous comprenez comment le compteur kilométrique avance, vous comprenez également comment il revient en arrière. Pour convertir en décimale un nombre binaire affiché sur l'odomètre, vous pouvez le reculer d'une case à la fois, en comptant à voix haute jusqu'à ce que l'odomètre indique "00000000". Lorsque tout ce comptage et cette opération sont terminés, le dernier chiffre que vous dites à voix haute serait la représentation décimale du nombre binaire avec lequel le compteur kilométrique a commencé.

La conversion de valeurs entre binaire et décimal de cette façon serait très fastidieux. Vous pouvez le faire, mais ce ne serait pas très efficace. Il est plus facile d'apprendre un petit algorithme pour le faire plus rapidement.

Un petit aparté: chaque chiffre d'un nombre binaire est appelé "bit". C'est "b" de "binaire" et "it" de "digit". Un bit est un chiffre binaire.

Convertir un nombre binaire comme, par exemple, "1101011" en décimal est un processus simple avec un petit algorithme pratique.

Commencez par compter le nombre de bits dans le nombre binaire. Dans ce cas, il y en a 7. Faites 7 divisions sur une feuille de papier (dans votre esprit, dans un fichier texte, etc.) et commencez à les remplir de droite à gauche. Dans l'emplacement le plus à droite, entrez le nombre "1", car nous commencerons toujours par "1". Dans le logement à gauche suivant, entrez le double de la valeur dans le logement à droite ("2" dans le suivant, "4" dans le prochain) et continuez jusqu'à ce que tous les logements soient pleins. (Vous finirez par mémoriser ces nombres, qui sont les puissances de 2, car vous le faites de plus en plus. Je vais bien jusqu'à 131 072 dans ma tête mais j'ai généralement besoin d'une calculatrice ou d'un papier après cela).

Donc, vous devriez avoir ce qui suit sur votre papier dans vos petites fentes.

 64    |    32    |    16    |    8    |    4    |    2    |    1    |

Transcrivez les bits du nombre binaire en dessous des slots, comme suit:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
  1          1          0         1         0         1         1

Maintenant, ajoutez quelques symboles et calculez la réponse au problème:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
       +          +          +         +         +         +         =

En faisant tous les calculs, vous devriez trouver:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
 64    +    32    +     0    +    8    +    0    +    2    +    1    =   107

Ça y est. "1101011" en décimal est 107. Il ne s'agit que d'étapes simples et de calculs simples.

La conversion de nombres décimaux en fichiers binaires est tout aussi simple et constitue le même algorithme de base, exécuté à l'envers.

Disons que nous voulons convertir le nombre 218 en binaire. En commençant à droite d'une feuille de papier, écrivez le nombre "1". À gauche, doublez cette valeur (donc "2") et continuez de vous déplacer vers la gauche du papier en doublant la dernière valeur. Si le nombre que vous êtes sur le point d'écrire est supérieur au nombre en cours de conversion, arrêtez d'écrire. sinon, continuez à doubler le nombre précédent et à écrire. (Convertir un grand nombre, comme 34.157.216.092, en binaire en utilisant cet algorithme peut être un peu fastidieux mais c'est certainement possible.)

Donc, vous devriez avoir sur votre papier:

 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |

Vous avez arrêté d'écrire des nombres à 128 car doubler 128, ce qui vous donnerait 256, serait plus grand que le nombre en cours de conversion (218).

En commençant par le nombre le plus à gauche, écrivez "218" au-dessus (128) et posez-vous la question suivante: "Le nombre 218 est-il supérieur ou égal à 128?" Si la réponse est oui, grattez un "1" en dessous de "128". Au-dessus de "64", écrivez le résultat de 218 moins 128 (90).

En regardant "64", demandez-vous: "90 est-il supérieur ou égal à 64?" Ainsi, vous écrivez un "1" en dessous de "64", puis soustrayez 64 à 90 et écrivez ce qui précède "32" (26).

Cependant, lorsque vous arrivez à "32", vous constatez que 32 n'est pas supérieur ou égal à 26. Dans ce cas, écrivez un "0" sous "32", copiez le nombre (26) de plus de 32 "vers le haut" 16 "et continuez ensuite à vous poser la même question avec le reste des chiffres.

Lorsque vous avez terminé, vous devriez avoir:

 218         90         26         26        10         2         2         0
 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |
   1          1          0          1         1         0         1         0

Les nombres en haut ne sont que des notes utilisées dans le calcul et ne signifient pas grand chose pour nous. En bas, cependant, vous voyez un nombre binaire "11011010". Effectivement, 218, converti en binaire, est "11011010".

En suivant ces procédures très simples, vous pouvez convertir des valeurs binaires en valeurs décimales et inversement sans calculatrice. Le calcul est très simple et les règles peuvent être mémorisées avec un peu de pratique.

Fractionner des adresses

Pensez au routage IP comme à la livraison de pizzas.

Lorsque vous êtes invité à livrer une pizza à "123 Main Street", il est très clair pour vous, en tant qu'être humain, que vous souhaitez vous rendre au bâtiment portant le numéro "123" dans la rue nommée "Main Street". Il est facile de savoir que vous devez vous rendre aux 100 pâtés de maisons de la rue principale car le numéro de bâtiment est compris entre 100 et 199 et la plupart des pâtés de maisons sont numérotés par centaines. Vous "savez juste" comment diviser l'adresse.

Les routeurs livrent des paquets, pas des pizzas. Leur travail est le même que celui d’un chauffeur de pizza: obtenir le chargement (les paquets) aussi près que possible de la destination. Un routeur est connecté à deux sous-réseaux IP ou plus (pour être utile). Un routeur doit examiner les adresses IP de destination des paquets et répartir ces adresses en composants "Nom de rue" et "Numéro de bâtiment", tout comme le pilote de pizza, pour prendre des décisions en matière de livraison.

Chaque ordinateur (ou "hôte") d'un réseau IP est configuré avec une adresse IP unique et un masque de sous-réseau. Cette adresse IP peut être divisée en un composant "numéro d'immeuble" (comme "123" dans l'exemple ci-dessus) appelé "ID hôte" et un composant "nom de rue" (comme "Main Street" dans l'exemple ci-dessus) appelé "identifiant réseau". Pour nos yeux humains, il est facile de voir où se trouvent le numéro du bâtiment et le nom de la rue dans "123 Main Street", mais il est plus difficile de voir cette division dans "10.13.216.41 avec un masque de sous-réseau de 255.255.192.0".

Les routeurs IP "savent juste" comment diviser les adresses IP en ces composants pour prendre des décisions de routage. Étant donné que la compréhension du processus de routage des paquets IP dépend de la compréhension de ce processus, nous devons également savoir comment décomposer les adresses IP. Heureusement, l'extraction de l'ID hôte et de l'ID réseau d'une adresse IP et d'un masque de sous-réseau est en réalité assez simple.

Commencez par écrire l’adresse IP en binaire (utilisez une calculatrice si vous n’avez pas encore appris à le faire dans votre tête, mais notez bien comment le faire - c’est vraiment très facile et impressionne le sexe opposé à des soirées):

      10.      13.     216.      41
00001010.00001101.11011000.00101001

Ecrivez également le masque de sous-réseau en binaire:

     255.     255.     192.       0
11111111.11111111.11000000.00000000

Écrit côte à côte, vous pouvez voir que le point dans le masque de sous-réseau où le "" arrêt "du" 1 "s'aligne" sur un point de l'adresse IP. C'est le point que l'ID de réseau et l'ID d'hôte se sont séparés. Donc, dans ce cas:

      10.      13.     216.      41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

Les routeurs utilisent le masque de sous-réseau pour "masquer" les bits couverts par des 1 dans l'adresse IP (en remplaçant les bits qui ne sont pas "masqués" par des 0) pour extraire l'ID de réseau:

      10.      13.     192.       0
00001010.00001101.11000000.00000000 - Network ID

De même, en utilisant le masque de sous-réseau pour "masquer" les bits couverts par des zéros dans l'adresse IP (en remplaçant les bits qui ne sont pas "masqués" par des zéros), un routeur peut extraire l'ID d'hôte:

       0.       0.      24.      41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

Il n’est pas aussi facile pour nos yeux humains de voir la "coupure" entre l’ID réseau et l’ID hôte, mais entre le "numéro de bâtiment" et le "nom de rue" dans les adresses physiques lors de la livraison de pizzas, mais l’effet ultime est le même.

Maintenant que vous pouvez diviser les adresses IP et les masques de sous-réseau en ID d'hôte et ID de réseau, vous pouvez acheminer l'IP exactement comme le fait un routeur.

Plus de terminologie

Vous verrez des masques de sous-réseau écrits sur Internet et dans le reste de cette réponse sous la forme (IP / numéro). Cette notation est appelée notation "CIDR" (Classless Inter-Domain Routing). "255.255.255.0" est composé de 24 bits de 1 au début, et il est plus rapide de l'écrire comme "/ 24" que comme "255.255.255.0". Pour convertir un numéro CIDR (comme "/ 16") en un masque de sous-réseau en points-décimaux, écrivez simplement ce nombre de 1, divisez-le en groupes de 8 bits et convertissez-le en décimal. (Un "/ 16" est "255.255.0.0", par exemple.)

À l'époque, les masques de sous-réseau n'étaient pas spécifiés, mais étaient dérivés de l'examen de certains bits de l'adresse IP. Une adresse IP commençant par 0 à 127, par exemple, avait un masque de sous-réseau implicite de 255.0.0.0 (appelé adresse IP "de classe A").

Ces masques de sous-réseau implicites ne sont pas utilisés aujourd'hui et je ne recommande plus de les connaître à moins que vous n'ayez le malheur de vous servir d'anciens équipements ou d'anciens protocoles (tels que RIPv1) qui ne prennent pas en charge l'adressage IP sans classe. Je ne vais pas mentionner davantage ces "classes" d'adresses, car elles sont aujourd'hui inapplicables et peuvent prêter à confusion.

Certains appareils utilisent une notation appelée "masques génériques". Un "masque générique" n'est rien d'autre qu'un masque de sous-réseau avec tous les 0 où il y aurait des 1 et les 1 où il y aurait des 0. Le "masque générique" de a / 26 est:

 11111111.11111111.11111111.11000000 - /26 subnet mask
 00000000.00000000.00000000.00111111 - /26 "wildcard mask"

En général, les "masques génériques" utilisés pour faire correspondre les ID d'hôte dans les listes de contrôle d'accès ou les règles de pare-feu. Nous n'en discuterons plus ici.

Comment fonctionne un routeur

Comme je l'ai déjà dit, les routeurs IP ont un travail similaire à celui d'un livreur de pizzas en ce sens qu'ils doivent acheminer leur cargaison (paquets) à sa destination. Lorsqu'il se voit présenter un paquet destiné à l'adresse 192.168.10.2, un routeur IP doit déterminer laquelle de ses interfaces réseau sera celle qui rapprochera le plus ce paquet de sa destination.

Disons que vous êtes un routeur IP et que vous avez des interfaces connectées à vous numérotées:

  • Ethernet0 - 192.168.20.1, masque de sous-réseau / 24
  • Ethernet1 - 192.168.10.1, masque de sous-réseau / 24

Si vous recevez un paquet à livrer avec une adresse de destination "192.168.10.2", il est assez facile de dire (avec vos yeux humains) que le paquet doit être envoyé via l'interface Ethernet1, car l'adresse d'interface Ethernet1 correspond à la destination du paquet. adresse. Tous les ordinateurs connectés à l'interface Ethernet1 auront des adresses IP commençant par "192.168.10.", Car l'ID réseau de l'adresse IP attribuée à votre interface Ethernet1 est "192.168.10.0".

Pour un routeur, ce processus de sélection d'itinéraire est effectué en construisant une table de routage et en consultant la table chaque fois qu'un paquet doit être livré. Une table de routage contient l'ID réseau et les noms d'interface de destination. Vous savez déjà comment obtenir un ID réseau à partir d'une adresse IP et d'un masque de sous-réseau, vous êtes donc sur le point de créer une table de routage. Voici notre table de routage pour ce routeur:

  • ID réseau: 192.168.20.0 (11000000.10101000.00010100.00000000) - Masque de sous-réseau 24 bits - Interface Ethernet0
  • ID réseau: 192.168.10.0 (11000000.10101000.00001010.00000000) - Masque de sous-réseau 24 bits - Interface Ethernet1

Pour notre paquet entrant destiné à "192.168.10.2", il suffit de convertir l'adresse de ce paquet en binaire (en tant qu'êtres humains - le routeur l'obtient en tant que fichier binaire pour commencer) et d'essayer de le faire correspondre à chaque adresse de notre routage. table (jusqu’au nombre de bits dans le masque de sous-réseau) jusqu’à ce que nous correspondions à une entrée.

  • Destination du paquet entrant: 11000000.10101000.00001010.00000010

En comparant cela aux entrées de notre table de routage:

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00010100.00000000 - Interface Ethernet0
!!!!!!!!.!!!!!!!!.!!!????!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00001010.00000000 - Interface Ethernet1, 24 bit subnet mask
!!!!!!!!.!!!!!!!!.!!!!!!!!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

L'entrée pour Ethernet0 correspond bien aux 19 premiers bits, mais cesse ensuite de correspondre. Cela signifie que ce n'est pas la bonne interface de destination. Vous pouvez voir que l'interface Ethernet1 correspond à 24 bits de l'adresse de destination. Ah ah! Le paquet est lié à l'interface Ethernet1.

Dans un routeur réel, la table de routage est triée de sorte que les correspondances les plus longues sont masquées (c’est-à-dire les itinéraires les plus spécifiques), et numériquement de sorte que, dès qu’une correspondance est trouvée, le paquet puisse être routé. et aucune autre tentative d'appariement n'est nécessaire (ce qui signifie que 192.168.10.0 serait répertorié en premier et que 192.168.20.0 n'aurait jamais été vérifié). Ici, nous simplifions un peu cela. Les structures de données et les algorithmes sophistiqués rendent les routeurs IP plus rapides, mais des algorithmes simples produiront les mêmes résultats.

Routes statiques

Jusqu'à présent, nous avons parlé de notre routeur hypothétique comme ayant des réseaux directement connectés à celui-ci. Ce n'est pas, évidemment, comment le monde fonctionne vraiment. Dans l’analogie de la conduite de pizza, le chauffeur n’est parfois pas autorisé à pénétrer plus loin dans le bâtiment que la réception et doit donner la pizza à quelqu'un d’autre pour qu’il soit livré au destinataire final (suspendez votre incrédulité J'étire mon analogie, s'il vous plaît).

Commençons par appeler notre routeur à partir des exemples précédents "Routeur A". Vous connaissez déjà la table de routage de RouterA en tant que:

  • Identifiant réseau: 192.168.20.0 (11000000.10101000.00010100.00000000) - masque de sous-réseau / 24 - Interface RouteurA-Ethernet0
  • ID réseau: 192.168.10.0 (11000000.10101000.00001010.00000000) - masque de sous-réseau / 24 - Interface RouteurA-Ethernet1

Supposons qu'il existe un autre routeur, "Routeur B", avec les adresses IP 192.168.10.254/24 et 192.168.30.1/24 attribuées à ses interfaces Ethernet0 et Ethernet1. Il a la table de routage suivante:

  • ID réseau: 192.168.10.0 (11000000.10101000.00001010.00000000) - masque de sous-réseau / 24 - Interface RouterB-Ethernet0
  • ID réseau: 192.168.30.0 (11000000.10101000.00011110.00000000) - masque de sous-réseau / 24 - Interface RouterB-Ethernet1

Dans le joli art ASCII, le réseau ressemble à ceci:

               Interface                      Interface
               Ethernet1                      Ethernet1
               192.168.10.1/24                192.168.30.254/24
     __________  V                  __________  V
    |          | V                 |          | V
----| ROUTER A |------- /// -------| ROUTER B |----
  ^ |__________|                 ^ |__________|
  ^                              ^
Interface                      Interface
Ethernet0                      Ethernet0
192.168.20.1/24                192.168.10.254/24

Vous pouvez voir que le routeur B sait comment "accéder à" un réseau, 192.168.30.0/24, dont le routeur A ne sait rien.

Supposons qu'un PC avec l'adresse IP 192.168.20.13 connectée au réseau connecté à l'interface Ethernet0 du routeur A envoie un paquet au routeur A pour qu'il le distribue. Notre paquet hypothétique est destiné à l'adresse IP 192.168.30.46, qui est un périphérique connecté au réseau connecté à l'interface Ethernet1 du routeur B.

Avec la table de routage illustrée ci-dessus, aucune entrée de la table de routage du routeur A ne correspond à la destination 192.168.30.46. Le routeur A renverra donc le paquet au PC émetteur avec le message "Réseau inaccessible".

Pour que le routeur A soit "conscient" de l'existence du réseau 192.168.30.0/24, nous ajoutons l'entrée suivante dans la table de routage du routeur A:

  • ID réseau: 192.168.30.0 (11000000.10101000.00011110.00000000) - masque de sous-réseau / 24 - accessible via 192.168.10.254

De cette manière, le routeur A a une entrée de table de routage qui correspond à la destination 192.168.30.46 de notre exemple de paquet. Cette entrée de la table de routage indique effectivement "Si vous obtenez un paquet destiné à 192.168.30.0/24, envoyez-le à 192.168.10.254 car il sait comment le gérer." Il s’agit de l’action analogue «remettre la pizza à la réception» dont j’ai parlé plus tôt: transmettre le paquet à quelqu'un d’autre qui sait comment le rapprocher de sa destination.

Ajouter une entrée à une table de routage "à la main" est appelé ajouter une "route statique".

Si le routeur B souhaite transmettre des paquets au réseau de masque de sous-réseau 192.168.20.0 255.255.255.0, il doit également avoir une entrée dans sa table de routage:

  • ID réseau: 192.168.20.0 (11000000.10101000.00010100.00000000) - masque de sous-réseau / 24 - accessible via: 192.168.10.1 (adresse IP du routeur A sur le réseau 192.168.10.0)

Cela créerait un chemin pour la livraison entre le réseau 192.168.30.0/24 et le réseau 192.168.20.0/24 sur le réseau 192.168.10.0/24 entre ces routeurs.

Vous voulez toujours vous assurer que les routeurs des deux côtés d'un tel "réseau interstitiel" ont une entrée de table de routage pour le réseau "distant". Si le routeur B dans notre exemple ne possédait pas d'entrée de table de routage pour le réseau "distant" 192.168.20.0/24 connecté au routeur A, notre paquet hypothétique provenant du PC à l'adresse 192.168.20.13 aurait accédez au périphérique de destination à l'adresse 192.168.30.46, mais toute réponse que 192.168.30.46 a tenté de renvoyer est renvoyée par le routeur B en tant que "Réseau de destination inaccessible". La communication à sens unique n'est généralement pas souhaitable. Assurez-vous toujours de penser au trafic entrant tous les deux directions lorsque vous pensez à la communication dans les réseaux informatiques.

Vous pouvez faire beaucoup de kilométrage sur des routes statiques. Les protocoles de routage dynamiques tels que EIGRP, RIP, etc., ne sont en réalité qu'un moyen pour les routeurs d'échanger des informations de routage qui pourraient en réalité être configurées avec des routes statiques. L’utilisation de protocoles de routage dynamiques sur des routes statiques présente toutefois un avantage considérable: les protocoles de routage dynamique peuvent dynamiquement changez la table de routage en fonction des conditions du réseau (utilisation de la bande passante, interface "en panne", etc.). L'utilisation d'un protocole de routage dynamique peut donc générer une configuration qui "achemine" les pannes ou les goulots d'étranglement de l'infrastructure réseau. (Les protocoles de routage dynamiques sont FAÇON en dehors du champ de cette réponse, cependant.)

Vous ne pouvez pas vous y rendre d'ici

Dans le cas de notre exemple de routeur A, que se passe-t-il lorsqu'un paquet à destination de "172.16.31.92" arrive?

En regardant la table de routage du routeur A, aucune interface de destination ni route statique ne correspond aux 24 premiers bits de 172.18.31.92 (qui est 10101100.000100001001111.01011100, BTW).

Comme nous le savons déjà, le routeur A renverrait le paquet à l'expéditeur via un message "Inaccessible au réseau de destination".

Supposons qu'un autre routeur (routeur C) se trouve à l'adresse "192.168.20.254". Le routeur C est connecté à Internet!

                              Interface                      Interface                      Interface
                              Ethernet1                      Ethernet1                      Ethernet1
                              192.168.20.254/24              192.168.10.1/24                192.168.30.254/24
                    __________  V                  __________  V                  __________  V
((  heap o  ))     |          | V                 |          | V                 |          | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
((   w00t!  ))   ^ |__________|                 ^ |__________|                 ^ |__________|
                 ^                              ^                              ^
               Interface                      Interface                      Interface
               Ethernet0                      Ethernet0                      Ethernet0
               10.35.1.1/30                   192.168.20.1/24                192.168.10.254/24

Il serait bien que le routeur A puisse router des paquets ne correspondant à aucune interface locale jusqu'au routeur C, de telle sorte que le routeur C puisse les envoyer sur Internet. Entrez la route "passerelle par défaut".

Ajoutez une entrée à la fin de notre table de routage comme ceci:

  • ID réseau: 0.0.0.0 (00000000.00000000.00000000.00000000) - masque de sous-réseau / 0 - Routeur de destination: 192.168.20.254

Lorsque nous essayons de faire correspondre "172.16.31.92" à chaque entrée de la table de routage, nous finissons par frapper cette nouvelle entrée. C'est un peu déroutant, au début. Nous cherchons à faire correspondre zéro bit de l'adresse de destination avec ... attendez ... quoi? Correspondant à zéro bits? Donc, nous ne cherchons pas du tout une correspondance. Cette entrée de la table de routage dit, en gros, "Si vous arrivez ici plutôt que de renoncer à la livraison, envoyez le paquet au routeur à l'adresse 192.168.20.254 et laissez-le le gérer".

192.168.20.254 est une destination que nous FAIRE savoir comment livrer un paquet à. Lorsqu'il est confronté à un paquet destiné à une destination pour laquelle nous n'avons pas d'entrée de table de routage spécifique, cette entrée "passerelle par défaut" correspondra toujours (puisqu'elle correspond à zéro bit de l'adresse de destination) et nous donne un emplacement "de dernier recours" que nous pouvons envoyer des paquets pour la livraison. Vous entendrez parfois la passerelle par défaut appelée "passerelle de dernier recours".

Pour qu'un itinéraire de passerelle par défaut soit efficace, il doit faire référence à un routeur accessible via les autres entrées de la table de routage. Si vous tentez par exemple de spécifier une passerelle par défaut 192.168.50.254 dans le routeur A, la remise à une telle passerelle par défaut échoue. 192.168.50.254 n'est pas une adresse que le routeur A sait comment transmettre des paquets à l'aide de l'une des autres routes de sa table de routage. Une telle adresse serait donc inefficace en tant que passerelle par défaut. Cela peut être précisé de manière concise: la passerelle par défaut doit être définie sur une adresse déjà accessible en utilisant une autre route dans la table de routage.

Les vrais routeurs stockent généralement la passerelle par défaut en tant que dernier itinéraire de leur table de routage, de sorte qu'elle corresponde aux paquets une fois qu'ils n'ont pas réussi à faire correspondre toutes les autres entrées de la table.

Urbanisme et routage IP

Diviser un sous-réseau IP en sous-réseaux IP plus petits relève de la planification urbaine. En urbanisme, le zonage est utilisé pour s’adapter aux caractéristiques naturelles du paysage (rivières, lacs, etc.), pour influer sur les flux de trafic entre différentes parties de la ville et pour séparer différents types d’utilisation des sols (industriels, résidentiels, etc.). . Les sous-réseaux IP sont vraiment les mêmes.

Il y a trois raisons principales pour lesquelles vous souhaitez sous-réseau d'un réseau:

  • Vous souhaiterez peut-être communiquer sur différents supports de communication différents. Si vous avez une connexion WAN T1 entre deux bâtiments, des routeurs IP peuvent être placés aux extrémités de ces connexions pour faciliter la communication sur le T1. Les réseaux à chaque extrémité (et éventuellement le réseau "interstitiel" sur le T1 lui-même) seraient affectés à des sous-réseaux IP uniques afin que les routeurs puissent décider du trafic à envoyer sur la ligne T1.

  • Dans un réseau Ethernet, vous pouvez utiliser un sous-réseau pour limiter la quantité de trafic de diffusion dans une partie donnée du réseau. Les protocoles de couche application utilisent la capacité de diffusion d’Ethernet à des fins très utiles. Cependant, au fur et à mesure que de plus en plus d’hôtes sont regroupés sur le même réseau Ethernet, le pourcentage de trafic de diffusion sur le réseau filaire (ou aérien, en Ethernet sans fil) peut augmenter au point de créer des problèmes pour la livraison de trafic autre que de diffusion. (Auparavant, le trafic de diffusion pouvait surcharger le processeur des hôtes en les obligeant à examiner chaque paquet de diffusion. C'est moins probable aujourd'hui.) Un trafic excessif sur Ethernet commuté peut également prendre la forme d'une "inondation de trames vers des destinations inconnues". Cette situation est imputable à un commutateur Ethernet incapable de suivre toutes les destinations sur le réseau. C'est pourquoi les réseaux Ethernet commutés ne peuvent pas évoluer vers un nombre infini d'hôtes. L’effet de l’inondation de trames vers des destinations inconnues est similaire à celui de l’excès de trafic de radiodiffusion, aux fins de la création de sous-réseaux.

  • Vous voudrez peut-être "contrôler" les types de trafic circulant entre différents groupes d'hôtes. Peut-être avez-vous des périphériques de serveur d'impression et souhaitez-vous uniquement que les ordinateurs serveur autorisés qui mettent en file d'attente d'impression leur envoient des travaux. En limitant le trafic autorisé à circuler vers le sous-réseau du périphérique de serveur d'impression, les utilisateurs ne peuvent pas configurer leur ordinateur pour qu'il communique directement avec les périphériques de serveur d'impression afin de contourner la comptabilité d'impression. Vous pouvez placer les périphériques du serveur d'impression dans un sous-réseau et créer une règle dans le routeur ou le pare-feu associé à ce sous-réseau afin de contrôler la liste des hôtes autorisés à envoyer du trafic aux périphériques du serveur d'impression. (Les routeurs et les pare-feu peuvent généralement décider de livrer ou non un paquet en fonction des adresses source et de destination du paquet. Les pare-feu sont généralement une sous-espèce de routeur avec une personnalité obsessionnelle. Ils peuvent être très préoccupés par la charge utile des paquets, alors que les routeurs ignorent généralement les charges utiles et ne font que livrer les paquets.)

Lors de la planification d'une ville, vous pouvez planifier la façon dont les rues se croisent et utiliser des rues tournantes, à sens unique ou sans issue pour influencer le flux de circulation. Vous voudrez peut-être que la rue principale soit longue de 30 blocs, chaque bloc pouvant contenir jusqu'à 99 bâtiments. Il est assez facile de planifier votre numérotation de rue de manière à ce que chaque bloc de Main Street ait une plage de numéros de rue augmentant de 100 pour chaque bloc. Il est très facile de savoir quel devrait être le "numéro de départ" dans chaque bloc suivant.

Lors de la planification de sous-réseaux IP, vous devez créer le bon nombre de sous-réseaux (rues) avec le bon nombre d'identifiants d'hôte disponibles (numéros d'immeuble) et utiliser des routeurs pour connecter les sous-réseaux les uns aux autres (intersections). Les règles relatives aux adresses de source et de destination autorisées spécifiées dans les routeurs peuvent contrôler davantage le flux de trafic. Les pare-feu peuvent agir comme des policiers de la circulation obsessionnels.

Pour les besoins de cette réponse, la construction de nos sous-réseaux est notre seule préoccupation majeure. Au lieu de travailler en décimal, comme vous le feriez avec la planification urbaine, vous travaillez en binaire pour décrire les limites de chaque sous-réseau.

Suite sur: Comment fonctionne le sous-réseau IPv4?

(Oui ... nous avons atteint la taille maximale d'une réponse (30000 caractères).)


631
2017-08-04 15:58



@ Joseph: C'est une conférence que j'ai trop de fois donnée pour mon bien. > sourire <Je vais regarder votre section binaire. Je n'aime pas enseigner les mathématiques (ce qui est vraiment ce qu'est la compréhension du binaire - compter en base 2) parce que je ne suis pas très bon dans ce domaine. - Evan Anderson
Mon seul problème avec la division de la réponse est qu'il faut comprendre pourquoi les sous-réseaux existe (Routage IP) avant de pouvoir comprendre comment diviser efficacement un réseau IP en sous-réseaux. Je n'ai jamais trouvé un bon moyen de discuter d'un sujet indépendamment de l'autre. (En réalité, la conception d'un réseau IP avec VLSM est naturelle et "logique" une fois que vous avez compris le routage IP ...) - Evan Anderson
Ne le casse pas. - Joseph Kern
+1 pour le message le plus complet jamais vu sur serverfault - Scott Lundberg
Upvote si seulement pour la métaphore Odometer. Maintenant, je sais comment expliquer comment le binaire fonctionne pour les gens. - phuzion


Suite de: Comment fonctionne le sous-réseau IPv4?

Votre fournisseur de services Internet vous indique dans la plage l’ID réseau 192.168.40.0/24 (11000000.10101000.00101000.00000000). Vous savez que vous souhaitez utiliser un périphérique pare-feu / routeur pour limiter la communication entre différentes parties de votre réseau (serveurs, ordinateurs clients, équipements réseau) et, en tant que tel, vous souhaitez décomposer ces différentes parties de votre réseau. dans des sous-réseaux IP (que le pare-feu / routeur peut ensuite router).

Tu as:

  • 12 ordinateurs serveurs, mais vous pourriez obtenir jusqu'à 50% de plus
  • 9 interrupteurs
  • 97 ordinateurs clients, mais vous pourriez en avoir plus

Quel est le bon moyen de diviser le 192.168.40.0/24 en ces morceaux?

En pensant même à des puissances de deux et en travaillant avec le plus grand nombre de périphériques possibles, vous pouvez créer:

  • 18 ordinateurs serveurs - La plus grande puissance disponible sur deux est 32
  • 9 commutateurs - La plus grande puissance de deux suivante est de 16
  • 97 ordinateurs clients - La plus grande puissance disponible sur deux est de 128

Dans un sous-réseau IP donné, deux adresses réservées ne peuvent pas être utilisées comme adresses IP de périphérique valides: l'adresse avec tous les zéros dans la partie ID hôte et l'adresse avec toutes les adresses dans la partie ID hôte. Ainsi, pour tout sous-réseau IP donné, le nombre d'adresses d'hôte disponibles est égal à deux fois la puissance de la quantité de 32 moins le nombre de bits dans le masque de sous-réseau, moins de 2. Par conséquent, dans le cas de 192.168.40.0/24 peut voir que le masque de sous-réseau a 24 bits. Cela laisse 8 bits disponibles pour les identifiants d'hôte. Nous savons que la puissance 2 sur 8 correspond à 256--, ce qui signifie que 256 combinaisons possibles de bits correspondent à un intervalle de 8 bits. Étant donné que les combinaisons "11111111" et "00000000" de ces 8 bits ne sont pas autorisées pour les ID hôte, nous disposons de 254 hôtes possibles pouvant être attribués dans le réseau 192.168.40.0/24.

Sur ces 254 hôtes, il semble que nous puissions installer les ordinateurs clients, les commutateurs et les ordinateurs serveurs dans cet espace, n'est-ce pas? Essayons.

Vous devez "jouer avec" sur 8 bits de masque de sous-réseau (les 8 bits restants de l'adresse IP 192.168.40.0/24 ne sont pas couverts par le masque de sous-réseau fourni par votre fournisseur de services Internet). Nous devons trouver un moyen d’utiliser ces 8 bits pour créer un certain nombre d’ID de réseau uniques pouvant accueillir les périphériques ci-dessus.

Commencez avec le plus grand réseau - les ordinateurs clients. Vous savez que la puissance immédiatement supérieure de deux parmi le nombre de périphériques possibles est 128. Le nombre 128, en binaire, est "10000000". Heureusement pour nous, cela correspond au slot 8 bits que nous avons gratuit (s'il ne le faisait pas, cela indiquerait que notre sous-réseau de départ est trop petit pour accueillir tous nos périphériques).

Prenons notre ID de réseau, fourni par notre fournisseur de services Internet, et ajoutons-y un seul bit de masque de sous-réseau, en le divisant en deux réseaux:

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.00000000 - Old subnet mask (/24)

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

Regardez cela jusqu'à ce que cela ait du sens. Nous avons augmenté le masque de sous-réseau d'un bit, ce qui a permis à l'ID de réseau de couvrir un bit qui aurait été utilisé pour l'ID d'hôte. Étant donné que ce bit peut être nul ou égal à un, nous avons effectivement divisé notre réseau 192.168.40.0 en deux réseaux. La première adresse IP valide sur le réseau 192.168.40.0/25 sera le premier ID d'hôte avec un "1" dans le bit le plus à droite:

11000000.10101000.00101000.00000001 - 192.168.40.1 - First valid host in the 192.168.40.0/25 network

De même, le premier hôte valide du réseau 192.168.40.128 sera le premier ID d’hôte avec un "1" dans le bit le plus à droite:

11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/25 network

Le dernier hôte valide de chaque réseau sera l’ID hôte avec chaque bit sauf le bit le plus à droite est défini sur "1":

11000000.10101000.00101000.01111110 - 192.168.40.126 - Last valid host in the 192.168.40.0/25 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.128/25 network

Ainsi, de cette manière, nous avons créé un réseau assez grand pour contenir nos ordinateurs clients, et un deuxième réseau auquel nous pouvons ensuite appliquer le même principe pour se décomposer en réseaux encore plus petits. Prenons une note:

  • Ordinateurs clients - 192.168.40.0/25 - IP valides: 192.168.40.1 - 192.168.40.126

Maintenant, pour décomposer le deuxième réseau de nos serveurs et commutateurs, nous faisons la même chose.

Nous avons 12 ordinateurs serveurs, mais nous pourrions en acheter jusqu'à 6 de plus. Planifions sur 18, ce qui nous laisse la puissance suivante la plus élevée, à savoir 2. En binaire, 32 correspond à "100000", ce qui correspond à une longueur de 6 bits. Il nous reste 7 bits de masque de sous-réseau dans 192.168.40.128/25, nous avons donc suffisamment de bits pour continuer à "jouer". Ajouter un bit de masque de sous-réseau supplémentaire nous donne deux réseaux supplémentaires:

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - Old subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/26 network
11000000.10101000.00101000.10111110 - 192.168.40.190 - Last valid host in the 192.168.40.128/26 network

11000000.10101000.00101000.11000000 - 192.168.40.192 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.11000001 - 192.168.40.193 - First valid host in the 192.168.40.192/26 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.192/26 network

Nous avons donc divisé 192.168.40.128/25 en deux réseaux supplémentaires, chacun comportant 26 bits de masque de sous-réseau, ou un total de 62 ID d'hôte possibles: 2 ^ (32 - 26) - 2.

Cela signifie que ces deux réseaux ont assez d'adresses pour nos serveurs et nos commutateurs! Prenons des notes:

  • Serveurs - 192.168.40.128/26 - Adresses IP valides: 192.168.40.129 - 192.168.40.190
  • Commutateurs - 192.168.40.192/26 - IP valides: 192.168.40.193 - 192.168.40.254

Cette technique est appelée masquage de sous-réseau de longueur variable (VLSM) et, si elle est correctement appliquée, fait en sorte que les "routeurs principaux" aient des tables de routage plus petites (via un processus appelé "récapitulatif de route"). Dans le cas de notre fournisseur de services Internet, dans cet exemple, ils peuvent ignorer totalement la manière dont nous avons sous-réseau 192.168.40.0/24. Si leur routeur a un paquet destiné à 192.168.40.206 (un de nos commutateurs), il suffit de le savoir pour le transmettre à notre routeur (puisque 192.168.40.206 correspond à l'identifiant réseau et au masque de sous-réseau 192.168.40.0/24 dans la table de routage de leur routeur). ) et notre routeur l’aura à la destination. Ceci garde nos routes de sous-réseau en dehors de leurs tables de routage. (Je simplifie ici, mais vous voyez l'idée.)

Vous pouvez planifier de la sorte de très grands réseaux. Tant que vous faites la bonne "planification urbaine" dès le départ (en prévoyant le nombre d'hôtes dans chaque sous-réseau avec une certaine précision et un regard tourné vers l'avenir), vous pouvez créer une grande hiérarchie de routage qui, au niveau des routeurs principaux, "résume "à un très petit nombre de routes. Comme nous l'avons vu ci-dessus, plus le nombre de routes dans la table de routage d'un routeur est important, plus son travail est lent. Concevoir un réseau IP avec VLSM et garder les tables de routage réduites est une bonne chose (Good Thing, tm).

L'irréalisme des exemples

Le monde fictif dans cette réponse est évidemment fictif. En règle générale, vous pouvez créer des sous-réseaux sur un réseau Ethernet commuté moderne avec plus de 254 hôtes (dépendant du profil de trafic). Comme indiqué dans les commentaires, l'utilisation de / 24 réseaux entre routeurs n'est pas compatible avec Real Life (tm). Cela en fait de jolis exemples, mais c'est un gaspillage d'espace d'adresses. Typiquement, un / 30 ou un / 31 (voir http://www.faqs.org/rfcs/rfc3021.html pour plus de détails sur le fonctionnement de / 31 - ils sont certainement au-delà de la portée de cette réponse) le réseau est utilisé sur des liaisons strictement point à point entre deux routeurs.


137
2017-08-04 15:53



Petite erreur: le code situé juste après "Le dernier hôte valide ..." revient à l'appel "le premier hôte valide". Je suppose que cela devrait encore dire "dernier". - JoeCool1986
@ JoeCool1986 - Bonne prise. - Evan Anderson
Je vais faire passer cette réponse à plus tard afin de m'assurer que deux réponses sont bien rangées. - l46kok
Sur la partie où vous créez deux sous-réseaux à partir de 192.168.40.128 et créez un ID de réseau de 192.168.40.192, d'où vient le 192? - user6607
@ user6607 Les sous-réseaux sont comptés à l'envers (sans espaces). Par exemple le premier sous-réseau 0 est représenté comme 00000000. Le deuxième sous-réseau est 128 alors 10000000 et le troisième sous-réseau 192 est représenté comme 11000000, etc. Continuez à compter à rebours pour trouver de nouveaux sous-réseaux. - Joseph Kern


Sous-filet

Le sous-réseau n'est pas difficile, mais cela peut être intimidant. Commençons donc par l'étape la plus simple possible. Apprendre à compter en binaire.

Binaire

Binary est un système de comptage de base 2. Composé de seulement deux chiffres (1 et 0). Le comptage se déroule de cette manière.

1 = 001 ( 0 + 0 + 1 = 1)
2 = 010 ( 0 + 2 + 0 = 2)
3 = 011 ( 0 + 2 + 1 = 3)
4 = 100 ( 4 + 0 + 0 = 4)
5 = 101 ( 4 + 0 + 1 = 5)

Donc, si vous imaginez que chaque 1 est un espace réservé pour une valeur (toutes les valeurs binaires sont des puissances de deux)

1     1     1     1     1 = 31
16  + 8  +  4  +  2  +  1 = 31

Donc ... 100000 = 32. Et 10000000 = 128. ET 11111111 = 255.

Lorsque je dis "j'ai un masque de sous-réseau de 255.255.255.0", je veux dire en réalité "j'ai un masque de sous-réseau de 11111111.11111111.1111111.00000000". Nous utilisons les sous-réseaux comme une main courte.

Les points de l'adresse sont séparés tous les 8 chiffres binaires (un octet). C'est pourquoi IPv4 est appelé espace d'adressage 32 bits (8 * 4).

Pourquoi sous-réseau?

Les adresses IPv4 (192.168.1.1) sont rares. Le sous-réseau nous donne le moyen d’augmenter le nombre de réseaux (ou d’hôtes) disponibles. Ceci pour des raisons administratives et techniques.

Chaque adresse IP est divisée en deux parties distinctes, le réseau et l'hôte. Par défaut, une adresse de classe C (192.168.1.1) utilise les 3 premiers octets (192.168.1) pour la partie réseau de l'adresse. et le 4ème octet (.1) en tant que partie hôte.

Par défaut, une adresse IP et un masque de sous-réseau pour une adresse de classe C ressemblent à ceci

IP     192.168.1.1 
Subnet 255.255.255.0

En binaire comme ça

IP     11000000.10101000.00000001.00000001
Subnet 11111111.11111111.11111111.00000000

Regardez à nouveau l'exemple binaire. Remarquez comment j'ai dit que les trois premiers octets sont utilisés pour le réseau? Notez comment la partie réseau est tout? C'est tout ce qui est sous-filet. Développons.

Étant donné que j'ai un seul octet pour ma partie hôte (dans l'exemple ci-dessus). Je peux UNIQUEMENT avoir 256 hôtes (256 est la valeur maximale d'un octet, en partant de 0). Mais il existe un autre petit truc: vous devez soustraire 2 adresses d’hôte des adresses disponibles (actuellement 256). La première adresse de la plage sera celle du réseau (192.168.1.0) et la dernière adresse de la plage sera la diffusion (192.168.1.255). Donc, vous avez vraiment 254 adresses disponibles pour les hôtes dans un réseau.

Une étude de cas

Disons que je vous ai donné le morceau de papier suivant.

Create 4 networks with 192.168.1.0/24.

Jetons un coup d'oeil à ceci. Le / 24 s'appelle la notation CIDR. Plutôt que de référencer le 255.255.255.0, nous référons simplement les bits dont nous avons besoin pour le réseau. Dans ce cas, nous avons besoin de 24 bits (3 * 8) à partir d’une adresse 32 bits. Ecrire ceci en binaire

11111111.11111111.11111111.00000000 = 255.255.255.0
8bits   + 8bits  + 8bits  + 0bits   = 24bits

Nous savons ensuite que nous devons déterminer le nombre de sous-réseaux dont nous avons besoin. On dirait 4. Comme nous avons besoin de créer plus de réseaux (nous n'en avons actuellement qu'un), retournons quelques bits

11111111.11111111.11111111.00000000 = 255.255.255.0   = 1 Network OR /24
11111111.11111111.11111111.10000000 = 255.255.255.128 = 2 Networks OR /25
11111111.11111111.11111111.11000000 = 255.255.255.192 = 4 Networks (remember powers of 2!) OR /26

Maintenant que nous avons choisi un / 26, commençons à allouer des hôtes. Un petit calcul simple:

32(bits) - 26(bits) = 6(bits) for host addresses.

Nous avons 6 bits à allouer dans chaque réseau pour les hôtes. Rappelez-vous qu'il faut soustraire 2 pour chaque réseau.

h = host bits    
2^h - 2 = hosts available

2^6 - 2 = 62 hosts 

Finally we have 62 hosts in 4 networks, 192.168.1.0/26

Nous devons maintenant savoir où vont les hôtes. Retour au binaire!

11111111.11111111.11111111.00,000000 [the comma is the new network/hosts division]

Begin to calculate:

11000000.10101000.00000001.00,000000 = 192.168.1.0 [First IP = Network Adress]
11000000.10101000.00000001.00,000001 = 192.168.1.1 [First Host IP]
11000000.10101000.00000001.00,000010 = 192.168.1.2 [Second Host IP]
11000000.10101000.00000001.00,000011 = 192.168.1.3 [Third Host IP]

And so on ... until ...

11000000.10101000.00000001.00,111110 = 192.168.1.62 [Sixty Second Host IP]
11000000.10101000.00000001.00,111111 = 192.168.1.63 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.01,000000 = 192.168.1.64 [First IP = Network Address]
11000000.10101000.00000001.01,000001 = 192.168.1.65 [First Host IP]
11000000.10101000.00000001.01,000010 = 192.168.1.66 [Second Host IP]

And so on ... until ...

11000000.10101000.00000001.01,111110 = 192.168.1.126 [Sixty Second Host IP]
11000000.10101000.00000001.01,111111 = 192.168.1.127 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.10,000000 = 192.168.1.128 [First IP = Network Address]
11000000.10101000.00000001.10,000001 = 192.168.1.129 [First Host IP]

Etc ...

De cette façon, vous pouvez calculer le sous-réseau entier.

Wild Cards Un masque générique est un masque de sous-réseau inversé.

11111111.11111111.11111111.11000000 = 255.255.255.192 [Subnet]
00000000.00000000.00000000.00111111 = 0.0.0.63 [Wild Card]

Plus loin

Google pour les termes "super-réseau" et "VLSM (masque de sous-réseau de longueur variable)" pour les rubriques plus avancées.

Je peux voir maintenant que j'ai mis trop de temps à répondre ... soupir


73
2017-08-04 15:12



"Etant donné que je n'ai qu'un seul octet pour ma partie hôte (dans l'exemple ci-dessus). Je ne peux UNIQUEMENT avoir que 255 hôtes (255 est la valeur maximale d'un octet). Mais il y a un autre petit truc: vous devez soustraire 2 adresses d'hôte. parmi ceux disponibles (actuellement 255). La première adresse de la plage sera celle du réseau (192.168.1.0) et la dernière adresse de la plage sera la diffusion (192.168.1.255). Vous disposez donc de 253 adresses disponibles pour hôtes dans un réseau. "... Ceci est incorrect. - joeqwerty
Il y a 256 valeurs possibles pour l'octet: 0 à 255, pour un total de 256. 256-2 (adresses réseau et de diffusion) = 254 adresses hôtes possibles. - joeqwerty
Oops. Merci! :-) Par un, je ne sais pas comment j'ai réussi cet exploit. - Joseph Kern
-1 Désolé, mais il n'y a pas eu de "cours" depuis la RFC 1519 en 1993, personne ne devrait en parler en dehors d'un contexte historique. Ils déroutent et causent beaucoup d'idées fausses. - Chris S
Chris, vous avez probablement raison, mais les cours étaient toujours enseignés jusqu'au début des années 2000 dans le CCNA et dans la plupart des cours de premier cycle. - Joseph Kern


Une brève leçon d'histoire: à l'origine, les adresses unicast IPv4 étaient divisées en 3 classes, chacune avec une longueur de masque 'par défaut' associée (appelée masque de sous-réseau à la classe)

  • Classe A: Tout ce qui va dans la plage 1.0.0.0 -> 127.255.255.255. Masque de sous-réseau de la classe 255.0.0.0 (/ 8 en notation CIDR)
  • Classe B: N'importe quoi dans la plage 128.0.0.0 -> 191.255.255.255. Masque de sous-réseau de classe 255.255.0.0 (/ 16 en notation CIDR)
  • Classe C: N'importe quoi dans la plage 192.0.0.0 -> 223.255.255.255. Masque de sous-réseau de la classe 255.255.255.0 (/ 24 en notation CIDR)

L'idée était que des organisations de tailles différentes puissent se voir attribuer une classe d'adresses IP différente, afin d'utiliser efficacement l'espace d'adresses IP.

Cependant, à mesure que les réseaux IP se développaient, il devenait évident que cette approche posait problème. Pour n'en nommer que trois:

Dans un monde de classe, tous les sous-réseaux eu avoir un masque de / 8, / 16, ou / 24. Cela signifiait que le plus petit sous-réseau pouvant être configuré était un / 24, ce qui permettait à 254 adresses d'hôte (les adresses .0 et .255 étant réservées comme adresses réseau et adresses de diffusion, respectivement). Cela a été un énorme gaspillage, en particulier sur les liaisons point à point avec seulement deux routeurs qui leur sont connectés.

Même après l’assouplissement de cette restriction, les protocoles de routage antérieurs (par exemple, RIPv1) n'a pas annoncé la longueur de masque associée à un préfixe IP. En l'absence d'un masque spécifique, il utiliserait soit le masque d'une interface directement connectée dans le même réseau de classes, soit utiliserait le masque de classes. Par exemple, si vous souhaitez utiliser le réseau 172.16.0.0 pour les liens inter-routeurs avec / 30 masques, tout Les sous-réseaux de 172.16.0.0 à 172.16.255.255 doivent avoir un masque / 30 (16384 sous-réseaux, chacun avec 2 adresses IP utilisables).

Les tables de routage des routeurs Internet ont commencé à occuper de plus en plus de mémoire; c'était / est connu comme «l'explosion de la table de routage». Si un fournisseur dispose de 16 réseaux / 24 contigus, par exemple, il devra publier les 16 préfixes au lieu d’un seul récapitulatif couvrant l’ensemble de la plage.

Deux raffinements connexes nous a permis d'aller au-delà des limites ci-dessus.

  1. Masques de sous-réseau de longueur variable (VLSM)
  2. CIDR (routage interdomaine sans classe)

VLSM fait référence à la capacité d'un protocole de routage à prendre en charge différents masques de sous-réseau au sein d'un même réseau doté de classes. Par exemple:

192.168.1.0/24

Pourrait être divisé en:

192.168.1.0/25
192.168.1.128/26
192.168.1.192/27
192.168.1.224/27

Ce qui a permis une utilisation beaucoup plus efficace de l'espace d'adressage; Les sous-réseaux peuvent être dimensionnés correctement pour le nombre d'hôtes / routeurs qui leur seraient connectés.

CIDR prend VLSM et l'étend dans l'autre sens; En plus de diviser un seul réseau de classes en plusieurs sous-réseaux, le CIDR permet d'agréger plusieurs réseaux de classes en un seul résumé. Par exemple, les réseaux de classe B (/ 16) suivants:

172.16.0.0/16
172.17.0.0/16
172.18.0.0/16
172.19.0.0/16

Peut être agrégé / résumé avec un seul préfixe:

172.16.0.0/14

En termes de sous-réseau: un masque de sous-réseau a une longueur de 32 bits. La longueur du masque indique le nombre de bits identifiant la partie réseau de l'adresse. Par exemple:

10.1.1.0/24
  • Le masque de sous-réseau de classe est / 8
  • Le masque de sous-réseau actuel est / 24
  • 16 bits (24-8) ont été «empruntés» pour l’utilisation de sous-réseaux.

Cela signifie que, si l’ensemble du réseau 10.0.0.0/8 est sous-réseau dans / 24s, il y aura 65 536 (2 ^ 16) sous-réseaux dans cette plage. (Cela suppose que la plate-forme que vous utilisez prend en charge les numéros de sous-réseau compris entre 0 et 255. Voir l'adresse IP de Cisco subnet-zero).

Il reste 8 bits dans la "partie hôte" de l'adresse. Cela signifie qu'il existe 256 adresses IP disponibles (2 ^ 8), dont 2 sont réservées (10.1.1.0 est l'adresse réseau, 10.1.1.255 l'adresse de diffusion dirigée par le sous-réseau). Cela laisse 254 adresses IP utilisables sur ce sous-réseau. ((2 ^ 8) - 2)


31



Il y avait en fait 5 classes. - dbasnett
C'est vrai, mais avons-nous vraiment besoin d'entrer dans l'adressage multicast et réservé de classe E pour une question d'introduction au sous-réseau? :) - Murali Suriar
Vous avez introduit l’histoire dans une question d’introduction ... Ensuite, il reste incomplet. Je ne sais pas ce qui est pire. - Chris S


Plages de réseau: les réseaux sont toujours référencés par 2 numéros: un pour déterminer le réseau et un autre pour déterminer quel ordinateur (ou hôte) se trouve sur ce réseau. Comme chaque adresse réseau a une longueur de 32 bits, les deux nombres doivent tenir dans ces 32 bits.

La numérotation réseau est importante, car c'est ce que l'ICANN distribue lorsque vous demandez une plage d'adresses IP réseau. Si nous ne l'avions pas, personne ne serait capable de faire la différence entre mon réseau et AT & Ts. Ainsi, bien que ces numéros doivent être uniques, personne d'autre ne souhaite attribuer de numéros aux hôtes qui se trouvent sur mon réseau. D'où la scission - la première partie est gérée par les personnes du réseau, la seconde partie m'appartenant, je la donne à toutes les machines que je veux.

Le numéro de réseau n'est pas fixé à un certain nombre de bits - par exemple, si je n'avais que 200 machines à gérer moi-même, je serais parfaitement heureux avec un numéro de réseau utilisant 24 bits, ne me laissant que 8 bits. - ce qui suffit pour un maximum de 255 hôtes. Comme le numéro de réseau utilise 24 bits, nous pouvons en avoir beaucoup, ce qui signifie que beaucoup de personnes peuvent avoir leur propre réseau.

Dans le passé, on parlait de réseau de classe C. (la classe B utilisait 16 bits pour le numéro de réseau et la classe A, 8 bits, de sorte qu’il n’existe que quelques réseaux de classe A).

De nos jours, cette convention de nommage est tombée de la mode. Il a été remplacé par le concept appelé CIDR. CIDR met explicitement le nombre de bits pour vos hôtes après la barre oblique. Donc, mon exemple ci-dessus (la classe C) est maintenant appelé CIDR / 24.

Cela nous donne un peu plus de flexibilité. Avant si j'avais 300 hôtes à gérer, il me faudrait un réseau de classe B! Maintenant, je peux obtenir un CIDR / 23, donc j’ai 9 bits pour moi et 23 bits pour le numéro de réseau. L’ICANN n’a peut-être pas ce type de réseau, mais si j’ai un réseau interne, ou si je loue un réseau partiel auprès d’un fournisseur de services Internet, cela facilite la gestion - d’autant plus que tous leurs clients peuvent recevoir un / 29 (ce qui me laisse. 3 bits ou un maximum de 8 machines), ce qui permet à plus de personnes d’avoir leur propre petite tranche d’adresses IP disponibles. Jusqu'à ce que nous obtenions IPv6, c'est assez important.


Cependant ... alors que je sais qu'un CIDR / 24 est l'équivalent de l'ancien réseau de classe C, et qu'un / 16 est une classe B et un / 8 est une classe A ... Je suis toujours perplexe à essayer de calculer un / 22 ma tête. Heureusement, il existe des outils qui le font pour moi :)

Cependant - si vous savez que / 24 correspond à 8 bits pour les hôtes (et 24 bits pour les réseaux), alors je sais que / 23 me donne un bit supplémentaire qui double le nombre d'hôtes.


6



-1 Désolé, mais mentionner des classes en dehors d'une référence "historique" est inapproprié de nos jours. Ils ne sont pas "tombés à la mode", ils ont été officiellement déconseillés par la RFC 1519 en 1993. Ils sont déroutants et causent beaucoup d'idées fausses. - Chris S
Certaines implémentations de protocoles de routage dynamiques résument des limites classées, il est donc utile de les connaître. - Ben


Bien que ce qui précède soit correct (désolé, TL; DR), le calcul des sous-réseaux cause toujours beaucoup de problèmes à de nombreux administrateurs de réseau. Il existe en fait un moyen très simple de calculer un sous-réseau, vous pouvez le faire la plupart du temps dans votre tête et vous avez très peu de choses à mémoriser. Pour la plupart des applications, il n'est même pas nécessaire de comprendre la représentation binaire, bien que cela soit utile pour une compréhension complète du sous-réseau. Ici, je ne parlerai que d’IPv4; IPv6 n'entre pas dans le cadre de cette discussion.

Rappelez-vous ceci:

Il y a trois points essentiels à retenir: tous les sous-réseaux sont basés sur des puissances de deux et il existe deux nombres clés: 256 et 32. Plus d'informations à ce sujet plus tard.

Premièrement, regardons un tableau contenant des puissances de 2:

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256

Calculer des puissances de 2 est facile: chaque augmentation entière de la puissance double le résultat. 1 + 1 = 2, 2 + 2 = 4, 4 + 4 = 8, 8 + 8 = 16, etc. Le nombre total d'adresses dans un sous-réseau doit toujours être une puissance de 2.

Comme chaque octet d’un sous-réseau IPv4 passe à 256, 256 est un nombre très important


3



merci.Mais je suis encore flou sur la façon dont le PC utilise le masque de sous-réseau. Quand une application sur un PC veut envoyer des données, elle les encapsule dans un paquet. Le masque de sous-réseau détermine-t-il comment un paquet est encapsulé? Par exemple, si le PC voulait envoyer un paquet sur le réseau local, il utiliserait une trame Ethernet. en.wikipedia.org/wiki/Ethernet_frame et si elle voulait en dehors du réseau utiliserait-elle un paquet TCP en.wikipedia.org/wiki/… ? - aquagremlin
En gros, je ne sais pas comment un ordinateur détermine où envoyer ses données. Le réseau Ethernet est comme un bus, il va partout. Envoyer un paquet via la prise Ethernet d'un ordinateur est un événement générique. C'est pourquoi le paquet lui-même doit déterminer qui y répond. Un paquet destiné à être capté par un périphérique local (commutateur ou autre ordinateur sur le réseau local) doit être différent du paquet qui sera capté par un routeur. - aquagremlin
Cela se produit sur une couche sous TCP. Chaque périphérique a une adresse matérielle (MAC) associée à une adresse IP dans la table ARP de chaque périphérique. Ceci est construit par la découverte. Lorsqu'un paquet est destiné à un hôte du réseau local, il est étiqueté avec le MAC du périphérique de destination. Lorsqu'un paquet est destiné à un hôte distant, il est étiqueté avec le MAC du routeur sur le réseau local. Lorsqu'il passe à travers le routeur, le MAC est supprimé et ensuite étiqueté avec le MAC du routeur de saut suivant. Le sous-réseau définit simplement la portée du réseau local. (C'est la version simple <500 caractères.) - Jonathan J


J’estime également qu’il devrait au moins être fait mention des NAT, car ils sont si couramment utilisés dans les réseaux modernes à la place des sous-réseaux, notamment à cause de l’épuisement des adresses IPv4. (En outre, lorsque j'ai appris pour la première fois sur les sous-réseaux, j'étais très confus quant à la relation entre les sous-réseaux et les réseaux créés par les routeurs WiFi).

La traduction d'adresses de réseau (NAT) est une technique (généralement) utilisée pour créer des réseaux privés en mappant un espace d'adressage (IP: Port) sur un autre. Cela sert principalement à créer un réseau privé de plusieurs adresses IP privées derrière une adresse publique, par exemple, dans les routeurs Wifi, par des organisations (comme une université ou une entreprise), ou parfois par des fournisseurs de services Internet.

La traduction d'adresse réelle est faite de manière transparente dans les nœuds compatibles NAT, généralement les routeurs. Cela peut prendre de nombreuses formes: Cône complet, Adressage restreint, Port restreint, etc. ou une combinaison de ces éléments, qui détermine la manière dont les connexions sur le nœud peuvent être initiées.

Tous les détails peuvent être trouvés sur Wikipédia, mais par exemple considérons un routeur Wifi avec 2 appareils connectés. L’adresse IP publique du routeur est 10.9.20.21/24et l'adresse IP des périphériques (IP privées) sont A: 192.168.0.2, B: 192.168.0.3 et celui du routeur est R: 192.168.0.1. Donc si A veut se connecter au serveur S: 10.9.24.5/24, (qui est en fait sur un sous-réseau différent avec le routeur ici):

  1. A envoie un paquet IP à R(qui serait la passerelle par défaut) avec l'IP source 192.168.0.2, port src (par exemple) 14567et adresse IP de destination: 10.9.24.5 (Bien que le port fasse en réalité partie de l'en-tête TCP).
  2. Le routeur (compatible NAT) mappe le port 14567 à l'appareil A et change la source sur le paquet IP en 10.9.20.21(qui est l'IP publique du routeur). Ceci contraste avec les sous-réseaux décrits ci-dessus, où les paquets IP ne sont en réalité jamais modifiés.
  3. S reçoit la série de paquets TCP (avec src IP: 10.9.20.21, src Port: 14567) et envoyer des paquets de réponse avec ces valeurs dans les champs de destination.
  4. R vérifie le port de destination, qui est 14567 et transmet le paquet à A.
  5. A reçoit le paquet de réponse.

Dans la situation ci-dessus, si B essayé d'ouvrir une connexion sur le même port source (14567), il serait mappé sur un autre port par R(et le port du paquet sortant changé) avant d’envoyer à S. C'est-à-dire qu'il y aurait également une traduction de port au lieu de simplement IP.

Deux choses à noter ici:

  1. En raison de cette traduction d'adresse, il est souvent impossible d'établir une connexion avec des périphériques du réseau privé sans utiliser certaines techniques spéciales.
  2. La restriction sur le nombre total de connexions TCP d'un même périphérique à un serveur (65536 = 2 ^ 16) s'applique désormais de manière collective à tous les périphériques situés derrière le NAT, sous la forme NAT utilisée ci-dessus.

1