Hi All,
I needed to test IPv6 on a machine on a GNP network. Currently I am running 3006.102.4 on a RT-AX86U Pro. IPv6 works fine in Native mode on the main network but unfortunately, my ISP (AT&T), only provides a prefix on /64 (boo!). So, it looked like IPv6 subnets were not going to work in my case. Instead, I found that sharing the /64 across the main network and the GNP interfaces in Passthtrough mode seems to do the trick. Looking at the Merlin wan.c code, it looks like this feature could be enabled in the future, but for now (unless I missed an option somewhere), I found I had to make the following configuration changes:
First I needed a wan-event script to update the 6relayd proxy from sharing the prefix with just the main network but with all the networks including GNP:
Then I just needed to open up outbound IPv6 traffic on the GNP interfaces with a firewall-start script:
So far, everything seems to be working including ping6 from main network to GNP networks but not the other way around (good).
Please let me know if you see any major problems with this approach or if there is a simpler way to solve this problem.
Thanks,
Rung
I needed to test IPv6 on a machine on a GNP network. Currently I am running 3006.102.4 on a RT-AX86U Pro. IPv6 works fine in Native mode on the main network but unfortunately, my ISP (AT&T), only provides a prefix on /64 (boo!). So, it looked like IPv6 subnets were not going to work in my case. Instead, I found that sharing the /64 across the main network and the GNP interfaces in Passthtrough mode seems to do the trick. Looking at the Merlin wan.c code, it looks like this feature could be enabled in the future, but for now (unless I missed an option somewhere), I found I had to make the following configuration changes:
First I needed a wan-event script to update the 6relayd proxy from sharing the prefix with just the main network but with all the networks including GNP:
Bash:
#!/bin/sh
GNP_INTERFACES="br52 br53"
WAN_PORT=$(nvram get wan_ifname)
if [ "$2" = "connected" ];then
if [ -n "$(pidof 6relayd)" ]; then
logger -t "wan-event" "Adding GNP interfaces to 6relayd..."
killall 6relayd
6relayd -drs -Rrelay -Dserver -N -n $WAN_PORT br0 $GNP_INTERFACES
fi
fi
Then I just needed to open up outbound IPv6 traffic on the GNP interfaces with a firewall-start script:
Bash:
#!/bin/sh
WAN_PORT=$1
logger -t "firewall-start" "Enabling IPV6 outbound traffic on GNP interfaces..."
#insert new FORWARD rule after existing eth rule
Fn=$(($(ip6tables --line-numbers -v -t filter -L FORWARD | grep eth | awk '{ print $1 }')+1))
ip6tables -I FORWARD $Fn -i br+ -o $WAN_PORT -j ACCEPT
So far, everything seems to be working including ping6 from main network to GNP networks but not the other way around (good).
Please let me know if you see any major problems with this approach or if there is a simpler way to solve this problem.
Thanks,
Rung
Last edited: