IPv6 et OVH ADSL

Bonjour,

Je suis client ADSL chez OVH depuis une certains temps à présent. Je me bat depuis quelques mois pour tenter de faire fonctionner IPv6 sur ma connexion internet.
OVH ayant passé ses connexions dégroupé au PPP il y a peu, je pensais que ça fonctionnerais mieux qu’avec l’IPoE qu’ils utilisaient auparavant, après tout, l’IPv6 à très bien fonctionné quand j’étais chez FDN.

Ma configuration est la suivante :

  • Model Thomson OVH configuré en bridge.
  • PC Debian faisant office de paserelle/routeur.

Quelques fichiers de configuration :

  • /etc/network/interfaces

[code]# This file describes the network interfaces available on your system

and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

The loopback network interface

auto lo
iface lo inet loopback
auto dummy0
iface dummy0 inet static
address 109.190.xxx.xxx
netmask 255.255.255.255
network 1090.190.xxx.xxx
broadcast 109.190.xxx.xxx
iface dummy0 inet6 static
address 2001:41d0:fc8e:xxx0::1
netmask 64
auto bond0
iface bond0 inet manual
address 0.0.0.0
netmask 0.0.0.0
slaves eth1 eth2
bond-mode active-backup
bond-miimon 100
bond-downdelay 200
bond-updelay 200
auto br0
iface br0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
bridge_ports bond0 eth3 eth4
bridge_stp off
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
iface br0 inet6 static
address 2001:41d0:fc8e:xxx1::1
netmask 64
dns-nameserver 127.0.0.1 ::1
auto dsl-provider
iface dsl-provider inet ppp
pre-up /bin/ip link set eth0 up # line maintained by pppoeconf
provider dsl-provider
iface dsl-provider inet6 ppp
address 2001:41d0:fc8e:xxx0::1
netmask 64
auto eth0
iface eth0 inet manual[/code]

  • /etc/ppp/peers/dsl-provider

# Minimalistic default options file for DSL/PPPoE connections noipdefault defaultroute replacedefaultroute hide-password #lcp-echo-interval 30 #lcp-echo-failure 4 noauth persist mtu 1492 #persist #maxfail 0 #holdoff 20 plugin rp-pppoe.so eth0 #usepeerdns user "xxxxxxxxxx_x@ovh.kosc" +ipv6 ipv6cp-use-ipaddr ipparam ovh

  • /etc/ppp/ipv6-up.d/00defaultroute

#!/bin/sh if [ "$PPP_IPPARAM" = "ovh" ]; then /sbin/ip -f inet6 route del ::/0 /sbin/ip -f inet6 route add ::/0 dev $PPP_IFACE fi

  • ip addr show ppp0

11: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN group default qlen 3 link/ppp inet 109.190.xxx.xxx peer 178.32.37.3/32 scope global ppp0 valid_lft forever preferred_lft forever inet6 2001:41d0:fc8e:xxx0::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::959b:4959:c9e0:be05/10 scope link valid_lft forever preferred_lft forever

  • route -6

Table de routage IPv6 du noyau Destination Next Hop Flag Met Ref Use If ::1/128 :: U 256 0 0 lo 2001:41d0:fc8e:xxx0::/64 :: U 256 0 0 dummy0 2001:41d0:fc8e:xxx0::/64 :: U 256 0 0 ppp0 2001:41d0:fc8e:xxx1::/64 :: U 256 0 0 br0 fd00:c0:a8:1::/64 :: U 256 0 0 br0 fe80::/64 :: U 256 0 0 dummy0 fe80::/64 :: U 256 0 0 br0 fe80::/64 :: U 256 0 0 eth0 fe80::/10 :: U 1 0 0 ppp0 fe80::/10 :: U 256 0 0 ppp0 ::/0 :: U 1024 2 0 ppp0 ::/0 :: !n -1 1 22538 lo ::1/128 :: Un 0 5 10890 lo 2001:41d0:fc8e:xxx0::/128 :: Un 0 1 0 lo 2001:41d0:fc8e:xxx0::/128 :: Un 0 1 0 lo 2001:41d0:fc8e:xxx0::1/128 :: Un 0 1 11 lo 2001:41d0:fc8e:xxx0::1/128 :: Un 0 1 0 lo 2001:41d0:fc8e:xxx1::/128 :: Un 0 1 0 lo 2001:41d0:fc8e:xxx1::1/128 :: Un 0 1 357 lo fd00:c0:a8:1::/128 :: Un 0 1 0 lo fd00:c0:a8:1::1/128 :: Un 0 1 21069 lo fe80::/128 :: Un 0 1 0 lo fe80::/128 :: Un 0 1 0 lo fe80::/128 :: Un 0 1 0 lo fe80::/128 :: Un 0 1 0 lo fe80::10e9:9fff:fe7f:3a4a/128 :: Un 0 1 0 lo fe80::468a:5bff:fe8a:470/128 :: Un 0 1 0 lo fe80::92e2:baff:fe28:a5d0/128 :: Un 0 1 195 lo fe80::959b:4959:c9e0:be05/128 :: Un 0 1 0 lo ff00::/8 :: U 256 0 1 dummy0 ff00::/8 :: U 256 1 0 br0 ff00::/8 :: U 256 1 0 eth0 ff00::/8 :: U 256 0 0 ppp0 ::/0 :: !n -1 1 22538 lo

