Hi, all! Recently, with help from kind forum members, I successfully configured OpenWrt 23 on my Archer A7 router to relay IPv6 from my FRITZ!Box 6660 Cable modem to the devices connected to the Archer's network: How to circumvent IPv6 prefix delegation?
Now, I would like to do the exact same with my other router, a TP-Link WR940N v4 running OpenWrt 18.06.9. (I know it's outdated, but it's still newer than TP-Link's stock firmware by 4 years and there it's already the latest OpenWrt version for the device.)
0. Why relay mode?
My FRITZ!Box is the modem connected to the Internet. In its network, there are two routers: the Archer A7 (OpenWrt 23) and the WR940N (OpenWrt 18).
The problem is that, basically, my FRITZ!Box modem does not receive a sufficient IPv6 prefix from my ISP to allow routers connected to the modem to create IPv6 subnets. Therefore, I'm forced to have the router's clients receive IPv6 addresses directly from the FRITZ!Box instead of from OpenWrt itself.
For more information, see: How to circumvent IPv6 prefix delegation?
1. How I had configured OpenWrt 23 previously
In order to make all devices connected to the Archer A7's network receive global IPv6 addresses, I
- set RA-Service, DHCPv6-Service and NDP-Proxy all to
relay mode
for the LAN interface - set the IPv6 assignment length to 64 bits for the LAN interface
- disabled IPv6 masquerading on the WAN zone
Now, I get a 10/10 result on test-ipv6.com and can successfully ping6
any global IPv6 server, when connected to the Archer A7 running OpenWrt 23.
2. How I tried to configure OpenWrt 18
In order to achieve the same result on my TP-Link WR940N v4 running OpenWrt 18, I tried the following:
2.1 Enabling IPv6 relay mode for LAN interface
Just like on the Archer A7, I set RA-Service, DHCPv6-Service and NDP-Proxy to relay mode for the LAN interface and made sure that to “use the built-in IPv6 management”.
2.2 Disabling IPv6 masquerading
In OpenWrt 18, there is no setting to disable masquerading specifically for IPv6 on the WAN zone; masquerading can only be disabled for both IPv4 and IPv6 or be enabled for both. That's why I created a new WAN6 zone (set to “restricted to IPv6 only”) and set the original WAN zone to “restricted to IPv4 only”. On WAN6, I disabled masquarding.
2.3 Re-configuring the WAN6 interface
In the WAN6 interface's settings, I replaced WAN
with WAN6
as the assigned firewall zone and set “request IPv6 address” to force
.
3. Result
When connected to the WR940N, IPv6 does not work like on the Archer A7.
- The LAN interface is assigned only a local IPv6 address not suitable to access the global internet.
- pinging my laptop under its local IPv6 address fails:
root@OpenWrt:~# ping6 fe80:***4 PING fe80:***4 (fe80:***4): 56 data bytes ^C --- fe80:***4 ping statistics --- 1365 packets transmitted, 0 packets received, 100% packet loss
- pinging any public IPv6 addresses fails too:
root@OpenWrt:~# ping6 openwrt.org PING openwrt.org (2a03:b0c0:3:d0::1a51:c001): 56 data bytes ping6: sendto: Permission denied
- test-ipv6.com returns a score of 0/10.
How to get IPv6 working?