2009-11-19 3 views
6

Quels sont les effets de la définition incorrecte du masque de réseau? J'ai une application C++ qui définit le masque de réseau d'un périphérique. Si le masque de réseau n'est pas correctement défini, tftp ne semble pas fonctionner correctement. Pourquoi cela arriverait-il? Quels autres problèmes se produisent lorsque le masque de réseau n'est pas correctement défini pour un périphérique/PC?Quels sont les effets de la définition incorrecte du masque de réseau?

+2

Quiconque a fait une descente s'il vous plaît laisser un commentaire pour downvote. Je voudrais corriger/expliquer tout ce qui a causé la downvote. Merci. – zooropa

+0

@zooropa: malheureusement, c'est une pratique courante d'avoir des "votes par le bas" ici ... – jldupont

+0

Je promets de ne pas flamber/riposter. Si vous laissez le commentaire downvote comme une réponse ci-dessous, je vais même upvote! Je pense que les commentaires downvote sont tout aussi importants que les autres commentaires et réponses. Les choses peuvent être apprises d'eux aussi! Je suis allé sur meta.stackoverflow.com et j'ai vu une question sur les commentaires downvote. Jeff Atwood a un commentaire à ce sujet. http://meta.stackexchange.com/questions/135/encouraging-people-to-explain-down-votes/2373#2373 – zooropa

Répondre

9

Bien que cette question concerne probablement plus les réseaux IP que la programmation, c'est un sujet difficile pour de nombreux développeurs. Le masque de réseau délimite l'adresse de l'hôte (votre PC ou votre serveur) et l'adresse réseau (la partie de l'infrastructure de réseau logique dans laquelle votre système est installé). Les deux parties sont utilisées pour fournir le paquet de données au bon périphérique. L'adresse réseau est obtenue par ANDing le masque de réseau avec l'adresse IP. Considérez le scénario suivant:

IP Address: 10.0.1.1 
Netmask: 255.255.0.0 

La partie adresse hôte de l'adresse IP pour notre PC est 1.1, le PC sait que toutes les adresses hôtes à partir de 10,0. sont locaux pour cela. Toutes les adresses qui commencent alors 10.1, etc, ne sont pas 'locales' et devront être transmises à un routeur. Si vous avez un autre dispositif destiné à être sur le même réseau qui est:

IP Address: 10.0.2.1 
Netmask: 255.255.255.0 

Ici, le masque de réseau est mauvais pour notre exemple de configuration, cet appareil va maintenant voir l'adresse de réseau 10.0.2 et l'adresse hôte comme 1, s'il essaie de communiquer avec 10.0.1.1, il verra une adresse réseau de 10.0.1! Non local et donc le référera au routeur par défaut pour le transfert. Si le masque de réseau a été correctement défini (c'est-à-dire le même que le premier exemple, en supposant que c'est le bon paramètre pour votre réseau), le second verra le premier comme local, ie sur le réseau 10.0 et ne tentera pas de transmettre le paquet un routeur.

De nombreux protocoles vont heureusement faire face à cela, mais tftp est destiné à fonctionner dans un seul réseau et échouera donc car il ya une perception que la cible est sur un réseau différent.

Cela peut ne pas décrire votre situation exacte, mais j'espère que l'exemple démontre le principe important que la configuration est importante, vous ne pouvez pas avoir un environnement configuré de manière inexacte et vous vous attendez à ce qu'il fonctionne.

6

Le masque de réseau détermine les adresses IP locales (non routées); Les adresses IP en dehors de cette plage passent par le routeur. Si le masque de réseau est faux, le programme essaie d'accéder directement aux sites où il doit passer par le routeur, ou vice versa.

5

Le masque de réseau définit quelle partie de l'adresse IP est utilisée comme adresse pour le réseau et quelle partie est utilisée pour les postes de travail.

Premier exemple:

IP1: 192.168.20.4 
IP2: 192.168.192.4 
NM: 255.255.0.0 

Les deux adresses IP sont dans le même filet. Ils peuvent communiquer entre eux sans avoir besoin d'un routeur. C'est parce que les adresses IP résulteront dans le même bitmask quand vous ou avec le masque de réseau.

Deuxième exemple:

IP1: 192.168.20.4 
IP2: 192.168.192.4 
NM: 255.255.128.0 

Maintenant, les deux adresses IP sont dans des réseaux différents parce que quand vous ou les adresses IP avec le masque de réseau, le masque de bits résultant sera différent et ils ne seront pas en mesure de communiquer entre eux sans un routeur qui achemine entre les deux réseaux.

Vous pouvez tester cela par vous-même avec ipcalc.

1

Les implications possibles du masque de réseau désadapté sont expliquées here. En résumé:

  1. L'hôte est susceptible de construire la table de routage de manière incorrecte.
  2. L'hôte manquera certains paquets de diffusion et n'enverra pas correctement les diffusions.

Mis-fonction de TFTP est presque certainement causée par la première raison. Cela affecte tout autre protocole IP de la même manière.

D'autres réponses ne mentionnent que le premier problème (ce qui est OK, car le second est plutôt marginal). Notez que ce n'est pas le masque de réseau de l'interface elle-même qui détermine comment les paquets IP seront acheminés - c'est le sous-système de routage de l'hôte; mais le masque de réseau est normalement utilisé pour construire la table de routage.

Questions connexes