49 votes

Pourquoi les masques de sous-réseau sont-ils importants pour l'ordinateur individuel sur le réseau ?

Je comprends comment les masques de sous-réseau sont utilisés pour diviser un réseau en sous-réseaux, mais pourquoi chaque ordinateur du réseau doit-il connaître le masque de sous-réseau et pas seulement le routeur ?

Je pourrais le comprendre si chaque ordinateur était physiquement connecté à l'autre par un fil, mais tous les paquets doivent de toute façon passer par le routeur.

Supposons que je dispose d'un ordinateur sur un réseau 192.168.0.0/255.255.255.0 qui a l'IP 192.168.0.1 .

Si cet ordinateur tente d'atteindre un ordinateur situé en dehors du sous-réseau, disons 192.168.1.1 Le routeur identifie que l'adresse IP est en dehors de la plage IP du sous-réseau et, au lieu de la transmettre sur le sous-réseau, il la transmet au réseau auquel il est connecté (peut-être un autre routeur).

79voto

James Mertz Points 390

Vos hypothèses de départ ne sont pas tout à fait correctes. Ce que vous appelez un "routeur" est deux appareils en un : un routeur à deux ports connecté en interne à un routeur à plusieurs ports, un routeur à deux ports connecté en interne à un routeur à plusieurs ports. Commutateur Ethernet . (Voici un exemple diagramme .)

Cela signifie que les ordinateurs sont directement connectés au niveau 2 et peuvent s'envoyer des paquets les uns aux autres sans passent par le cœur du routeur - ils sont simplement relayés entre les ports par la puce du commutateur. (Le routeur a son propre "port" dans le commutateur).

Ainsi, si vous examinez les paquets à l'aide de Wireshark, vous constaterez qu'ils utilisent directement leurs adresses MAC respectives, alors que les paquets "extérieurs" ont toujours pour destination l'adresse MAC du routeur.

(Je suppose que vous parlez des "routeurs sans fil" que l'on trouve dans la plupart des foyers et qui sont la cause habituelle de ce genre de questions. Un réseau plus important aurait un séparer routeur avec un port par sous-réseau, et quelques commutateurs séparés (peut-être un commutateur principal plus un par étage/pièce), et plusieurs dizaines d'ordinateurs connectés à ces commutateurs).

C'est à peu près la même chose pour les réseaux Wi-Fi, sauf que le terme "commutateur" est remplacé par "pont sans fil" ou "point d'accès". Dans les deux cas, les ordinateurs connectés peuvent s'envoyer des paquets directement les uns aux autres au niveau de la couche 2, sans passant par le routeur.


Commentaires :

Lorsque j'ai parlé de routeur, je voulais en fait dire commutateur. C'est une erreur. Ce que je veux dire, c'est que chaque ordinateur d'un sous-réseau n'est pas connecté à un autre, mais plutôt à un commutateur, qui peut alors transmettre les paquets à la bonne destination. Une trame Ethernet ne contient pas le masque de sous-réseau, car le commutateur le connaît déjà et n'en a donc pas besoin pour effectuer la commutation correcte.

Là encore, c'est faux. Les commutateurs n'ont pas cette connaissance ; leur noyau de commutation travaille à la couche 2 et ne sait pas n'importe quoi sur l'IP - il transmet les trames Ethernet en se basant uniquement sur le champ "adresse MAC de destination".

Par conséquent, les hôtes ont besoin du masque de sous-réseau pour déterminer l'adresse MAC à utiliser comme destination :

  • Si l'homologue se trouve dans le même sous-réseau, il est supposé être en lien par définition - la trame Ethernet aura donc pour destination le MAC de l'homologue.

  • Pour les pairs à l'extérieur le sous-réseau, la trame Ethernet aura le nom de l'utilisateur. passerelle MAC comme destination.

(Ceci s'applique à la configuration par défaut. Certains réseaux spéciaux modifient cette configuration - par exemple, la plupart des systèmes d'exploitation permettent d'ajouter des routes "on-link" pour des sous-réseaux supplémentaires ; inversement, certains commutateurs peuvent être configurés pour usurper les réponses ARP de sorte que même le trafic "on-link" est forcé de passer par la passerelle).

32voto

jcbermu Points 16624

Comment un ordinateur peut-il savoir si un adresse de destination est dans le même sous-réseau que dans un autre ?

Vérification de la adresse locale et le masque de sous-réseau .

Prenons quelques exemples :

Si mon ordinateur a l'IP 192.168.0.1 et le masque est 255.0.0.0 cela signifie que toute adresse de 192.0.0.0 à 192.255.255.255 se trouve dans le même sous-réseau. Les paquets destinés à tous ces autres ordinateurs n'ont pas besoin de passer par le routeur, ils peuvent être envoyés directement. Envoyez un paquet ARP pour obtenir l'adresse MAC de l'ordinateur de destination, puis envoyez le paquet.

Mais si mon ordinateur a l'IP 192.168.0.1 et le masque est 255.255.255.128 les ordinateurs du même sous-réseau ont l'adresse IP suivante 192.168.0.0 à 192.168.0.127 seulement. Ils peuvent être joints directement (envoi d'ARP, recherche d'adresse MAC, etc.). Toute autre adresse, par exemple 192.168.0.200 doit être atteint en passant par le routeur.

12voto

UltimateBrent Points 6167

Ce qui n'est pas évident dans le domaine de l'IP, c'est que chaque dispositif IP est lui-même un routeur .

On peut le voir sur un PC normal avec la commande "route print". Vous êtes connecté à deux réseaux : votre segment Ethernet ou wifi local, et le réseau localhost. Chaque paquet doit faire l'objet d'une décision quant au réseau sur lequel il doit être placé.

Cela devient plus évident si vous placez votre ordinateur sur deux réseaux, disons un réseau "public" et un réseau "privé". Vous avez alors absolument besoin du masque de sous-réseau pour décider sur quel réseau envoyer le paquet.

De nombreuses personnes découvrent accidentellement qu'un PC doté d'une seule connexion réseau peut fonctionner avec un sous-masque mal configuré : elles finissent par tout envoyer à la passerelle.

7voto

Cédric Points 164

Je vois que cela est mentionné dans d'autres réponses, mais je pense que cela pourrait être plus clair : Sur les ordinateurs dotés de plusieurs interfaces réseau, le masque de sous-réseau peut être utilisé pour déterminer automatiquement l'interface physique à utiliser. envoyer Le trafic IP est basé sur l'adresse IP de destination.

Si vous envoyez un paquet à un appareil du réseau local connecté à l'une des interfaces, pour savoir sur quelle interface l'envoyer (si vous n'avez pas configuré de route explicitement), l'ordinateur peut vérifier les interfaces pour voir si masque_de_sous_réseau & ip_de_destination == masque_de_sous_réseau & ip_d'interface (par & Je veux dire bitwise-and et par == Je veux dire affirmer l'égalité), et s'il y a une correspondance, choisir cette interface.

De cette façon, si vous avez par exemple.. :

  • Interface A avec 192.168.1.42/24
  • Interface B avec 10.0.0.15/24
  • Interface C avec 192.168.2.97/24

Si vous envoyez un paquet à 192.168.2.123 et que vous n'avez pas de route établie, il est possible de déterminer que l'interface C doit être utilisée parce que 255.255.255.0 & 192.168.2.123 == 255.255.255.0 & 192.168.2.97 .

Cela ne serait pas possible si le masque de sous-réseau n'était pas connu, et il faudrait donc établir une route pour chaque adresse IP à laquelle vous envoyez des données.

6voto

Alan Estes Points 11

TCP/IP aurait pu être conçu comme vous le suggérez : les nœuds feuilles enverraient tout au routeur, qui le transmettrait à la cible, qui pourrait se trouver sur le même sous-réseau que l'expéditeur.

Mais cette conception ne serait pas optimale, pour deux raisons :

  1. Il utilise plus de bande passante : chaque paquet entre des appareils situés sur le même sous-réseau doit être transmis deux fois : une fois de l'expéditeur au routeur, et une autre fois du routeur au destinataire. Sur les réseaux où le routeur est également le commutateur, cela ne représente en fait aucune bande passante supplémentaire, puisque les paquets devaient de toute façon passer par le commutateur. Mais toutes les technologies de réseau ne fonctionnent pas de cette manière. La conception originale d'Ethernet était une technologie de bus, sans commutateur central ni répéteur.

  2. Cela augmente la charge sur le routeur. Même si le routeur est également le commutateur, cela représente un peu plus de travail car il doit passer à la mise en œuvre du routage de la couche 3, au lieu de la commutation de la couche 2, plus simple.

La philosophie générale qui sous-tend la conception du TCP/IP est que les nœuds finaux sont des dispositifs intelligents et qu'ils sont donc censés pouvoir effectuer une partie du travail. Ils n'ont pas besoin de connaître la topologie complète du réseau comme le font les routeurs de l'épine dorsale, mais ils en savent suffisamment sur l'environnement local pour prendre en charge une partie de la tâche initiale de routage local-vers-distance. La mise en œuvre de ce routage initial simple ne nécessite pas beaucoup de code.

En outre, les appareils qui ne sont pas des routeurs ne se trouvent pas nécessairement sur un seul sous-réseau. Vous pouvez facilement avoir plusieurs cartes réseau dans un PC - beaucoup ont à la fois l'Ethernet et le WiFi. Chacune d'entre elles peut être connectée à un sous-réseau différent, et les adresses ainsi que les masques de sous-réseau sont utilisés pour déterminer la carte réseau à utiliser. Si vous utilisez des machines virtuelles, il est probable qu'un sous-réseau virtuel les relie au système hôte.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X