2009-11-19 15 views
6

Quali sono gli effetti dell'impostazione errata della maschera di rete? Ho un'applicazione C++ che imposta la maschera di rete di un dispositivo. Se la maschera di rete è impostata in modo errato, tftp non sembra funzionare correttamente. Perché dovrebbe succedere? Quali altri problemi si verificano quando la maschera di rete non è impostata correttamente per un dispositivo/PC?Quali sono gli effetti dell'impostazione errata della maschera di rete?

+2

Chiunque downvoted si prega di lasciare un commento per downvote. Vorrei correggere/spiegare qualunque cosa abbia causato il downvote. Grazie. – zooropa

+0

@zooropa: sfortunatamente, è una pratica comune avere "drive-by down-votes" da queste parti ... – jldupont

+0

Prometto che non mi fiderò/vendicherò. Se lasci il commento negativo come risposta qui sotto, lo inviterò anche a votarlo! Penso che i commenti negativi siano altrettanto importanti degli altri commenti e risposte. Le cose possono essere apprese anche da loro! Sono andato su meta.stackoverflow.com e ho visto una domanda sui commenti downvote. Jeff Atwood ha un commento su di esso. http://meta.stackexchange.com/questions/135/encouraging-people-to-explain-down-votes/2373#2373 – zooropa

risposta

9

Mentre questa domanda è probabilmente più sulle reti IP che la programmazione è un argomento stimolante per molti sviluppatori.

La maschera di rete delimita l'indirizzo host (il PC o il server) e l'indirizzo di rete (la parte dell'infrastruttura di rete logica in cui il sistema vive). Le due parti vengono utilizzate per consegnare il pacchetto di dati al dispositivo corretto. L'indirizzo di rete è ottenuto da ANDing sulla maschera di rete con l'indirizzo IP. Si consideri il seguente scenario:

IP Address: 10.0.1.1 
Netmask: 255.255.0.0 

La porzione di indirizzo host dell'indirizzo IP per il nostro PC è 1.1, in modo che il PC sa che tutti gli indirizzi di host di partenza 10.0. sono locali ad esso. Qualsiasi indirizzo che inizi 10.1, ecc., Non è "locale" e dovrà essere inoltrato a un router. Se si dispone di un altro dispositivo destinato ad essere sulla stessa rete che è:

IP Address: 10.0.2.1 
Netmask: 255.255.255.0 

Qui la maschera di rete è sbagliato per il nostro esempio di configurazione, questo dispositivo è ora di andare a vedere l'indirizzo di rete come 10.0.2 e l'indirizzo host come 1, se tenta di comunicare con 10.0.1.1 vedrà un indirizzo di rete di 10.0.1! Non locale e quindi lo invierà al router predefinito per l'inoltro. Se la maschera di rete è stata impostata correttamente (ovvero uguale al primo esempio, supponendo che sia l'impostazione corretta per la rete), il secondo dispositivo vedrebbe il primo come locale, ovvero sulla rete 10.0 e non tenterebbe di inoltrare il pacchetto a un router.

Molti protocolli faranno felicemente questo, ma tftp è destinato a operare all'interno di una singola rete e quindi fallirà in quanto vi è la percezione che l'obiettivo sia su una rete diversa.

Questo potrebbe non descrivere la situazione esatta ma spero che l'esempio dimostri l'importante principio che la configurazione è importante, non è possibile avere un ambiente configurato in modo impreciso e aspettarsi che funzioni.

6

La maschera di rete determina quali indirizzi IP sono locali (non indirizzati); Gli indirizzi IP al di fuori di tale intervallo passano attraverso il router. Se la maschera di rete è errata, il programma tenta di accedere direttamente ai siti in cui deve passare attraverso il router o viceversa.

5

La maschera di rete definisce quale parte dell'indirizzo IP viene utilizzata come indirizzo per la rete e quale parte viene utilizzata per le workstation.

Primo esempio:

IP1: 192.168.20.4 
IP2: 192.168.192.4 
NM: 255.255.0.0 

Entrambi gli IP sono nella stessa rete. Possono comunicare tra loro senza bisogno di un router. Questo perché gli indirizzi IP generano la stessa maschera di bit quando si usa la maschera di rete.

Secondo esempio:

IP1: 192.168.20.4 
IP2: 192.168.192.4 
NM: 255.255.128.0 

Ora entrambi gli IP sono in reti diverse, perché quando voi o gli indirizzi IP con la maschera di rete, la maschera di bit risultante sarà diverso e si suole essere in grado di comunicare tra loro senza un router che si dirama tra le due reti.

È possibile verificare questo da solo con ipcalc.

1

Le possibili implicazioni della maschera di rete non corrispondente vengono spiegate here. In breve:

  1. L'host è in grado di costruire la tabella di routing in modo errato.
  2. L'host mancherà alcuni pacchetti di trasmissione e non invierà correttamente le trasmissioni.

L'errata funzione di TFTP è quasi sicuramente causata dalla prima ragione. Agisce su qualsiasi altro protocollo IP allo stesso modo.

Altre risposte menzionano solo il primo problema (che è OK, poiché il secondo è piuttosto marginale). Si noti che non è la maschera di rete dell'interfaccia stessa che determina il modo in cui i pacchetti IP verranno instradati - è il sottosistema di instradamento dell'host; ma la maschera di rete viene normalmente utilizzata per la costruzione della tabella di routing.

Problemi correlati