Android devices do not obtain ipv6 address from pfsense
Hi, thanks for reading my post. In case you found my post long and distracting, I am asking the question directly at first:
Has anyone successfully setup pfsense–>ubnt ap--->android so that those android devices working normally with ipv6?
The following is my network topology
TWC cable modem----> pfsense -----> PC (Linux)
|----------->Linksys wireless router--------->Android
For WAN port dhcp6 client, I only had "Send an IPv6 prefix hint to indicate the desired prefix size for delegation" checked and on the LAN side I asked it to track WAN as suggested in document.
Image may become unavailable after a while:
If I have the Linksys router set as a wireless router by default with ipv6 support enabled (it doesn't have other explanation except for a simple "enable ipv6 support" option), all three clients, PC, Android phones and Laptops can obtain perfect working ipv6 configuration as confirmed by www.test-ipv6.com. However if I try to use the Linksys as an "AP" by disabling DHCP on LAN and use its LAN ports simply as a small switch with wireless bridged as most people usually do, android phones now lose the ipv6 address and experience very slow youtube app/facebook app performance, with 20 seconds or so for loading. I experienced this kind of issue before on an openwrt box so it is indeed ipv6-related for android devices due to their lack of support for dhcp6.
I am planning on setting up a few Ubnt aps in my network for better signal reception. But now I am feeling really concerned due to this android-related issue. This could be an issue caused by using linksys router as an ap, or it may be persistent no matter which ap I will be using. On openwrt I remember I avoided this issue by choosing RA to work with SLAAC support. As pfsense does not support RA config when tracking is chosen for LAN interface, I really have no idea what to do except for maybe using a (or even more?) designated wireless router and let android devices connect only to this wireless router, or perhaps disabling ipv6 all together. Neither choice is desired to me. So I would like to hear some advices, thank you in advance!
Oh by the way, setting LAN to use static ipv6 and run an dhcp6 server on LAN isn't working for me as my ISP does not assign a static ipv6 and if I forcefully do so the best I could do was
1. set LAN to track, then it will obtain an ipv6 address from my ISP
2. then set LAN to use this address as a static IP, then run a dhcp6 server with assisted RA
Needless to say this only works for a brief moment and will not survive a reboot :(
Android does NOT support DHCPv6. End of story. Other than that, I suspect you need a variant of this run on boot on whatever AP you are using:
echo 1 > /proc/sys/net/ipv6/conf/all/accept_ra echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
Thank you so much for your suggestions doktornotor. I cannot do anything similar on my Linksys router used as AP I suspect. But as I was able to obtain a working ipv6 for Android devices momentarily as I said: track interface at first, then without reboot set it to static using the same ipv6 address with dhcpv6+RA, I think the AP part should be doing its job as long as pfsense is set properly.
Too bad if I revert it back to track interface or simple rebooting directly, I will lose ipv6 either way.
Many of the Linksys things support DD-WRT, OpenWRT and similar.
Android devices support SLAAC tho.
Setting pfsense dhcp6 server to "Assisted" should make ipv6 come alive on the android clients.