[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: Novembre 2005 ml@sikurezza.org
Soggetto: Re: [ml] icmp e checksum
Mittente: Can't dig that daddy
Data: Wed, 23 Nov 2005 21:20:49 +0100 (CET)
> billiejoex wrote:
> > Parto con le domande.
> [...]
> > 7 - In caso di checksum errato come gestisce la cosa icmp? Manda
> > indietro un
> > pacchetto di  avviso? Se si di che tipo?
>
> Questo e' piu' difficile... A naso direi che lo stack lo cestina senza
> dire nulla, ma mi riservo di controllare e di rispondere con certezza.

"The ICMP messages typically report errors in the processing of datagrams.  To 
avoid the infinite regress of messages about messages etc., no ICMP messages 
are sent about ICMP messages." --RFC792, pg1

> > Due domande riguardo ICMP generico:
> >
> > 9 - ho effettuato delle prove provando a pingare differenti host con
> > pacchetti ICMP aventi buffer variabili abbastanza grandi (1000, 5000,
> > 10000,
> > 20000 bytes e oltre) e ho notato che ogni host si comporta in modo
> > differente. Ad esempio google risponde solo a pings con buffer < 1500
> > bytes,
> > altri hosts arrivano a rispondere anche a ping da 10000 bytes.  Tale
> > blocco
> > chi lo applica? Un eventuale firewall posto sulla macchina remota o il
> > kernel della
> > macchina stessa?
>
> A priori non lo puoi dire con certezza. In generale e' lo stack del
> S.O., ma puo' essere fatto anche da un fw.

E' probabile che, in caso di frammentazione IP, ci sia una regola sul fw per 
droppare.
Un motivo è legato al fatto che, per disegno, si fa il possibile per evitare 
che un pacchetto ICMP venga frammentato e che ICMP è "un accessorio": se si 
perde un pacchetto, pace. 
Dico "per disegno" perchè,  parlando di ICMP di errore, nel messaggio puoi 
avere *al massimo* un header IP di 60 byte + un payload di 8 byte. La 
lunghezza di questi ICMP è quindi al massimo di 76 byte (l' "header" ICMP è 
fisso e consta di 8 byte). Se a questo sommi l'header IP più esterno sei a 
quota (max teorica) di 136 byte. (ho fatto un calcolo rapido, spero di non 
aver scritto cavolate).
Questo valore, assolutamente difficile da raggiungere nella realtà, è anche 
inferiore della minima MTU richiesta per IPv4: 576 byte.
Come vedi la frammentazione ICMP è piuttosto improbabile nella vita reale: non 
biasimare chi mette quelle regole sul fw :-)

Discorso differente per i pacchetti echo. Però, teoricamente, se superi la 
minima MTU di IPv4 (576 byte) sei in "pericolo" perchè il pacchetto potrebbe 
essere frammentato. Praticamente la frammentazione entra in gioco se usi una 
dimensione maggiore di 1500 byte (la MTU di ethernet), come ha detto anche 
Dario... però in realtà se usi, o il tuo pacchetto subisce, qualche 
encapsulation (pppoe, tunnel IP etc...) la dimensione ti si riduce.

Fossi in te mi limiterei a pacchetti di 576 byte :-P 
Scherzi a parte vai pure sui 1500 byte... ma non aspettarti nessun grado di 
affidabilità.

> ________________________________________________________
> http://www.sikurezza.org - Italian Security Mailing List




[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005