IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

http://long.ccaba.upc.es/long/050Dissemination_Activities/jordi_palet_tutorialipv6introduccion.pdf
http://blackhold.nusepas.com/2012/10/tunel-6to4-mikrotik/
http://pad.marsupi.org/curs-ipv6
Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: Curs IPv6
Fitxers: ---
Repositori SVN: ---
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas

Introducció

IMPORTANT: S'estima que a meitat del 2012 no hi hagi cap operador espanyol que tingui adreces IPv4 per assignar

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 a substituir l'actual IPv4, ja que el seu límit en el nombre d'adreces de xarxa disponibles està començant a restringir el creixement d'Internet (l'elevat increment d'assignacions a zones d'Àsia n'està accelerant l'exhauriment).

La nova IPv6, permetrà proporcionar als futurs telèfons cel·lulars i mòbils, una direcció 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 va ser un successor d'IPv4, sinó que va ser 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. A més, els nodes (clients o servidors) exclusivament IPv4 no són capaços de comunicar-se directament amb els nodes IPv6 i necessitaran, per tant, utilitzar algun servei intermediari.

Característiques del protocol IPv6

Per què IPv6?

El protocol IPv6 està pensat per implementar certes millores però especialment per resoldre els problemes actuals de la versió 4 del protocol IP:

  • Falta de subxarxes lliures: Des de la creació del protocol IP s'han anat creant pegats per resoldre aquest problema, primer es van utilitzar les classes IP i actualment s'utilitza el sistema (Classless Inter-Domain Routing (CIDR).
  • Falta d'adreces IP lliures: també es va inventar el concepte de l'espai d'adreces IP privades ( 10.0.0.0/8, 172.16.0.0/12, i 192.168.0.0/16) que combinat amb Network Address Translation (NAT) permet que múltiples dispositius IP comparteixin una sola adreça IP per tal de connectar-se a Internet.
  • Taules de rutes massa grans: Quan més grans són les taules de rutes més capacitat de memòria i de processament han de suportar els routers d'Internet.

Millora en el rendiment i 64bits

La capçalera és de 40 bytes = 320 bits

S'adapta perfectament a processadors de 64 bits. La capçalera ocupa això i les adreces IP són de 128=64*2.

també són força comuns les màscares de 64 bits com veureu al llar d'aquest artícle.

Història

  • 1.992 - TUBA
  • Mecanismos para usar TCP y UDP sobre direcciones mayores
  • Se emplea ISO CLNP (Connection-Less Network Protocol)
  • Se descarta
  • 1.993 - SIPP
  • Proyecto Simple IP Plus
  • Mezcla de SIP y PIP (dos tentativas anteriores para sustituir a IPv4)
  • 1.994 – IPng
  • Se adopta SIPP
  • Se cambia el tamaño de direcciones a 128 bits
  • Se renombre como IPv6
  • Julio de 1.999
  • Constitución del IPv6 Forum
  • Acuerdo de compra del 75% de Telebit por Ericsson
  • Acuerdos y adopciones de IPv6 por: OTAN, ETSI, UMTS Forum, 3GPP, UE,etc.
  • Confirmación de otros fabricantes: Sun, Nortel, 3Com, Microsoft, Cisco, ...

Característiques

Les dividirem en dos parts, les característiques dissenyades per solucionar els problemes de IPv4 i les característiques noves.

Solucions als problemes de IPv4:

  • Adreçament IPv6: Un espai d'adreces de 128 bits dissenyat per que no s'acabi mai.
  • Cada dispositiu podrà tindrà la seva pròpia IP enrutable a Internet (el que a IPv4 coneixem com a IP pública). NO hi ha cap necessitat d'utilitzar NAT i a més es desaconsella el seu ús. Amb aquest canvi es retorna als orígens de la xarxa Internet la qual va ser dissenyada amb una arquitectura P2P (Peer To Peer) on tots els dispositius poguessin comunicar-se directament entre ells sense necessitat d'intermediaris.
  • Taules de rutes menys grans. Degut al millor suport geogràfic i a una millor estratègia en l'assignació jeràrquica de rangs de xarxa, el protocol IPv6 genera taules de rutes més petites.

Característiques noves:

direccionamiento anycast.

IMPORTANT: Cal destacar també que ja no s'utilitza el protocol ARP i el seu lloc s'instaurà el protocol Network Discovery un protocol de missatges que utilitza ICMPv6

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 RFC: RFC 2373 i RFC 2374, són de 128 bits.

  • IPv4 suporta 4.294.967.296 (232) adreces de xarxa diferents, un número 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.
  • IPv6 suporta 340.282.366.920.938.463.463.374.607.431.768.211.456 (2128 o 340 sextilions) adreces fet que permet assignar prop de de 3,4 × 1020 (340 trilions) adreces per cada polzada quadrada (6,7 × 1017 o 670 mil bilions d'adreces/mm2) de la superfície de la Terra. Aquest nombre pot representar-se també com 1632, amb 32 dígits hexadecimals, cadascun dels quals pot prendre 16 valors possibles.

TODO

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.

RFCs que defineixen el format de les adreces IPv6:

Format de les adreces

Les adreces IPv6 tenen una longitud de 128 bits, i s'escriuen com vuit grups de quatre dígits hexadecimals.

Vegem un exemple d'adreça IPv6 vàlida:

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 utilitzant els caràcters ::. 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 por aplicar en més d'un. Així,

2001:0DB8:0000:0000:0000:0000:1428:57ab
2001:0DB8:0000:0000:0000::1428:57ab
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0: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 declarat obsoleta.

Els tipus d'adreces IPv6 poden identificar-se prenent en compte els primers bits de cadascuna.

  • /128 – l'adreça amb tot zeros s'utilitza per a indicar l'absència d'adreça, i no s'assigna 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 de IPv4). No pot assignar-se a cap interfície física.
  •  ::/96 – L'adreça IPv4 compatible s'utilitza 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 devien implementar cap suport per aquest tipus d'adreça especial.
  • ff00::/8 – El prefix de multicast s'utilitza 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)

Tipus d'adreces

Els tipus d'adreces possibles segons el seu àmbit de destinació ( Destination scopes ) són:

  • link-local: Els paquets que tenen una destinació d'aquest tipus han de mantenir-se al enllaç on van ser generats. Aquest tipus de paquets mai han de ser encaminats pels routers. Aquest tipus de Destination Scope s'utilitza per a les interfícies loopback.
  • site-local (obsoletes): Els encaminadors fronterers d'una organització (border-site routers) no poden encaminar cap a l'exterior de l'organització paquets que continguin una adreça de destinació de tipus site-local. Actualment no s'utilitzen, estan obsoletes, s'utilitza la Unique Local Adresses o ULAs.
  • global: Són els paquets que tenen un àmbit/scope il·limitat i que poden ser encaminats per tot Internet. Una capacitat important de IPv6 és que pot assignar una adreça global a cada Network Interface Cards (NICs).

Com a mínim, cada interfície de xarxa o NI (recordeu que poden ser físiques, per exemple network Interface Cards o NICs o també interfícies virtuals) té associada una adreça de tipus link-local, però el més comú serà que tingui una adreça link-local i com a mínim una adreça global. El següent exemple uns mostra un sistema Linux amb els dos tipus de adreces IP:

$ ip address list
...
2: eth0: <broadcast,multicast,up mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:0c:29:c2:52:ff brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fec2:52ff/10 scope link
inet6 3ffe:1200:4260:f:20c:29ff:fec2:52ff/64 scope global

També podem classificar les adreces segons:

  • Unicast: Dirección que identifica de forma única a una interfaz.
  • Multicast: Dirección que identifica a un conjunto de interfaces (normalmente pertenecientes a diferentes nodos). Un paquete que se envíe a una dirección multicast es reenviado a todas las interfaces identificadas por esa dirección.
  • Anycast: Dirección que identifica a un conjunto de interfaces (normalmente pertenecientes a diferentes nodos). Un paquete que se envíe a una dirección anycast es reenviado a una de las interfaces identificadas por esa dirección (la más cercana de acuerdo la protocolo de enrutamiento utilizado)
  • Broadcast: No existen este tipo de direcciones en IPv6
Unique local address

aka ULA

TODO

En IPv6 "l'equivalència" a les adreces privades d'IPv4 són les ULA (http://tools.ietf.org/html/rfc4193), del rang fc00::/7.

La pregunta en tot cas és: per què vols funcionar amb adreces IPv6 internament si no són enrutables i globals a Internet?


EUI-64

EUI són les sigles de Extended Unique Identifier, un EUI-64 és un identificador únic de 64bits. L'adreça MAC és un EUI de 48 bits p EUI-48.

NOTA: Al procediment de convertir de 48 a 64 bits es coneix com EUI-48-to-EUI-64

El valor de la dirección de host no es aleatorio ya que se corresponde con la dirección MAC de la interfaz de red en formato EUI-64, que se puede obtener transformando la dirección MAC estándar en formato MAC-48. La dirección MAC de la interfaz anterior escrita en el formato habitual de 48 bits en hexadecimal es:

$ ip -6 link show eth0 |grep link |awk '{print $2}'
00:17:31:80:02:6b

S'han de separar els 16 bits dels fabricant:

17:31

i els 24 bits d'identificació de la interfície de xarxa :

80:02:6b

Ara per aconsegui la EUI-64 cal fer:

02:Fabricante:ff:fe:Identificación interfaz

o el que é sel mateix:

0217:31ff:fe80:026b = 217:31ff:fe80:26b
IPs reservades

Són adreces unicast que no es poden utilitzar per que tenen un ús reservat. Les més importants són:

  • :/128 o [[::]]: Adreça no especificada, equival al 0.0.0.0 de IPv4
  • :1/128 o :1: Adreça de loopback, equival a 127.0.0.1 de IPv4
  • fc00::/7]]: Adreces ULA, equival a les adreces del RFC1918 d'IPv4
   . Se divide a su vez en dos grupos:
       fc00::/8 que se debe asignar de forma centralizada a través del denominado “ULA-Central”, aunque todavía no está definido. ?
       fd00::/8 que se construye generando una cadena de 40 bits aleatoria, tal como se define en el RFC4193
   ff00::/8 Direcciones multicast, equivalente al rango 224.0.0.0/4 de IPv4
   fe80::/10 Direcciones link-local, equivalente al rango 169.254.0.0/16 de IPv4

MAC to IPv6

Procediment:

A mac address is 48 bits, an IPv6 address is 128 bits. Here’s the conversion process step by step:

   take the mac address: for example 52:74:f2:b1:a8:7f
   throw ff:fe in the middle: 52:74:f2:ff:fe:b1:a8:7f
   reformat to IPv6 notation 5274:f2ff:feb1:a87f
   convert the first octet from hexadecimal to binary: 52 -> 01010010
   invert the bit at position 6 (counting from 0): 01010010 -> 01010000
   convert octet back to hexadecimal: 01010000 -> 50
   replace first octet with newly calculated one: 5074:f2ff:feb1:a87f
   prepend the link-local prefix: fe80::5074:f2ff:feb1:a87f
   done!


Conversor:

Encaminadors IPv6 Routers

Per definició un encaminador és un node que encamina paquets IP que no tenen com a destinació el encaminador en sí sinó una altre màquina. Es diu que els paquets estan en trànsit (de pas) per l'encaminador.

Els encaminadors amb suport per a IPv6 s'ajusten a aquesta definició però a més, els routers IPv6 informen (advertise) regularment a els enllaços (links) als quals estan connectats.

Aquest missatges s'anomenen advertisements i s'envien utilitzant el protocol Internet Control Message Protocol Versió 6 (ICMPv6). El nom d'aquest tipus de missatges és Router Advertisement (RA) i s'envien a l'adreça multicast ff02::1.

