#!/bin/sh
#
# Estrae l'indirizzo IPv4 associato all'interfaccia esterna
# del router Conexant, utilizzando l'utenza "user" e la
# parola d'ordine "password", conoscendo l'indirizzo MAC
# esterno del router.
#
TEMP=`wget --output-document=- \
http://user:password@192.168.1.254/doc/home.htm\
| grep "00:D0:41:01:1B:F7"`
TEMP=`echo $TEMP | sed "s/^
//"`
TEMP=`echo $TEMP | sed "s/<\/TD> | .*//"`
IPV4_ADDR=$TEMP
#
# Trasforma l'indirizzo IPv4 in due indirizzi IPv6, mettendo
# i risultati nelle variabili di ambiente IPV6_ADDR_1 e
# IPV6_ADDR_2.
#
TEMP=`echo $IPV4_ADDR | tr "." " "`
TEMP=`printf "%02x%02x:%02x%02x" $TEMP`
IPV6_ADDR_1=2002:$TEMP:7::1
IPV6_ADDR_2=2002:$TEMP:7::2
#
# Annulla la configurazione IPv6 precedente.
#
ip -6 route flush dev t6to4
ip link set dev t6to4 down
ip tunnel del name t6to4
ip -6 address flush to 2002::/16
ip -6 address del local 2002::/16 dev eth0
#
# Crea e attiva il tunnel.
#
ip tunnel add name t6to4 mode sit remote any local \
192.168.1.1
ip link set dev t6to4 up
ip -6 address add $IPV6_ADDR_1/48 dev t6to4
ip -6 route add to 2000::/3 via ::192.88.99.1 dev \
t6to4 metric 1
#
# Ricrea il file di configurazione di Radvd.
#
echo > /etc/radvd.conf
echo interface eth0 >> /etc/radvd.conf
echo \{ >> /etc/radvd.conf
echo AdvSendAdvert on\; >> /etc/radvd.conf
echo MaxRtrAdvInterval 30\; >> /etc/radvd.conf
echo prefix $IPV6_ADDR_2/64 >> /etc/radvd.conf
echo \{ >> /etc/radvd.conf
echo AdvOnLink on\; >> /etc/radvd.conf
echo AdvAutonomous on\; >> /etc/radvd.conf
echo AdvValidLifetime 120\; >> /etc/radvd.conf
echo AdvPreferredLifetime 60\; >> /etc/radvd.conf
echo \}\; >> /etc/radvd.conf
echo \}\; >> /etc/radvd.conf
/etc/init.d/radvd stop
/etc/init.d/radvd start
#
# Aggiunge l'interfaccia verso la rete locale.
#
ip -6 address add local $IPV6_ADDR_2/64 scope global \
dev eth0
#
# Abilita l'attraversamento dei pacchetti IPv6.
#
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
|