# IPv6

IPv6 és la versió 6 del Protocol d'Internet (IP), un estàndard de nivell de xarxa que s'encarrega de dirigir i encaminar els paquets commutats. Està dissenyat per substituir l'actual IPv4 a Internet, ja que el seu límit en el nombre d'adreces de xarxa disponibles està començant a restringir-ne el creixement (l'elevat increment d'assignacions a zones d'Àsia n'ha accelerat l'exhauriment). Actualment, la IANA (Internet Assigned Numbers Authority) ja ha assignat tot l'espai d'adreçament d'IPv4 als diferents RIR (registres regionals d'Internet), que estan repartint els últims grups d'adreces. Cada RIR té una data estimada d'esgotament diferent. La nova IPv6, permetrà proporcionar als futurs telèfons mòbils i tota mena de dispositius una adreça fixa i pròpia per a cada un d'ells.
IPv6 és la segona versió del protocol d'Internet que s'ha adoptat per l'ús general. Va ser definit l'any 1996 per l'IETF a partir del document RFC 2460. També va existir un IPv5, tot i que no era un successor d'IPv4, sinó que fou un protocol experimental orientat al flux d'streaming que intentava suportar veu, vídeo i so.
Es preveu que caldrà seguir suportant el protocol IPv4 junt amb l'IPv6 durant força temps, ja que hi ha una gran quantitat de dispositius que encara no estan adaptats per funcionar amb la nova versió del protocol (ordinadors amb sistemes antics, impressores en xarxa, videocàmeres IP, etc..).

## Adreçament IPv6

El canvi més dràstic d'IPv4 respecte d'IPv6 és la longitud de les adreces de xarxa. Les adreces IPv6, definides als documents RFC 2373 i RFC 2374, són de 128 bits. IPv4 suporta 4.294.967.296 (2³²) adreces de xarxa diferents, un nombre inadequat si a la llarga volem donar una adreça a cada persona del planeta, i menys encara per a cada cotxe, telèfon, PDA, etc. En canvi, IPv6 suporta 340.282.366.920.938.463.463.374.607.431.768.211.456 (2$^{128}$ o 340 sextilions) d'adreces —prop de 3,4 × 10$^{20}$ (340 trilions) adreces per cada polzada quadrada (6,7 × 10$^{17}$ o 670 mil bilions d'adreces/mm²) de la superfície de a Terra. Aquest nombre pot representar-se també com 16³², amb 32 dígits hexadecimals, cadascun dels quals pot prendre 16 valors (vegeu combinatòria).
En molts casos, les adreces IPv6 estan formades per dues parts lògiques: un prefix de 64 bits i una altra part de 64 bits que correspon a l'identificador de la interfície. Aquest últim acostuma a generar-se automàticament a partir de l'adreça MAC de la interfície a la que es troba assignada l'adreça.

### Notació per a adreces IPv6

Les adreces IPv6, de 128 bits de longitud, s'escriuen com vuit grups de quatre dígits hexadecimals.
Per exemple,
    2001:0db8:85a3:08d3:1319:8a2e:0370:7334
és una adreça IPv6 vàlida.
Si un grup de quatre dígits és nul (és a dir, pren el valor "0000"), pot ser comprimit. Per exemple,
    2001:0db8:85a3:0000:1319:8a2e:0370:7344
és la mateixa adreça que
    2001:0db8:85a3::1319:8a2e:0370:7344
Seguint aquesta regla, si més de dos grups consecutius són nuls, poden comprimir-se com "::". Si l'adreça té més d'una sèrie de grups nuls consecutius, la compressió es pot aplicar en més d'un. Així,
    2001:0DB8:0000:0000:0000:0000:1428:57ab
    2001:0DB8::1428:57ab
són totes vàlides i representen el mateix, però
    2001::25de::cade
no és vàlida perquè no queda clar quants grups nuls hi ha a cada costat.
Els zeros inicials en un grup poden ser omesos. Així,
    2001:0DB8:02de::0e13
és el mateix que
    2001:DB8:2de::e13
Si l'adreça és una IPv4 camuflada, els últims 32 bits poden escriure's en base decimal; així,
    ::ffff:192.168.89.9 és el mateix que
    ::ffff:c0a8:5909, però no equival a
    ::192.168.89.9 o bé
    ::c0a8:5909.
El format ::ffff:1.2.3.4 es denomina adreça IPv4 mapejada, i el format ::1.2.3.4 adreça IPv4 compatible.
Les adreces IPv4 poden ser fàcilment transformades al format IPv6. Per exemple, si l'adreça decimal IPv4 és 135.75.43.52 (en hexadecimal, 0x874B2B34), aquesta pot ser convertida a 0000:0000:0000:0000:0000:0000:874B:2B34 o ::874B:2B34. Llavors es pot usar la notació mixta adreça IPv4 compatible, de manera que en aquest cas seria ::135.75.43.52. Aquest tipus d'adreça IPv4 compatible no està essent quasi utilitzada a la pràctica, malgrat que els estàndards no l'han declarada obsoleta.

### Identificació dels tipus d'adreces

Els tipus d'adreces IPv6 poden identificar-se prenent en compte els primers bits de cadascuna.
* ::/128 – l'adreça amb tot zeros es fa servir per a indicar l'absència d'adreça, i no s'assigna a cap node.
* ::1/128 – l'adreça de loopback és una adreça que pot usar un node per a enviar-se paquets a si mateix (correspon amb 127.0.0.1 d'IPv4). No pot assignar-se a cap interfície física.
* ::/96 – L'adreça IPv4 compatible es fa servir com un mecanisme de transició en les xarxes duals IPv4/IPv6. És un mecanisme obsolet.
* ::ffff:0:0/96 – L'adreça IPv4 mapejada és utilitzada com un mecanisme de transició en terminals duals.
* fe80::/10 – El prefix d'enllaç local (< anglès link local) especifica que l'adreça només és vàlida a l'enllaç físic local.
* fec0::/10 – El prefix d'emplaçament local (< anglès site-local prefix) especifica que l'adreça només és vàlida dintre d'una organització local. El RFC 3879 el va declarar obsolet, establint que els sistemes futurs no havien d'implementar cap suport per aquest tipus d'adreça especial.
* ff00::/8 – El prefix de multicast es fa servir per a les adreces multicast.
Cal ressaltar que les adreces de difusió (< anglès broadcast) no existeixen en IPv6, tot i que la funcionalitat que ofereixen pot emular-se utilitzant l'adreça multicast FF01::1, denominada tots els nodes (< anglès all nodes)

