Connessione diretta a un altro computer conoscendo solo l'indirizzo MAC?


13

Da quanto ho capito, ARP traduce un indirizzo IP in un indirizzo MAC, quindi il computer utilizza l'indirizzo MAC per stabilire una connessione diretta.

Se conosco già l'indirizzo MAC del computer a cui voglio collegarmi, è possibile connettersi direttamente ad esso (senza router)? C'è un esempio di questo?


Sicuro. Tuttavia, anche senza un router, è possibile assegnare gli indirizzi IP su ciascuna macchina singolarmente e utilizzare i protocolli IP tra di loro - utilizzando un hub o una connessione diretta .
svidgen,

Risposte:


12

Se conosco già l'indirizzo MAC del computer a cui voglio collegarmi, è possibile connettersi direttamente ad esso? C'è un esempio di questo?

È possibile connettersi a basso livello e inviare pacchetti ad altre macchine sulla stessa rete locale, ma sarebbe difficile sapere cosa inserire in tali pacchetti senza conoscere meglio i protocolli nei livelli superiori.

Ad esempio, ci sono protocolli di rete diversi dall'IP che funzionano su Ethernet e i driver che implementano questi protocolli fanno esattamente ciò che descrivi: si connettono a un livello basso senza conoscere un indirizzo IP (perché non esiste un indirizzo IP da sapere) e trasferire i dati.

Detto questo, gli indirizzi MAC non significano molto al di fuori dei limiti della rete locale, quindi sono necessari protocolli e router di livello superiore che li comprendano per comunicare con le macchine su altre reti.


1
Grazie. In che modo esattamente l'interfaccia di rete sa come connettersi all'altra interfaccia? Le interfacce inviano frame beacon come fanno i router wireless?
Colin

1
Non lo sa Questo è fondamentalmente il modo in cui funziona Ethernet. Quando un nodo sulla rete ha qualcosa da dire, prima ascolta per vedere se qualcun altro sta inviando qualcosa e, in caso contrario, mette semplicemente il messaggio sulla rete che chiunque può ascoltare. Se qualche altro nodo si avvia esattamente nello stesso momento, entrambi rilevano la collisione, smettono di parlare, attendono un po 'e riprovano.
Caleb,

1
@Colin: a livello MAC, un'interfaccia di rete può connettersi solo a interfacce nella stessa (sotto) rete. Per comunicare con macchine esterne alla rete locale, i router vengono utilizzati per trasferire pacchetti da una rete all'altra e per raggiungere la destinazione, più router possono trovarsi tra l'utente e la macchina remota.
Bart van Ingen Schenau,

1
Giusto. Quindi, come viene creata o definita una (sotto) rete? Tutti i computer devono connettersi allo stesso hub / switch / router? O c'è un modo per creare una rete senza di loro?
Colin,

@Colin Dipende dal livello fisico - a volte tutte le macchine sono collegate a un singolo hub, come in 10baseT e simili; a volte sono tutti collegati allo stesso filo fisico, come in 10base2, noto anche come "thin-net", a volte non sono affatto collegati ma parlano tutti allo stesso hub, come in WiFi. Ma ci sono molte diverse tecnologie di rete e i dettagli variano da uno all'altro, quindi sebbene Ethernet sia un buon modello da avere in testa, non immaginare che sia l'unico modo per fare le cose.
Caleb,

3

Una specie di.

L'indirizzamento IP è a un certo livello simbolico, di solito si basa su protocolli di rete di livello inferiore (con una struttura gerarchica inferiore) per completare effettivamente la trasmissione.

A livello IP, ogni macchina ha (almeno) un IP, in (almeno) una sottorete. Può anche (e solitamente ha) un "gateway predefinito" (ovvero un indirizzo IP attraverso il quale invia tutti i pacchetti che vanno in un posto diverso da una sottorete locale).

In astratto, un pacchetto destinato a una porta web assomiglia a qualcosa del tipo:

[intestazione ethernet] [intestazione ip] [intestazione tcp] [payload]

L'intestazione Ethernet contiene varie informazioni di controllo, inclusi gli indirizzi MAC di origine e destinazione sulla LAN.

L'intestazione IP contiene varie informazioni di controllo, come l'IP di origine e di destinazione e il protocollo incapsulato (TCP, in questo esempio).

L'intestazione TCP contiene varie informazioni di controllo, vari flag (quale parte della sessione è questa, qual è il numero di sequenza, le porte TCP di origine e di destinazione, ...)

Il payload è semplicemente trasmesso da TCP e "solo l'applicazione è importante".

L'ARP viene utilizzato quando qualcuno sulla rete locale desidera inviare un pacchetto IP, a un IP per cui non ha un indirizzo MAC ed è fondamentalmente una trasmissione a livello di Ethernet che dice "chi ha un indirizzo IP blah?".

La maggior parte delle macchine non ascolterà nulla per connessioni Ethernet pure, ma potresti comunque riuscire a mappare quel MAC su un indirizzo IP. In una LAN non commutata, devi semplicemente osservare i pacchetti, trovare qualcosa con un MAC di origine o di destinazione che è quello con cui vuoi parlare e analizzare l'IP.

Se la macchina ha un ascoltatore di livello ethernet di qualche tipo, potresti parlarne, ma non sarai in grado di parlarne dall'esterno della LAN locale, poiché i frame Ethernet destinati alla macchina non verranno raccolti su l'altro lato del router locale.


0

Questo post è piuttosto vecchio, ma non credo che abbia ottenuto la risposta corretta.

SE puoi connetterti al dispositivo di cui conosci il MAC sulla stessa rete (idealmente un cavo incrociato). È possibile assegnare un indirizzo IP al MAC e quindi accedere all'IP in questo modo:

I sistemi Microsoft Windows Windows richiedono il trattino "-" tra ogni cifra dell'indirizzo MAC (indirizzo Ethernet).

arp -s 192.168.1.2 00-80-77-31-01-07
ping 192.168.1.2

UNIX / Linux I sistemi UNIX e Linux richiedono i due punti ":" tra ogni cifra dell'indirizzo MAC (indirizzo Ethernet).

arp -s 192.168.1.2 00:80:77:31:01:07
ping 192.168.1.2

Affinché ciò funzioni, è necessario trovarsi sullo stesso segmento Ethernet (ovvero, non è possibile che vi sia un router tra te e il dispositivo con cui stai tentando di collegarti).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.