Español  

IPv6/ca

De Guifi.net - Wiki Català

Lectures recomanades

A l'espera d'exposar alguna pràctica IPv6 de guifi.net recomano aquesta lectura:

Introducció a ipV6

Tutorial ipV6

E-learning RIPE IPV6

IPV6 wikipedia: conceptes bàsics

El primer de tot es la privacitat.

Privacitat

Per defecte en Linux potser que s'expose l'adreça MAC al crear l'adreça IPv6, amb els problemes de privacitat que això porta. Per a evitar-lo podem dir-li al nostre sistema que cree i utilitze adreces aleatòries on tindria que anar la nostra adreça MAC original [1] dins de l'adreça IPv6 (simplificant, a la part del final).

Per a vore si utilitzes ja les extensions de privacitat a totes les interfícies per defecte, pots fer:

# cat /proc/sys/net/ipv6/conf/all/use_tempaddr 
2

Si et dona '2' es que les tens activades i no cal fer molt mes, tant sols pot assegurar-te de que les tens activades a les adreces que poden tenir assignades en un futur una adreça IPv6, amb la mateixa comanda anterior, però per a cadascuna de les interfícies que poden tindre IPv6, per eixample ens pot interessar en un cas general consultar la de la nostra 'eth0':

# cat /proc/sys/net/ipv6/conf/eth0/use_tempaddr 
2

Configuració

Per a que ho faca per defecte podem incloure al fitxer 'cat /etc/sysctl.conf' el valor:

net.ipv6.conf.all.use_tempaddr = 2

El valor '2' significa que per defecte utilitzarem les adreces aleatòries en lloc de les MAC que dona el hardware.

Aplicar la configuració

Generalment, si no tenies activades les extensions tindries que ficar-les a ma a cadascuna de les interfícies i reiniciar-les. Però lo més senzill si es pot, es configurar '/etc/sysctl.conf' i reiniciar la màquina i ja agafa al tornar a iniciar-la la configuració que li hem posat.

IPv6 pública amb IPv4 pública

(Aquest es en part un missatge original enviat a la llista guifi-dev sobre IPv6. Es basa en l'experiència personal al configurar IPv6 en primer lloc.)

Vaig mirar de implementar IPv6 a la meva casa i ho vaig aconseguir tenint una IPv6 pública sense utilitzar explícitament túnels i utilitzant la IPv4 que em dona el meu proveïdor (o proxy) d'Internet.

Aquest mètode es vàlid per quan tenim un proxy que no ens dona IPv6 i volem provar-lo. A l'espera de que els operadors comencen a donar les IPv6 que tenen assignades.

Resumint: Qualsevol persona que tinga a casa una adreça IPv4 (assignada pel seu proveïdor d'Internet de la forma habitual, dinàmica) te una direcció IPv6 pública ja mateix, sense que tinga que donar-te la IPv6 el proveïdor d'Internet. Una IPv4 pública equival a una IPv6 pública.

Els métodes que es descriuen son: - 6to4 Anycast Relay - 6in4 Static Tunnel

6to4 Anycast Relay

El mètode es "6to4 Anycast Relay", l'anycast es fa a l'adreça 192.88.99.1 i actua com a proxy IPv6-IPv4. Al ser anycast la màquina més pròxima amb eixa adreça es la que s'encarrega de traduir.

Per tant lo primer que hi ha que fer es comprovar si el teu proveïdor et dona servei anycast a l'adreça 192.88.99.1 fent un ping, si es positiu el resultat, pots tindre servei automàtic d'IPv6 pública utilitzant la teva IPv4 pública dinàmica per eixample.

Si el teu router amb OpenWRT o similar té una interfície a Internet amb una interfície que tinga l'adreça pública IPv4 que et dona el proveïdor pots utilitzar "6to4 Anycast Relay" posant l'adreça 192.88.99.1 com a "Anycast Relay Address" i posant per eixample DNS públics que suporten IPv6 com per eixample OpenDNS: 2620:0:ccc::2 i 2620:0:ccd::2 (vore la pàgina OpenDNS per més info).

Als dues casos els afegim les adreces dels DNS IPv6.

El cas base es realment senzill, ja que be configurat per defecte.

IPv6-6to4-Anycast-Relay-default-config.png

6in4 Static Tunnel

Si no te una interfície a Internet i esta darrere del teu router CPE que et dona altra LAN, tens que utilitzar l'opció "6in4 Static Tunnel" a on poses a mà l'adreça IPv6 pública, calculada a partir de la IPv4 pública:

#!/bin/bash
# script whatismyip.sh
myipis=`w3m http://whatismyip.com -dump | grep -A3 "Your IP Address is" |tail -1` ; echo $myipis

I calculant l'IPv6 pública:

#!/bin/bash
# script calcula-ipv4-a-ipv6.sh
ipv6calc -A conv6to4 `whatismyip.sh`


Si per eixample la meva IPv4 pública es: 1.2.3.4, l'IPv6 quedaria:

$ calcula-ipv4-a-ipv6.sh
2002:102:304::

Annexe l'imatge pel cas específic.

IPv6-6in4-static-tunnel-ipv4_1.2.3.4-example

No se si es útil o no, però el cas es que amb una IPv4 pública ja tenim una IPv6 pública, no fa falta que el proveïdor o algú altre et done una IPv6, ja la tens, es calcula a partir de la teva IPv4 Pública i la IPv6 calculada es pot adreçar per la Internet pública.

La part fixa es de 48 bits (la que es veu a Internet i es canviant depenent del proxy que utilitzem). Tenim a més 16 bits per subnets com diu Wikipedia [1], que dona 64 bits, la meitat dels 128 i tenim 64 bits pels hosts.

Lo que pot significar que podem tindre 64 bits per adreces de hosts, podem ficar dins els 32 bits de 10.x.x.x i tenim 32 bits per hosts en cada una de les adreces 10.x.x.x.

Així tenim que si es posa en marxa IPv6 tenim que tindre en compte que podríem utilitzar 64 bits per adreçament internament, independentment del prefixe de nivell superior i en eixos 64 bits que tenim cap el adreçament actual.

Cada vegada que eixim per un proxy ens canvia la part superior de l'adreça, però la part interna no canvia si ja estan assignades per avançat.

Internament es podrien tindre adreces del tipus "Unique local adresses" [2] que no son rutables a Internet, però que poden ser rutables entre organitzacions (previ agraïment). Així es podrien comunicar entre elles, organitzacions que no tingueren IPv6 Públiques, no hauria col·lisió d'adreces al 'ajuntar' les organitzacions.

Algunes coses, es diu que 6to4 està obsolet, però m'ha funcionat i es una possibilitat. Amb 6to4, el router difon el prefixe de xarxa pública IPv6 als nodes interns i tots poden tenir IPv6 pública. Amb IPv6 es normal tindre diferents adreces de xarxa. El firewall que porta per defecte el router neutre filtra IPv6 per connexió a port. El router CPE com que van en paquets IPv6 dins de IPv4 els deixa passar i no filtra per ports (que jo sàpiga).

Ara mateix per a que el router del borde enrute adreces cap a dins, té que donar-se-li una adreça local de la xarxa tipus "Unique local adresses" de la xarxa comunitària, que es la que es difon amb radvd, per a poder traduir IPv6 pública a IPv6 enrutada interna si es vol que s'enrute directament amb IPv6 dins. Els proxies es veurien amb adreça privada "Unique local adresses" (ULA) a tota la xarxa actual, com ara es veuen amb adreça 10.x.x.x.

Es poden tindre diferents adreces IPv6 a una mateixa interfície, es lo habitual, una la que et dona el proveïdor d'eixida i altra la pròpia de la xarxa comunitària. Les adreces de la xarxa comunitària poden servir per enrutar entre xarxes comunitàries amb un agraïment previ entre elles, però no a Internet directament i no col·lisionen (no deurien de col·lisionar, el rang es molt ample i es decideix prèviament) com es el cas de les IPv4 privades d'ara que si col·lisionen. Tindríem visibilitat a nivell IPv6 entre xarxes comunitàries. Tot pensant que no es tenen IPv6 públiques encara i per altres comunitats que vulguen comunicar-se de IP a IP sense NAT.

Sobre el rendiment dir que no es molt alt, depèn de la 'distància' (i altres factors) a la màquina 192.88.99.1 .

Pel mètode '6in4 Static Tunnel' hi ha alternatives per escollir 'proxy' IPv6 (diferent a 192.88.99.1), on l'usuari es registra amb la seva adreça de correu. Útil si no es te accés a la màquina anycast per defecte (192.88.99.1).

Referències:

[1] http://en.wikipedia.org/wiki/6to4

[2] http://en.wikipedia.org/wiki/Unique_local_address

Eines de l'usuari