Last active
September 4, 2023 09:49
-
-
Save chenshaoju/98ea06143be3e2ddc65f2cc767496cd7 to your computer and use it in GitHub Desktop.
IPv6 scritp for DD-WRT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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