Suite à
https://linuxfr.org/~plic/25817.html voici quelques éléments pratiques (voir aussi
AboutIPv6 pour des notes complémentaires)
D'autres journaux sont apparus sur le sujet :
IPv6, Free & OpenWRT,
ipv6 chez free... et maintenant ?,
freebox serveur d'impression,
dedibox en IPv6
Une analyse de 6to4rd :
http://gelim.net/blog/index.php?2007/12/15/11/46/49-ipv6-chez-free
Utilisation de DD-WRT pour son routeur et sous-réseau
https://linuxfr.org/~superna/26059.html
google aussi se met à IPv6 :
https://linuxfr.org/~ribwund/26287.html (+ précisions sur IPv6 chez free)
Configuration initiale
activation IPv6 sur Freebox :
- aller sur la console de gestion (www.free.fr -> identifiez-vous),
- fonctionnalités routeur de la Freebox (sélectionner l'image, pas le texte),
- choisir "autres fonctions",
- sur la page vous devriez avoir une case a cocher : "Support IPV6:" ; l'activer
- rebooter la freebox
Les cas qui marchent directement
- un ordinateur relié directement à la gratuiteboîte : l'autoconfiguration affecte une IPv6
- connexion par wifi, bug connu avec iwl3945 et kernel 2.6.22 http://bughost.org/bugzilla/show_bug.cgi?id=1374
- avec un routeur derrière la freebox voir à utiliser radvd (à compléter ci-dessous)
Configuration spécifique
- pour ne pas que son adresse MAC "fuite" sur les connexions sortantes : echo 2 >/proc/sys/net/ipv6/conf/default/use_tempaddr, ou bien ajouter dans le fichier /etc/sysctl.conf la ligne :
net.ipv6.conf.default.use_tempaddr=2
Configuration avec un routeur derrière la freebox
Je cite Stephane BERTHELOT (sur proxad.free.services) :
J'ai exactement le même problème, à savoir l'impossibilité de router l'ipv6 en interne de mon réseau facilement.
Pour éclaicir un peu le sujet, voici ma config (simplifiée pour l'exemple)
<Freebox> -eth0- <routeur ipv6 linux> -eth1- <clients ipv6 linux>
Vu que la Freebox fait des annonces directes sur son interface LAN pour trouver les machines vers lesquelles elle veut router (Neighbor Discovery), mon routeur ne répond pas et donc les paquets de retour n'arrivent jamais.
La seule solution que j'ai trouvée est de faire une Proxy NDP en utilisant :
ip -6 neigh add proxy <ip6 client sur eth1> dev eth0
qui permet de faire une proxy NDP (à la manière d'une proxy ARP en ipv4) et la mon routeur répond à la place des machines qui sont derrière lui et forward les paquets correctement.
Petite question vu que la commande proxy accepte une IPv6 /128 et non une plage, est-ce que mon /64 va rentrer dans la table proxy du noyau en entrant les ip une par une ? :) (pas franchement propre comme solution)
D'autre part la freebox s'assigne le xxxx::1 sans trop demander mon avis, vu le nombre d'adresses dispo ca ne me dérange pas mais du coup pour scanner des fbx activées ipv6 ca devient beaucoup plus simple...
Enfin comme chez les FAI ou on propose une plage d'IP (pas pour les particuliers habituellement), il serait bon de pouvoir configurer sur la console de gestion, l'adresse du routeur derrière la fbx quand il y en a un.
[...]
Stéphane.
La méthode ci-dessus fonctionne à condition d'activer
net.ipv6.conf.all.proxy_ndp (par contre, "je" ne sais pas comment afficher la liste des proxy ajoutés).
Pour ceux qui n'ont qu'un seul réseau, il est possible de faire un pont entre l'interface reliée à la freebox et l'interface reliée au réseau local comme indiqué sur cette page :
http://ip6.fr/free-broute/.
Une autre solution a explorer est d'installer
quagga ou
zebra sur le routeur et voir si la freebox prend en compte la route qu'il va annoncer (ça a l'air plus propre que le hack du neighbour proxying)
Petite contribution externe
Je ne sais pas si cette contribution sera bien vue, m'enfin puisqu'il s'agit d'un wiki, osons...
Dans la solution du proxy NDP, sans modification du préfixe annoncé par la freebox, on se retrouve avec un routeur qui possède ses deux pattes dans le même réseau logique (/64), et ça pose quelques soucis.
En effet, deux routes existent (après avoir monté les interfaces) pour le même réseau (le /64 donc) mais passant par deux interfaces à la fois. Certes ce n'est pas très gênant pour le routeur, quoique ; ça l'est plus pour les clients.
En se basant sur la topologie proposée :
<Freebox> -eth0- <routeur ipv6 linux> -eth1- <clients ipv6 linux>, en considérant que les clients ipv6 linux parviennent sans problème à accéder à Internet et qu'ils sont bien visibles sur ce dernier, j'ai remarqué qu'il est impossible :
- aux clients ipv6 d'accéder à l'interface "opposée" (ici eth1) ;
- de même pour les clients ipv6 sur Internet, pour eth0.
Bien que les adresses soient sur le même réseau logique, ça devrait normalement être possible d'y accéder (hors règle de pare-feu - on suppose ici qu'ils laissent tout passer -). Si on regarde bien, ça parait assez logique, en fait : les clients ipv6 veulent accéder à une adresse IP qui se trouve sur leur réseau, donc pas de raison de quitter le réseau par un routeur. LEs paquets n'arriveront pas. De même par de l'autre côté.
Une solution, très crade, est de spécifier _pour_chaque_client_ la route à effectuer pour l'interface eth1.
L'autre solution est de découper le préfixe. C'est, à mon goût surement plus propre. La freebox fournit un /64 et il est impossible (pour le moment) d'y toucher. Ce n'est pas grave.
La tactique ici va être de découper le /64 en plusieurs sous-réseaux /96 (96 ou tout autre valeur supérieure à 64 évidemment). On attribuera ensuite à chaque interface une IP se trouvant dans deux sous-réseaux différents, donc pour lui, pas de problème, il a les pieds dans des sous-réseaux distincts. Les routes sont bonnes. Il faut changer pour chaque client la passerelle qui n'est plus la freebox mais le routeur linux. Ce dernier garde, lui, la configuration en proxy NDP.
Tout le monde est content, les clients arrivent à pinguer l'interface dans l'autre sous-réseau et il est logique qu'il en soit ainsi pour l'autre sous-réseau.
Maintenant, vu de la freebox, celle-ci fournit toujours un /64. Elle voit donc un réseau entier. Il n'y a pas de problème non plus puisque le proxy NDP fait son travail.
Voilà tout.
À rajouter beaucoup plus haut : s'il faut rajouter (pour chaque client) sur le routeur une entrée au proxy (ip -6 neigh add proxy...) il ne faut pas oublier de proxyser la freebox (ip -6 neigh add proxy 2a01:e35:xxx::1 dev eth1) sans quoi les clients ne pourront pas sortir sur Internet.