IPV6 step one two

La semaine dernière, j’expliquais comment j’avais intégré l’IPV6 dans mon réseau. Depuis la donne à fortement changé puisque j’ai mis ma freebox en mode non routeur, et donc mon propre routeur sous FreeBSD (ma nouvelle carte wifi marche pas sous OpenBSD).

Du coup on en arrive au problème de la freebox qui se comporte en routeur IPV6 même en mode non routeur, voyez plutôt cette discussion FRNOG ou on nous explique que ça va peut être changer bientôt. En attendant, pas moyen de router proprement l’IPV6 de Free sans passer par un proxy ndp ou un bridge logiciel, sans compter qu’il n’est pas possible d’avoir un reverse DNS avec l’IPV6 de Free.

Grâce à sieur bsdsx j’ai découvert tunnelbrocker.net qui est un service type tunnel broker en gros les paquet IPV6 sont encapsulés dans de l’IPV4 entre chez vous et le bout du tunnel (plusieurs sont disponibles suivant votre localisation), ils fournissent un /64 ou un /48 et surtout la possibilité d’avoir un reverse DNS.

Sachez qu’il y a encore une troisième façon d’avoir une connectivité IPV6, basé sur la RFC 3068 ou encore 6to4, qui permet à n’importe qui d’obtenir un /48 sans demander rien à personne (c’est la passerelle 6to4 la plus proche de vous qui prend en charge le routage de votre traffic), le prefixe est calculé à partir de votre IPV4 publique.

J’ai grosso modo donné les 3 manière communes d’accéder au réseau IPV6 quand on est abonné chez Free. Chaque méthode à son avantage (ou pas), vous pouvez lire ce mail.

Perso j’ai choisi le tunnel broker Huricane Electrics qui marche bien, il suffit de créer un compte et un tunnel, ils donnent même la config pour FreeBSD mais pour fixer ça en dur dans rc.conf :

ipv6_enable="YES"
ipv6_gateway_enable="YES"
gif_interfaces="gif0"
gifconfig_gif0="82.229.137.130 216.66.84.46" # Mon IP publique suivie de l'IP du tunnel
ipv6_ifconfig_gif0="2001:470:1f14:7bf::2 2001:470:1f14:7bf::1 prefixlen 128"
ipv6_defaultrouter="2001:470:1f14:7bf::1"
# On relie le réseau local (sur l'interface vr1 chez moi)
ipv6_ifconfig_vr1="2001:470:1f15:7bf:dead:c0de::1 prefixlen 96"

La conf pf qui va avec :

ext_if = "vr0"
int_if  = "vr1"
gif_if  = "gif0"
tun_end = "216.66.84.46" # Le bout du tunnel
localnet = $int_if:network
block log all
pass inet proto icmp all icmp-type { echoreq unreach }
pass inet6 proto icmp6 all icmp6-type { echoreq unreach timex toobig neighbrsol neighbradv }
pass out proto { tcp udp } all
pass out on $ext_if from $ext_if to $tun_end
# On peut filtre ici (là tout passe sans filtrage)
pass in on $gif_if inet6 proto { tcp udp icmp6 } to $localnet

En cas de doutes, vous pouvez faire des nmap depuis l’interface web de tunnelbroker.net.

Pour la config du reverse DNS c’est pas plus compliqué qu’en IPV4 (juste plus long) :

; master/local6.rev
$TTL 3600 ; 1 heure
f.b.7.0.5.1.f.1.0.7.4.0.1.0.0.2.ip6.arpa.	IN	SOA	ns.philpep.org. root.philpep.org. (
2010022601 	; serial
8H	    	; refresh
4H	    	; retry
4W	    	; expire
1D )		; Min TTL
@	    IN	     NS	ns.philpep.org.
1.0.0.0.0.0.0.0.e.d.0.c.d.a.e.d		IN		PTR	solo.philpep.org.
; et named.conf
zone "f.b.7.0.5.1.f.1.0.7.4.0.1.0.0.2.ip6.arpa" {
type master;
file "master/local6.rev";
};

Autre chose à savoir, l’IPV6 c’est pas encore ça puisqu’on est encore obligé à un moment ou un autre d’encapsuler l’IPV6 dans l’IPV4 et de passer par des tunnels plus ou moins loin, la connectivité sortante en souffre énormément (allez faire un tour sur youtube.com en IPV6 en passant par un tunnel broker…), du coup ça peut être une bonne idée de préférer l’IPV4 sur la machine où il y a le browser :

/etc/rc.d/ip6addrctl prefer_ipv4
# ou alors QUE pour firefox about:config
network.dns.disableIPv6

Si quelqu’un à déjà mis en place son réseau IPV6 en 6to4 avec stf(4), j’ai lu que la connectivité entrante était moins fiable qu’avec un tunnel broker, je voudrais que quelqu’un m’explique ??

Quelques liens :