4 ms·
> Android still has a broken IPv6 implementation in 2020. By design. They are not going to fix it. There are a couple of valid arguments from Google and Lorenzo
by vetinari 6y ago
> Android still has a broken IPv6 implementation in 2020. By design. They are not going to fix it. There are a couple of valid arguments from Google and Lorenzo Colitti, but they are pretty weak.
Any care to substantiate, why they are weak?
I'm going to substantiate, why their argument is strong:
1) With DHCPv6, the network operator can force your device to obtain only single IP address. With SLAAC, you can invent your own, any amount you want, it just has to be within the same subnet; the /64, smallest subnet, is pretty huge.
2) For tethering with IPv6, you need multiple IP addresses. You cannot do NAT as you do with IPv4.
Therefore, with IPv6, telcos could disable the tethering function of the phones / charge extras, just by suitably configuring their network. It is obvious, that the major supplier of mobile OS won't allow doing that. Hence, no DHCPv6.
- steerablesafe 6y ago> 2) For tethering with IPv6, you need multiple IP addresses. You cannot do NAT as you do with IPv4. I definitely don't want to see NAT with IPv6, but what makes it impossible?
- garaetjjte 6y agoIt's possible. https://tools.ietf.org/id/draft-mrw-nat66-00.html https://tools.ietf.org/id/draft-mrw-nat66-00.html https://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/ch18s04.html https://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/ch18s04.html
- elp 6y agoIts also in active use by some styles of server load balancers. Keepalived in nat mode is one that springs to my mind. The "nat is evil" objection was a moral high horse in the IETF around the time that Android adopted this policy. They may have a point but its largely irrelevant in the real world.
- vetinari 6y agoNote that the IETF draft expired 9 years ago. Yes, Cisco tried, but it went nowhere.
- qalmakka 6y agoNAT66 is indeed possible, and it actually happened to me to use it, but it's really ugly and clunky to use. This is mostly because you are forced to use ULAs, which almost every IP stack by default rightfully considers as private addresses (see RFC 3484). So, if a host has a valid IPv4 route for 0.0.0.0/0 and one for the IPv6 internet that refers to an ULA, its resolver will almost always prioritise the former route unless you configure it to do otherwise (i.e. on Glibc you can change how getaddrinfo() works by editing its label table in /etc/gai.conf).
- joecool1029 6y agoSince running wireguard with algo.sh seems to be popular now, this is the situation you'll end up in with most ipv6 supporting cloud hosting providers. Digital Ocean only gives 16 ipv6 addresses to the best of my knowledge, others are probably limited to only 1.
- ninjaguardsheep 6y agoI moved from Digital Ocean to Hetzner for my personal VPSes recently. One of the reasons was that Hetzner assigns ipv6 addresses in /64 blocks. Rent an ipv6 enabled vps: get a /64. Rent an additional "floating ip": get a /64.
- amaccuish 6y agoI moved from OWH because they only assigned a /128 to VPSes, so you're sharing a /64 with other servers. That was problematic because I run my own email server, and blacklists for IPv6 tend to be specific to a /64, meaning neighbouring servers landed my own server on blacklists (i.e. they blanket blacklist the whole /64). And obvs cloud providers sadly host a lot of spammers. In the end, since OVH even after being asked for years offer no option for /64s on VPSes, I moved to Hetzner, where a VPS gets it's own /64, so only I am responsible for my mail server's reputation.
- Avamander 6y agoI just recently had the same issue, I really don't understand why the fsck they're doing that s*. Don't they have billions of IPv6 addresses?
- barbegal 6y ago> With DHCPv6, the network operator can force your device to obtain only single IP address. So if your network admin does that, surely they have good reason, they basically want to stop you using 464xlat. Any good network admin should allow a device to ask for as many IPv6 addresses as it needs. Or is there a reason why that is not possible? I think IPv6 is quite complicated, people don't fully understand it (it's not the same as IPv4 with a bigger address space) which means lots of conversations like this where it seems easy to just implement IPv6 but the nuances of the protocol mean it isn't. There is also lots of code that is broken because of this same lack of understanding meaning more workarounds to get everything to work.
- vetinari 6y ago> Any good network admin should allow a device to ask for as many IPv6 addresses as it needs. Or is there a reason why that is not possible? Business. You can extract more money from customers (we are talking telcos there, not your local network). IPv6 is in some aspects simpler, as it removes warts that IPv4 has. Many issues with deployment are not because IPv6 is complicated, but different.
- zamadatix 6y ago1 & 2 are related and false. It's nice to have multiple addresses but nothing about v6 says you can't tether in the same way as you did on v4 it's just simpler to avoid if you can. That being said these arguments are very narrow focused anyways and that's the real reason they are weak - phones connect to more than just the telco provider which is what the article covers.
- joecool1029 6y ago>Therefore, with IPv6, telcos could disable the tethering function of the phones / charge extras, just by suitably configuring their network. Most carriers count tethering traffic from packets received with a TTL decremented by 1, whether or not you NAT it is irrelevent. This was the case for ipv4 and looks to be the case for ipv6 thanks to this very recent commit: https://github.com/aosp-mirror/platform_frameworks_base/commit/aa8cecec810466f60452bdb0df0f4f6e341d5cd2 https://github.com/aosp-mirror/platform_frameworks_base/comm...