IPv6

Från Wikipedia
Hoppa till: navigering, sök
Protokollstack för IP-nätverk
IP-skikt
Protokoll
5. Applikation  BitTorrent | DHCP | DNS | FTP | HTTP | IMAP | IRC | NNTP | POP3 | RTP | SIP | SMTP | SNMP | SSH | Telnet | TLS | SSL | TFTP
4. Transport DCCP | SCTP | TCP | UDP | IL | RUDP
3. Nätverk ARP | BGP | ICMP | IGMP | IP (IPv4 | IPv6) | RIP
2. Länk ATM | Ethernet | FDDI | ISDN | MPLS | Token Ring | PPP | SLIP | Wi-Fi
1. Fysiskt IEEE 802 | ISDN | RS-232 | IrDA | Bluetooth | xDSL

Internet Protocol version 6 (IPv6) är version sex av internetprotokollet (IP). Enligt OSI-modellen arbetar IPv6 i nätverksskiktet.

Protokollet är avsett att ta över efter IPv4. Det fanns även ett IPv5 som dock inte var en efterföljare till IPv4 utan snarare ett experimentellt protokoll avsett för flödande protokoll, gjort för att stödja ljud- video- och röstkommunikation.

Avsikt med protokollet[redigera | redigera wikitext]

IPv6 utvecklades på grund av att antalet möjliga adresser i IPv4 inte är tillräckligt. IPv4 har med sin 32-bitars adresslängd drygt 4 miljarder möjliga adresser. Detta räcker inte till en adress till varje invånare på jorden och utrustning som kan önskas kopplas in på Internet. IPv6 löser detta genom att använda 128 bitar långa adresser istället. Detta ger en teoretisk möjlighet för 3,4·1038 adresser. För att göra det mer överskådligt, 6,7·1017 adresser per kvadratmillimeter på jordens yta, eller drygt 57 miljarder adresser per gram av hela vår planets massa, eller sammanlagt exakt: 340 282 366 920 938 463 463 374 607 431 768 211 456 adresser (nästan 340,3 sextiljoner).

I dagsläget används IPv6 i vissa mobila och privata nätverk. Man tror att IPv4 kommer att stödjas fram till åtminstone 2025, för att de flesta buggar och systemfel i IPv6 ska hittas och åtgärdas. Dock har övriga världen utom Afrika slut på IPv4 och alla övriga länder i EU ligger långt före Sverige i utvecklingen så vår plats som "IT-nation" är mycket överskattad just nu.

Historia[redigera | redigera wikitext]

IPv6 uppfanns av Steve Deering och Craig MudgeXerox PARC. IPv6 accepterades av IETF 1994, och kallades då för "IP Next Generation" (IPng).

Implementeringen av IPv6 har saktats ner till stor del på grund av introduceringen av NAT, som delvis löser problemet med för få adresser. NAT har dock en hel del begränsningar som gör det mindre lämpligt för P2P-trafik så som IP-telefoni och fildelning.

Internet domineras fortfarande av IPv4 och bara några få procent av Internets datorer har IPv6-adresser. I Sverige finns stöd för IPv6 hos bland annat Bredband2, IP-Only, SUNET, Availo, Telia, TDC,Tele2,Gavlenet,Sandnet,Sattelithuset i Limmared AB,Telenor,Bahnhof samt Hi3G_Access_AB. Stödet bland de svenska Internetoperatörerna är dock mycket begränsat beroende på vilken anslutning som erhålls. De "öppna" näten med flera operatörer är en stor begränsning för IPv6 i Sverige. I USA har det bestämts att alla federala myndigheter ska ha visst stöd för IPv6 år 2008.

20 juli 2004 gick ICANN ut med att den första ROOT-DNS-servern på Internet har modifierats för att stödja både IPv6 och IPv4. [1] 11 av 13 ROOT-servrar har idag IPv6 aktiverat.

Adressering[redigera | redigera wikitext]

128-bitars längd[redigera | redigera wikitext]

Den största förändringen mellan IPv4 och IPv6 är längden på adresserna. IPv6-adresser är 128 bitar långa, något som specificeras i RFC 2373 samt RFC 2374. Detta skrivs normalt med 32 hexadecimala tecken, grupperade om fyra separerade med kolon.

IPv6-adresser är vanligen komponerade av två logiska delar: ett 64-bitars nätverksprefix, samt en 64-bitars lokal del. Den senare delen genereras ibland automatiskt med hjälp av nätverkskortets MAC-adress. Oftare används ett slumpat 64-bitars tal eftersom MAC-adresser avslöjar information om användaren. Detta beskrivs i större detalj i RFC 3041.

Notation[redigera | redigera wikitext]

IPv6 adresser skrivs normalt som åtta grupper om fyra tecken. Adressen åtföljs ofta av ett snedstreck, och därefter längden på prefixet. Ett exempel: 2001:0db8:85a3:08d3:1319:8a2e:0370:7334/64 är en giltig IPv6 adress.

Sekvenser av nollor kan förkortas och göras mer läsvänlig för människor genom att skriva ihop två kolon och utelämna nollorna där emellan. Inledande nollor i en grupp om 16 bitar (eller 4 hexadecimala tecken) kan förkortas bort. Exempelvis kan adressen 2001:fe0c:0000:0000:0000:0000:00db:1dc0 skrivas 2001:fe0c::db:1dc0. Förfarandet beskrivs i detalj i RFC 4291.

Dessa sex exempel är alla giltiga och likvärdiga:

2001:0db8:0000:0000:0000:0000:1428:07ab/64
2001:0db8:0000:0000:0000::1428:07ab/64
2001:0db8:0:0:0:0:1428:07ab/64
2001:0db8:0::0:1428:07ab/64
2001:0db8::1428:07ab/64
2001:db8::1428:7ab/64

Dock så är 2001::25de::cade/64 ogiltig eftersom det är otydligt hur många 0000-grupper som har förkortats bort på vardera sida.

Allokerade adresser[redigera | redigera wikitext]

IPv6 har vissa grupper av adresser tillägnade speciella ändamål. IANA har en lista över vilka adressprefix som får användas för olika bruk.

  • ::/8 används för att beskriva den ospecificerade adressen ::/128 som motsvarar IPv4-adressen 0.0.0.0. Gruppen innehåller även loopback-adressen ::1/128 som får användas internt av mjuk- och hårdvara för att beskriva den egna datorn. ::1/128 motsvaras i IPv4 av 127.0.0.1.
    • ::ffff:0:0/96 bör enbart användas för att översätta IPv4-adresser till IPv6-adresser enligt RFC 3484. Genom att följa denna standard kan datorer med IPv6-adresser ansluta till datorer med enbart IPv4-adresser.
  • 2000::/3 används för att beskriva unika adresser nåbara över internet. Alla datorer som är anslutna till internet och har en IPv6 adress har minst en adress ur den här gruppen.
    • 2001:db8::/32 är speciellt tillägnad exempel-adresser i dokumentation. Detta beskrivs mer i RFC 3849.
    • 2002::/16 används för att översätta IPv4-adresser till IPv6-adresser och för att skicka IPv6-paket över IPv4-nätverk. Detta beskrivs bland annat i RFC 3056.
  • fc00::/7 är Unique Local Address, ULA får lov att användas i LAN och kan jämföras med IPv4 RFC1918.
  • fe80::/10 får lov att användas lokalt mellan två datorer som är direkt anslutna. Ofta används adresserna härur mellan en dator och en router.
  • ff00::/8 används för multicast. (Sända meddelanden till flera datorer samtidigt.)
  • fec0::/10 och 200::/7 bör inte användas eftersom de internt är inkompatibla mellan olika RFC-dokument.

Övriga adresser används ännu inte till någonting. Ytterligare adressgrupper kan finns inuti de allokerade mängderna som har fler specifika ändamål. Listan ovan är inte fullständig.

Pakethuvud[redigera | redigera wikitext]

IP-trafik är paketbaserat, och varje paket inleds med en header enligt följande:

+ Bits 0 - 3 4 - 11 12-15 16 - 31
0 Version Traffic class Flow label
32 Payload length Next header Hop limit
64 Source adress, 128 bitar
192 Destination Address, 128 bitar
320 Data

Version - vilken version av IP-protokollet paketet består av. Detta fält är alltid 6 (binärt 0110) för IPv6.

Traffic class - Beskriver paketets prioritet. Paket med låg prioritet kan kastas före paket med högre prioritet om en länk blir överbelastad.

Flow label - En QoS-indikator som nätleverantörer kan sätta för att ge olika behandling till olika typer av tjänster, protokoll eller användare.

Payload length - Antal byte som följer efter pakethuvudet i paketet.

Next header - Beskriver vilken typ av information som följer direkt efter pakethuvudet. Det kan vara en beskrivning av ett annat protokoll (till exempel TCP) eller ytterligare information (extension headers) som beskriver hur paketet önskas behandlas av nätutrustningen. Detta beskrivs bland annat i RFC 2460.

Hop limit - Antal gånger som paketet får skickas vidare mellan nätutrustning innan det når mottagaren. Fältet finns för att motverka att paket skickas vidare i all evighet om nätutrustningen vore felkonfigurerad.

Source Address - Sändarens IP-adress

Destination Address - Mottagarens IP-adress

Data - Information som skickas till mottagaren

Funktioner[redigera | redigera wikitext]

Stateless Address Autoconfiguration[redigera | redigera wikitext]

Stateless Address Autoconfiguration(SLAAC) är en av de nya funktionerna I IPv6 för att snabbt införa uppkopplingsbara enheter/maskiner i ett nätverk. När en IPv6 enhet ansluts till IPv6 nätverk konfigureras den automatiskt med hjälp av Neighbor Discovery Protocol via Internet Control Message Protocol Version 6 (ICMPv6).[2]

SLAAC mekanismen kräver ingen manuell konfiguration av nya enheter, minimal(om några) konfigureringar av routers och inga ytterligare servrar. Genom en kombination av lokalt tillgänglig information och information som annonseras av routrar, tillåts en enhet att genererar en egen adress. Routrar annonserar prefix som identifierar subnät associerade med en länk, medan enheten genererar en ”interface identifier” som unikt identifierar interfaces på ett subnät. En adress bildas genom att kombinera de båda. Vid avsaknaden av en router kan en enhet enbart generera ”Link-local addresses”. Men ”link-local addresses” är tillräckliga för att kommunikation mellan noder som är anslutna till samma länk. Genom användningen av ”Link-local addresses” kan man uppnå ”Plug-and-play” kommunikation.[2]

SLAAC metoden används när man inte bryr sig om vilken exakt adress som enheten använder sig av. När man kräver en bättre kontroll av exakta adressuppgifter använder man sig av Dynamic Host Configuration Protocol för IPv6 (DHCPv6)[3]. SLAAC och DHCPv6 kan men bör inte användas samtidigt.[2]


IPv6 Fragmentering[redigera | redigera wikitext]

I IPv4 fragmenterades paket av mellanliggande routrar. Den möjligheten togs bort i IPv6, istället fragmenterar endast källan paketen och destinationen återuppbygger dessa. Ifall paketen överstiger Maximum Transmission Unit så skickar destinationsadressen eller en router tillbaka ett Internet Control Message Protocol meddelande att paketet är för stort. Då skickar källan om paket efter det har fragmenterats. [4]


Mobilt stöd[redigera | redigera wikitext]

Utan specifikt stöd för mobilitet i IPv6 skulle paket skickade till en mobil nod aldrig nås medan den mobila noden är borta från sin hemlänk. För att upprätthålla kommunikation trots rörelse, skulle en mobil nod kunna ändra sin IP adress varje gång den når en ny länk, men den mobila noden skulle då inte kunna upprätthålla sin transport eller högre-lager anslutning när den byter position[5].

IPv6 löser detta genom ett protokoll som heter Mobile IPv6. Detta protokoll tillåter mobila enheter att röra sig från en länk till en annan utan att ändra sin "hemadress". Paket kan skickas till den mobila noden genom dess "hemadress" oavsett den mobila nodens nuvarande position i internet. Den mobila noden kan även fortsätta kommunicera med andra noder efter att ha flyttat till en ny länk[5]. Detta protokoll är speciellt viktigt idag, eftersom mobila enheter och internet-of-things snart kommer stå för majoriteten av populationen på internet.

Mobile IPv6 har många gemensamma egenskaper med Mobile IPv4, fast med ett antal förbättringar. Nedan är några exempel på förbättringar jämfört med Mobile IPv4.

  • Mobile IPv6 behöver inget speciellt stöd från den lokala routern[5].
  • Mobile IPv6 ruttoptimering fungerar säkert utan för-arrangerade säkerhets associationer[5].
  • Paket skickade genom Mobile IPv6 har en IPv6 header istället för IP inkapsling. Detta reducerar overhead jämfört med Mobile IPv4[5].
  • Mobile IPv6 är frånkopplad något speciellt länklager, eftersom den använder sig av Neighbor Discovery istället för ARP, vilket ökar protokollets robusthet[5].

Referenser[redigera | redigera wikitext]

  1. ^ http://icann.org/announcements/announcement-20jul04.htm
  2. ^ [a b c] RFC 4862
  3. ^ RFC 3315
  4. ^ RFC2460
  5. ^ [a b c d e f] http://www.ietf.org/rfc/rfc3775.txt

Externa länkar[redigera | redigera wikitext]