Cercando di capire il flusso di pacchetti IP


2

Quindi ho difficoltà a capire come viaggiano i pacchetti da una macchina all'altra. Di seguito ho inserito un esempio di Computer 1 che tenta di connettersi a Computer 2.

Computer 1  
IP: 192.168.1.11  
Subnet: 255.255.255.0  
Default Gateway: 192.168.1.1  
MAC: 00:00:00:00:00:aa

Router 1  
IP: 192.168.1.1  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:bb  

Router 2  
IP: 192.168.2.1  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:cc  

Computer 2   
IP: 192.168.2.1  
Subnet: 255.255.255.0  
Default Gateway: 192.168.2.12  
MAC: 00:00:00:00:00:dd

Se mi collegassi da Computer 1 a Computer 2 e seguissi il flusso di un pacchetto, credo che l'indirizzo di origine da ciò che l'informazione lascia il router 2 sarebbe 192.168.1.2 e l'indirizzo MAC di origine sarebbe 00: 00: 00: 00: 00 : cc. Da quanto ho capito, la destinazione rimane la stessa, ma la sorgente si aggiornerà man mano che la attraversa. È corretto o è qualcosa che mi manca?


Ho fatto una modifica agli indirizzi. Intendevo impostare il router 2 su 192.168.2.1, quindi il gateway predefinito del computer 2 era 192.168.2.1.
Joey

Risposte:


1

Accidenti. Questo è un po 'difficile considerando il tuo scenario.

Prima di tutto, il router 2 non dovrebbe condividere un'interfaccia con il router 1 che si trova anche sulle loro interfacce lato client.

Nel tuo esempio, tutti e 4 i dispositivi condividono lo stesso segmento LAN, che a parte si trova nell'intervallo di indirizzi IP non instradabile (modifica: attraverso "Internet") per la famiglia 192.168.x.y.

Un modo migliore sarebbe di pensarlo come segue:

Computer 1
IP: 192.168.1.100
Subnet: 255.255.255.0
Default Gateway: 192.168.1.1
MAC: 03:00:00:00:00:11

Router 1
IP: 192.168.1.1
Subnet: 255.255.255.0
MAC: 03:00:00:00:00:22
IP: 192.168.12.1
Subnet: 255.255.255.0
MAC: 03:00:00:00:00:33

Router 2
IP: 192.168.12.2
Subnet: 255.255.255.0
MAC: 03:00:00:00:00:44
IP: 192.168.2.1
Subnet: 255.255.255.0
MAC: 03:00:00:00:00:55

Computer 2
IP: 192.168.2.200
Subnet: 255.255.255.0
Default Gateway: 192.168.2.1
MAC: 03:00:00:00:00:66

Ignorare il fatto che il leader del MAC con un carattere di 03 esadecimale, è solo per correttezza per gli snob della rete là fuori. [EDIT] Ho dovuto modificarlo a 0x03 perché fosse assegnato localmente e globalmente unico.

Quindi quello che sta succedendo qui è: C'è un cavo dal Computer 1 collegato al Router 1. Questi due condividono la rete 192.168.1.x. C'è un cavo dal Router 1 al Router 2. Questi condividono la rete 192.168.12.x. C'è un cavo dal Router 2 al Computer 2. Questi condividono la rete 192.168.2.x.

Nel tuo articolo originale, tutti i 4 dispositivi avrebbero dovuto essere connessi allo stesso switch affinché funzionasse ... e in tal caso Computer 1 avrebbe parlato direttamente con Computer 2. Nota: per te mago di rete là fuori so che puoi fare il routing statico per forzare il funzionamento della configurazione di rete originale, ma non è quello che chiede questo utente ....

Ora vai alla tua domanda specifica.

Sei mezzo corretto. L'indirizzo MAC che Computer 2 vede è quello del Router 2. Nel mio esempio questo sarebbe MAC 03: 00: 00: 00: 00: 55. Tuttavia, l'indirizzo IP che vede è di Computer 1. Ecco come Computer 2 può rispondere al computer 1. Gli indirizzi IP sono, teoricamente, "universalmente unici".

