Hello,
I'm opening a new discussion as I was reading through the list here and saw that the last IPv6 discussion was around 2019 so let's update the discussion here with what has changed since then.
Let's begin with IPv6 is not going away and should not be ignored. According to
Google's own statistics IPv6 adoption in the United States is 56.23%. Let me state that again. Over half of all traffic Google sees from the United States is over IPv6. This is not isolated to just Google.
Cloudflare's adoption reports also show that 52.1% of traffic handled in the United States is over IPv6. We aren't talking about a small mom and pop website but two massive organizations which handle trillions of connections per second.
It's no secret how this happened. Mobile networks are IPv6-only. It's more cost effective for them to assign IPv6 addresses to your mobile phone and activate the local CLAT (Customer-side transLATor) which is able to convert IPv4 addresses into IPv6 addresses that the carrier network understands. Once it gets to the carrier edge they are able to route it through their CGNAT boxes which translates the IPv6 address back to IPv4 before establishing the connection to the service.
Example of what the device might see when looking up the IP address for
aprs.fi when using a DNS64/NAT64/CLAT translator.
aprs.fi.
616
IN
AAAA
64:ff9b::55bc:17c
aprs.fi.
616
IN
AAAA
64:ff9b::55bc:17b
Unfortunately this comes with many drawbacks. Since the carrier is using CGNAT it is no longer guaranteed that a single IPv4 address maps to a single customer. If an IPv4 address gets flagged as malicious and it's coming from one of these carriers you risk blocking legitimate users who are pinging their location on APRS via the apps on iOS or Android. Even trying to apply rate limits to these IPs is unrealistic because at best case you will have 1 APRS user or 100 depending on numerous factors and how the carrier chooses to route IPv4 traffic in their networks. There is no control and the user will not know what's happening. At worst they will get a vague error message like "TCP Connection Error" when trying to use the aprs app on their device.
The quickest, most effective solution here is to deploy IPv6 and publish your AAAA records in DNS. Devices will be able to make a direct connection to the APRS service and provide a much more reliable and consistent connection.
In the short term, it may also be advantageous to rely on cloud service providers like Cloudflare who will stand in front of your origin servers and relay traffic back to you. This is only a temporary solution though and only kicks the can down the road. They will handle the IPv6 connection between them and the client and relay traffic back to you over IPv4.
I highly recommend that
aprs.fi look into activating IPv6 so that operators who do use their mobile devices to ping their location can continue to do so with minimal headaches on their part.