Malgré l’activation du paramètre +ipv6 dans PPP, aucune IPv6 ne m’est attribué sur l’interface ppp0, j’ai suivi des tutoriaux indiquant qu’il fallait mettre l’IPv6 et la route IPv6 par défaut à la main, ce que j’ai fais, mais ça ne donne rien de plus.

ping6 ipv6.google.com PING ipv6.google.com(dh-in-x8a.1e100.net) 56 data bytes ^C --- ipv6.google.com ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2014ms

Si quelqu’un utilise une configuration de ce genre et a su s’en sortir, je suis preneur. :slight_smile:

Malheureusement je ne pourrais t’aider …

Si ce n’est que, pour avoir une connexion ipv6, j’ai ouvert un compte gratuit chez le tunnel broker HE.net.
A ta différence, moi, je l’interface avec mon pare-feu, en amont, qui est sous opnsense.

J’ai une connexion IPv6 par mon FAI normalement, mais il ne me fournisse qu’un prefixe /64.
MAis, étant donné que je fais de l’hébergement @home, j’ai besoin d’au moins deux prefixe /64. Ce qu’offre HE.
Et, ça fonctionne sans soucis. :stuck_out_tongue:

Voili, voilou pour l’astuce et ses deux cents. :smiley:

1 J'aime

Bonjour,

As-tu déjà essayé d’utiliser DHCPv6 ?

Voir ce post : lafibre.info/…/pppoe-ovh-ipv6

Je ne dispose pas d’abonnement chez OVH et je ne sais pas si cela peut être la solution. Mais ça me semble crédible.

Sinon, wide-dhcpv6 peut convenir pour un premier test mais ensuite il faut passer à dhclient , le client DHCP de l’ISC.
En effet, wide-dhcpv6 n’est plus maintenu depuis plusieurs années et plante au bout de quelques semaines.


AnonymousCoward

1 J'aime

J’utilise un préfixe IPv6 sur une connexion ADSL en PPP (pas PPPoE mais peu importe, c’est avec /etc/network/interfaces et pppd) chez un autre FAI.

Quelques remarques vite fait en passant.

A ma connaissance, la méthode ppp du fichier /etc/network/interfaces ne supporte pas l’option address qui est spécifique à la méthode static. Techniquement, cela me semble normal :

  • l’exécution de pppd par pon qui est invoqué par ifup est asynchrone, ce dernier ne sait donc pas quand l’interface ppp* est créée et opérationnelle pour pouvoir lui ajouter l’adresse ;
  • il ne connaît pas non plus directement le nom de l’interface ppp* créée.

Le protocole IPV6CP (configuration IPv6 sur PPP) attribue bien une adresse IPv6 à l’interface PPP, mais c’est une adresse “link local” en fe80. A ma connaissance les adresses globales et les routes doivent être configurées autrement. Comme toi je le fais avec un script dans /etc/ppp/ipv6-up.d/. Par contre j’utilise le préfixe 2000::/3 (global unicast) pour la route internet au lieu de ::/0. J’ai aussi une “nullroute” créée dans le fichier interfaces pour mon propre préfixe /48 (dont je n’utilise que quelques sous-réseaux /64) afin d’éviter les boucles de routage, mais c’est un détail.

DHCPv6 sur PPP n’est utile que si le préfixe attribué par le FAI est variable, pour la délégation de préfixe. Si le préfixe est fixe il est plus simple de tout configurer en statique.

Y a-t-il des règles de filtrage ip6tables sur la machine ?

Quel est ce FAI à éviter ?

Free :stuck_out_tongue:
Il faut aussi avouer que j’ai une FBox v5 …

Voilà. Il faut au moins une Freebox v6 pour bénéficier des 16 /64.
Ou alors pas de Freebox du tout, certains avaient réussi à exploiter tout le préfixe /60 en utilisant leur propre modem et en gérant le tunnel 6rd sur le routeur. Inutile d’essayer de faire ça avec une Freebox v5 : même avec l’option IPv6 désactivée, elle intercepte quand même les paquets 6rd.

Merci des propositions, la solution de AnonymousCoward s’est avérée être la bonne.
Une fois wide-dhcp6c installé et configuré l’interface br0 reçoit bien une address IPv6 en 2001:41d0:fc8e:xxx1:yyyy:yyyy:yyyy:yyyy/64 et peux joindre des équipements IPv6 sur internet.
Certes, l’interface ppp0 reste sans IPv6 et je n’ai qu’un /64 exploitable alors que OVH fourni un /56, mais c’est toujours mieux que rien.

Fichier /etc/network/interfaces mis à jour, la présence de l’IPv6 2001::/64 sur dummy0 empêchait les autres PC de mon réseau de joindre le PC-routeur via une adresse du même réseau.

Je chercherais comment remplacer wide-dhcp6c par dhclient -6 plus tard, à ce que j’ai vu, le support d’IPv6 dans le client DHCP de l’ISC est incomplet ou mal documenté, je jetterais un œil à l’occasion.

En fait ce n’est pas l’adresse IPv6 mais la longueur de préfixe 64 qui n’allait pas, faisant croire à la machine que tout le /64 était joignable via l’interface dummy0. Il aurait fallu mettre 128 (une seule adresse), comme tu as mis 32 pour l’adresse IPv4.

Ce n’est pas gênant : si la machine a une adresse IPv6 globale configurée sur une autre interface, elle peut l’utiliser sur la liaison PPP.

C’est-à-dire ? Si OVH te route un /56 fixe, il n’y a pas de raison que tu ne puisses pas l’exploiter en entier.

Bonjour,

Concernant la taille du préfixe, c’est peut-être dû à la ligne sla-len 8; , si tu as recopié tel quel l’exemple du forum lafibre.info .

En admettant que OVH fournisse bien un /56, je te propose quelques variations de la configuration, toujours avec dhcp6c :

  • Obtenir un préfixe /56 à configurer sur l’interface br0 (incluant une IP dont la partie adresse vaut ::1) :
interface ppp0
{
	send ia-pd 0;
};

id-assoc pd 0 {
	prefix-interface br0 {
		sla-len 0;
		ifid 1;
	};
};
  • Obtenir trois préfixes /64 à configurer sur les interfaces br0, eth3, eth4 :
interface ppp0
{
	send ia-pd 0;
};

id-assoc pd 0 {
	prefix-interface br0 {
		sla-id 0;
		sla-len 8;
		ifid 1;
	};
	prefix-interface eth3 {
		sla-id 1;
		sla-len 8;
		ifid 1;
	};
	prefix-interface eth4 {
		sla-id 2;
		sla-len 8;
		ifid 1;
	};
};
  • Obtenir un préfixe /56 et ne pas le configurer automatiquement :
interface ppp0
{
	send ia-pd 0;
};

id-assoc pd 0 {
};

Concernant les clients DHCPv6 disponibles, aucun des plus connus n’est fantastique.
Wide-dhcpv6 et dibbler plantent au bout d’un moment.
Celui de l’ISC pèche par la documentation, parce-qu’il faut souvent le retarder de 10 secondes pour ne pas qu’il se plante quand l’interface réseau est en phase de Duplicate Address Detection (DAD) ou encore par le fait que l’on ne puisse pas demander plusieurs Identity Associations (IA) simultanément.


AnonymousCoward

Merci pour les conseils, ça fonctionne convenablement à présent. :slight_smile:

@Zergy: tu le passes alors, en résolu, stp … en cochant le post/la réponse qui t’as la plus aidée. Merci d’avance.


Déjà fait depuis quelques jours. :slight_smile:

1 J'aime