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://acacha.org/mediawiki/index.php/IPV6

http://blackhold.nusepas.com/2012/10/tunel-6to4-mikrotik/
http://pad.marsupi.org/curs-ipv6


Introducció

IMPORTANT: ACTUALMENT IPv4 EXHAURIT
RAFELMELICHCONTADORINANA.png

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).

També va existir una IPv5 però va ser creat de forma experimental.

Coexistiran els dos protocols tan l'IPv4 i l'Ipv6.

http://ipv6.he.net/statistics/

Aplicacions per veure els dies que queden per exhaurix l'IPv4. Bye-Bye v4.
(iana =>Internet Assigned Numbers Authority ,actualment exahurit)
http://en.wikipedia.org/wiki/Regional_Internet_registry

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.

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. TODO: with a design goal of supporting 240 -->2^128
  • 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.

(Ideal per les aplicacions P2P).

Característiques noves:

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.

Format de les adreces

Amb 32bits tenim 32 octets

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'''.Són adreces reservades, només serveix per comunicar-me a mi mateix.
  • site-local: 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. dresses. Són per a un rang de xarxa controlat (interna).
  • 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)(pel tot el mon).

Com a mínim una NIC 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

EL MEU CAS:

[email protected]:/$ sudo ip address list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:30:05:eb:3b:44 brd ff:ff:ff:ff:ff:ff
    inet 192.168.204.118/24 brd 192.168.204.255 scope global eth2
    inet6 fe80::230:5ff:feeb:3b44/64 scope link 
       valid_lft forever preferred_lft forever
3: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:19:5b:cc:09:0f brd ff:ff:ff:ff:ff:ff
  • UNICAST: A un únic usuari . De un origen a un destinatari.
  • MULTICAST: Varis usuaris. De un sol origen a un grup de gent
  • ANYCAST: Un sol orogen a diferents possibles destinataris. (per diferents criteris, grups, velocitat, etc..) ,La millor ruta
    • Hi ha un apresa de decisió prèviament
  • NO HI BROADCAST:

L'adreça IPv6 sorgeix de l'adreça mac:

  • Calculadora MAC --> IPv6
http://ben.akrin.com/?p=1347

00:30:05:eb:3b:44 ==>fe80::230:05ff:feeb:3b44 -->fe80= Prefix Local

Connectar IPv4 amb IPv6 Per tal de poder accedir a l'IPv6 des de IPv4, ens podem dirigir a la pàgina http://tunnelbroker.net/new_tunnel.php i aquesta ens crearà un túnel. Entrem a la pàgina web http://tunnelbroker.net/ i ens registrem.

A continuació ens dirigim a l'apartat Create Regular Tunnel.

Per fer el túnel, hem d'introduir les següents comandes a la terminal:

$ ifconfig sit0 up

$ ifconfig sit0 inet6 tunnel ::216.66.80.26

$ ifconfig sit1 up
 
$ ifconfig sit1 inet6 add 2001:470:1f08:832::2/64

$ route -A inet6 add ::/0 dev sit1

Quan tinguem la configuració feta, si entrem a la pàgina http://ipv6-test.com/ podem veure que estem connectats mitjançant IPv6:

[email protected]:/$ ifconfig
eth2      Link encap:Ethernet  HWaddr 00:30:05:eb:3b:44  
          inet addr:192.168.204.118  Bcast:192.168.204.255  Mask:255.255.255.0
          inet6 addr: fe80::230:5ff:feeb:3b44/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:125180 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88624 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:148176757 (148.1 MB)  TX bytes:31676380 (31.6 MB)
          Interrupt:23 Base address:0x4000  

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1052 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1052 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:257309 (257.3 KB)  TX bytes:257309 (257.3 KB)

sit0      Link encap:IPv6-in-IPv4  
          inet6 addr: ::192.168.204.118/96 Scope:Compat
          inet6 addr: ::127.0.0.1/96 Scope:Unknown
          UP RUNNING NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

sit1      Link encap:IPv6-in-IPv4  
          inet6 addr: fe80::c0a8:cc76/64 Scope:Link
          inet6 addr: 2001:470:1f08:832::2/64 Scope:Global
          UP POINTOPOINT RUNNING NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Unique local address ULA

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?

Manual IPv6 per a tothom.

http://www.fundacio.cat/obra-social/publicacions/ipv6peratothom.html
[email protected]:/$ sipcalc fc00::/7
-[ipv6 : fc00::/7] - 0

[IPV6 INFO]
Expanded Address        - fc00:0000:0000:0000:0000:0000:0000:0000
Compressed address      - fc00::
Subnet prefix (masked)  - fc00:0:0:0:0:0:0:0/7
Address ID (masked)     - 0:0:0:0:0:0:0:0/7
Prefix address          - fe00:0:0:0:0:0:0:0
Prefix length           - 7
Address type            - Unassigned
Network range           - fc00:0000:0000:0000:0000:0000:0000:0000 -  
                          fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ---->Rang IP's locals 

-

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.

  • NO EXISTEIX EL PROTOCOL ARP
    • Perquè tal mac en IPv6 ja sabem quina IP.
  • ICMP com a tal no existeix, són ICMP6
[email protected]:/$ sudo arp -n 192.168.204.112  -> Joel
[sudo] password for rafel: 
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.204.112          ether   00:30:05:eb:3e:73   C                     eth2
[email protected]:/$ ping6 fe80::230:05ff:feeb:3e73
connect: Invalid argument

Capçalera IPv6

La mida fixa és de 40 bytes (320 bits)

It has the following format:

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ó.
  • 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).

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.so possible on nodes using stateless autoconfiguration.

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

TODO:

Then, it is necessary (RFC 3513) to invert the universal bit ("u" bit) in the 6th position of the first octet. 
Thus the result is: 
020c:29ff:fec2:52ff
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

TODO: Permeten augmentar la privacitat.


The EUI-48-to-EUI-64 transform process is attractive because it is simple to implement. However, it generates a privacy problem. Global unicast as well as link-local addresses may be built with an identifier derived from the MAC address. A Website tracking where a node frequently attaches can collect private information such as the time spent by employees in the enterprise or at home.

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

RouterOS

Consulteu:

RouterOS i IPv6

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.


NDP (Neighbor Discoverey Protocol)

  • Només és capaç de treballar en IPv6.
  • Treballa en capa 2
  • S'encarrega de:
  1. Configuració dels nodes de la xarxa.(Adress Auto-configuration).IPv4 se'n encarrega el DHCP.
  2. Descobrir altres nodes de la capa d'enllaç.(IPv4 fent un broadcast amb IPv6 MULTICAST).
  3. Determinar les adreces d'altres nodes que es troben a un sol salt.En Ipv4 no hi ha manera, si el dispositiu no treballava no hi havia manera de descobrir l'adreça.Amb ARP havies de saber la IP.Ara amb IPv6 informen els mateixos nodes.
  4. Detectar duplicació d'adreces (Com Windows: quan tenen una màquina configurada el primer que fan es enviar un paquet amb la seva pròpia IP si contesta envia un missatge d'alerta).
  5. Descobrir els routers i els Domain Name System (DNS) servers
  6. Address prefix discovery.
  7. Maintaining reachability information about the paths to other active neighbor nodes.

IMPORTANT: En IPv6 no existeix el protocol ARP. De fet moltes de les funcions que feia el protocol ARP les fa ara el protocol ND. També fa funcions que en IPv4 són pròpies de DHCP, tot i que també existeix DHCPv6

Conceptes:

  • Node: és un dispositiu que implementa IPv6. (Sap parlar IPv6)Hi ha dos tipus:
  • Routers: - a node that forwards IPv6 packets not explicitly addressed to (se'n encarrega de treballar amb paquets que no són seus)
  • Hosts: un node que no és un encaminador.

IMPORTANT: Els routers i els Hosts estan estrictament separats, principalment un router no pot ser host i un host no pot ser router a la vegada

Configuració Mikrotik amb IPv6

Manual

http://wiki.mikrotik.com/wiki/Manual:IPv6/ND

Assignar IPv6

  • Accedim a la routerboard executant el winbox.exe amb el wine.
  • Una vegada connectats tenim que activar la l'IPv6, seguint els següents passos:
    • A la captura podem observar com l'opció Ipv6 està desactivada.
    • System --> Packages --> Ipv6 --> Enable.
  • Reiniciem la routerboard: System --> Reboot.

Rafelmelichmicrond1.png

  • Una vegada reiniciada la routerboard podem observar que ja està activada l'opció IPv6 (ja surt al menú)

Rafelmelichmicrond2.png

Rafelmelichmicrond3.png

Rafelmelichmicrond4.png


IPv6(ara sortirà activat)

Sabent la mac del dispositiu sabrem la IPv6, amb això podem veure si coincideix amb la ipv6 que ens dona el metrokit:

En el meu cas la mac és:

[email protected]:~$ sipcalc fe80::20c:42ff:fef5:b70a/64
-[ipv6 : fe80::20c:42ff:fef5:b70a/64] - 0

[IPV6 INFO]
Expanded Address        - fe80:0000:0000:0000:020c:42ff:fef5:b70a
Compressed address      - fe80::20c:42ff:fef5:b70a
Subnet prefix (masked)  - fe80:0:0:0:0:0:0:0/64
Address ID (masked)     - 0:0:0:0:20c:42ff:fef5:b70a/64
Prefix address          - ffff:ffff:ffff:ffff:0:0:0:0
Prefix length           - 64
Address type            - Link-Local Unicast Addresses
Network range           - fe80:0000:0000:0000:0000:0000:0000:0000 -
                          fe80:0000:0000:0000:ffff:ffff:ffff:ffff
 
[email protected]:~$ sipcalc fe80::20c:42ff:fef5:b70b/64
-[ipv6 : fe80::20c:42ff:fef5:b70b/64] - 0 

[IPV6 INFO]
Expanded Address        - fe80:0000:0000:0000:020c:42ff:fef5:b70b
Compressed address      - fe80::20c:42ff:fef5:b70b
Subnet prefix (masked)  - fe80:0:0:0:0:0:0:0/64
Address ID (masked)     - 0:0:0:0:20c:42ff:fef5:b70b/64
Prefix address          - ffff:ffff:ffff:ffff:0:0:0:0
Prefix length           - 64
Address type            - Link-Local Unicast Addresses
Network range           - fe80:0000:0000:0000:0000:0000:0000:0000 -
                          fe80:0000:0000:0000:ffff:ffff:ffff:ffff

-
 
[email protected]:~$ sipcalc 2001:DB8::1/64
-[ipv6 : 2001:DB8::1/64] - 0

[IPV6 INFO]
Expanded Address        - 2001:0db8:0000:0000:0000:0000:0000:0001
Compressed address      - 2001:db8::1
Subnet prefix (masked)  - 2001:db8:0:0:0:0:0:0/64
Address ID (masked)     - 0:0:0:0:0:0:0:1/64
Prefix address          - ffff:ffff:ffff:ffff:0:0:0:0
Prefix length           - 64
Address type            - Aggregatable Global Unicast Addresses
Network range           - 2001:0db8:0000:0000:0000:0000:0000:0000 -
                          2001:0db8:0000:0000:ffff:ffff:ffff:ffff

Prefixos--> Routes -->El numero de prefixos = Número de rutes que guarda el router


[email protected]:~$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:db8::b9a9:db84:34fb:a6ea/64 scope global temporary dynamic 
       valid_lft 604152sec preferred_lft 85152sec
    inet6 2001:db8::230:5ff:feeb:3b44/64 scope global dynamic 
       valid_lft 2591829sec preferred_lft 604629sec
    inet6 fe80::230:5ff:feeb:3b44/64 scope link 
       valid_lft forever preferred_lft forever
 
[email protected]:~$ sudo apt-get install rdnssd

[email protected]:~$ ping6 2001:db8::1
PING 2001:db8::1(2001:db8::1) 56 data bytes
64 bytes from 2001:db8::1: icmp_seq=1 ttl=64 time=0.488 ms
64 bytes from 2001:db8::1: icmp_seq=2 ttl=64 time=0.235 ms
64 bytes from 2001:db8::1: icmp_seq=3 ttl=64 time=0.251 ms
64 bytes from 2001:db8::1: icmp_seq=4 ttl=64 time=0.246 ms
64 bytes from 2001:db8::1: icmp_seq=5 ttl=64 time=0.250 ms
64 bytes from 2001:db8::1: icmp_seq=6 ttl=64 time=0.221 ms
...
....
.....
--- 2001:db8::1 ping statistics ---
11 packets transmitted, 11 received, 0% packet loss, time 9998ms
rtt min/avg/max/mdev = 0.221/0.266/0.488/0.073 ms
[email protected]:~$ sudo service networking restart
[sudo] password for rafel: 
stop: Unknown instance: 
networking stop/waiting
[email protected]:~$ ifconfig 
eth2      Link encap:Ethernet  HWaddr 00:30:05:eb:3b:44  
          inet addr:192.168.88.254  Bcast:192.168.88.255  Mask:255.255.255.0
          inet6 addr: 2001:db8::230:5ff:feeb:3b44/64 Scope:Global
          inet6 addr: fe80::230:5ff:feeb:3b44/64 Scope:Link
          inet6 addr: 2001:db8::b9a9:db84:34fb:a6ea/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12554 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12442 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10993329 (10.9 MB)  TX bytes:1481337 (1.4 MB)
          Interrupt:23 Base address:0x8000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2388 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2388 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:310318 (310.3 KB)  TX bytes:310318 (310.3 KB)
 

[email protected]:/etc$ sudo gedit resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) 
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN 
nameserver 8.8.8.8 --->

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.

Recursos

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



Vegeu també

Enllaços externs