Open Bug 1681527 Opened 5 years ago Updated 6 months ago

Connection test should report partial connectivity without ipv6

Categories

(Core :: Networking, enhancement, P3)

Firefox 83
enhancement

Tracking

()

UNCONFIRMED

People

(Reporter: bert, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-triaged])

Attachments

(2 files)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15

Steps to reproduce:

Attempt to connect to an ipv6-only website, eg https://www.v6.facebook.com/ from an ipv4-only host

Actual results:

Misleading error message is returned, an average user would believe the site is down rather than realising that their own connectivity is too outdated to access it.

Expected results:

Firefox should test that full connectivity including both ipv6 and ipv4 is available and working, for instance by having a pair of respective single-stack test sites.

If only partial connectivity is available, a warning message should be displayed to users alerting them to the fact that some sites might be inaccessible - potentially also linking to a Mozilla hosted FAQ with more information.

Attempts to access a site that is unreachable due to a lack of connectivity on the user's end should display a clear error message as to why the site is unreachable so that they can take appropriate steps to remedy the situation.

In some instances ipv6 connectivity is only provided on demand by isps, in other cases only newer revisions of the isp-supplied routers are ipv6 capable while many users are still using older equipment. An accurate error message would allow users to request ipv6 or a router update.

I cannot confirm this issue, but I can say it's an improvement idea. I've chosen component (Core) Networking for this bug since it appears to be related. If incorrect, please set a more appropriate one.

Component: Untriaged → Networking
Flags: needinfo?(bert)
Product: Firefox → Core
See Also: → 987785
Flags: needinfo?(bert)

As per the above screenshots, IPv6 is explicitly turned off and then an attempt is made to access https://www.v6.facebook.com
The error message is non specific, and will lead the user to believe that the site is down rather than their own connection being inadequate to access it.

I would suggest two solutions:

  1. If an AAAA record is present for the requested URL and the local system does not have IPv6 connectivity, this should be highlighted to the user along with a link to an FAQ page containing more information.

  2. Firefox already performs a check for connectivity on startup and to check for captive portals etc, however it should perform 2 such checks to cover both IPv6 and IPv4. If both fail then the user should be informed that they have no Internet connectivity (ie they are either totally offline, or in an isolated network). If only one fails, then the user should be informed that they have only partial connectivity, along with a link to an FAQ page explaining this.

This is an interesting idea.
Because of the lack of IPv6 support site always advertise IPv4. These cases will rarely happen for an average user.

Priority: -- → P3
Whiteboard: [necko-triaged]

Currently most sites also have legacy ipv4 as well, but there are some exceptions, such as www.v6.facebook.com and loopsofzen.uk etc.

In future there will be more such sites, a lot of providers (especially mobile) provide cgnat ipv4 and full routed ipv6, so if you want to host anything there you must use ipv6. For these providers, routed ipv4 is usually a costly extra that users won't want to pay for. In some countries the only option for fully routable ipv4 is signing up for a business plan which is many times more expensive than a consumer service.

There are also cases where ipv4 might be down while ipv6 is up, especially since getting PI space for ipv6 is easy (so you can multi home, anycast etc) but doing the same for ipv4 is cost prohibitive for smaller outfits.
Similarly for users behind cgnat, their shared outbound ipv4 address might be blacklisted (only takes one infected user to blacklist the whole isp) but the users have individual ipv6.

Users should also know if they have a full or only partial connection, not having ipv6 would prevent access to some sites, reduce performance on others, and could impair performance of applications using p2p communication... Having working dual stack has no downsides.

The future of ipv4 is cgnat, which creates a dystopia where only the privileged few can host anything and everyone else is simply a viewer. IPv6 is important to maintain the openness of the web.

Severity: -- → N/A

More and more sites going ipv6-only:

https://starlink.awlnx.space/d/GG3mnflGz/starlink?orgId=1&refresh=5s
https://clintonwhitehouse2.archives.gov/

US government websites are moving towards IPv6-only such as the one above, users should see a meaningful and accurate error if they are unable to access such sites. China has a similar policy too. The numbers of IPv6-only sites are only going to increase, and with current browsers the users would have no idea why they can't access them.

It's probably also worth checking for IPv6 connectivity during startup, and warning users that some sites may be inaccessible due to only having partial connectivity.

Browsers notifying the user of their lack of IPv6 connectivity could help adoption of IPv6.

Furthermore, all error messages should clearly indicate what the fault is, so that knowledgeable people can fix it.

For example, Firefox could indicate that the website you're trying to connect to is using a different address family than what is available.

The argument that the user would almost never run into this, can also be said for other errors currently in the Firefox source code.

Here is a longer (still incomplete!) list of IPv6 only sites

http://42.be
http://dnslabs.nl
http://geschwindigkeitstester.de
http://loopsofzen.uk
http://game.flyingpenguintech.org
http://k6usy.net

