Ceci est une question canonique sur les sous-réseaux IPv4.
Apparenté, relié, connexe:
Comment fonctionne le sous-réseau et comment le faites-vous à la main ou dans votre 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 le répartir?
- Si on me donne un masque de réseau, comment savoir quelle est la portée du réseau?
- Parfois, il y a une barre oblique suivie d'un nombre, quel est ce nombre?
- Parfois, il existe 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?
networking
subnet
tcpip
ipv4
Kyle Brandt
la source
la source
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 à 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 devez vraiment comprendre comment le petit compteur kilométrique "bascule" à mesure que le nombre qu'il compte augmente. Cela correspond exactement au fonctionnement d'un compteur kilométrique décimal 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, cochez-la en comptant à voix haute jusqu'à ce que vous l'ayez converti 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 calcul 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é.
Convertir les valeurs entre les nombres binaires et décimaux 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 l'emplacement suivant à gauche, entrez le double de la valeur dans l'emplacement situé à droite ("2" dans le prochain, "4" dans le prochain) et continuez jusqu'à ce que tous les emplacements 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.
Transcrivez les bits du nombre binaire sous les slots, comme suit:
Maintenant, ajoutez quelques symboles et calculez la réponse au problème:
En faisant tous les calculs, vous devriez trouver:
Ç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. Il s'agit du 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:
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 demandez-vous: "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?" Donc, vous écrivez un "1" en dessous de "64", puis soustrayez 64 à 90 et écrivez ce qui précède "32" (26).
Lorsque vous arrivez à "32", cependant, vous trouvez que 32 n'est pas supérieur ou égal à 26. Dans ce cas, écrivez un "0" sous "32", copiez le nombre (26) de ci-dessus 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:
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 fichiers binaires en nombres décimaux 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 numéroté "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", 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 et un masque de sous-réseau uniques. 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, il est assez facile d'extraire l'ID hôte et l'ID réseau d'une adresse IP et d'un masque de sous-réseau.
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):
Ecrivez également le masque de sous-réseau en binaire:
É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:
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:
De même, en utilisant le masque de sous-réseau pour "masquer" les bits couverts par des 0 dans l'adresse IP (en remplaçant les bits qui ne sont pas "masqués" par des 0), un routeur peut extraire l'ID d'hôte:
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 apprendre à moins que vous n'ayez le malheur de vous servir d'anciens équipements ou d'anciens protocoles (comme 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:
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:
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 identifiant 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:
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.
En comparant cela aux entrées de notre table de routage:
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 le paquet puisse être acheminé dès qu’une correspondance est trouvée. 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. 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 avant dans l’immeuble que la réception et doit donner la pizza à quelqu'un d’autre pour le livrer 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:
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:
Dans le joli art ASCII, le réseau ressemble à ceci:
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. Par conséquent, le routeur A renverra 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:
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 remettre 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:
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 au 192.168.20.13 arriverait au périphérique de destination au 192.168.30.46, mais toute réponse que 192.168.30.46 tenterait de renvoyer serait 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. Veillez toujours à ce que le trafic circule dans les deux sens lorsque vous songez à la communication sur les réseaux informatiques.
Vous pouvez faire beaucoup de kilométrage sur des routes statiques. Les protocoles de routage dynamique 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 fait être configurées avec des routes statiques. L’utilisation de protocoles de routage dynamiques sur des routes statiques présente toutefois un grand avantage: les protocoles de routage dynamiques peuvent modifier dynamiquement la table de routage en fonction des conditions du réseau (utilisation de la bande passante, interface "en panne", etc.) et, de ce fait, en utilisant une interface dynamique. Le protocole de routage peut aboutir à une configuration qui "achemine" des pannes ou des goulots d'étranglement dans l'infrastructure réseau. (Cependant, les protocoles de routage dynamiques sortent largement du cadre de cette réponse.)
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!
Il serait intéressant 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:
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 FAISONS savons 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 du tableau.
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 les différentes parties de la ville et pour séparer les différents types d'utilisation des sols (industrielle, résidentielle, 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 des sous-réseaux 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. Toutefois, à 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 fil (ou sans fil, 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 du 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 en attente d'impression autorisés leur envoient des travaux. En limitant le trafic autorisé à circuler sur le sous-réseau du serveur d'impression, les utilisateurs ne peuvent pas configurer leur ordinateur pour communiquer directement avec les périphériques du 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 attaché à 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 la manière dont un paquet doit être livré ou non, 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 très préoccupés par la charge utile des paquets, alors que les routeurs ignorent généralement les charges utiles et ne livrent que 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 telle sorte 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).)
la source
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:
Quel est le bon moyen de décomposer 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:
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 disposez de 8 bits de masque de sous-réseau pour "jouer avec" (les 8 bits restants de l'adresse IP 192.168.40.0/24 non 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 libre (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 séparant en deux réseaux:
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. Comme ce bit peut être nul ou 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:
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:
Le dernier hôte valide dans chaque réseau sera l'ID d'hôte avec chaque bit, à l' exception du bit le plus à droite, défini sur "1":
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:
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 est "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 peu plus de masque de sous-réseau nous donne deux autres réseaux:
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 suffisamment d’adresses pour nos serveurs et nos commutateurs! Prenons des notes:
Cette technique est appelée masquage de sous-réseau de longueur variable (VLSM) et, si elle est correctement appliquée, donne aux "routeurs principaux" 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 avez 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 d’excellents exemples, mais c’est un gaspillage d’espace d’adresse. En général, un réseau / / 30 ou un / 31 (voir http://www.faqs.org/rfcs/rfc3021.html pour plus de détails sur la façon dont le travail de / 31 - ils dépassent certainement le cadre de cette réponse) le réseau est utilisé sur liens qui sont strictement point à point entre deux routeurs.
la source
0
- réseau est représenté par00000000
. Le deuxième sous-réseau est128
ainsi10000000
et le troisième sous192
- réseau est représenté par11000000
, etc. Continuez à compter à rebours pour trouver de nouveaux sous-réseaux.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.
Donc, si vous imaginez que chaque 1 est un espace réservé pour une valeur (toutes les valeurs binaires sont des puissances de deux)
Donc ... 100000 = 32. Et 10000000 = 128. ET 11111111 = 255.
Quand je dis, "j'ai un masque de sous-réseau de 255.255.255.0", je veux vraiment dire, "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
En binaire comme ça
Regardez à nouveau l'exemple binaire. Remarquez comment j'ai dit que les trois premiers octets sont utilisés pour le réseau? Remarquez comment la partie réseau est tout? C'est tout ce que sont les sous-réseaux. 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 y a un autre petit truc: vous devez soustraire 2 adresses hôtes 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.
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
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
Maintenant que nous avons choisi un / 26, commençons à allouer des hôtes. Un petit calcul simple:
Nous avons 6 bits à allouer dans chaque réseau pour les hôtes. Rappelez-vous qu'il faut soustraire 2 pour chaque réseau.
Nous devons maintenant savoir où vont les hôtes. Retour au binaire!
De cette façon, vous pouvez calculer le sous-réseau entier.
Caractères génériques Un masque de caractères génériques est un masque de sous-réseau inversé.
Plus loin
Google pour les termes "super-réseau" et "VLSM (masque de sous-réseau de longueur variable)" pour les sujets plus avancés.
Je peux voir maintenant que j'ai mis trop longtemps à répondre ... soupir
la source
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)
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 devaient 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 que cette restriction ait été assouplie, les protocoles de routage antérieurs (par exemple, RIPv1 ) n’annoncaient pas 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 liaisons inter-routeurs avec / 30 masques, tous 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é à utiliser 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 améliorations connexes nous ont permis d’aller au-delà des limites susmentionnées.
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:
Pourrait être divisé en:
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:
Peut être agrégé / résumé avec un seul préfixe:
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:
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 vers le sous-réseau). Cela laisse 254 adresses IP utilisables sur ce sous-réseau. ((2 ^ 8) - 2)
la source
Plages de réseau: les réseaux sont toujours référencés par 2 chiffres: 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 elle est distribuée par l'ICANN lorsque vous demandez une plage d'adresses IP réseau. Si nous ne l'avions pas, personne ne pourrait faire la différence entre mon réseau et AT & Ts. Ainsi, alors 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 division - la première partie est gérée par les personnes du réseau, la seconde partie m'appartient pour que je 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 FAI, 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 ... bien que je sache, un CIDR / 24 est l’équivalent de l’ancien réseau de classe C, et un / 16 est une classe B et un / 8 est une classe A ... Je suis toujours perplexe à essayer de calculer un / 22 po ma tête. Heureusement, il existe des outils qui le font pour moi :)
Toutefois, si vous savez que / 24 correspond à 8 bits pour les hôtes (et 24 bits pour les réseaux), je sais que a / 23 me donne un bit supplémentaire qui double le nombre d'hôtes.
la source
Je vais poser et répondre à quelques questions connexes en chemin:
255.255.255.0
si souvent?192.168.0.1
?127.0.0.1
?Pourquoi de tels nombres étranges - 255, 192, 168, 127?
8 + 8 + 8 + 8 bits décimaux en pointillés
Les adresses Internet telles que 194.60.38.10 utilisent la notation décimale à point pour séparer 32 bits en 8 + 8 + 8 + 8 bits. Décimal en points signifie convertir † chaque nombre en binaire, puis le mettre à gauche avec
0
'.Par exemple
.60.
→ 60 = 32 + 16 + 8 + 4 →111100
→.00111100.
.Ainsi, 194.60.38.10 correspond à une virgule décimale pour l'adresse 4 × 8 = 32 bits
11000010.00111100.00100110.00001010
, car 38 →100110
, 10 →1010
, etc. 194 nécessite tous les 8 bits; les autres sont rembourrés.Une fois que vous pensez à 255, 192 et 127 en binaire 8 bits, vous comprendrez mieux pourquoi certains nombres décimaux sont si courants:
11111111
11000000
_1111111
10000000
Ces nombres décimaux représentent des blocs visuels pratiques tels que ■■■■■■■■, ■ □□□□□□ et □ ■■■■■■■. Donc vous n'avez jamais vu 256 = 2⁹ à cause de la limite de 8 bits et 127 = 128−1 = 2⁸ − 1 est le retournement de bit d'une puissance de deux et les puissances de deux sont
10………00000
dans binaire.10101000
Masques de sous-réseau: Ce qui est à moi est à moi + Ce qui est à vous est à vous
Les masques de sous-réseau divisent ensuite chaque adresse Internet 32 bits en un ID réseau et un ID hôte. Alors que les adresses Internet peuvent avoir n'importe quel mélange de 1 et de 0, les masques de sous-réseau commencent par seulement 1 et se terminent par 0.
Le noircissement des 8 + 8 + 8 = 24 bits et la suppression des 8 bits définitifs permettent de scinder l'IP. ■■ □□□□ ■ □ | □ □ ■■ □■ □ □ □ □ ■ ■ ■ ■ □ | □□□□ ■ □ ■ □ en deux parties:
Si le propriétaire du sous-réseau (par exemple OmniCorp ) souhaitait davantage d'adresses IP internes, il pourrait en acheter davantage (disons 8 + 8 = 16 bits) du côté droit du réseau, comme ceci:
De toute évidence, il existe un compromis entre l’espace adresse de 32 bits = 2³² = 4 294 967 296 options: si vous achetez plus d’ID réseaux (côté gauche), votre réseau interne dispose d’un plus grand nombre d’ID hôtes (côté droit).
Les gens bon marché ont donc un masque de sous-réseau de
255.255.255.0 = ■■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ | □□□□□□.
Même les gens les moins chers ont
255.255.255.128 = ■■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ | ■ □□□□□□
ou 255.255.255.192 = ■■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ | ■■ □□□□□.
Selon le folklore, ce n’était pas réellement Roger Miller, mais un humble administrateur système avec un masque 255.255.255.254 qui écrivait à l’origine de King of the Road , remplaçant «Je n’ai pas un grand sous-réseau» par «Je n’ai pas de cigarettes ”.
(Pourquoi les masques des plus humbles sont-ils remplis de chiffres aussi élevés? Parce que, comme le narrateur de Miller, les masques de sous-réseau comptent tout ce que vous n'avez pas .)
Que signifie le slash final après une adresse IP? (par exemple, 194.60.38.10/24)
Puisque les masques de sous-réseau (qui séparent «leurs» des «nôtres») commencent toujours par des
1
«s», et comme nous détestons résumer les pouvoirs de deux plus que nous ne détestons pas imaginer les pouvoirs de deux en premier lieu, quelqu'un a inventé CIDR (la barre oblique après une adresse IP).194.60.38.10/24 signifie "le sous-masque en a 24, le reste sont des zéros", donc
■■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ | □□□□□□□ avec 8 + 8 + 8 bits appartenant à «eux» et 8 bits appartenant à «nous».
Inverser l'hymne du hobo ci-dessus,
/31
est le compositeur/24
fait partie de la classe moyenne (255.255.255.0
= ■■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ | □□□□□□/16
est riche ■■■■■■■■ | ■■■■■■■■ | □□□□□□□□ | □□□□□□□/8
est super riche ■■■■■■■ | □□□□□□□□ □ □□□□□□□ □ □□□□□□□□/1
ou/0
serait l'IANA ou quelque chose.† Utilisez
bc -l; obase=10; 60
par exemple.la source
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:
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 va jusqu'à 256, 256 est un nombre très important et constitue la base du reste du calcul.
Dimensionnement du sous-réseau
Nous allons commencer par une question simple: "combien d'adresses dans un sous-réseau si le masque est 255.255.255.248?" Nous allons ignorer les trois premiers octets pour l'instant et regarder le dernier. Voici comment c'est facile: soustrayez 248 à 256. 256 moins 248 est égal à 8. Il y a 8 adresses disponibles (adresses de réseau et de diffusion comprise). L'inverse fonctionne également: "si je veux avoir un sous-réseau avec 16 adresses, quel sera le masque de sous-réseau?" 256 moins 16 est égal à 240. Le masque de sous-réseau sera 255.255.255.248.
Maintenant, si nous voulons développer au-delà de 256 adresses (historiquement, une "classe C"), cela devient un peu plus compliqué: si notre dernier octet est 0 et notre troisième octet est, par exemple, 240 (255.255.240.0), alors nous faisons le calcul sur le troisième octet et trouvons qu'il y aurait 16 adresses. Nous multiplions donc 16 par 256 (le nombre d'adresses dans le dernier octet) pour obtenir 4 096. Si les deux derniers octets sont égaux à 0 (par exemple 255.240.0.0), nous prenons le résultat de la soustraction du deuxième octet (nous dirons qu'il en a 16 de nouveau), mais multiplions par 256 (adresses dans le troisième octet), puis multiplions par 256 (adresses dans le dernier octet) pour obtenir 1 048 576 adresses. Aussi simple que ça! (OK, l’inverse est un peu plus difficile. Si nous voulons un sous-réseau avec 1 048 576 adresses, nous devons diviser ce nombre par 256 plusieurs fois pour obtenir un nombre que nous pouvons soustraire de 256.)
Adresse réseau
Maintenant que nous savons comment calculer le masque de sous-réseau, comment déterminer l’adresse réseau? C'est simple: il s'agit toujours d'un multiple du nombre d'adresses de notre sous-réseau. Donc, si nous avons 16 adresses dans notre sous-réseau, les adresses réseau possibles seront 0, 16, 32, 48, 64, etc. jusqu'à 240. (Notez que 0 est un multiple valide de tout nombre, de même que tout nombre 0 est égal à 0.)
Et, bien sûr, l’adresse de diffusion sera la dernière adresse de l’étendue. Donc, si nous avons 16 adresses dans notre sous-réseau et que nous avons choisi une adresse réseau de 10.3.54.64, l’adresse de diffusion sera (64 + 16-1 = 79) 10.3.54.79.
Notation CIDR
Alors, qu'en est-il de la notation CIDR? Comment traduire cela vers et à partir d'un masque de sous-réseau de style IPv4?
Rappelez-vous nos pouvoirs de deux? Eh bien, nous avons maintenant un autre numéro de clé à retenir que 256: 32. N'oubliez pas, la notation CIDR décrit le nombre de bits significatifs dans l'adresse IPv4, et une adresse IPv4 comporte 32 bits, soit 8 pour chaque octet. Donc, si nous avons un masque de sous-réseau de 255.255.255.240, cela correspond à 16 adresses. Si nous regardons notre tableau "puissances de 2" ci-dessus, nous voyons que 16 est deux au quatrième pouvoir (2 ^ 4). Nous soustrayons donc le nombre de puissance - 4 - de 32 et obtenons 28. Notre notation CIDR pour un masque de sous-réseau de 255.255.255.240, notre notation CIDR est / 28.
Et si on nous donne un CIDR de / 28, on soustrait ce (28) de 32 pour obtenir 4; relance 2 à cette (4ème) puissance (2 ^ 4) pour obtenir 16; puis soustrayez ce (16) de 256 pour obtenir 240; ou 255.255.255.240.
la source
Je pense également qu'il devrait au moins être fait mention des NAT, car ils sont utilisés si couramment dans les réseaux modernes à la place des sous-réseaux, en raison notamment de l'épuisement des adresses IPv4. (En outre, lorsque j'ai commencé à comprendre 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 des nœuds compatibles NAT, généralement des routeurs. Cela peut prendre de nombreuses formes: Cône complet, Adressage restreint, Port restreint, etc.
Des informations complètes peuvent être trouvées sur Wikipedia , mais par exemple considérons un routeur Wifi avec 2 appareils connectés. L'adresse IP publique du routeur est
10.9.20.21/24
et l'IP des périphériques (adresses IP privées Les) sontA: 192.168.0.2
,B: 192.168.0.3
et celle du routeur estR: 192.168.0.1
. Ainsi, si vousA
souhaitez vous connecter au serveurS: 10.9.24.5/24
(qui se trouve sur un sous-réseau différent du routeur ici):R
(qui serait la passerelle par défaut) avec l'adresse IP source192.168.0.2
, le port src (par exemple)14567
et l'adresse IP de destination:10.9.24.5
(bien que le port fasse en réalité partie de l'en-tête TCP).14567
sur le périphériqueA
et modifie la source du paquet IP en10.9.20.21
(adresse IP publique du routeur). Cela contraste avec le sous-réseau décrit ci-dessus, où les paquets IP ne sont en réalité jamais modifiés .S
reçoit la série de paquets TCP (avec src IP:,10.9.20.21
src Port:)14567
et envoie des paquets de réponse avec ces valeurs dans les champs de destination.R
vérifie le port de destination, qui est14567
et transfère le paquet àA
.A
reçoit le paquet de réponse.Dans la situation ci-dessus, si vous
B
tentez d'ouvrir une connexion sur le même port source (14567
), celle-ci sera mappée sur un autre port parR
(et le port du paquet sortant sera modifié) avant l'envoiS
. C'est-à-dire qu'il y aurait également une traduction de port au lieu d'une simple adresse IP.Deux choses à noter ici:
la source