Internet Control Message Protocol: Skillnad mellan sidversioner
JAnDbot (Diskussion | Bidrag) m robot Ändrar: id:Internet Control Message Protocol |
m robot Lägger till: sr:ICMP |
||
Rad 115: | Rad 115: | ||
[[ru:ICMP]] |
[[ru:ICMP]] |
||
[[sl:ICMP]] |
[[sl:ICMP]] |
||
[[sr:ICMP]] |
|||
[[tr:Internet Control Message Protocol]] |
[[tr:Internet Control Message Protocol]] |
||
[[uk:ICMP]] |
[[uk:ICMP]] |
Versionen från 25 november 2008 kl. 08.08
Protokollstack för IP-nätverk |
---|
Applikation |
BitTorrent · DHCP · DNS · FTP · HTTP · IMAP · IRC · NNTP · POP3 · RTP · SIP · SMTP · SNMP · SSH · Telnet · TLS · SSL · TFTP · BGP |
Transport |
DCCP · SCTP · TCP · UDP · IL · RUDP |
Nätverk |
ARP · ICMP · IGMP · IP (IPv4 · IPv6) · RIP · RARP |
Länk |
ATM · Ethernet · FDDI · ISDN · IS-IS · MPLS · Token Ring · PPP · SLIP · Wi-Fi |
Fysiskt |
IEEE 802 · ISDN · RS-232 · IrDA · Bluetooth · xDSL |
ICMP, akrynom för Internet Control Message Protocol, är ett protokoll som typiskt används för felmeddelanden, routingkontroll och diagnostik. ICMP anses vara en vital del av IP trots att det tekniskt sett är byggt ovanpå IP likt TCP och UDP. ICMP används dock inte, med få undantag såsom Ping och Traceroute, direkt av mjukvara på applikationslagret.
Tekniska detaljer
ICMP meddelanden konstrueras i regel av nätverkslagret som svar på någon form av IP relaterad händelse. IP paketet som genererade händelsen kapslas då in i ett ICMP meddelande som i sin tur kapslas in i ett nytt IP paket för att sedan skickas på vanligt vis till dess destination. Eftersom ICMP kapslas in direkt i IP finns inga garantier för att paketet kommer fram på samma vis som för UDP.
Trots att ICMP meddelanden är inkapslade i IP paket så behandlas dessa meddelanden inte på samma vis som andra protokoll som använder IP. I många fall finns det behov av att, på IP nivå, inspektera innehållet av ICMP meddelandet för att skicka lämpligt felmeddelande till den applikation som skapade det IP paket som genererade ICMP meddelandet.
Versioner
ICMP betecknas ICMPv4 och ICMPv6 för IPv4 respektive IPv6. ICMPv6 är en kombination, förenkling och vidareutveckling av ICMPv4, IGMP och ARP. I denna artikel berörs ICMPv4 om inte annat anges.
Meddelandetyper
För en komplett lista över meddelandetyper besök http://www.iana.org/assignments/icmp-parameters. Nedan följer några av de vanligast förekommande typerna.
- Typ 0 – Svar på eko förfrågan
- Svaret på ett meddelande av typ 8.
- Typ 3 – Destination onåbar
- Genereras av en värd eller router när ett IP pakets destination av någon anledning inte går att nå. Anledningen specificeras i ICMP meddelandets kod.
- Typ 4 – Flödeskontroll
- Meddelandets syfte är att möjliggöra flödeskontroll genom att en router signalerar till en värd att skicka paket i en lägre hastighet. Denna typ av meddelande bör inte används idag på Internet. [1]
- Typ 5 – Omdirigering
- Ett meddelande som informerar en värd att skicka paket en annan väg; dvs routing information.
- Typ 11 – TTL överskridning
- Genereras av en router när ett IP paket har blivit bortkastat pga att TTL fältet i IP huvudet har nått noll.
- Typ 13 – Tidssynkronisering
- En förfrågan om synkronisering av tid.
- Typ 14 – Svar på tidssynkronisering
- Svar på meddelande av typ 13. Skickar nuvarande tid i systemet till avsändare.
- Typ 17 –Subnätsmask förfrågan
- Skickas normalt av en värd till en router för att få reda på rätt subnätsmask.
- Typ 18 – Svar på subnätsmask förfrågan
- Svar på meddelande av typ 17.
ICMP paketet
Eftersom ICMP inkaplas i IP så är den första delen av ICMP paketet ett standard IP huvud, vanligtvis 20 byte, markerat grått i bilden nedan. Efter det återfinns ICMP huvudet på 8 byte markerat grönt. Resterande del är kroppen av varierande längd markerat blått.
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IP huvudet | |||||||||||||||||||||||||||||||
Typ | Kod | Kontrollsumma | |||||||||||||||||||||||||||||
Innehållet beroende på meddelandets typ | |||||||||||||||||||||||||||||||
Kroppen |
- Typ
- Meddelandets typ som angivet ovan.
- Kod
- En vidare specificering av meddelandets typ.
- Kontrollsumma
- En kontrollsumma för ICMP huvudet.
- Data beroende på meddelandets typ
- Innehållet av dessa 4 byte är beroende på meddelandets typ.
- Kroppen
- Precis som för de sista 4 byten av paketets huvud beror innehållet i paketets kropp på meddelandets typ. Ofta innehåller detta fält IP huvudet samt de första 8 bytes av IP paketet som genererade ICMP meddelandet. Ett annat exempel är Ping verktyget som i Windows fyller detta fält med 40 byte slumpad data till skillnad från Ping i Linux fyller samma fält med 64 byte data.
Säkerhetsrisker
Även om ICMP protokollet vid första blick ser harmlöst ut har det visat sig vara en källa till en rad olika former av säkerhetsrisker. Idag är de flesta implementationer av ICMP modifierade för att endast behandla vissa meddelandetyper.
Denial of Service-attacker
Beroende på hur en värd hanterar ICMP meddelanden i enlighet med RFC 1122 kan långvariga TCP-anslutningar avbrytas.[2] En annan typ av Denial of Service-attack är en så kallad ”Smurf attack” som innebär att ICMP eko meddelanden skickas till specifika IP broadcast adresser.[3] Ytterligare en rad olika Denial of Service-attacker existerar kring ICMP som är baserade på att skapa specifika meddelanden en värd ej kan hantera.
Informationsläckage
Genom att studera resultatet av ICMP meddelanden kan en rad olika former av data om ett nätverk och dess noder samlas in. T ex kan operativsystem, lokal tid, nätverkstopologi och aktiva tjänster identifieras.[4]
Externa länkar
- http://www.iana.org/assignments/icmp-parameters
- RFC 792 - Internet Control Message Protocol
- RFC 1812 - Requirements for IP Version 4 Routers
- RFC 1122 - Requirements for Internet Hosts
Källor
- Delar av denna artikel är baserad på en översättning från engelska Wikipedia.