IMPORTANT: Observeu que no s'utilitza broadcast! Això és més eficient i més segur, de fet el concepte de broadcast en IPv6 és pot considerar obsolet ja que de fet el broadcast es considerat un tipus de multicast concret.

Tots els sistemes que formen part d'un enllaç han de formar part del grup multicast ff02::1 i rebran aquests paquets. Per tant per tal de poder ser autoconfigurat cal formar part d'aquest grup multicast.

A més els nodes també poden iniciar el procediment d'autoconfiguració enviant paquets Router Solicitation. La freqüència en que s'envien els missatges RA és sovint de 10 segons o més una quantitat de temps que pot ser considerada massa llarga per a ls usuaris finals. Per tal de reduir aquest temps els nodes poden enviar paquets/missatges Router Solicitation (RS) a tots els routers existents a un enllaç per forçar l'enviament de paquets RA.

Els paquets que encara no tenen una IP assignada s'assignen la IP especial "::" (aka unassigned IP que equival a la IP tot zeros). En resposta a aquests paquets els routers han d'enviar automàticament missatges RA que continguin el prefix global que cal utilitzar. Aquest prefix global s'utilitza conjuntament amb el identificador local per crear l'adreça IPv6 global del node.

NOTA: Tingueu en compte que aquest procediment només es vàlid per a nodes finals de la xarxa i no pas per a routers. Per aquesta raó amb IPv6 els encaminadors s'han de configurar manualment.

Ubuntu com a router IPv6

Recursos:

Capçalera 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

El primer que cal tenir en compte és que la capçalera s'ha simplificat vegeu imatge a:

http://cert.inteco.es/extfrontinteco/img/File/intecocert/EstudiosInformes/cert_inf_seguridad_implantacion_ipv6.pdf

Teniu una imatge de la capçalera a la wikipèdia:

800px-IPv6_header_rv1.png

Hi ha dues versions d'IPv6 lleugerament 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'enrutament 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).

IMPORTANT: La longitud de la capçalera és fixa. S'incorpora el concepte de capçaleres encadenades, és a dir una capçalera pot indicar que el següent paquet és el que porta la informació especifica

  • Longitud total: Bits reservats per indicar la mida total del paquet IPv6
  • Longitud de carga útil (payload length): que en definitiva, és la longitud de les propies dades. Pot arribar a medi 65.536 bytes. Té una logitud de 16 bits (2 bytes).
  • Protocol: siguiente cabecera (next header), dado que en lugar de usar cabeceras

de longitud variables se emplean sucesivas cabeceras encadenadas, de ahí que desaparezca el campo de opciones. En muchos casos ni siquiera es procesado por los encaminadores, sino tan sólo extremo a extremo. Tiene una longitud de 8 bits (1 byte).

  • Temps de vida (TTL): límit de salts(Hop Limit). Té una longitud de 8 bits (1 byte).

Nous camps:

  • Clase de Tráfico (Traffic Class): també anomenat Prioritat (Priority), o simplement classe. És similar al que en IPv4 anomenavem TOS (type of Service) però més desenvolupat. Té una longitud fixa de 8 bits (1 byte).
  • Etiqueta de fluxe: permet aplicar trànsits amb requisits de temps real. Té una longitud de 20 bits.

Resta de camps:

  • Versió (4 bits) : Igual que IPv4 però aquí indica que és versió 6 i nos pas 4. La seüència és fixa i predefinida. 6 bit sequence: 0110
  • Next Header (8 bits): Especifica el tipus de la següent capçalera o sinó el que especificava el camp protocol. Normalment especifica el protocol de la capa de transport (p. ex. TCP o UDP). Sí hi ha extension headers és a dir opcions extres IPv6 o noves funcionalitats aquest camp indica el tipus de extension header que ve al següent paquet
Fixed header format
Offsets Octet 0 1 2 3
Octet Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Version Traffic Class Flow Label
4 32 Payload Length Next Header Hop Limit
8 64 Source Address
12 96
16 128
20 160
24 192 Destination Address
28 224
32 256
36 288
Version (4 bits) 
The constant 6 (bit sequence 0110).
Traffic Class (8 bits) 
The bits of this field hold two values. The 6 most-significant bits are used for DSCP, which is used to classify packets.<ref name=rfc2474>Nickols, K.; Blake, S.; Baker, F.; Black, D. (December 1998) Definition of the Differentiated Service Field (DS Field) in the IPv4 and IPv6 Headers, IETF. RFCPlantilla:Nbsp2474.</ref><ref name=rfc3260>Grossman, D. (April 2002) New Terminology and Clarifications for DiffServ, IETF. RFCPlantilla:Nbsp3260.</ref> The remaining two bits are used for ECN;<ref name=rfc3168>Ramakrishnan, K.; Floyd, S.; Black, D. (September 2001) The Addition of Explicit Congestion Notification (ECN) to IP, IETF. RFCPlantilla:Nbsp3168.</ref> priority values subdivide into ranges: traffic where the source provides congestion control and non-congestion control traffic.
Flow Label (20 bits) 
Originally created for giving real-time applications special service.<ref name=rfc2460 /> The flow label when set to a non-zero value now serves as a hint to routers and switches with multiple outbound paths that these packets should stay on the same path so that they will not be reordered.<ref name=rfc3595>Wijnen, B. (September 2003) Textual Conventions for IPv6 Flow Label, IETF. RFCPlantilla:Nbsp3595.</ref><ref name=rfc6437>Amante, S.; Carpenter, B.; Jiang, S.; Rajahalme, J. (November 2011) IPv6 Flow Label Specification, IETF. RFCPlantilla:Nbsp6437.</ref> It has further been suggested that the flow label be used to help detect spoofed packets.<ref>draft-blake-ipv6-flow-label-nonce-02</ref>
Payload Length (16 bits) 
The size of the payload in octets, including any extension headers. The length is set to zero when a Hop-by-Hop extension header carries a Jumbo Payload option.<ref name=rfc2675>Borman, D.; Deering, S.; Hinden, R. (August 1999). IPv6 Jumbograms. IETF. RFCPlantilla:Nbsp2675.</ref>
Next Header (8 bits) 
Specifies the type of the next header. This field usually specifies the transport layer protocol used by a packet's payload. When extension headers are present in the packet this field indicates which extension header follows. The values are shared with those used for the IPv4 protocol field, as both fields have the same function (see List of IP protocol numbers).
Hop Limit (8 bits) 
Replaces the time to live field of IPv4. This value is decremented by one at each intermediate node visited by the packet. When the counter reaches 0 the packet is discarded.
Source Address (128 bits) 
The IPv6 address of the sending node.
Destination Address (128 bits) 
The IPv6 address of the destination node(s).

In order to increase performance, and since current link layer technology is assumed to provide sufficient error detection,<ref>RFC 1726 section 6.2</ref> the header has no checksum to protect it.<ref name=rfc2460/>


Autoconfiguració d'adreces

Hi ha tres possibles formes d'assignar una adreça IPv6 a un dispositiu:

  • Configuració manual: de forma similar al que succeïa amb IPv4 podem assignar adreces IP de forma manual ja sigui utilitzant ordres de la línia d'ordres (ifconfig, ip, netsh) o utilitzant eines gràfiques de configuració de la xarxa.
  • Configuració automàtica:
  • Autoconfiguració sense estat: el propi protocol IPv6 implementa un servei d'autoconfiguració. La configuració de l'adreça de xarxa es realitza rebent missatges Router Advertisement. Aquests missatges inclouen stateless address prefixes i requereix que el host no estigui utilitzant cap protocol stateful address configuration.
  • Autoconfiguració amb estat: S'utilitza el protocol DHCPv6 per autoconfigurar els dispositius de la xarxa. Aquest tipus de serveis requereixen d'un servidor el qual guarda l'estat de la configuració de la xarxa i per això es diu que aquesta configuració és amb estat (en anglès stateful).
  • amb estat i sense estat: Els missatges RA messages inclouen stateless address prefixes i requereixen utilitzar un protocol stateful.

IMPORTANT: És necessari suportar multicast per suportar Address autoconfiguration

Recursos:

Autoconfiguració sense estat

L'autoconfiguració sense estat ( Stateless address autoconfiguration) és un concepte nou a IPv6 que proporciona una alternativa a mig camí entre la configuració manual i l'autoconfiguració amb sistemes stateful com DHCPv6. La seva principal virtut és la seva facilitat ja que l'autoconfiguració es realitza sense necessitat de cap mena de servidor.

