New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
http3: client always prefers IPv4 #3755
Comments
Am I right to assume that this is due to this line? Lines 270 to 272 in c9ae152
How does |
afaik |
Very interesting. I've played around with the h3dial a bit, thank you for providing such a great example code! Using This makes me wonder how this actually supposed to work though. DNS resolution will (in general) return a list of A and AAAA records. It seems like |
The problem is forResolve which states " The Happy Eyeballs used by The QUIC layer should not be aware of anything DNS since it could be used for DNS traffic. The HTTP/3 layer should use eventually the new DNS records (HTTPS RRs) but that's is unrelated to this IPv4/IPv6 issue. The good way is to assume, given a target It's 2023 we should safely assume that machines with 'broken or misconfigured' IPv6 stack should fail and the code, by default, should not try to work by falling back to IPv4. |
Because of a
bug of ResolveUDPAddr
, when trying to connect to a dual stacked host (= host with both ipv6 and ipv4 addresses),quic-go
client always uses IPv4 instead of prefering IPv6 if available.net/http
(both versions 1.x and 2.0) doesn't behave like that. It prefers IPv6 if available.As a workaround we're forced to explicitly resolve names before using quic-go http3 client.
demo of the issue: https://github.com/kgersen/h3dial
running on a dual stack machine:
The text was updated successfully, but these errors were encountered: