Instradamento pacchetti router

leonardo.f

Utente Attivo
8
0
CPU
Intel Pentium 1.73GHz
HDD
70GB
RAM
1GB
OS
Ubuntu
Buongiorno a tutti, è la prima volta che scrivo su questo forum :).

Ho un dubbio circa le modalità con cui i pacchetti di dati vengono indirizzati in una rete provvista di un Router.

Ho due computer (uno con Linux e uno con Windows) ciascuno dei quali è collegato tramite un cavo di rete ad un router D-Link che consente l'accesso a internet.

Il computer Windows manda un pacchetto Ethernet, all'interno del quale è presente un "sotto-pacchetto" TCP/IP, avente:

MAC di destinazione (header Ethernet): MAC del computer con Linux
MAC di provenienza (header Ethernet): MAC del computer con Windows
IP di destinazione (protocollo IP): IP del sito Google
IP di provenienza (protocollo IP): IP del computer con Windows

Dato che il computer Windows è fisicamente collegato solo al router, immagino che il pacchetto arrivi al router D-Link.

A questo punto, che cosa dovrebbe succedere?

Io credevo che il Router si interessasse esclusivamente del pacchetto IP, tralasciando le intestazioni Ethernet: in tal caso il Router dovrebbe stornare il pacchetto a Google senza farlo giungere in alcun modo sul cavo di rete che collega il router stesso con il PC Linux.

Al contrario, avviando Wireshark sul PC Linux, posso tranquillamente vedere il pacchetto Ethernet e il suo contenuto.

Come mai?

Ringrazio in anticipo chiunque risponda.
 

appena_iscritto

Utente Attivo
505
2
CPU
t7600
HDD
200GB
RAM
2GB
GPU
Nvidia
OS
Vista Hp
Quello che descrivi non è propriamente possibile, o almeno non lo è con lo schema di indirizzamente fisico di cui parli. Dal pc con linux puoi leggere i frame(e quindi tutte le nPdu di livello superiore) scambiati tra altri host in 4 casi:
-presenza di un Hub(ma solitamente i router integrano switch 4 porte).
-connessione wifi che fisicamente è equiparabile ad un hub.
-switch appena avviato e quindi con MAC-table vuota.
-protocolli che utilizzano traffico broadcast, come l' arp.

Fatta questa premessa, spieghiamo come funziona l' intradamento del traffico in una lan e verso l' esterno:
Primariamente viene fatto l' anding tra l' indirizzo di destinazione e la propria maschera di rete. Nel caso il match sia positivo viene cercato nella propria arp-cache il mac dell' host destinatario oppure se assente viene effettuata una richiesta arp broadcast(quindi intercettabile da chiunque)per ricevere il mac.
Se l' anding non da risultato si ricorre al default gateway che solitamente è il router risolvendo il mac analogamente al caso precedente.
Una volta creato il frame, questi viene elaborato dallo switch che ne memorizza il mac sorgente(abbianandolo alla porta) e lo reinoltra su una delle porte(se il mac destination è noto su una specifica porta)oppure su tutte le interfacce(tranne quella di provenienza) se non esiste un riscontro(e qui è ancora possibile sniffare il traffico).
In questa fase non vengono toccati ne gli indirizzi fisici ne quelli logici
 

leonardo.f

Utente Attivo
8
0
CPU
Intel Pentium 1.73GHz
HDD
70GB
RAM
1GB
OS
Ubuntu
Ancora un dubbio...

Innanzitutto ringrazio per la risposta molto precisa.

Non mi è chiara ad ogni modo ancora una cosa.

Il pacchetto che viene inviato dal PC Windows ha come destinazione il MAC del PC Linux ma l'IP del sito Google perché nella ARP Table del PC Windows, a seguito di un attacco arp-poisoning, l'IP del Router (192.168.0.1) impostato come gateway predefinito risulta associato al MAC del computer Linux.

Pertanto immagino che il computer Windows che invia il pacchetto si comporti così:
1) Controlla, con un AND nella subnet mask che l'IP destinatario del pacchetto faccia parte della rete locale;
2) Dopo aver visto che l'IP non fa parte della rete locale, il PC Windows decide di inviare il pacchetto al Gateway;
3) Il PC Windows controlla nelle impostazioni di rete l'indirizzo IP del Gateway e trova che è 192.168.0.1 e fa una ricerca nella propria ARP-table che da come risultato il MAC del computer Linux (dal momento che l'ARP-table è avvelenata...)
4) A questo punto il PC Windows mette nell'intestazione Ethernet il MAC del computer Linux e nel "sotto-pacchetto" IP come destinazione lascia l'indirizzo IP di google
5) Il pacchetto viene spedito e arriva FISICAMENTE al router (infatti a livello fisico il compurer è connesso con un cavo SOLO al router)

Quello che non capisco è il modo con cui il router (la cui tabella ARP di collegamento tra MAC ed IP contiene dati corretti) sceglie di reindirizzare il pacchetto: il router infatti sembra stornare il pacchetto su un altro segmento di rete sulla base del MAC presente nell'intestazione Ethernet, quasi si comportasse come uno switch. E' normale che faccia così? e perché? Forse perché nel router è in realtà presente uno "switch" che entra in azione e reindirizza i pacchetti quando questi non hanno come MAC-destinazione quello del router?

Grazie ancora.
 
Ultima modifica:

appena_iscritto

Utente Attivo
505
2
CPU
t7600
HDD
200GB
RAM
2GB
GPU
Nvidia
OS
Vista Hp
Ecco ora hai chiarito perchè windows veda un MAC spoofato relativo al gateway.
Per risponderti alla domanda, ti dico che fai un errore comune a molti al quale ho parzialmente già risposto:
il router ha un' unica interfaccia lan che ha come indirizzo 192.168.0.1 (in questo caso), mentre le 4 porte che tu vedi non sono altro che uno switch ethernet. L' instradamento dei frame, in base al Mac è fatto dallo switch e non dal router che opera a livello 3 (eventualmente trasporto per questioni di NAPT e ottimizzazione dell' MSS).
 

leonardo.f

Utente Attivo
8
0
CPU
Intel Pentium 1.73GHz
HDD
70GB
RAM
1GB
OS
Ubuntu
Grazie mille, ora ho capito.
Quindi in pratica il pacchetto non arriva nemmeno al router ma si ferma allo switch che, vedendo che il MAC di destinazione non è quello del router, lo storna al PC Linux.
 

appena_iscritto

Utente Attivo
505
2
CPU
t7600
HDD
200GB
RAM
2GB
GPU
Nvidia
OS
Vista Hp
Il router non è altro che un host(con funzionalità specifiche) connesso allo switch(anche se il tutto è cablato in un unico package) e come tale ha un funzionamento paritario.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili