IPv6 NPt not properly returning ICMP packet too large to Android devices only
-
Okay, this is probably a very rare scenario:
Using pfSense 2.4.5 for months and everything worked fine. NPt would rewrite the prefix of packets out to Hurricane Electric and I could access all IPv6 sites from both Linux and Android.
Upgraded to pfSense 2.5.2 and issue cropped up. Linux desktops would correctly connect to IPv6 sites like ipv6.google.com -- but Android devices would not.
On the same network VLAN, using stateless autoconfiguration.
Doing a packet capture, it seems that when the client is an Android device, the ICMPv6 ECHO for packet too large comes from the pfSense IP address + 1 (so my pfSense LAN IP is ::1 and the ICMPv6 comes from ::2) and is ignored by Android.
Shutting off NPt and using an actual /64 HE subnet from the /48 on the LAN interface and Android works fine. (However I need NPt since I have two WANs, one with native IPv6 and one with not. I prefer the traffic go out the native IPv6 since it's much faster than the HE tunnel)
Any ideas?