Skip to content

Instantly share code, notes, and snippets.

@chenshaoju
Last active September 4, 2023 09:49
Show Gist options
  • Save chenshaoju/98ea06143be3e2ddc65f2cc767496cd7 to your computer and use it in GitHub Desktop.
Save chenshaoju/98ea06143be3e2ddc65f2cc767496cd7 to your computer and use it in GitHub Desktop.
IPv6 scritp for DD-WRT
#!/bin/sh
#
fakeipv6=$(ip -6 addr |grep '240e:c2:f803:2d00:200:ff:fe00:0/56')
nvramcfg=$(ip -6 route |grep '/64 dev ppp0' |awk '{print $1}' |awk -F / '{print $1}')
if [ -n "$fakeipv6" ]
then
(ip -6 addr del 240e:c2:f803:2d00:200:ff:fe00:0/56 dev br0)
nvram unset ipv6_rtr_addr
nvram set ipv6_get_dns="240c::6666 240c::6644"
nvram set ipv6_prefix="$nvramcfg"
fi
ppp0route=$(ip -6 route |grep '/64 dev ppp0' |awk '{print $1}')
ppp0ipaddr=$(ip -6 addr |grep 'scope global dynamic' |awk '{print $2}')
br0route=$(ip -6 route |grep '/64 dev br0 metric 128' |awk '{print $1}')
br0ipaddr=$(ip -6 addr |grep -A 1 br0 |grep inet6 |awk '{print $2}')
if [ "$br0route" != "$ppp0route" ]
then
if [ -n "$ppp0route" ]
then
if [ "$br0route" != "$ppp0route" ]
then
if [ -z "$br0route" ]
then
ip -6 addr add "$ppp0ipaddr" dev br0
ip -6 route del "$ppp0route" dev br0
ip -6 route add "$ppp0route" dev br0 metric 128
nvram unset ipv6_rtr_addr
nvram set ipv6_get_dns="240c::6666 240c::6644"
nvram set ipv6_prefix="$nvramcfg"
else
ip -6 addr del "$br0ipaddr" dev br0
ip -6 addr add "$ppp0ipaddr" dev br0
ip -6 route del "$ppp0route" dev br0
ip -6 route add "$ppp0route" dev br0 metric 128
nvram unset ipv6_rtr_addr
nvram set ipv6_get_dns="240c::6666 240c::6644"
nvram set ipv6_prefix="$nvramcfg"
fi
fi
fi
fi
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment