Introduction
This tutorial is a HowTo for setting up IPv6 NAT on an OpenWRT router.
The information on the environment is listed below.
Network Environment: China Education and Research Network Center with dual-stack IPv6
Network Device: NETGEAR R6100 (128M RAM)
Firmware Version: OpenWrt Chaos Calmer 15.05
Install Dependencies for OpenWRT
Login to the OpenWRT router via SSH and run the following commands:
opkg update opkg install ip6tables opkg install kmod-ipt-nat6 opkg install iputils-tracepath6
Setup IPv6 for Local-area Network
Edit /etc/config/network,
and add the following lines in config interface 'lan'
:
option ip6addr 'fc00:192:168:113::1/64'
Remove the following lines if exists:
option ula_prefix [IP v6 Address here]
Edit /etc/config/dhcp
, and change the content in config dhcp 'lan'
as follows:
config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' option dhcpv6 'server' option ra 'server' option ra_management '1' option ra_default '1' option ndp 'hybrid'
Setup Gateway for IPv6 Network
Add the following lines to /etc/firewall.user
for forwarding IPv6 traffic:
ip6tables -t nat -A POSTROUTING -o $(uci -q get network.wan6.ifname) -j MASQUERADE
Setup up IPv6 gateway by creating a file in /etc/hotplug.d/iface/90-ipv6 and adding the following lines to the file:
#!/bin/sh [ "$ACTION" = ifup ] || exit 0 [ "$INTERFACE" = wan6 ] && { route -A inet6 add ::/0 gw $(tracepath6 -n tv.byr.cn | grep ' 1: ' | awk 'NR==1 {print $2}') dev $(uci -q get network.wan6.ifname) }
Then, add execute permission to this file:
chmod 755 /etc/hotplug.d/iface/90-ipv6
Complete Setup
Finishing setting up by restarting your router. Then you'll get the IPv6 address on your computer.

Enjoy!
References
- https://wiki.openwrt.org/doc/howto/ipv6
- http://blog.iopsl.com/ipv6-nat-with-openwrt-router/
- http://blog.csdn.net/cod1ng/article/details/45421025
- https://techo.io/topic/82/openwrt-ipv6-nat-%E9%85%8D%E7%BD%AE