[PR #1673] [MERGED] DNS over QUIC #2502

Closed
opened 2026-03-16 09:16:35 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/1673
Author: @bluejekyll
Created: 3/30/2022
Status: Merged
Merged: 4/7/2022
Merged by: @bluejekyll

Base: mainHead: dns-over-quinn


📝 Commits (10+)

  • a41423e api for quic client streams implemented
  • 5d51faa quic client impl up to connect
  • 09e69c0 QuicStream impl working
  • 671207a integrate quic into resolver (untested)
  • 6499d76 added server config for Quic
  • 1cf8d5e initial trust-dns server config integration
  • 544dc04 fix cleanliness of quic impls
  • 04f3efc disable actual UDP connecting logic, this causes an odd issue, and not strictly necessary
  • b45a79d improve test diagnostics for named and quic
  • c1fe5a5 fix byte size of len on writing quic packets

📊 Changes

45 files changed (+1546 additions, -80 deletions)

View changed files

📝 .github/workflows/test.yml (+1 -1)
📝 Cargo.lock (+104 -1)
📝 Makefile.toml (+7 -0)
📝 bin/Cargo.toml (+2 -0)
📝 bin/src/named.rs (+87 -2)
📝 bin/tests/named_https_tests.rs (+2 -2)
📝 bin/tests/named_openssl_tests.rs (+1 -1)
bin/tests/named_quic_tests.rs (+88 -0)
📝 bin/tests/named_rustls_tests.rs (+1 -1)
📝 bin/tests/named_test_rsa_dnssec.rs (+1 -1)
📝 bin/tests/named_tests.rs (+8 -8)
📝 bin/tests/server_harness/mod.rs (+31 -10)
📝 copyright.txt (+1 -1)
📝 crates/async-std-resolver/src/net.rs (+18 -1)
📝 crates/client/Cargo.toml (+2 -0)
📝 crates/proto/Cargo.toml (+3 -0)
📝 crates/proto/src/error.rs (+67 -42)
📝 crates/proto/src/https/https_client_stream.rs (+1 -1)
📝 crates/proto/src/lib.rs (+6 -0)
crates/proto/src/quic/mod.rs (+22 -0)

...and 25 more files

📄 Description

This is an implementation of DNS over QUIC (DoQ) using the quinn library.

This is a draft right now, I still need to add a test harness for the full end-to-end configuration, but the stream implementation is done and working.

closes: #670


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/hickory-dns/hickory-dns/pull/1673 **Author:** [@bluejekyll](https://github.com/bluejekyll) **Created:** 3/30/2022 **Status:** ✅ Merged **Merged:** 4/7/2022 **Merged by:** [@bluejekyll](https://github.com/bluejekyll) **Base:** `main` ← **Head:** `dns-over-quinn` --- ### 📝 Commits (10+) - [`a41423e`](https://github.com/hickory-dns/hickory-dns/commit/a41423e9fec8c52f5e02eeef3499dc5a8687b3c4) api for quic client streams implemented - [`5d51faa`](https://github.com/hickory-dns/hickory-dns/commit/5d51faa4be0930e9fe07ca507d1e5e9f390c2840) quic client impl up to connect - [`09e69c0`](https://github.com/hickory-dns/hickory-dns/commit/09e69c06111d89b6e1b7f716dc4ada8cfa0d5c9f) QuicStream impl working - [`671207a`](https://github.com/hickory-dns/hickory-dns/commit/671207ad5a4e41ed7a73f2ebcc6309ede92096c8) integrate quic into resolver (untested) - [`6499d76`](https://github.com/hickory-dns/hickory-dns/commit/6499d76028b73f13447baad08f295edb4b8ab914) added server config for Quic - [`1cf8d5e`](https://github.com/hickory-dns/hickory-dns/commit/1cf8d5e205ca3aba7f92283ac451297e01cbfe83) initial trust-dns server config integration - [`544dc04`](https://github.com/hickory-dns/hickory-dns/commit/544dc048b2886ebce548f8b7d5d2e990470fadcf) fix cleanliness of quic impls - [`04f3efc`](https://github.com/hickory-dns/hickory-dns/commit/04f3efca330f09533caadb0ebaa68a5f62ead461) disable actual UDP connecting logic, this causes an odd issue, and not strictly necessary - [`b45a79d`](https://github.com/hickory-dns/hickory-dns/commit/b45a79dc7b18275e51ca32de8a32edfc81d3ceb9) improve test diagnostics for named and quic - [`c1fe5a5`](https://github.com/hickory-dns/hickory-dns/commit/c1fe5a545849e7a4369e068b9e4797ce448fddb5) fix byte size of len on writing quic packets ### 📊 Changes **45 files changed** (+1546 additions, -80 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/test.yml` (+1 -1) 📝 `Cargo.lock` (+104 -1) 📝 `Makefile.toml` (+7 -0) 📝 `bin/Cargo.toml` (+2 -0) 📝 `bin/src/named.rs` (+87 -2) 📝 `bin/tests/named_https_tests.rs` (+2 -2) 📝 `bin/tests/named_openssl_tests.rs` (+1 -1) ➕ `bin/tests/named_quic_tests.rs` (+88 -0) 📝 `bin/tests/named_rustls_tests.rs` (+1 -1) 📝 `bin/tests/named_test_rsa_dnssec.rs` (+1 -1) 📝 `bin/tests/named_tests.rs` (+8 -8) 📝 `bin/tests/server_harness/mod.rs` (+31 -10) 📝 `copyright.txt` (+1 -1) 📝 `crates/async-std-resolver/src/net.rs` (+18 -1) 📝 `crates/client/Cargo.toml` (+2 -0) 📝 `crates/proto/Cargo.toml` (+3 -0) 📝 `crates/proto/src/error.rs` (+67 -42) 📝 `crates/proto/src/https/https_client_stream.rs` (+1 -1) 📝 `crates/proto/src/lib.rs` (+6 -0) ➕ `crates/proto/src/quic/mod.rs` (+22 -0) _...and 25 more files_ </details> ### 📄 Description This is an implementation of DNS over QUIC (DoQ) using the `quinn` library. This is a draft right now, I still need to add a test harness for the full end-to-end configuration, but the stream implementation is done and working. closes: #670 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 09:16:35 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#2502
No description provided.