Pour l'instant, le newbie que je suis tache de comprendre comment aborder la partie client de xl2tpd pour se récupérer une adresse IPv6 sur SFR.
(http://wiki.openwrt.org/doc/howto/ipv6.softwire#prefix.delegation.through.dhcpv6)
Si ça peut t'aider, voici quelques fichiers extraits du firmware 3.3.9 (que tu peux télécharger
ici et décompresser en suivant
ces instructions) relatifs à la configuration de l'IPv6.
/etc/init.d/ppp6ol2tp :
#!/bin/sh /etc/rc.common
logger -t "ppp6ol2tp[$$]" "$action"
TID=l2tp-IPv6
start() {
# start l2tp
if [ "$(status get net_data_status)" = "down" ]
then
logger -t "ppp6ol2tp[$$]" "data down..."
exit 1
fi
# started ?
test -e /run/xl2tpd.pid && local pid=$(cat /run/xl2tpd.pid)
if test -n "${pid}" && kill -0 ${pid}; then
logger -t "ppp6ol2tp[$$]" "started"
exit 0
fi
# disable flowcache
fcctl config --ipv6 0
# xl2tpd
mkdir -p /run/xl2tpd
chmod a+rwx /run/xl2tpd
xl2tpd -c /etc/xl2tpd.conf
sleep 2
if [ "$(status get net_data_infra)" = "adsl/ppp" ]; then
local ppp_ipv6_login="ppp/$(status get net_data_ipaddr)@$(nbctl mac 3 ppp)"
else
local ppp_ipv6_login="dhcp/$(status get net_data_ipaddr)@$(nbctl mac -1 ppp)"
fi
status set ppp_ipv6_login ${ppp_ipv6_login}
local autoconf_file=/tmp/autoconf/$(autoconf get wanservices_file)
local ipv6_lns=$(roxml -q ${autoconf_file} "//ipv6/lns")
status set net_ipv6_server ${ipv6_lns}
# use data
ip route add ${ipv6_lns} via $(status get net_data_gateway)
xl2tpd-control add ${TID} hostname=${ipv6_lns} name=${ppp_ipv6_login} lns=${ipv6_lns}
# xl2tpd-control connect ${TID} ${ppp_ipv6_login} ${ppp_ipv6_password}
}
stop() {
status set net_ipv6_server ""
xl2tpd-control disconnect ${TID}
xl2tpd-control remove ${TID}
sleep 2
# stop xl2tpd
test -e /run/xl2tpd.pid && pid=$(cat /run/xl2tpd.pid)
test -z ${pid} && return
kill ${pid}
# enable flowcache
fcctl config --ipv6 1
}
C'est ce script qui se charge de configurer et lancer xl2tpd.
Comme tu peux le constater, certaines variables sont dépendantes du
fichier de configuration téléchargé à son démarrage par la box. Certaines sont définies en lisant directement le fichier à l'aide de l'utilitaire
roxml, d'autres sont passées en tant que variables d'environnement par d'autres binaires présents sur la Neufbox.
Il y a un paramètre que tu ne pourras pas récupérer sans chercher un peu : le mot de passe (
ppp_ipv6_password), qui est chiffré dans le fichier de configuration. Heureusement, il est
transmis en clair sur le réseau lors de l'établissement de la session PPP, il suffit donc à priori de capturer ce qui passe entre la box et l'ONT au démarrage pour le connaître.
Si tu as du mal à comprendre le fonctionnement de ce script, n'hésite pas à demander des éclaircissements.
/etc/xl2tpd.conf :
[global]
;debug avp = yes
;debug network = yes
;debug state = yes
;debug tunnel = yes
port = 1701
access control = no
[lac l2tp-IPv6]
redial = yes
redial timeout = 5
hidden bit = no
;ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
require authentication = no
refuse authentication = no
refuse chap = no
flow bit = yes
length bit = yes
/etc/ppp/options.xl2tpd :
ipv6 ,
+ipv6
ipv6cp-use-persistent
lock
child-timeout 20
lcp-echo-failure 3
lcp-echo-interval 20