La Fibre
Datacenter et équipements réseaux => Routeurs =>
Remplacer la LiveBox par un routeur => Discussion démarrée par: jeremyp3 le 22 février 2019 à 04:38:10
-
Bonjour à tous,
depuis quelques temps, je me sers de Dibbler pour récupérer mon /56. une fois le préfixe obtenu, j'assigne manuellement une ip a mon interface, afin de pouvoir sortir en IPV6. jusqu'ici, ça fonctionne très bien, rien à dire.
Par contre, j'aimerai savoir si la seconde étape ne peu pas être faite de façon automatique, soit par dibler lui même, soit par un autre daemon.
Il doit probablement me manquer des termes techniques lié à IPV6 et du coup je passe à coté d'un truc évident. si j'ai bien compris, radvd n'est pas une option vu que je ne souhaite pas que mon réseau local est IPV6 mais seulement le serveur tournant sur une debian jesssie pour l'instant.
En tous cas, j'avance tranquillement, il y a 1 an, je ne voulais pas entendre parler d'IPV6 :-)
merci à vous d'aider un N00b en IPV6 :)
Jerem
P.S: la migration vers une debian plus récente est prévu ... un jour ;)
-
Le "serveur" c'est la machine qui fait tourner dibbler ou pas ?
Si oui, dibbler peut exécuter un script automatiquement à chaque fois qu'un préfixe est assigné (ou change). Donc un script dans le genre de celui ci-dessous devrait faire l'affaire (il attribue une IPv6 à l'interface eth0, à adapter selon le besoin):
#!/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"
}
INTERFACE=eth0
INTERFACE_SUFFIX="01::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$INTERFACE_SUFFIX/64" dev $INTERFACE
fi
echo "CURRENT_PREFIX1=$PREFIX1" > $STATUS_FILE
ip addr add "$PREFIX1$INTERFACE_SUFFIX/64" dev $INTERFACE
fi
Si le serveur est une autre machine et que tu ne veux vraiment pas utiliser radvd, alors il doit sans doute être possible de déclencher l'exécution d'un script distant dans le script de dibbler (en utilisant ssh et une authentification par clé asymétriques par exemple). Ou alors mettre le serveur dans un VLAN dédié et ne faire tourner radvd que sur ce VLAN...
-
Le "serveur" c'est la machine qui fait tourner dibbler ou pas ?
Oui.
je vais regarder pour le script, merci :)