NOTA: S'anomena autoconfiguració de l'adreça sense estat per que no cal gestionar l'estat per part del router. És un mecanisme robust i efectiu de configuració

Anem a veure quin és el procediment per autoassignar adreces IP segons el tipus d'adreça

Adreces locals

Com sabeu una adreça IPv6 té 128 bits i es divideix en dos parts:

  • Subnet prefix: Part de l'adreça IP que representa la xarxa a la qual la interfície de xarxa està connectada.
  • Local identifier: és la part que identifica de forma unívoca aquella NIC dins de la xarxa (aka token).

En el cas de les adreces locals els prefix de subxarxa és sempre de 64 bits (la meitat dels bits de l'adreça IP) i té un valor predeterminat i estandaritzat.

En el cas de les targetes de xarxa Ethernet el identificador local normalment es calcula a partir de la adreça EUI-48 Media Access Control (Adreça MAC)

Si la configuració manual d'adreces IP ja es prou feixuga, imagineu la configuració manual de les adreces IPv6! Es per aquesta raó que durant la fase d'inicialització de les targetes de xarxa IPv6 el sistema assigna automàticament una adreça de tipus link-local a la interfície de xarxa.

El protocol per a crear l'adreça link-local és el següent:

  • Es genera un identificador local únic (els últims 64 bits ja que els primers 64 venen fixats per a totes les adreces IPv6). S'acostuma a utilitzar el procediment de transformació EUI-48-to-EUI-64 que permet transformat una MAC de 48 bits en una porció de 64 bits d'una adreça IPv6.
  • S'afegeix el prefix predeterminat per a les adreces locals (0xFFFE) per tal d'obtenir una adreça IPv6
  • Es comprovar la unicitat de la nova adreça IPv6 (s'engega el procés anomenat Duplicate Address Detection/DAD )
  • Si l'adreça és única aleshores s'assigna a la interfície. Si no és així aleshores es requereix d'una intervenció manual.

El mètode més comú per a calcular el identificador local és utilitzar l'adreça MAC les quals són de 48 bits de longitud. Com que l'espai disponible per a l'identificador local és de 64 bits el que es fa és afegir sempre els 16 bits següents:

0xFFFE

que podeu veure estan en format hexadecimal. Així per exemple la MAC:

00:0C:29:C2:52:FF

es converteix a:

00:0C:29:FF:FE:C2:52:FF

és a dir l'adreça IPv6:

000C:29FF:FEC2:52FF

Arribats a aquest punt és necessary aplicar el RFC 3513 per invertir el bit universal ("u" bit) en la sexta posició del primer octet. En l'exemple queda:

020c:29ff:fec2:52ff

NOTA: Universal uniqueness of IEEE 802 and EUI-64 is given by a "u" bit set to 0. This global uniqueness is assured by IEEE, which delivers those addresses for the entire planet. Inverting the "u" bit allows ignoring it for short values in the manual configuration case, as explained in paragraph 2.5.1 of RFC 3513 [4].

Un cop és té l'identificador local només cal afegir-li el prefix:

fe80::/64

Que és el prefix reservat per a les adreces locals. L'adreça IP resultant és doncs:

fe80::20c:29ff:fec2:52ff

NOTA: Observeu la eliminació dels zeros al davant

Aquesta adreça és assignada originalment com a a adreça "tentative" ja que fins que no sigui confirmada la seva unicitat no serà assignada definitivament a la interfície.

NOTA: La probabilitat de que hi hagi dos interfícies de xarxa amb la mateixa IP és molt baixa però no nul·la ja que alguns proveïdors han reconegut errors a l'hora d'assignar adreces MAC a les interfícies de xarxa

Per detectar si la IP està duplicada s'inicia la fase Duplicate Address Detection (DAD). El sistema envia paquets ICMPv6 que contenen missatges de tipus Neighbor Solicitation on les adreces del paquet són:

  • Adreça origen: "::"
  • Adreça destinació: és la adreça que s'esta intentant comprovar si està

S'espera no obtenir cap resposta fet que aleshores indica que la adreça IPv6 no s'està utilitzant localment. Si hi ha alguna resposta aleshores l'adreça no es pot assignar a la interfície i s'atura el procés d'assignació automàtica (cal resoldre el problema manualment).

Adreces globals i prefixes globals

Per tal de que la interfície de xarxa es pugui comunicar a nivell d'Internet (nivell global) i no només a nivell local, aleshores cal assignar a la interfície una adreça IPv6 que tingui un prefix global.

Generalment els prefixos globals són assignats pels administradors de xarxa d'una entitat o empresa. per els ISP o directament pels registradors regionals (p. ex. el RIPE a Europa).

Es força comú que el prefix global assignat sigui de 64 bits. Sovint (tot i que no necessàriament) és segueix el mateix procediment que amb les adreces locals per tal de calcular el identificador local, és a dir s'obté l'identificador local transformant la MAC de 48 bits a una porció d'adreça IPv6 (procediment EUI-48-to-EUI-64).

Cal tenir en compte que també s'executarà el procediment DAD per tal de verificar la unicitat de l'adreça IP assignada.

Consulteu l'apartat IPv6#Encaminadors_IPv6_Routers per tal de saber com els routers IPv6, sense necessitat de cap sistema extra (com DHCP) poden autoconfigurar els nodes d'una xarxa utilitzant missatges ICMPv6.

Random Identifiers

Els Random Identifiers permeten augmentar la privacitat.

El procés de transformació EUI-48-to-EUI-64 és atractiu perque és simple d'implementar. Té però un inconvenient la privacitat. Les adreces unicast globals i també les adreces link-local es deriven de la MAC. Com la MAC no canvi pel fet de canviar de localitzacíó es pot fer un seguiment (tracking) del que fa la interfície. Per exemple un lloc web pot detectar i fer un tracking del temps que un node de la xarxa (i molt possiblement doncs el usuari que utilitza aquell node, per exemple u empleat) i saber quan temps passa a casa o a la empresa.

Because a MAC address follows the interface it is attached to, the identifier of an IPv6 address does not change with the physical location of the Internet connection. Hence it is possible to trace the movements of a portable laptop or Personal Digital Assistant (PDA) or other mobile IPv6 device.

RFC 3041 [5] allows the generation of a random identifier with a limited lifetime. Because IPv6 architecture permits multiple suffixes per interface, a single network interface is assigned two global addresses, one derived from the MAC address and one from a random identifier. A typical policy for use of these two addresses would be to keep the MAC-derived global address for inbound connections and the random address for outbound connections. A reason for not using it for inbound connections is the need to update the DNS just as frequently as it is changes.

Such a system, with two different global addresses—one of which changes regularly—becomes very difficult to trace.

By default, Microsoft enables this feature on Windows XP and Windows Server 2003. The random-identifier-based global addresses of Microsoft systems have the address type "temporary." EUI-64 global addresses have type "public." Those types as well as other information can be displayed in a cmd.exe DOS-box with the command line: netsh interface ipv6 show address

DHCPv6

Consulteu DHCPv6

IPv6 i el Sistema de Noms de Domini (DNS)

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 utilitzava 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 posta 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ó de les avantatges i inconvenients de cada tipus de registre.

Transició IPv4 a IPv6

El protocol IPv6 està pensat per a substituir el actual protocol IP versió 4 (IPv4) però aquesta substitució no serà d'un dia per l'altre ni tant sols es realitzarà en un període curt de temps. Es preveu que els protocols IPv6 i IPv4 convisquin durant molt de temps treballant de forma conjunta en un mecanisme que s'anomena arquitectura de doble pila

Existeixen però altres mecanismes que faciliten la transició:

Sistemes operatius

Linux

Consulteu IPv6 linux

RouterOS

Consulteu:

RouterOS i IPv6

Neighbor Discovery Protocol (NDP)

Vegeu Neighbor Discovery Protocol

Subnetting

Guifi

Adreces:

Guifi està preparat per a treballar IPv6 (provat al SAX 2011):

$ ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8006::68) 56 data bytes
64 bytes from 2a00:1450:8006::68: icmp_seq=1 ttl=52 time=90.3 ms
64 bytes from 2a00:1450:8006::68: icmp_seq=2 ttl=52 time=59.4 ms
64 bytes from 2a00:1450:8006::68: icmp_seq=3 ttl=52 time=63.1 ms
64 bytes from 2a00:1450:8006::68: icmp_seq=4 ttl=52 time=72.4 ms
$ ping6 v6.guifi.net
PING v6.guifi.net(v6.guifi.net) 56 data bytes
64 bytes from www.guifi.net: icmp_seq=1 ttl=62 time=163 ms
64 bytes from octocefal.guifi.net: icmp_seq=2 ttl=62 time=111 ms
64 bytes from v6.guifi.net: icmp_seq=3 ttl=62 time=16.0 ms

Consulteu guifi:

Operador i proveïdors de contingut

Les operadores no s'hi han mogut gaire. En canvi ho està promocionant els proveïdors de serveis com Google, facebook. Veure OVH.

Exemples de tcpdump

$ sudo tcpdump -ni wlan0 | grep IP6
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes
14:09:59.657140 IP6 fe80::20c:42ff:fea2:7632 > ff02::1: ICMP6, router advertisement, length 56
14:10:09.801018 IP6 fe80::de2b:61ff:fe8c:565e.5353 > ff02::fb.5353: 0*- [0q] 6/0/4[|domain]
14:10:12.252726 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0[|domain]
14:10:12.355938 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0 [1n][|domain]
14:10:12.560683 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0 [1n][|domain]
14:10:12.763708 IP6 fe80::20c:42ff:fea2:7632 > ff02::1: ICMP6, router advertisement, length 56
14:10:12.867965 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0 [1n][|domain]
14:10:13.078153 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0*- [0q] 4/0/5[|domain]
14:10:13.277376 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0 [1a][|domain]
14:10:14.100688 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0*- [0q] 4/0/5[|domain]
14:10:16.148682 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0*- [0q] 4/0/5[|domain]
14:10:16.247267 IP6 fe80::7aca:39ff:febe:3de8.5353 > ff02::fb.5353: 0 [1a][|domain]

ICMP6 (ICMPv6) Router Advertisment avisa del possible router (gateway), No caldria DHCP?

Conceptes d'agregació. Assignacions

IPv6 no intenta agregar xarxes (oblida el subnetting). Al clients se'ls hi pot assignar trillons d'adreces.

Estem parlant de 128 bits. Parlem d'assignacions a l'estil CIDR /100, de fet fins a /128 que seria l'assignació més petita (i una mica ridícula a IPv6). Abans només fins a /32.

IPv6, Es va molt sobrat d'adreces però no tant d'assignacions.

Sistemes de transició

6to4

6to4 és un Internet transition mechanism per a migrar d'IPv4 a IPv6, un sistema que permet que els paquets IPv6 es puguin transmetre a través d'una xarxa IPv4 sense la necessitat d'utilitzar túnels.

6to4 és especialment rellevant durant la fase inicial de migració a una xarxa IPv6 nativa, ja que no requereix que tots els nodes entre dos nodes que es volen comunicar siguin IPv6.

NOTA: 6to4 és un mecanisme de transició i no s'hauria d'utilitzar permanentment!


What this means is that there are a number of relay servers (6to4 uses the address 192.88.99.1) available advertised as anycast addresses. This means the address is available in many places across the internet however you’ll simply be directed to the closest one.

If you’re lucky, your ISP might even already have their own 6to4 server setup, regardless of if they have a fully IPv6 enabled network yet.

La idea de 6to4 és donar a cada adreça IPv4 pública una IPv6 allocation.

It essentially performs the following functions:

- Allocates a /48 block of IPv6 space to any publically routeable IPv4 address - Encapsulates IPv6 traffic inside IPv4 packets to allow it to be transmitted over the IPv4 network to the nearest 6to4 relay. - Routes traffic between 6to4 and native IPv6 netowrks

How do I work out my IPv6 6to4 allocation?

El prefix d'adreces reservat per a 6to4 és:

2002:

o

2002:/16

El prefix per tant és de 16 bits. El següents 32bits són l'adreça IP de forma que cada adreça Ip pública IPv4 única es mapeja a una xarxa /48 en IPv6.

wn purpose. It leaves 16 bits space for 216 IPv6 subnets, which can take up to 264 nodes each (that's, um ... a BIG number :-).

Thanks to the 6to4 prefix and your worldwide unique IPv4 address, this address block is also unique, and it's mapped to you.

Image #1 shows in an example how the IPv6 address is built for the IPv4 number 62.157.9.98. The lower bits ":0001::1" were chosen arbitrarily by me, they can contain other values. (E.g. EUI-64 addresses if you choose to setup address autoconfiguration via router solicitation - see rtsol(8) for more information).


The prefix 2002::/16 has been allocated specifically for 6to4 hosts and you can work out your IPv6 space by doing the following:

1. Take your public IPv4 address, in this example we’ll use 192.0.2.1 Result: 192.0.2.1

2. Convert the address from dot-decimal notation to hexadceimal notation: There’s a handy tool at http://www.kloth.net/services/iplocate.php if you’re unsure of how to do this. Result: C0000201

3. Insert this as the section after the 2002: prefix, making sure to split it into the correct grouping (each group represents 16 bits or 2 octets). Result: 2002:C000:0201

4. Complete the address as a /48 block Result: 2002:C000:0201::/48

You now know your allocation, which has a huge 65536 /64 subnets it can be divided into.

Conceptes:

Vegeu la imatge:


S'ha produït un error en crear la miniatura: /bin/bash: /usr/bin/rsvg-convert/rsvg: Not a directory

Recursos:

Túnels

6rd

IPv6 i NAT

Amb IPv6 el NAT queda obsolet. IPv6 només planteja les relaciones extrem a extrem, cosa que trenca el NAT.

Seguretat

Millores:

MAYOR FORTALEZA DE LA RED

La nueva versión del protocolo introduce novedades que mejoran la eficiencia del proceso de enrutamiento de los paquetes IP. Lo que permitirá que los elementos de red puedan gestionar mayor número de transmisiones y con mayor rapidez. Los cambios son los siguientes:

  • Cabeceras simplificadas y de tamaño fijo.
  • No se realiza fragmentación de los paquetes por los elementos intermedios. El tamaño de los paquetes los deberán determinar los extremos de la comunicación. Sin embargo, aunque a largo plazo debería acabar favoreciendo al flujo de datos, esta característica, al ser tan diferente de lo que se hace en IPv4, y al asentarse sobre ICMP, está provocando problemas en la implementación de IPv6, dando lugar a errores de conectividad que están creando la impresión de que IPv6 no funciona completamente bien en la práctica.
  • Facilita la agregación en las tablas de enrutamiento debido al uso estricto de CIDR

para todos los tipos de direcciones y a la mejor organización de sus asignaciones. Por otra parte, esta mejora es imprescindible debido al gran aumento de direcciones IP que se produce.

  • Implementación obligatoria y mejorada del direccionamiento multicast. También se ha creado el direccionamiento anycast, en el que un grupo de servidores que proporcionan un mismo servicio comporten la misma dirección, de tal forma que el servidor seleccionado para dar dicho servicio vendrá determinado por la eficiencia de acceso. Aunque este direccionamiento es difícil de implementar en la práctica y, en su mayoría, es utilizado únicamente por los enrutadores.
  • Utilización de etiquetas para QoS en las comunicaciones: el protocolo incluye la posibilidad de etiquetar clases y flujos de comunicaciones para que los enrutadores prioricen unas transmisiones sobre otras.

Altres millores:

  • Imposibilidad de exploración de redes mediante "fuerza bruta". Anteriormente, los atacantes o programas maliciosos, como los gusanos, podían encontrar objetivos en una red comprobando todas las direcciones posibles. Pero debido al crecimiento exponencial de su número total, esta exploración es, a priori, inviable.
  • Desaparece la necesidad de utilizar NAT. Aunque ha sido una tecnología muy útil, tiene los inconvenientes de que genera una falsa sensación de seguridad y de que se pierde la posibilidad de realizar conexiones seguras de extremo a extremo, incrementando la complejidad y el coste del desarrollo de aplicaciones.
  • Se elimina la posibilidad de realizar un ataque DDOS de tipo broadcast o smurf al desaparecer este direccionamiento y al implantarse medidas de seguridad en el multicast.

Recursos:

Questions a tenir en compte

  • Dispositivos de seguridad que no analizan el protocolo IPv6: Puede que los dispositivos de seguridad, como cortafuegos o IDS, o las herramientas de gestión de red no sean capaces o no estén configurados para analizar los flujos de datos del protocolo IPv6. Si fuera así, se podrían establecer comunicaciones maliciosas desde o hacia equipos de la red que soporten IPv6.
  • Presencia de dispositivos de los que se desconoce que pueden usar IPv6 y de túneles IPv6:

Muchos Sistemas Operativos tienen habilitado IPv6 por defecto, como la mayor parte de sistemas Windows modernos, Mac OS X, Linux y Solaris. Además pueden existir túneles IPv6. Un túnel es una conexión punto a punto, en la que se encapsulan los paquetes IPv6 en paquetes IPv4, de forma que se pueda transmitir IPv6 a través de una infraestructura IPv4. En el extrem o final del túnel, se desencapsula (o extrae) el paquete IPv6 original. Los dispositivos de seguridad perimetral puede que no estén preparados o configurados para analizar estos flujos de datos, que pueden ser utilizados para comunicaciones no permitidas como, por ejemplo, puertas traseras de C&C (Command and Control) de botnets o de P2P.

  • La posibilidad de crear túneles IPv6 se encuentra presente en todos los sistemas operativos,

como Windows Vista y Windows 7 que tienen habilitado por defecto la tecnología Teredo aunque se deshabilita si detecta que el equipo pertenece a un dominio o tiene soporte IPv6 a través de su red local. Otras formas de implementar túneles que pueden estar presentes son 6to4 i ISATAP

IPSec

Vegeu IPsec

Comandes

Comanda ip

Vegeu comanda ip.

ip6tables

Equivalent a iptables però per a ipv6.

traceroute6

Equivalent a traceroute però per a ipv6.

route -6

$ route -6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
2001:db8::/64                  ::                         UAe  256 0     0 eth5
fe80::/64                      ::                         U    256 0     0 eth5
::/0                           fe80::20c:42ff:fee1:f991   UGDAe 1024 0     0 eth5
::/0                           ::                         !n   -1  1     1 lo
::1/128                        ::                         Un   0   1     4 lo
2001:db8::48fc:8b7c:4b3a:b159/128 ::                         Un   0   1     0 lo
2001:db8::6e62:6dff:fe82:d378/128 ::                         Un   0   1     0 lo
fe80::6e62:6dff:fe82:d378/128  ::                         Un   0   1     0 lo
ff00::/8                       ::                         U    256 0     0 eth5
::/0                           ::                         !n   -1  1     1 lo

telnet -6

Per comprovar ports oberts

$ telnet -6 fc00:1::1 8080

nmap -6

$ nmap -6 ::1 

Starting Nmap 5.21 ( http://nmap.org ) at 2014-02-06 18:17 CET
Nmap scan report for ip6-localhost (::1)
Host is up (0.00027s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
80/tcp  open  http
631/tcp open  ipp

Recursos:

IPv6 allocation

Gràfica:

http://revolutionwifi.blogspot.com.es/2012/07/ipv6-unicast-address-allocation.html

Interessant:

http://en.wikipedia.org/wiki/IPv6_subnetting_reference

Recursos

Vegeu també

Enllaços externs

El llibre que la fundació .cat ha traduït al català:

Llibre: http://www.domini.cat/ipv6/

Per fer proves:

túnel cap a Hurricane Electric.

Vídeo curs:

  1a part: http://blip.tv/guifimedia/1-3-ipv6-el-futur-d-internet-5036165
  2a part: http://blip.tv/guifimedia/2-3-ipv6-el-futur-d-internet-5037574
  3a part: http://blip.tv/guifimedia/3-3-ipv6-el-futur-d-internet-5037866