Come scorre il traffico di rete

Come scorre il traffico di rete – Guida introduttiva
Gideon T. Rasmussen – CISSP, CFSO, CFSA, SCSA

Per risolvere un problema, è necessario sapere come scorre il traffico di rete in circostanze normali. Questo articolo descrive in dettaglio cosa succede quando un browser Web viene utilizzato per accedere a un sito Web.

Una volta inserito il nome del sito Web in un browser Web, si verifica una serie di comunicazioni su vari protocolli. La tabella seguente rappresenta il modo in cui scorre il traffico di rete:

Riga:
Protocollo:
Fonte:
Destinazione:
Dati:
1
ARP
10.0.1.13
Broadcast
Che ha 10.0.1.1? Dire 10.0.1.13
2
ARP
10.0.1.1
10.0.1.13
10.0.1.1 alle 00:80:c8:57:d3:aa
3
DNS
10.0.1.13
10.0.1.1
query Standard di Un www.cyberguard.com
4
DNS
10.0.1.1
10.0.1.13
Standard di risposta alle query CNAME cyberguard.com Un 64.94.50.88
5
TCP
10.0.1.13
64.94.50.88
1939 > http
6
TCP
64.94.50.88
10.0.1.13
http > 1939
7
TCP
10.0.1.13
64.94.50.88
1939 > http
8
HTTP
10.0.1.13
64.94.50.88
GET / HTTP/1.1
9
HTTP
64.94.50.88
10.0.1.13
HTTP/1.1 200 OK
10
HTTP
64.94.50.88
10.0.1.13
HTTP Continuation
11
TCP
10.0.1.13
64.94.50.88
2577 > http Seq=388864 Ack=37076821 Win=8241 Len=0
12
TCP
10.0.1.13
64.94.50.88
2577 > http Seq=388864 Ack = 37077089 Vittoria = 0 Len=0

Il protocollo ARP

Prima che i sistemi possano comunicare, devono conoscere gli indirizzi hardware degli altri. A tale scopo viene utilizzato il protocollo ARP (Address Resolution Protocol). Dalla sua configurazione, la workstation conosce l’indirizzo IP del server DNS.

Linea # 1

Protocollo: Fonte: Destinazione: Dati:
ARP 10.0.1.13 Broadcast Chi ha 10.0.1.1? Dillo 10.0.1.13

La workstation trasmette una richiesta ai dispositivi sulla sua rete chiedendo “chi ha” l’indirizzo IP con cui deve comunicare.

Linea # 2

Protocollo: Fonte: Destinazione: Dati:
ARP 10.0.1.1 10.0.1.13 10.0.1.1 alle 00:80:c8:57:d3:aa

Il sistema remoto non risponde fornendo il suo indirizzo hardware. Ora che la workstation conosce l’indirizzo hardware del sistema remoto, può comunicare con esso.

Il protocollo DNS
Il protocollo DNS (Domain Name System) viene utilizzato per risolvere i nomi di sistema in indirizzi IP. Quando il nome di un sito Web viene inserito in un browser, la workstation deve conoscere l’indirizzo IP corrispondente per raggiungere il server Web che ospita il sito.

Linea # 3

Protocollo: Fonte: Destinazione: Dati:
DNS 10.0.1.13 10.0.1.1 query Standard web.cyberguard.com

La workstation chiede al server DNS per fornire l’indirizzo IP del server di Web hosting www.cyberguard.com.

Linea # 4

Protocollo: Fonte: Destinazione: Dati:
DNS 10.0.1.1 10.0.1.13 Standard di risposta alle query CNAME cyberguard.com Un 64.94.50.88

Il server DNS risponde con l’indirizzo IP corrispondente all’www.cyberguard.com.

Il protocollo TCP

Il protocollo TCP (Transmission Control Protocol) viene utilizzato per trasferire i dati. Queste tre righe successive comprendono il three-way handshake TCP:

Linea # 5

