Internets kontrollmekanism klarar mer än bara ett Ping

I nummer 5 förra året redogjorde Nätvärlden för nästa generations IP-protokoll. Den snabba utvecklingen av både Internet och företagsinterna nätverk har kommit att ställa nya krav på protokollet.

För att möta kraven har IETF (Internet Engineering Task Force) begärt in förslag till nästa IP-generation (då kallad IPng - IP next generation). Detta har sedermera lett till rfc 1883, där protokollet officiellt kom att kallas IPv6.

Behovet av den nya IP-versionen påkallades bland annat av problemet med begränsat adressutrymme. IPv6 ökar IP-protokollets adressrymd från 32 bitar till 128 bitar. Därmed får man betydligt fler adresserbara noder och möjlighet att stöda flera nivåer i adresshierarkin. En annan nyhet är att IPv6 kan hantera paket som tillhör en dataström med krav på prioriterad transport. Därmed blir det möjligt att hantera tidskritisk trafik som realtidsvideo där enskilda bilder måste levereras inom bestämda tidsintervall. För att inte anarki skall uppstå på Internet prioriteras paketen i relation till andra paket från samma avsändare.

I samband med framtagandet av specifikationen för IPv6 reviderades även protokollet ICMP (Internet Control Message Protocol). ICMP har till huvuduppgift att rapportera olika typer av fel som uppstår vid överföring av IP-paket.

Under normala omständigheter fungerar IP på ett effektivt och smidigt sätt. Men vad händer när något går fel? Om exempelvis en router havererar är det önskvärt att avsändaren får ett meddelande om problemet så att han inte fortsätter att sända datagram som ändå inte kan nå sitt mål. Syftet med ICMP är att hantera sådana situationer. Det kan även användas av administratörer för att undersöka status hos noder i ett nätverk, exempelvis via det välkända programmet Ping. IP-standarden föreskriver att samtliga värddatorer och routrar i ett nätverk måste både kunna generera och hantera mottagna ICMP-meddelanden.

ICMP bidrar därmed till att göra nätverken pålitligare. Ett exempel på återrapportering via ICMP är när man via Telnet försöker koppla upp sig till en onåbar nätverks-adress. Dialogen kan då se ut som följer:

> telnet 10.1.1.1
Trying 10.1.1.1 …
telnet: connect: Host is unreachable

Den tidigare versionen kallas ICMPv4, och är fortfarande huvudsakligen i bruk. Denna version beskrivs i rfc 792 och behandlas även utförligt i en artikel i Nätvärlden nr 3-96. I samband med att IPv6 implementeras kommer även ICMPv6 till användning. Den nya versionen innehåller många av funktionerna hos version 4, och dessutom några nyheter (se rfc 1885 för komplett information):

Ping och ICMPv6. Som tidigare nämnts används ICMP när man pingar en nätverksnod. Det går till så att den pingande datorn skickar ett ICMP-meddelande typ 128 (Echo Request) till den nod som ska pingas. Meddelandet ges ett ID-nummer för att i slutändan kunna para ihop begäran med rätt svar. Meddelandet kan även fyllas med olika data beroende på vad som skall undersökas med ping.

Den mottagande noden besvarar den pingande datorn med ett ICMP-meddelande typ 129 (Echo Reply). Det sker genom att byta plats på sänd- och mottagaradresserna i headern. Eventuellt ändras även data som kom med Echo Request-meddelandet.

IGMP-meddelande Funktioner från igmpv4 (Internet Group Management Protocol) har kombinerats med ICMPv6. Exempelvis kan en värddator ta reda på om den är medlem i en viss grupp med hjälp av ICMP-meddelande typ 130 (Group Membership Query). Meddelandet innehåller då bland annat följande fält: Maximum Response Delay, dvs maximal väntetid på svar angivet i millisekunder.

Multicast Address är adressen till den grupp som förfrågan om medlemskap avser. Om detta fält sätts till 0 kommer svaret att innehålla adresserna till samtliga grupper som värddatorn är medlem i. När medlemskap för endast en grupp efterfrågas sänds meddelandet som multicast till gruppen. Om förfrågan avser samtliga medlemskap sänds meddelandet som multicast till alla noder.

Om en mottagande nod känner till att den sändande värddatorn är medlem i en viss grupp besvaras förfrågan med ett ICMP-meddelande typ 131 (Group Membership Report). Svarsfältet Multicast Address innehåller då adressen till gruppen som den frågande värddatorn är medlem i.

Michael Seemann