Kommunikationsprotokollet internet protocol (ip) utgör en av grundstrukturerna för dagens internet. Protokollet beskrevs redan 1974 i en serie tekniska dokument som författades av pionjärer inom datornätverk. Sedan dess har ett otaligt antal ingenjörer och systemutvecklare skapat system och applikationer som bygger på ip som den kommunicerande länken mellan datorer i nätverk.
Även om protokollet utvecklats i flera versioner sedan sjuttiotalet, saknas det till stora delar en tydligt dokumentation som lättfattligt beskriver vad förändringarna betyder i praktiken och vilka logiska antaganden man bör se upp med. Det menar Dave Thaler, medlem i Internet Architecture Board, som föreläst om några av de fallgropar som kan vara bra att känna till för verksamheter som arbetar med nätverksbaserade lösningar:
Om A kan nå B, kan B också nå A – Många internetapplikationer antar att om värd A kan ansluta till värd B, då måste även det omvända vara sant. Applikationer utnyttjar detta antagande när de utför funktioner som bygger på förfrågan och svar. Detta stämmer dock inte alltid. Brandväggar och network adress translators (nat) kan stoppa trafiken i olika riktningar. Även vissa trådlösa nätverk och satellitlänkar kan utgöra hinder för ett fritt trafikflöde.
Om A når B, och B når C, då kan A också nå C – Bygger på ett liknande antagande som myten ovan och är inte heller alltid sann. Antagande gäller applikationer som utför funktioner för förfrågningar och som utnyttjar referenser för att försöka kommunicera via flera led.
Multicast fungerar alltid – Multicast är en teknik för att skicka data över nätverk till flera ändpunkter samtidigt. Ett flertal applikationer utgår ifrån att multicast fungerar med alla länktyper, men det är inte alltid sant för 802.11-baserade trådlösa nätverk eller via tunneltekniker som Teredo eller 6to4.
Tiden för upprättande av en dataförbindelse mellan två system ger en indikation om svarstider för resten av sessionen – Vissa applikationer tenderar att utgå från att svarstiden för det första ip-paketet som skickas är typisk för de svarstider som gäller framöver. Till exempel kan en applikation skicka endast en ping-förfrågan till flera servar och välja den som svarar först. Detta tar inte hänsyn till att det första datapaketet kan råka ut för fördröjningar. Som ett resultat kan applikationer därför komma att välja onödigt långa trafikvägar och uppnå dåliga överföringshastigheter.
Ip-adresser ändras sällan – En del applikationer lagrar adresser efter första sessionen och lägger dem sedan i en cache som referens för framtida anslutningar. Detta utan att ta hänsyn till adressens livstid. Antagandet om statiska adresser är förlegat idag eftersom protokoll som dynamic host configuration protokoll och nätverk med roaming-stöd bygger på tilldelning av dynamiska adresser utan någon fix livslängd.
En dator har bara ett gränssnitt och anslutning till nätverket – Antagandet är ett exempel på en myt som aldrig varit sann ens till att börja med. Både anslutande klienter och värdsystem kan ha flera fysiska anslutningar, som i sin tur kan ha flera logiska ip-adresser. Dubbla noder med ipv4 och ipv6, samt flera ipv6-adresser via samma gränssnitt är inte ovanligt.
Om A och B har adresser i samma subnät, måste dessa vara nära varandra – Vissa applikationer utgår ifrån att den adress som en applikation använder också är densamma som används för att dirigera trafiken (routing). I praktiken betyder det att en applikation kan anta att två system i samma subnät är fysiskt nära varandra och därför bättre att kommunicera med jämfört med system som är långt borta. Antagandet är inte alltid korrekt på grund av tekniker som vpn-anslutningar och mobila klienter som utnyttjar just skyddade förbindelser för att nå privata nätverk.
Nya transportprotokoll kommer alltid att fungera över internet – Ip-protokollet är designat med stöd för nya transportprotokoll, men i praktiken är antagandet om garanterad funktion ändå inte sann alla gånger. Många nat-system och brandväggslösningar tillåter endast tcp- och udp-protokoll för datatrafik.
Om en dataström mellan A och B går fram, då kan ytterligare en också göra det – Vissa applikationer öppnar fler än en anslutning till samma värd. Till exempel en anslutning för dataöverföringar och en för systemkommandon. Problemet med detta är att vissa mellanliggande noder, till exempel nat-system och brandväggar, blockerar vissa portar eller nekar fler än en samtidig kommunikation från en ändpunkt. Detta är anledningen till att vissa applikationers protokoll inte alltid fungerar, som till exempel ftp och rtp.
Skickad data förblir omanipulerad under färdvägen – Även om det kanske var sant att datapaket endast transporterades i nätverket när ip-protokollet och internet befann sig i sin barndom, är det långt ifrån sant idag. Brandväggar med funktioner för deep-packet-inspection, som granskar innehållet i paketen mellan kommunicerande noder, slår hål på den myten. Så kallade man-in-the-middle-attacker, som okrypterade trådlösa nätverket är sårbara för, öppnar också för ändringar av paketen innan de når mottagaren.
Internetkommunikation är privat – Antagandet bygger på att datapaket inte kan granskas av obehöriga. Detta är falskt. Det enda riktigt bra sättet att skydda sina paket på är genom att rulla ut ipsec, som utnyttjar autentisering och kryptering för att förhindra avlyssning.
Källadressen är alltid sann – Många applikationer antar att datapaket kommer från den ip-adress som paketen använder. Antagandet stämmer inte alla gånger. Att förfalska ip-adresser har blivit allt vanligare idag i syfte att dölja avsändarens verkliga identitet. Falska ip-adresser kan även användas för överbelastningsattacker.
Känner du till någon annan internetmyt som vi inte nämnde här ovan? Varför inte dela med dig i kommentarsfältet till artikeln!