(In reply to Nick Bouwhuis from comment #8)

Browsers notifying the user of their lack of IPv6 connectivity could help adoption of IPv6.
Furthermore, all error messages should clearly indicate what the fault is, so that knowledgeable people can fix it.
For example, Firefox could indicate that the website you're trying to connect to is using a different address family than what is available.

That is definitely something worth pursuing. It's on our roadmap, but not high priority just yet.

Here is a longer (still incomplete!) list of IPv6 only sites

Thanks, but please refrain from posting links to ipv6 only websites. These sort of comments can easily be mistaken for SEO spam and might result in your account getting banned.

Blocks: necko-error

(In reply to Valentin Gosu [:valentin] (he/him) from comment #9)

(In reply to Nick Bouwhuis from comment #8)

Browsers notifying the user of their lack of IPv6 connectivity could help adoption of IPv6.
Furthermore, all error messages should clearly indicate what the fault is, so that knowledgeable people can fix it.
For example, Firefox could indicate that the website you're trying to connect to is using a different address family than what is available.

That is definitely something worth pursuing. It's on our roadmap, but not high priority just yet.

I would like to suggest increasing the priority of this issue.
The adoption of IPv6 is increasing already, but certain nations or continents have plans to greatly accelerate the adoption.
For example, India is already IPv6 quite a bit, Vietnam has plans for the upcoming years and there are indications that Africa will also switch.

At this moment, IPv6-only websites are showing up as non-existing for people on IPv4 connections, and that is very bad in my opinion.
I believe that this very issue is one of the bigger reasons why IPv6 has not been adopted as well yet.
Showing this warning will be a tiny step for Firefox, but a huge leap for IPv6-kind, so to speak.

I think we should have a more accurate error message when a user tries to access a page that only has an AAAA record when they do not have IPv6 connectivity. But that error message page isn't the place for IPv6 advocacy. There are many reasons why IPv6 deployment is slow.

There are now 20 countries in the world where users without IPv6 are a minority:
https://stats.labs.apnic.net/ipv6/

Most users have no idea what kind of connectivity they have, or even that there are different types.
Windows singles out v6/v4 internet or lan-only connectivity per interface, but only if you view the interface properties. It has two separate connection tests which it performs for this. Other systems/software don't at all.

It would be immensely useful as well as displaying error messages on pages which fail to load, to also display a "connection status" indicator which shows what connectivity the browser currently thinks you have - full dual stack, ipv6-only with nat64, or partial connectivity (only one protocol and no backwards compatibility mechanism like nat64), and maybe a link to an FAQ page with more information.
There are many occasions where a user normally has dual stack, but for some reason or another one of the protocols is broken which can lead to problems the user is not well equipped to diagnose.
There are also configurations that the user might have applied which break things, for instance on a NAT64 network you need DNS64, if you switch to a non-DNS64 resolver this would cause breakage.

This really seems like something an extension should provide.

As you said

Most users have no idea what kind of connectivity they have, or even that there are different types.

and so presenting them with these details will not be productive.

There are extensions such as ipvfoo, the problem is that users need to be aware of this before they will install such an extension.

Making users aware that there are two networks and which they currently have access to is far more productive than misleading error messages and pretending there's only a single network. Once they have that information they can understand why a site might not be accessible, and what they can do in order to get access. Otherwise users will assume the site is down, or assume there is something nefarious going on. The concept of there being two versions of something is not that hard to grasp for most people.

Consider the scenario where a site is reachable via mobile data or at their friends house but not on their home wired connection - the user is going to think the fixed line provider is actively blocking access to sites, or that it's government ordered censorship etc.

(In reply to Lars Eggert [:lars] from comment #11)

I think we should have a more accurate error message when a user tries to access a page that only has an AAAA record when they do not have IPv6 connectivity.

Absolutely. I just had a very frustrating error reporting experience of a tool that is supposed to analyse web servers.
The firstlevel support didn't have any IPv6 connection, so he refused support since the URL must be wrong. It took me some convincing to get the error report forwarded to 2nd level.

An error page mentioning specifically that missing IPv6 was the problem would be very helpful in such cases.

Error: You need IPv6 to reach this website

To visit www.foo.fyi you need an internet connection that supports the IPv6 protocol.

Please contact your ISP or network administrator and ask for IPv6 to be enabled.

Source

A list of some known IPv6 only sites: https://sites.ip-update.net/ There of course are many more

It is horrible that the user gets the kind of incorrect messages they do today.
This isn't just about IPv6 only sites, but also IPv4 sites.
I suggest that when a connection issue occurs, it should double check if the protocol for the DNS records matches working routing.
If the client don't have a route for the protocol, instead be specific.

"The website you have tried to reach is available over something called IPvX, but we could not find a way to reach such pages from your device.
Please contact your network administrator or Internet service provider for assistance"

That would also cover cases where a client is on an IPv6 only network, and trying to reach an legacy IPv4 website such as GitHub.

(In reply to Nick Bouwhuis from comment #17)

I really wonder what is stopping Mozilla from taking this issue seriously.

Currently someone is working on implementing Happy Eyeballs version 3, which should fix this issue as well.
Also, one of the devs posted this: https://bugzilla.mozilla.org/show_bug.cgi?id=625710#c10

It's not that we don't want to do this; believe me, we do. But as I said above, we have limited resources and there are a lot of more critical things. If someone feels strongly that this needs to be fixed now and is willing to propose a patch, I'd be very happy to review it and see it landed.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: