Open
Description
I noticed in https://github.com/bluejekyll/trust-dns/pull/1987 that Cloudflare's HTTP/3 implementation seems to be incompatible (or there might be a bug?) with h3
.
I made a "minimal" reproducible example here: https://github.com/daxpedda/doh3-test.
But to summarize:
This sends a DoH3 query over POST for www.example.com
to Cloudflare's 1.1.1.1 DNS server, which responds with 400 Bad Request
and a body with Invalid query.
.
Couple of observations I already made:
- Normal HTTP/3 connections to Cloudflare in general work, e.g. I tried connecting to Cloudflare Workers over HTTP/3 and it worked with GREASE.
- cURL doesn't use GREASE which might be why it worked.
- Comparing cURL and
h3
on Wireshark, they look quite different, so it might not be an issue with GREASE, but some HTTP/3 incompatibility that is triggered by GREASE. - This is unlikely to be a DNS issue, other DNS servers with DoH3 support, e.g. Google, don't have an issue here.
I didn't dig deeper into this as I'm not familiar with the HTTP/3 protocol and this I "easily" solved for me by just deactivating the GREASE.
I'm happy to dig deeper into it with some guidance.
Related #205.