#!/bin/bash test -f /etc/default/6to4 || exit 1 . /etc/default/6to4 test "$DYNDNS" || exit 1 test "$IFACE6" || IFACE6=6to4 test "$HOSTV6" || HOSTV6=1 test "$TTL" || TTL=128 test "$ROUTER" || ROUTER=192.88.99.1 test "$METRIC" || METRIC=1 test "$MODE" || MODE=$1 test "$MODE" || exit 1 test "$IFACE" || IFACE=eth0 case "$MODE" in start) ADDRV4=$(host $DYNDNS | awk '/address /{print $4}') test "$ADDRV4" || exit PREFIX=$(printf '2002:%02x%02x:%02x%02x:' $(echo $ADDRV4 | tr '.' ' ')) ADDRV4=$(ip -4 addr show dev $IFACE | awk '/inet/{split($2, a, "/"); print a[1]}') test "$ADDRV4" || exit ADDRV6=$PREFIX:$HOSTV6 ip tunnel add $IFACE6 mode sit ttl $TTL remote any local $ADDRV4 ip link set $IFACE6 up ip -6 addr add $ADDRV6/16 dev $IFACE6 ip -6 route add 2000::/3 via ::$ROUTER dev $IFACE6 metric $METRIC ;; stop) ip -6 route flush dev $IFACE6 ip link set dev $IFACE6 down ip tunnel del $IFACE6 ;; *) exit 1 ;; esac