Newsgroup: it.comp.sicurezza.varie
Titolo: ICMP cosè e a che cosa serve ?

Chiedo gentilmente quanto in oggetto. Ciao e grazie.

  mailto:
m...@iol.it
IRC: Mauri_X on IRCnet
PGP key av. on servers: RSA ID=0x254057F5 & DH/DSS ID=0x46C0C5BD
(*)(*)(*)(*)(*)(*)

 Chiedo gentilmente quanto in oggetto. Ciao e grazie.
Va bene per il gentilmente. Occhio pero' che questa risposta sara', per
ovvi motivi, molto sintetica. Ti consiglio di leggere gli RFC appositi.
RFC = Request For Comments
L'originale e' il n. 792
0792 Internet Control Message Protocol. J. Postel. Sep-01-1981.
     Aug-01-1985. (Format: TXT=37985 bytes) (Updates RFC0792) (Status:
     TXT=47922 bytes) (Status: UNKNOWN)
     TXT=177923 bytes) (Obsoletes RFC1010) (Obsoleted by RFC1340) (Status:
     TXT=43059 bytes) (Also RFC0792) (Status: PROPOSED STANDARD)
grep ICMP rfc-index
0844 Who talks ICMP, too? - Survey of 18 February 1983. R. Clements.
1256 ICMP Router Discovery Messages. S. Deering. Sep-01-1991. (Format:
1788 ICMP Domain Name Messages. W. Simpson. April 1995. (Format:
1885 Internet Control Message Protocol (ICMPv6) for the Internet
<ACRONIMO>
Internet Control Message Protocol
</ACRONIMO>
Serve per la trasmissione di messaggi di errore/controllo relativi alla
comunicazione mediante protocolli TCP/IP.
Se ad esempio cerco di connettermi mediante FTP ad un host che non
permette questo servizio, il pacchetto che io invio viene cestinato dal
sistema remoto che provvedera' ad inviarmi indietro un ICMP di tipo
DEST_UNREACH - PORT_UNREACH che verra' passato dal kernel al mio
applicativo.
Nota che i tipi di messaggio sono molti. Un tipo comunissimo e' dato dalla
coppia ECHO / ECHO_REPLY che viene comunemente utilizzata dal programma
ping per testare la funzionalita' ed accessibilita' di sistemi remoti.
Altri messaggi sono:
#define ICMP_ECHOREPLY          0       /* Echo Reply                   */
#define ICMP_DEST_UNREACH       3       /* Destination Unreachable      */
#define ICMP_SOURCE_QUENCH      4       /* Source Quench                */
#define ICMP_REDIRECT           5       /* Redirect (change route)      */
#define ICMP_ECHO               8       /* Echo Request                 */
#define ICMP_TIME_EXCEEDED      11      /* Time Exceeded                */
#define ICMP_PARAMETERPROB      12      /* Parameter Problem            */
#define ICMP_TIMESTAMP          13      /* Timestamp Request            */
#define ICMP_TIMESTAMPREPLY     14      /* Timestamp Reply              */
#define ICMP_INFO_REQUEST       15      /* Information Request          */
#define ICMP_INFO_REPLY         16      /* Information Reply            */
#define ICMP_ADDRESS            17      /* Address Mask Request         */
#define ICMP_ADDRESSREPLY       18      /* Address Mask Reply           */
#define NR_ICMP_TYPES           18
questi, come evincerai dagli RFC, sono gli usi 'legali' :) che possono poi
ovviamente essere piu' o meno manipolati ...
invy
un neozelandese che controlla i messaggi

che attaversi per arrivare ad un certo computer, 
Una precisazione... Credo che il traceroute in realta' non sia ICMP,
anche se lo sembra. Ma non ne sono certissimo.
Ciao
Luca
--
Luca Bruschi - 
I.NET
 S.p.A.
lucky[@]
Eru.INET.it
Togliere le parentesi [] per rispondere.

anche se lo sembra. Ma non ne sono certissimo.
Di sicuro i pacchetti di ritorno inviati dai vari router per informare l'host
sorgente che il TTL e' expired sono di tipo ICMP.
Poi invece, in teoria, i pacchetti con TTL progressivi inviati dall'host
sorgente basta che siano IP con dentro qualunque cosa (ICMP, TCP, UDP...), ma
mi pare che comunque traceroute usi ICMP.
----------------------------------------------------------------------
Marco Coletti
Network Administrator, Webmaster, Computer Consultant
PGP public key:
http://keys.pgp.com:11371/pks/lookup?op=get&exact=on&search=0x96A79061
Fingerprint: 9F E5 80 61 F6 9F 05 2D  EA 53 6F 2D 82 8B C7 C2
----------------------------------------------------------------------

 anche se lo sembra. Ma non ne sono certissimo.
Dipende. Il traceroute originale di Van Jacobson invia alla destinazione
dei pacchetti UDP con TTL crescente da 1 a N in modo che il TTL scada in
nodi sempre piu' lontani dall'origine, producendo pacchetti di errore ICMP
TIME_EXCEEDED, che tornano all'host da cui stai facendo il test con l'IP
della macchina in cui il pacchetto e' scaduto. Stampando gli IP che ti
tornano in ordine hai il percorso diretto dalla sorgente alla destinazione
(non quello inverso che NON e' detto sia uguale!).
Il "tracert" di win95/NT utilizza come "sonda" invece ancora un pacchetto
ICMP precisamente ECHO_REQUEST.
Ciao
Lele

 anche se lo sembra. Ma non ne sono certissimo.
due precisazioni:
1) ping e traceroute non sono i piu' o meno famosi ICMP :))) sono solo due
applicativi che usano messaggi di tipo ICMP ed campi IP per due scopi
diversi
2) ping usa la coppia di messaggi ICMP ECHO/ECHO_REPLY, mentre traceroute
utilizza il messaggio ICMP TIME_EXCEEDED e il campo IP di TTL
invy


Ho guardato meglio, il TRACEROUTE e' un
utilizzo "furbo" di un tipo di messaggi d' errore
ICMP.
Si mandano una serie di pacchetti che contengono
un' errore di tempo e si aspettano i messaggi
d' errore dai gateway della rete, da questi si
puo' risalire alla strada percorsa dai pacchetti.
	Saluti, Maurizio.


Lucky[@]INET.it wrote:
 >Una precisazione... Credo che il traceroute in realta' non sia ICMP,
 >anche se lo sembra. Ma non ne sono certissimo.
Il traceroute di windows usa ICMP, quelli di unix usano UDP.
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]
Marco | * The Internet is full. Go away.  -- Joel Furr *

diversi
Si' fin qui ci arrivo... Ho scritto "trace non è ICMP" solo per
pigrizia, invece di scrivere "trace non usa pacchetti di tipo ICMP" :)
Forse rimanendo pigro poteva andar meglio "trace non usa ICMP", ma
insomma, fa niente, neh? :)))))