Protocollo: Fonte: Destinazione: Dati:
TCP 10.0.1.13 64.94.50.88 1939 > http

La workstation avvia la connessione al server Web (SYN). SYN è l’abbreviazione di ” sincronizza.”

Riga # 6

Protocollo: Fonte: Destinazione: Dati:
TCP 64.94.50.88 10.0.1.13 http > 1939

Il Web server risponde che indica che è pronto per la trasmissione (SYN ACK). SYN ACK è l’abbreviazione di ” synchronize acknowledgement.”

Linea # 7

Protocollo: Fonte: Destinazione: Dati:
DNS 10.0.1.13 64.94.50.88 1939 > http

La workstation invia al server Web indicando che sta iniziando a inviare traffico (ACK). Questo riconoscimento indica che la connessione TCP è stata stabilita e il traffico può iniziare a fluire.

Il protocollo HTTP

L’Hyper Text Transfer Protocol (HTTP) viene utilizzato per servire le pagine Web. Puoi vedere la prova di ciò dall’indirizzo del sito Web nel tuo browser (ad esempio http://www.cyberguard.com).

Linea # 8

Protocollo: Fonte: Destinazione: Dati:
HTTP 10.0.1.13 64.94.50.88 SCARICA / HTTP/1.1

Il browser apre una connessione al server Web.

Linea # 9

Protocollo: Fonte: Destinazione: Dati:
HTTP 64.94.50.88 10.0.1.13 HTTP/1.1 200 OK

Il Web server accetta la connessione.

Linea # 10

Protocollo: Fonte: Destinazione: Dati:
HTTP 64.94.50.88 10.0.1.13 HTTP Continuazione

Le righe di continuazione HTTP rappresentano il punto in cui vengono inviati i contenuti della pagina html. Include testo, link, ecc.

Torna al Protocollo TCP

Linea # 11

Protocollo: Fonte: Destinazione: Dati:
TCP 10.0.1.13 64.94.50.88 2577 > http Seq=388864 Ack = 37076821 Vittoria = 8241 Len=0

Questa linea viene effettivamente ripetuta quattro volte. La workstation sta riconoscendo l’ultimo pacchetto.

Linea # 12 (PRIMO)

Protocollo: Fonte: Destinazione: Dati:
TCP 10.0.1.13 64.94.50.88 2577 > http Seq=388864 Ack=37077089 Win=0 Len=0

La workstation invia un reset, in modo efficace abbattere la connessione TCP.

Tcpdump e Ethereal

È importante notare che tcpdump fornirà dettagli diversi a seconda di dove viene eseguito sulla rete. In questo esempio, tcpdump è stato eseguito sull’interfaccia interna del firewall con una workstation collegata direttamente. Se tcpdump fosse usato per monitorare lo stesso flusso di traffico sull’interfaccia esterna, l’indirizzo IP di origine apparirebbe come l’interfaccia esterna del firewall, a condizione che DNAT (Dynamic Network Address Translation) fosse in atto. Per osservare come scorre il traffico proxy, ha senso eseguire tcpdump su entrambe le interfacce interne ed esterne, poiché il proxy funge da intermediario tra l’origine e la destinazione.

La fonte della tabella era un file tcpdump visualizzato tramite Ethereal. La sintassi esatta utilizzata era: “tcpdump-vvpni dec1-s1514 – w / archive2 / dec1.host dmp 10.0.1.13”. Il comando tcpdump ha ampie opzioni per la registrazione del flusso di traffico molto specifico (ad esempio sorgente/destinazione, porte ed espressioni booleane). Per ulteriori informazioni, immettere “man tcpdump” sulla riga di comando. La versione di Windows è Windump (http://windump.polito.it).

Ethereal è un buon strumento per visualizzare i file tcpdump. È liberamente disponibile da http://www.ethereal.com.

Alcune delle porte presenti in un tcpdump potrebbero non essere familiari. L’elenco più aggiornato dei numeri di porta può essere trovato a http://www.iana.org/assignments/port-numbers (per RFC 3232).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.