Salut à tous,
j'ai une installation fonctionnelle en IPV4 +IPV6 avec un ERL v(1.9.1.1) en config ERL + livebox.
J'ai un réseau "guest" sur lequel je veux distribuer un préfixe IPV6.
J'ai donc modifié le script radvd.sh comme ceci :
#!/bin/bash
if [ "$SRV_MESSAGE" != "REPLY" ]
then
exit 1
fi
function fullPrefix () {
local input=$1
local o=""
local z=""
input=$(tr 'A-F' 'a-f' <<< $input )
while [ "$o" != "$input" ]; do
o="$input"
input="$( sed 's|:\([0-9a-f]\{3\}\):|:0\1:|g' <<< "$input" )"
input="$( sed 's|:\([0-9a-f]\{3\}\)$|:0\1|g' <<< "$input" )"
input="$( sed 's|^\([0-9a-f]\{3\}\):|0\1:|g' <<< "$input" )"
input="$( sed 's|:\([0-9a-f]\{2\}\):|:00\1:|g' <<< "$input" )"
input="$( sed 's|:\([0-9a-f]\{2\}\)$|:00\1|g' <<< "$input" )"
input="$( sed 's|^\([0-9a-f]\{2\}\):|00\1:|g' <<< "$input" )"
input="$( sed 's|:\([0-9a-f]\):|:000\1:|g' <<< "$input" )"
input="$( sed 's|:\([0-9a-f]\)$|:000\1|g' <<< "$input" )"
input="$( sed 's|^\([0-9a-f]\):|000\1:|g' <<< "$input" )"
done
grep -qs "::" <<< "$input"
if [ "$?" -eq 0 ]; then
GRPS="$( sed 's|[0-9a-f]||g' <<< "$input" | wc -m )"
((GRPS--)) # carriage return
((MISSING=8-GRPS))
for ((i=0;i<$MISSING;i++)); do
z="$z:0000"
done
input="$( sed 's|\(.\)::\(.\)|\1'$z':\2|g' <<< "$input" )"
input="$( sed 's|\(.\)::$|\1'$z':0000|g' <<< "$input" )"
input="$( sed 's|^::\(.\)|'$z':0000:\1|g;s|^:||g' <<< "$input" )"
fi
echo "$input"
}
ETH0_SUFFIX="01::1"
ETH0.10_SUFFIX="10::1"
STATUS_FILE=/run/dibbler.lease
if [ -f "$STATUS_FILE" ];
then
source $STATUS_FILE
fi
TRIM_SIZE=17
FULLPREFIX=$( fullPrefix $PREFIX1 )
PREFIX1=${FULLPREFIX:0:TRIM_SIZE}
if [ "$PREFIX1" != "$CURRENT_PREFIX1" ]
then
if [ "$CURRENT_PREFIX1" != "" ]
then
ip addr delete "$CURRENT_PREFIX1$ETH0_SUFFIX/64" dev eth0
ip addr delete "$CURRENT_PREFIX1$ETH0.10_SUFFIX/64" dev eth0.10
fi
echo "CURRENT_PREFIX1=$PREFIX1" > $STATUS_FILE
ip addr add "$PREFIX1$ETH0_SUFFIX/64" dev eth0
ip addr add "$PREFIX1$ETH0.10_SUFFIX/64" dev eth0.10
service radvd restart >/dev/null 2>&1
fi
Ajout d'une variable ETH0.10_SUFFIX="10::1"
et d'une ligne ip addr add "$PREFIX1$ETH0.10_SUFFIX/64" dev eth0.10
Malheureusement ça ne fonctionne pas pour l'interface ETH0.10, l'adresse IPV6 n'est pas assignée sur l'interface, mais cela fonctionne très bien pour ETH0.
Si je lance la commande manuellement ip addr add "XXXX:XXX:XXX:XX10::1/64" dev eth0.10
ca fonctionne (jusqu'au prochain redémarrage...) (XXX étant mon préfixe)
Pour info (qui n'a rien à voir), j'ai eu un souci de clés usb HS cette semaine, et à la restauration quelques heures plus tard, j'ai changé d'adresse IPV4 mais j'ai toujours le même préfixe IPV6