IPv6

**Internet Protocol version 6** (**IPv6**), er næsta kynslóð af IP staðlinum (þ.e. á eftir IPv4) sem hefur verið notaður í tölvunetum síðan árið 1980. IPv6, sem staðlað var 2017 (og notað í litlum mæli fyrr), er fyrst og fremst ætlaður sem útvíkkun á IPv4 (oftast nefndur IP) og standa vonir til að hann muni smátt og smátt taka við af IPv4 á internetinu á næstu árum. IP liggur á 3. lagi OSI-líkansins svokallaða.

Ákveðnir staðlar fyrir farsíma gera t.d. ráð fyrir að notað sé IPv6 en ekki eldri IPv4.

## Inngangur
IPv6 staðallinn betrumbætir margt sem annaðhvort vantaði í IPv4 eða var illa hannað þar. Helstu nýjungar með IPv6 eru:

* Lengri IP-tölur (16 bæti í stað 4ra í IPv4).
* Einfaldari stöðulaus sjálfvirk uppsetning á netum (vélar geta sjálfar ákvarðað síðustu 64 bita í IP-tölunni sinni).
* Innbyggt IPsec (dulkóðun og upprunastaðfesting innbyggð í staðalinn)
* Fjölvarp (e. multicast) er innbyggt í staðalinn.
* Stærri pakkar eru leyfðir, ef að hámarksstærð sendieiningar (MTU) er nægilega stór geta IPv6 pakkar verið allt að 4&nbsp;GB að stærð.

## Ritvenja IPv6 talna
Í ljósi þess að IPv6 tölur eru fjórfalt lengri en IPv4 tölur þótti henta betur að tákna þær í talnakerfi með grunntöluna 16 (e. hexadecimal) frekar en með grunntöluna 10. Að sama skapi þótti við hæfi að hópa saman tvö og tvö bæti (í stað eins bætis í fyrri staðli) og aðgreina tveggja bæta hópa með tvípunkti í stað punkts áður. Dæmi um IPv6 tölu er:
2001:0db8:0000:0000:0AA3:0000:1428:57ab

Löngum runum af núllum má skipta út fyrir stök núll eða fyrir tvo tvípunkta (::) en þetta má þó einungis gera á einum stað í hverri IP-tölu. Einnig má sleppa því að rita núll sem koma fyrir í gildismestu bitum (lengst til vinstri) í tilteknum talnahópi. Sem dæmi má rita IP-töluna að ofan á eftirfarandi hátt:

 2001:0db8:0000:0000:0AA3:0000:1428:57ab
 2001:0db8:0000:0000:0AA3::1428:57ab
 2001:0db8::0AA3:0000:1428:57ab
 2001:0db8:0:0:0AA3:0:1428:57ab
 2001:0db8::0:0AA3:0:1428:57ab
 2001:db8::AA3:0:1428:57ab

Einnig eru netnúmer sett fram með netmaska á sniðinu: /. Dæmi:

2001:0db8::/64

Það að talan endi á tveim tvípunktum þýðir að öftustu bitarnir eru allir 0.

## Uppbygging IPv6 talna
Markminnstu (lengst til hægri) 64-bitarnir í IPv6 tölu eru ætlaðir einstökum tækjum. Ekki er ætlast til þess að þeim bitum sé skipt í undirnet og eru undirnet því að minnsta kosti 64-bita stór (leyfa fræðilega 1,8*1019 tæki). Augljóst er að ekki er hagkvæmt að hafa svo mörg tæki á einu undirneti (netlagi 2) enda eru yfirleitt ekki mikið fleiri en 1000 tæki á slíkum netum. Þetta kristallar eina af stærstu breytingunum frá fyrri staðli, en ætlast er til að tæki ákveði sjálf hverjir þessir 64 bitar eru. Þeir eru gjarnan ákvarðaðir út frá EUI-64 vistfangi tækis, sem aftur er ákvarðað út frá MAC vistfangi netkorts í flestum tilvikum. Einnig getur tæki ákveðið að markminnstu bitar IP-tölu sinnar séu slembnir. Af þessum orsökum rúmast í raun töluvert færri tæki innan IPv6 kerfisins en reikna mætti út með 2128 enda eru engar líkur á að allir bitar innan undirnets séu nokkurn tímann notaðir.

Þeir 16 markmeiri bitar sem eru fyrir ofan tækistöluna ákvarða undirnet.

Lokst ákvarða markmestu bitarnir yfirnet. Eins og er byrja allar IPv6-tölur sem úthlutað er á bitunum 001. Þetta þýðir að fremsti stafurinn í öllum slíkum tölum verður annað hvort 2 (0010)2 eða 3 (0011)2. Annars konar tegundir (með mismunandi markmestu bita) eru einnig til, svosem tölur sem bundnar eru við tengilag (e. link local) (FE80::/10), fjölvarpstölur (FF00::/8) og staðbundnar tölur (e. site local) (FC00::/7).

## Stuðningur við IPv6
Flest nýrri stýrikerfi styðja IPv6:

* Windows XP með þjónustuviðbót 1 (SP1) (2002) styður IPv6 en kveikja þarf sérstaklega á því.
* Windows Vista styður IPv6 og kveikt er á því við uppsetningu.
* Nægilega góður IPv6 stuðningur var byggður inn í Linux kjarnann frá og með útgáfu 2.6.10 (2004) en hluta af staðlinum var bætt inn í útgáfu 2.4.
* Apple Mac OS X v10.3 "Panther" (2003) var fyrsta stýrikerfið frá Apple sem studdi staðalinn.
* BSD hefur boðið upp á IPv6 stuðning síðan árið 2000.

## Upptaka IPv6
IPv6 var til í yfir 18 ár (IPng hópur, fyrir IP next generation" var stofnaður í upphafi til að vinna að staðli) áður en að endanlegur staðall, "Internet Standard", RFC 8200, kom út 2017.

Hæglega hefur gengið að fá internettengda aðila til að taka upp IPv6 og þá aðallega bæði vegna kostnaðar og vegna þess að ennþá vantar töluvert upp á að hugbúnaður styðji IPv6. Þó þarf í flestum tilvikum tiltölulega litla fyrirhöfn til að breyta forritum þannig að þau styðji staðalinn en á meðan að fleiri hafa ekki tekið hann upp er lítill þrýstingur á hugbúnaðarfyrirtæki að breyta forritum sínum og er þá komið upp vandamál á borð við það hvort kom fyrr, hænan eða eggið.

Þó er búið að setja á stofn IPv6 internetbakbein sem öllum (þ.m.t. einstaklingum) er frjálst að tengjast við. Í þeim tilvikum sem internetþjónustuaðili býður ekki upp á IPv6 stuðning (sem er í langflestum tilvikum þegar þetta er ritað) er hægt að pakka IPv6 pökkum innan í IPv4 pakka og senda þá í gegnum svokölluð göng (e. tunnel) inn á IPv6 internetið. Þetta er allt hægt með fríum hugbúnaði

Ljóst er að helsta hvötin til að taka upp IPv6 er sífellt meiri skortur á IPv4 tölum. Spár eru um að slíkar tölur verði uppurnar á bilinu 2010-2020 en ljóst er að þegar slíkt gerist verður bráð nauðsyn á að flýta upptöku IPv6.

## Tengt efni
* Network address translation
* Internet Group Management Protocol

## Tilvísanir


## Frekara lesefni
### Staðlaskilgreiningar
* RFC 8200: Internet Protocol, Version 6 (IPv6) Specification (úreldir RFC 2460)
* RFC 2461/RFC 4311: Neighbor Discovery for IP Version 6 (IPv6) (4311 uppfærslur)
* RFC 2462: IPv6 Stateless Address Autoconfiguration
* RFC 4443: Internet Control Message Protocol (ICMPv6) for the IPv6 Specification (úreldir RFC 2463)
* RFC 2464: Transmission of IPv6 Packets over Ethernet Networks
* RFC 4291: Internet Protocol Version 6 (IPv6) Addressing Architecture (úreldir RFC 3513)
* RFC 3041: MAC address use replacement option
* RFC 3587: An IPv6 Aggregatable Global Unicast Address Format
* RFC 5006: IPv6 Router Advertisement Option for DNS Configuration

### Stöðulaus sjálfvirkuppsetning
* RFC 2461: Neighbor Discovery for IP Version 6 (IPv6)
* RFC 2462: IPv6 Stateless Address Autoconfiguration
 
### Forritun
* RFC 3493: Basic Socket Interface Extensions for IPv6 (úreldir RFC 2553)
* RFC 3542: Advanced Sockets Application Program Interface (API) for IPv6 (úreldir RFC 2292)
* RFC 4038: Application Aspects of IPv6 Transition
* RFC 3484: Default Address Selection for Internet Protocol version 6 (IPv6)

### Bækur
* ISBN 0-12-370479-0 IPv6 Advanced Protocols Implementation (Apríl 2007)
* ISBN 0-12-447751-8 IPv6 Core Protocols Implementation (Október 2006)
* ISBN 0-471-49892-0 Migrating to IPv6: A Practical Guide to Implementing IPv6 in Mobile and Fixed Networks (2006)
* ISBN 1-59059-527-0 Running IPv6 (2006)
* ISBN 0-596-00934-8 IPv6 Network Administration (2005)
* ISBN 0-596-10058-2 IPv6 Essentials, 2nd Edition by Silvia Hagen (2006)
* ISBN 1-55558-318-0 IPv6 network programming by Jun-ichiro itojun Hagino (2004)
* ISBN 0-13-241936-X IPv6: The New Internet Protocol by Christian Huitema (1998) (Upphaflega IPv6 biblían)

### Verkfæri

* IPv4 Subnet Tools