## Paquets IPv6

Un paquet IPv6 està format principalment de dues parts: la capçalera i les dades.
La capçalera es troba en els primers 40 bytes del paquet i conté les adreces d'origen i de destí (128 bits cadascuna), la versió del protocol IP usat (4 bits), la classe de tràfic (8 bits, Prioritat del Paquet), etiqueta de flux (20 bits, gestió de la Qualitat de Servei), longitud del camp de dades (16 bits), capçalera següent (8 bits), i límit de salts (8 bits, Temps de Vida). A continuació ve el camp de dades, amb la informació que transporta el paquet, que pot arribar fins a 64k de mida en mode normal, o a més fins i tot, amb l'opció "jumbo payload".
Hi ha dues versions d'IPv6 lleument diferents. La -ara- obsoleta versió inicial, descrita en el RFC 1883, difereix de l'actual proposta d'estàndard, descrita en el RFC 2460, en dos camps: 4 bits han estat reassignats des d'"etiqueta de flux" (flow label) cap a "classe de tràfic" (traffic class). La resta de diferències són menors.
Amb IPv6, la fragmentació es realitza tan sols al node origen del paquet, contràriament que amb IPv4 - on els routers poden fragmentar un paquet. Amb IPv6, les opcions també se surten de la capçalera estàndard i són especificades pel campo "Capçalera Següent" (Next Header), similar en funcionalitat amb IPv4 al camp Protocol. Un exemple: amb IPv4 s'afegiria l'opció "ruta fixada des de l'origen" (Strict Source and Record Routing) a la capçalera IPv4 si es vol forçar una determinada ruta per al paquet- Però en IPv6 es modificaria el camp "Capçalera Següent", indicant que una capçalera d'encaminament és la pròxima de venir. La capçalera d'encaminament podrà llavors especificar la informació addicional d'encaminament per al paquet, i indicar que, por exemple, la capçalera TCP serà la següent. Aquest procediment és anàleg al d'AH i ESP amb IPsec per a IPv4 (que s'aplica igualment a IPv6).

## Capçaleres d'extensió d'IPv6

L'ús d'un format flexible de capçaleres d'extensió opcionals és una idea innovadora que permet anar afegint funcionalitats de forma progressiva. Aquest disseny aporta una gran eficàcia i flexibilitat, ja que es poden definir en qualsevol moment a mesura que calgui entre la capçalera fixa i la càrrega útil.
Actualment, existeixen 8 tipus de capçaleres d'extensió, on la capçalera fixa i las d'extensió opcionals inclouen el camp de capçalera següent, que identifica el tipus de capçalera d'extensió que ve a continuació, o l'identificador del protocol de nivell superior. Aleshores les capçaleres d'extensió es van encadenant utilitzant el camp de capçalera següent que apareix tanta a la fixa com en cadascuna de les esmentades capçaleres d'extensió. Com a resultat de la seqüència anterior, cal processar aquestes capçaleres d'extensió en el mateix ordre amb què apareixen al datagrama. Totes o part d'aquestes capçaleres d'extensió han d'ubicar-se en el datagrama en l'ordre especificat:
* Capçalera principal, conté el contrari del que hi ha a la capçalera de la versió IPv4, amb una mida fixa de 40 octets/bytes.
* Capçalera d'opcions de salt a salt (Hop-by-Hop), transporta informació opcional, conté les dades que han de ser examinades per cada node (qualsevol sistema amb IPv6) a través de la ruta d'enviament d'un paquet. El seu codi és 0.
* Capçalera d'encaminament (Routing), es fa servir perquè un origen IPv6 indiqui un o més nodes intermedis que cal visitar en el camí del paquet cap al destí. El codi que utilitza és el 43.
* Encaminament des de la font.
* Capçalera de fragmentació (Fragment), fa possible que l'origen enviï un paquet més gran del que cabria a la MTU de la ruta (unitat màxima de transferència). cal tenir present que a diferència que amb IPv4, amb IPv6 la fragmentació d'un paquet només es pot realitzar en els nodes d'origen. El codi utilitzat en esta capçalera és 44.
* Capçalera d'autenticació (Authentication Header), serveix per a proveir serveis d'integritat de dades, autenticació de l'origen de les dades, antireplay per a IP. El codi d'aquesta capçalera és el 51.
* Capçalera d'encapsulació de seguretat de la càrrega útil (Encapsulating Security Payload), permeten oferir serveis d'integritat de dades. El codi al qual fa referència aquesta capçalera és el 50.
* Capçalera d'opcions per al destí (Destination), es fa servir per portar informació opcional que necessita ser examinada únicament pels nodes destí del paquet. L'última de les capçaleres utilitza el codi 60.
Cada capçalera d'extensió ha d'aparèixer com a molt una sola vegada, excepte la d'opcions per al destí, que pot aparèixer com a molt dues vegades, una abans de la capçalera d'encaminament i l'altra abans de la capçalera de la capa superior.

## IPv6 i el Sistema de Noms de Domini

Les adreces IPv6 es representen en el Sistema de Noms de Domini (DNS) mitjançant registres AAAA (també anomenats registres de quad-A, per analogia amb els registres A per a IPv4)
El concepte d'AAAA fou una de les dues propostes en el moment en què l'arquitectura IPv6 estava essent dissenyada. L'altra proposta feia servir registres A6 i altres innovacions com les etiquetes de cadena de bits (bit-string labels) i els registres DNAME.
Mentre la idea d'AAAA és una simple generalització del DNS IPv4, la idea d'A6 fou una revisió i posada a punt del DNS per a ser más genèric, d'aquí la seva complexitat.
El RFC 3363 recomana utilitzar registres AAAA mentre no es provi i estudiï exhaustivament l'ús dels registres A6. El RFC 3364 realitza una comparació dels avantatges i inconvenients de cada tipus de registre.

## Referències

* ↑ New Zealand IPv6 Task Force. «FAQs». Arxivat de l'original el 1 de gener 2016. [Consulta: 26 octubre 2015].
* ↑ «Projecció d'esgotament d'adreces per cada RIR». [Consulta: 23 desembre 2011].
* ↑ Plantilla:IETF RFC, Internet Protocol, Version 6 (IPv6) Specification, S. Deering, R. Hinden (December 1998)
* ↑ Google IPv6 Conference 2008: What will the IPv6 Internet look like?. Dura 13:35.
* ↑ Plantilla:IETF RFC, R. Droms, J. Bound, B. Volz, T. Lemon, C. Perkins, and M. Carney, Dynamic Host Configuration Protocol for IPv6 (DHCPv6), July 2003 (Proposed Standard)
* ↑ Plantilla:IETF RFC, A Recommendation for IPv6 Address Text Representation, S. Kawamura (August 2010), section 4.2.2: http://tools.ietf.org/html/rfc5952#section-4.2.2
* ↑ Narten, T. «Neighbor discovery and stateless autoconfiguration in IPv6». IEEE Internet Computing, 3, 4, 01-08-1999, pàg. 54–62. DOI: 10.1109/4236.780961.

## Enllaços externs

* Notícies i Informació d'IPv6
* Ajuda sobre IPv6