#!/bin/bash -e VERBOSE=1 LOCAL_IF=ppp0 case "$1" in start) if [ -z "$LOCAL4" ]; then [ "$LOCAL_IF" ] || LOCAL_IF=ppp0 LOCAL4=$(ip -o addr show $LOCAL_IF | awk '/inet/ { print $4 }') if [ -z "$LOCAL4" ]; then echo "Cannot find the IP assigned to $LOCAL_IF" exit 1 fi fi LOCAL6=$(printf "%x%02x:%x%02x\n" $(echo $LOCAL4 | sed -e 's/\./ /g')) LOCAL6="2002:$LOCAL6::1/48" [ "$RELAY" ] || RELAY=192.88.99.1 if [ "$VERBOSE" ]; then echo "Local v4 address: $LOCAL4" echo "Local v6 address: $LOCAL6" echo "6to4 Relay address: $RELAY" fi ip link set sit0 up ip addr add $LOCAL6 dev sit0 ip route add 2000::/3 via ::$RELAY ;; stop) ip link set sit0 down ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0