Il modo in cui le reti funzionano, dato il tuo livello di intenti di conoscenza, è che gli indirizzi layer 2 (datalink / MAC-layer - in tutti gli ambienti Ethernet / IPv4) cambiano PER HOP. PER HOP è definito come "transito di un dispositivo di elaborazione di livello 3". Router e computer elaborano quasi sempre il livello 3. Gli switch possono elaborare il livello 3 ma tendono a lasciarlo da solo.

Quindi, dal momento che un messaggio va da Computer 1 a Computer 2, il flusso sembra:

AT HOP 1 - Tra Computer 1 e Router 1

SourceIP: 192.168.1.100 (Computer 1)
SourceMAC: 03:00:00:00:00:11 (Computer 1)
DestIP: 192.168.2.200 (Computer 2)
DestMAC: 03:00:00:00:00:22 (Router 1 - Interface facing Computer 1)

AT HOP 2 - Tra i router

SourceIP: 192.168.1.100 (Computer 1)
SourceMAC: 03:00:00:00:00:33 (Router 1 - Interface facing Router 2)
DestIP: 192.168.2.200 (Computer 2)
DestMAC: 03:00:00:00:00:44 (Router 2 - Interface facing Router 1)

AT HOP 3 - Tra Router 2 e Computer 2

SourceIP: 192.168.1.100 (Computer 1)
SourceMAC: 03:00:00:00:00:55 (Router 2 - Interface facing Computer 2)
DestIP: 192.168.2.200 (Computer 2)
DestMAC: 03:00:00:00:00:66 (Computer 2)

Pertanto, gli indirizzi del livello di indirizzo IP (livello 3) rimangono gli stessi nell'intera comunicazione, ma gli indirizzi del livello del collegamento dati (livello 2) cambiano ogni volta che è coinvolto un altro dispositivo che elabora un indirizzo layer3.

Spero che questo possa essere d'aiuto. Se è ancora confuso, non esitare a inviare un messaggio e cercherò di spiegare il sottoinsieme specifico che stai trovando difficile.


Grazie per il tuo aiuto, Nick. Quindi dal tuo esempio lo prendo come l'indirizzo di origine rimarrà sempre lo stesso ma il MAC di origine cambierà ad ogni salto. Questo è stato qualcosa che ho cercato di avvolgere e penso che questo fosse esattamente ciò di cui avevo bisogno.
Joey

1

Il tuo esempio è imperfetto. (Ti ho visto modificarlo, è ancora difettoso.)

Nel tuo esempio, Router 1 e 2 si trovano nella stessa sottorete (cioè hanno la stessa maschera di sottorete). Quindi Computer 1 NON invierà nulla dal gateway predefinito, semplicemente getterà il pacchetto fuori dalla scheda NIC e si aspetta che un interruttore o il supporto lo raggiungano su Computer 2.

Ora, se cambi Router 2 e Computer 2 in questo modo:

Router 2
IP: 192.168.2.2

e

Computer 2
IP: 192.168.2.12

[modifica per nick mostrato in grassetto], quindi Router 2 e Computer 2 saranno attivi ( la loro sottorete separata , NON :) sottoreti separate e l'esempio inizierà a dare più senso.

Tuttavia, e dato che non hai fornito un diagramma sto assumendo qui, che vuoi che il traffico si muova in questo modo:

Computer 1 & lt; - & gt; Router 1 & lt; - & gt; Router 2 & lt; - & gt; Computer 2

Router 1 e Router 2 non possono essere sulla stessa sottorete perché funzioni. Ci sarà in realtà una terza rete tra loro in cui commerciano traffico. (È anche un po 'strano per un percorso predefinito fare riferimento a una rete privata, in genere significa "Internet", ma certamente possibile.)

Ecco cosa sto supponendo che stai cercando di fare, mi scuso per la crudezza della foto: enter image description here

Gli indirizzi MAC non si propagano oltre i router. Computer 1 vuole inviare un pacchetto al Computer 2. Computer 2 non si trova sulla stessa sottorete, quindi il computer 1 lo invia al gateway predefinito.

Questo finisce per essere un frame inviato dal MAC del Computer 1 al MAC del Router 1.

I router inoltrano i pacchetti e inoltro significa copiare da un'interfaccia diversa. Quindi il Router 1 vedrà che la destinazione del pacchetto ricevuto da Computer 1 è destinata al Computer 2. (Dovrebbe essere programmata con una route statica o usare un protocollo come RIP / OSPF per sapere che in una situazione come questa .)

Quindi il pacchetto IP ora ha un MAC di origine del secondo NIC del router 1 e un MAC di destinazione del primo NIC del router 2. E così via finché non arriva a Computer 2.


sono un po 'arrugginito .. ma dando al tuo post una lettura veloce scrivi "Ora, se cambi Router 2 e Computer 2 a questo: Router 2 IP: 192.168.2.2 Computer 2 IP: 192.168.2.12 quindi Router 2 e Computer 2 sarà su sottoreti separate "& lt; - Cosa? A) Non sono chiaro cosa sia un router su una sottorete significa che un router ha un IP / interfaccia su 1 sottorete e un altro IP / interfaccia su un'altra sottorete B) i due IP che hai fornito in quella citazione hanno una maschera di 255.255. 255.0 nel qual caso sarebbero sulla stessa sottorete di 192.168.0.0/24 ma hai detto "allora Router 2 e Computer 2 saranno su sottoreti separate" la tua foto sembra buona
barlop

Un router per definizione avrà 2 interfacce su 2 sottoreti separate, se non lo fa, non è un router e non può essere instradato.
LawrenceC

U ha scritto nel commento "Un router per definizione avrà 2 interfacce su 2 sottoreti separate, se non lo fa, non è un router e non può essere instradato." Non lo nego. L'ho anche detto, ma Dimentica 'A 'anche se vedo cosa si intende per router su una sottorete (o sottorete su un router). Sebbene un router sia su 2+ sottoreti e 2+ sottoreti si trovano su un router. Trovo ancora piuttosto strano ciò che hai scritto nel tuo post. Sembravi dare due IP sulla stessa sottorete e dire che erano in sottoreti differenti.
barlop

[Router 1 + Computer 1] si trova su una sottorete (192.168.1.0/24 nell'esempio) e [Router 2 + Computer 2] si trova su una seconda sottorete (192.168.2.0/24), è ciò che intendevo.
LawrenceC

0

Hai ragione a metà, in quanto l'indirizzo MAC cambia ad ogni salto, ma gli indirizzi IP della connessione non cambiano a meno che non ci sia la tecnologia NAT / PAT in linea o un proxy dell'applicazione sia in uso.

Nota, credo che l'indirizzo per computer2 dovrebbe essere qualcosa come 192.168.2.12, anziché 1.12. ciò implicherebbe che il tuo pacchetto non passa affatto attraverso router2. Credo che tu stia cercando qualcosa come:

Computer 1  
IP: 192.168.1.11  
Subnet: 255.255.255.0  
Default Gateway: 192.168.1.1  
MAC: 00:00:00:00:00:aa

Router 1  
LAN IP: 192.168.1.1  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:bb  

WAN IP: 192.168.3.1  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:b1  

Router 2  
LAN IP: 192.168.2.2  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:cc  

WAN IP: 192.168.3.2  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:c1 

Computer 2   
IP: 192.168.2.12  
Subnet: 255.255.255.0  
Default Gateway: 192.168.2.2  
MAC: 00:00:00:00:00:dd

quindi abbiamo tre reti, il computer LAN1 è in (.1.X), la rete tra i due router (.3.X) e la LAN che computer2 è acceso (.2.X).

Gli indirizzi MAC servono per indirizzare i frame, quindi sono legati all'implementazione di ciascuna LAN. è possibile utilizzare l'indirizzo mac :: aa per inviare frame attorno alla rete Computer1 e Router1 sono connessi, ma se si è tentato di inviare un frame a :: dd su questa LAN, non raggiungerà la sua destinazione. Quindi un indirizzo mac è valido solo sulla rete che supporta un dispositivo con quel MAC.

Tuttavia, l'indirizzo IP viene fatto passare tra le reti, quindi rimane costante. il pacchetto viene ri-incapsulato in un nuovo frame ogni volta che attraversa un router, ma il pacchetto IP rimane invariato. questo è importante, perché se Computer2 nel tuo scenario riceveva un pacchetto da 192.168.1.1 con MAC :: cc, non avrebbe modo di dire che non proveniva dal router, e quando computer2 ha risposto, router2 non avrebbe avuto idea a chi sta rispondendo.

così, il pacchetto che riceve computer2 ha l'IP sorgente 192.168.1.11, ma l'indirizzo MAC :: cc.

NAT / PAT rende questo un po 'più confuso, nel senso che sono necessarie maggiori informazioni per prendere decisioni di origine / destinazione, quindi ricorda, uno scenario con router reali è un po' più completo.


0

Supponendo che i router non stiano facendo NAT (Network Address Translation.) Gli indirizzi di origine e destinazione rimarranno gli stessi in ogni punto della rete.Se avessi solo un router tra i due host, gli indirizzi MAC sarebbero rimasti gli stessi. si aspettano lo stesso comportamento in questo caso.

Il arp programma ti mostrerà quale indirizzo mac è previsto. Su ogni computer esegui il comando arp -an (o su Windows arp -a. Questo mostrerà tutti i dispositivi locali conosciuti e il loro indirizzo mac. Il traffico per i dispositivi remoti verrà instradato all'indirizzo mac del gateway.

Se il percorso tra i due router è su Internet, i router saranno NAT l'indirizzo di origine di ciascun computer sarà l'indirizzo IP Internet del router opposto e l'indirizzo mac del router locale. In questo caso, non sarà possibile aprire una connessione tra i computer utilizzando gli indirizzi elencati. Dovresti connetterti all'indirizzo IP di Internet del router dall'altra parte e sarebbe necessario conoscere l'indirizzo NAT al computer desiderato.

Se hai una connessione stabilita (ssh funziona bene), allora puoi usare il netstat -nat comando (o su Windows il netstat comando) per elencare tutte le connessioni. È possibile filtrare o scansionare l'elenco per trovare l'indirizzo della connessione. Su Linux usando ssh, il comando who am i elencherà l'indirizzo remoto da cui sei connesso.


0

AHIA. Un router non avrà solo un IP. Suggerisco "networking first step" di wendell odom.

Scrivi "Dalla mia comprensione la destinazione rimane la stessa, ma la fonte si aggiornerà man mano che la attraversa."

Non è chiaro di cosa stai parlando. Non hai scritto molto e il poco che hai scritto è stato ambiguo. Se non riesci a scrivere chiaramente, allora non capirai chiaramente.

Non limitarti a dire "la fonte" "la destinazione". Dire in particolare se si intende l'indirizzo IP di origine o l'indirizzo MAC di origine o l'indirizzo IP di destinazione o l'indirizzo MAC di destinazione.

L'IP di origine e destinazione rimarrà lo stesso. (a meno che non ci fosse NAT o qualcosa di molto insolito, e tu non ce l'hai)

Gli indirizzi MAC (sorgente e destinazione) possono cambiare. I router riscrivono gli indirizzi MAC. Anche se i tuoi router non sono impostati correttamente. Guarda l'immagine di ultra per come un router ha più schede NIC ognuna con il proprio IP sulla propria sottorete.

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.