Open Bug 1852899 Opened 1 year ago Updated 1 year ago

Skip IPv6 IP addresses from TRR response when the client does not support IPv6.

Categories

(Core :: Networking: DNS, defect, P2)

Firefox 117
All
Android
defect

Tracking

()

UNCONFIRMED

People

(Reporter: Tom25519, Unassigned)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [necko-triaged])

User Agent: Mozilla/5.0 (Android 10; Mobile; rv:109.0) Gecko/117.0 Firefox/117.0

Steps to reproduce:

My WiFi doesn't support IPv6, but sometimes I open a website which is support both IPv4 and IPv6, for example, passport.yandex.com, network.trr.skip-AAAA-when-not-support seems doesn't work on Fennec F-droid when network.trr.mode = 3, even if network.trr.skip-AAAA-when-not-supported = true, it will cause Fennec says passport.yandex.com couldn't connect. When network.trr.mode = 0, this bug doesn't reproduce.

Expected results:

Fenix should skip AAAA DNS record when network not support IPv6, or directly don't request AAAA record (recommended).

I'm not sure , but i guess skip-AAAA-when-not-supported may not be implemented yet after searching https://searchfox.org/mozilla-central/search?q=skip-AAAA-when-not-supported&path=&case=false&regexp=false

Have you tried network.dns.disableIPv6 option ?

(In reply to jackyzy823 from comment #1)

Have you tried network.dns.disableIPv6 option ?

No, I haven't. In fact, I don't want to modify it, because my mobile data supports IPv6, I want to use IPv6 when it's available.

Component: General → Networking: DNS
Product: Fenix → Core

This pref should have been removed in https://phabricator.services.mozilla.com/D130047
The reason we can't skip the IPv6 DNS check is that if a website does have an IPv6 record but not an IPv4 record, we should not fallback to native DNS.
Normally, if there are both IPv6 and IPv4 addresses for a domain, and IPv6 fails, we should still retry connecting with IPv4. If that doesn't work, that might indicate a bug.
Tom, does this also happen on Firefox Desktop, or only Fenix?

Blocks: doh
Flags: needinfo?(Tom25519)

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

Tom, does this also happen on Firefox Desktop, or only Fenix?

Sorry, I don't know, because here is no computer at my hand. By the way, this bug seems doesn't reproduce these two days.

Flags: needinfo?(Tom25519)

So I think what we should do here is to still perform the IPv6 DNS request but strip all IPv6 addresses from the response if the client doesn't support IPv6.
This is an optimization so we don't make IPv6 requests when we know they will fail.
We should also completely remove network.trr.skip-AAAA-when-not-support since it's not used.

Blocks: IPv6
Severity: -- → S3
Priority: -- → P2
Summary: network.trr.skip-AAAA-when-not-support seems doesn't work on Fennec F-droid when network.trr.mode = 3, even if network.trr.skip-AAAA-when-not-supported = true → Skip IPv6 IP addresses from TRR response when the client does not support IPv6.
Whiteboard: [necko-triaged]
You need to log in before you can comment on or make changes to this bug.