Problem with ipv6 and mobile device

In short, my isp (telecom italia) gives me a dual stack ipv4/ipv6 connection
the ipv6 connection is a /64
From windows i can get an ipv4 and ipv6 connection and i can visic both ipv4 only sites and dual stack sites...
From windows if i try to go to ipv6-test.com it recognize the 2 ip

If i try to visit the same site from android or iphone, the mobile phone can surf in ipv6 sites but not in ipv4 only sites. The phone get a ipv4 local ip but he can't surf on ipv4 network... If i try to go to ipv6-test.com it recognize only ipv6 traffic but no ipv4 public ip

What could be the problem?

Consider the ipv6 still not popular enough as of today, how about just disable ipv6 completely?

Android uses SLAAC to get an IPv6 address, for this to work you need a full /64 network (if your ISP only hands out a single /64 and not multiple, like a /56, you don't have a full /64 available for your LAN as WAN needs addresses as well).

Why not close internet, it's not popular enough in Africa -.-

1 Like

Then why windows can handle ipv6 network?
Anyway if i set a wan6 interface the 2 interface (wan6 and lan) i can get 2 ipv6 ip...
But you don't get the point... the ipv6 connection works on mobile phone and pc... but on pc i can use ipv4 network, on mobile i can only use ipv6 network so if some websites are ipv4 only i can acces them from andorid or iphone

Any help pls?

There isn't really much to go on in fixing this, maybe try older or newer builds? I have the same setup here and it's working flawlessly.

Only thing I can think of, is that your firewall zones or rules are messed up and breaking the ipv4 when ipv6 is active, for mobile devices only. Can you try a full reset or flash new build without keeping old config?

A last option, which I had to do on early builds, was to set the subnet size manually. Try both 60 and 64 (I can't recall where).

Disabling ipv6 is a terrible idea. Support is widespread on Internet sites, and the main thing holding it back is exactly that thinking.

i have a similar issue: my iphone gets an ipv4 and ipv6 address. but after some time it looks like it loses the ipv6 route.
i can ping the router with ipv6 but cant ping6 e.g. google.com from the iphone.
test-ipv6.com don't register an ipv6 address.
if i disable/enable wifi on the iphone test-ipv6.com works for ipv4 and ipv6 positiv.

I have tried with a clean build and i have the same problem...
Someone can borrow me a working configuration so i can try to use it

A little more information about your setup would be helpful. Are you running a stateful+stateless?, stateful-only, or stateless-only setup? Are your Mobile Devices up-to-date? As said before, Andriod only supports SLAAC, so this could be the issue if you're running a Stateful-only setup?

All I can say, is my Archer C7v2, running LEDE Reboot r1266 with ipv6 is working just fine. I have dhcpv6-pd client getting a /56 ip from my ISP. On my end I have my router providing a STATELESS-only (SLAAC) setup. I get no IPv6 addresses on my clients assigned from my DHCPv6 server on the router. My windows machine/windows phone/android devices all get 2 Global IP's (the SLAAC one and the Temporary one, and of course the ULA one).

From ipv6-test.com:
My Lumia 650 Windows 10 Mobile Phone (running 14393.448) passes with 20/20.
My Nexus 7 Andriod Tablet (running SlimKat 4.4.4) passes with 20/20.
My Windows 10 Laptop (running 14393.479) passes with 20/20.

U said you are getting a Dual-Stack from Telecom Italia. Are they giving you a native IPv6 IP? Is it handed to you through Prefix Deligation? Are you sure you are only getting a /64 prefix from the ISP? Or is this what your router is handing out on your end to ur clients?

i get ipv6 from telecom italia with prefix delegation and i think is native. i get a /64 ipv6 address
i run stateful+stateless, and only my windows machine get the dual stack connection... with iphone and andorid i can only surf on ipv6 sites, pratically i don't have ipv4 connection with the mobile devices

Ok, then can you ssh into your LEDE router and issue this command:

ubus call network.interface.wan6 status

Assuming wan6 is ur interface name. There should be a "ipv6-prefix", what mask are you given from ur ISP, and just below that they should be assigning a part of that mask to your LAN ""assigned": { "lan": {" This will tell if you are indeed getting a /64 from ur ISP, then assigning the full /64 to your LAN?

I do not know why your IPv4 would be the one messing up though. I assume it has to be something misconfigured with ur IPv6 which is causing troubles with the IPv4 on ur mobile clients.If you disable IPv6, then your mobile clients work just fine in IPv4 only mode right?

Normally i don't create a dedicated interface for the ipv6 connection...
I set a particulat name and pass in the pppoe interface and i get the ipv6 address on the lan interface (i think it's automatic)
Anyway if i create the interface i get this from that command
http://pastebin.com/7W3CPbC5

Anyway i get a second /64 ipv6 for the lan interface
http://pastebin.com/CP7A34fK

And thx for your help

Any help ?

rehello ?want help pls

Technical analysis of the problem [Updated 08/24/2016]:
After some great comments from André Lange, I decided to update the post with a more detailed analysis of the problem made by him, in addition to the new solutions already listed above. For those who want an even more accurate analysis, I suggest you check out his comments in this post. The fact is that Android has a bug in IPV6, but specifically in its NDP binding layer protocol. It's incredible how this Android bug has not been fixed yet, which has greatly undermined the migration to IPV6.
"When you connect your smartphone to a WiFi network with IPv6, IPv6 browsing normally works for a few minutes. After these minutes, the cell phone stops responding to the NDP protocol, even the router sending numerous Neighbor Solicitation requests to it. This causes the WiFi router to think that the mobile is no longer present on the network and so the packets arriving at its IPv6 address have nowhere to go (the router does not know which MAC is associated with that IPv6 address Or the information has already expired) and are discarded.The IPv6 packets generated by the cell phone continue to go to the internet.These are the answers that do not return to the cell phone because it stops responding to the NDP protocol, which is fundamental. One of the solutions pointed out by Andrew (see in the comments) is to set the MAC of the smartphone manually through a script.
And what is the real importance of adopting IPV6? "IPv4 access with NAT (translation of addresses on the router to allow sharing of an IP address between several machines) has already created numerous problems and difficulties for users, for example the need to configure port forwarding in the routers to play online, download torrent , Making remote access or simply getting full quality audio / video calls in apps like Skype. It turns out that with the exhaustion of public v4 addresses (the internet has grown and numbers have run out) this is already getting worse as providers do not It is an alternative to deploy another NAT layer in the same provider (CG-NAT) and stack several clients behind a single IP address. Since we (even the most advanced) users do not have administrative access to this provider's NAT, Do port forwarding and the programs that did that automatically for us (via UPnP) also can not do it. The quality of the access in v4 will get worse with this CG-NAT, being many users blocked in some site because the IP address That they share in the provider would have been used maliciously / fraudulently in accessing that site. The only long-term solution to all this is the deployment of IPv6, which by having a much larger number of addresses available eliminates the need for address sharing (NAT). "

Google Translate from http://windmateus.blogspot.com.br/2015/08/internet-wi-fi-muito-lenta-no-moto-x.html

Android problem I think.

That said, my android devices all work perfectly - so something must be different?

EDIT - some more information, I just flash LEDE, get a native DHCPV6-PD of /56 from the ISP and all my android devices have IPV6-access permanently.

Some android devices really can't speak IPv6 for more than a few minutes at once. After this short time they start to ignore NDP. I have two of them in my family. One's got a custom ROM that fixed it. The other one got a permanent entry in my router's neighbors table, so at least it works on my WiFi. The permanent entry workaround is done by ip6neigh.

I'm having similar issues with my android devices. I've messed around with disassoc_wpa low ack and iptables and dns and same issues arise.

I use a cellular 4g modem in qmi with direct raw ip and I get a /52 ipv6 address also. My public ip is on the wan.

One of 2 things always happen.

  1. My android will work for exactly 10 min on the dot and then it kills my wan and I lose all internet. Or...
  2. My android will fall off the WiFi exactly at 10 min and the internet will stay up untill the second I hook the android back up.

Now I can turn a VPN app on on my android and it works fine. I can also run a VPN on openvpn and it is fine also. My VPN is ipv4 only so maybe this has something to do with android and slacc. But I've tried shutting all ipv6 down on the router and even disabled ipv6 on the modem and still have the issue. I did find one router and one specific build that didn't seem to have the problem as bad. It was more like 4 disconnects a day rather then every 10 min with the androids. Powered by LuCI Master (git-16.135.27427-6415c04) / Lede Reboot r1114

I can't for the life of me pinpoint this problem. It's been multiple routers and multiple lede and openwrt builds and multiple androids. I've tried mbim, qmi, umbim,uqmi,libmbim,libqmi. It even does it with Ubuntu if I use it as hotspot.

Hi all and Ansuel,

I have the same problem with lede r4594-6bdb662 and TIM Adsl.

Have you find a solution for this problem? I get a single /64 with DHCP-PD. Laptops and desktop at home works fine and a Windows Phone 10 also is ok (DHCPv6, SLAAC is not supported). My nexus 7 and Asus Zenphone 2, both with LineageOS get an IPv6 using SLAAC but I can navigate IPv6-only website.

What kind of logs do you need to troubleshoot this problem?