ICMP - PING - TRACEROUTE Lista di trasparenze aggiuntive per la lezione: figura 6.3 ICMP message types pag. 71 figura 6.12 handling of icmp message types pag. 82 figura 7.4 ping with RR option pag. 92 figura 7.6 ping with RR option pag. 94 esempio ping normale da libeccio a nina esempio ping normale da libeccio a www.repubblica.it esempio ping con RR da libeccio a nina esempio ping con RR da libeccio a www.repubblica.it esempio traceroute con RR da libeccio a nina esempio traceroute con RR da libeccio a www.repubblica.it esempio di traceroute con source routing Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
ICMP Internet Control Message Protocol Comunica messaggi di errore o altre situazioni che richiedono intervento. Messaggi ICMP sono incapsulati all’interno di datagrammi IP. RFC 792 Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Struttura di un messaggio ICMP type: identifica messaggio ICMP 1 byte code: specificare ulteriormente la condizione checksum 2 byte data: dipende dal messaggio contiene IP header (20 byte) + primi 8 byte di dati del datagramma IP che ha generato il msg Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
ICMP Un messaggio ICMP non viene generato mai come risposta a: Un messaggio ICMP di errore Un datagramma IP destinato ad un indirizzo broadcast o multicast. Un broadcast di link layer. Un frammento diverso dal primo Un datagramma con origine loopback. Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Applicazione ping L’applicazione ping serve a verificare la raggiungibilità di un host. Invia messaggi ICMP echo request ed aspetta messaggi ICMP echo reply. I msg di echo request e reply contengono identifier: pid del processo sequence number: numero sequenziale Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Opzione Record Route Applicazione ping con opzione R restituisce la lista degli host intermedi utilizzati. Utilizzata opzione Record Route di IP ogni router attraversato da un datagramma IP con opzione RR abilitata aggiunge nel campo opzione del datagramma l’indirizzo dell’if uscente. Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Formato opzione Record Route 1 1 1 4 4 4 ……….. code len ptr IP addr 1 IP addr 2 IP addr 9 0x 07 Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Applicazione traceroute Traceroute è usato per scoprire una rotta tra due host. Risolve i seguenti svantaggi di RR RR non sempre implementato da router lista duplicata (andata e ritorno) RR ha spazio per soli 9 indirizzi (4 contando andata e ritorno) Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Applicazione traceroute Campo TTL (time to live) di header IP viene posto uguale a 64 dall’host mittente ogni router decrementa il valore di 1 datagramma con TTL=0,1 non è inoltrato ma è generato messaggio ICMP “time exceeded” Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Applicazione traceroute Spedisce datagramma UDP indirizzato a porta > 30000 Datagramma con ttl=1 primo router decrementa ttl e spedisce ICMP datagramma con ttl=2 secondo router attraversato spedisce ICMP …………….. L’host destinatario risponde con ICMP “port unreachable” ICMP contiene indirizzo interfaccia di arrivo Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
IP source routing Routing in IP è determinato autonomamente da ciascun router. Mittente di un datagramma non può influire sul percorso preso da un datagramma tranne nel caso si utilizzi il source routing. Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Source routing Strict source routing Loose souce routing mittente specifica l’esatto cammino che il datagramma deve seguire. Se ciò non è possibile, viene inviato un msg ICMP “source route failed”. Loose souce routing mittente specifica lista di indirizzi IP che il datagramma deve attraversare. Altri router possono essere attraversati. Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Formato opzione Source Routing 1 1 1 4 4 4 ……….. code len ptr IP addr 1 IP addr 2 IP addr 9 0x 83 loose 0x89 strict Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Source Routing L’host mittente riceve lista host da applicazione. Primo indirizzo diventa nuovo destinatario destinazione originaria è posta in coda alla lista che viene scritta nel campo opzione pointer punta alla prima entry nella lista (ptr=4) Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti
Source routing Ogni router che riceve il datagramma controlla se è la destinazione del datagramma. no: datagramma inoltrato normalmente. sì: ptr<len indirizzo puntato da ptr diviene nuova destinazione indirizzo IP dell’if uscente è source datagramma ptr+=4 Dipartimento di Informatica ed Appl. -- Università di Salerno -- Programmazione su reti