[GH-ISSUE #1721] Add new algorithms to the NameserverPool for rotating nameservers used when making queries #747

Closed
opened 2026-03-16 00:07:24 +03:00 by kerem · 3 comments
Owner

Originally created by @bluejekyll on GitHub (Jun 6, 2022).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1721

Is your feature request related to a problem? Please describe.

Some namesevers will rate-limit clients. We should come up with new algorithms and policies for how to choose the a nameserver in the pool for each next query.

Describe the solution you'd like

We should use this thread to create requirements. Today's algorithm is pretty basic. It works by reordering the Nameservers on each request, but does not currently offer any form of rate-limiting or forced rotation. Additionally it would be nice to track the latency to each nameserver and use that for prioritizing requests.

Originally created by @bluejekyll on GitHub (Jun 6, 2022). Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1721 **Is your feature request related to a problem? Please describe.** Some namesevers will rate-limit clients. We should come up with new algorithms and policies for how to choose the a nameserver in the pool for each next query. **Describe the solution you'd like** We should use this thread to create requirements. Today's algorithm is pretty basic. It works by reordering the Nameservers on each request, but does not currently offer any form of rate-limiting or forced rotation. Additionally it would be nice to track the latency to each nameserver and use that for prioritizing requests.
Author
Owner

@djc commented on GitHub (Aug 14, 2023):

#1920 and #1784 made some progress on this, I think.

<!-- gh-comment-id:1677000703 --> @djc commented on GitHub (Aug 14, 2023): #1920 and #1784 made some progress on this, I think.
Author
Owner

@divergentdave commented on GitHub (Nov 15, 2024):

I think PR #2522 finished up the last piece of this, by including all nameservers for a zone in pools used by the recursor. The recursor builds pools using ServerOrderingStrategy::QueryStatistics, so we are getting the latency-based prioritization.

Is there anything else we'd like to do here, or should we close this out?

<!-- gh-comment-id:2479940536 --> @divergentdave commented on GitHub (Nov 15, 2024): I think PR #2522 finished up the last piece of this, by including all nameservers for a zone in pools used by the recursor. The recursor builds pools using `ServerOrderingStrategy::QueryStatistics`, so we are getting the latency-based prioritization. Is there anything else we'd like to do here, or should we close this out?
Author
Owner

@djc commented on GitHub (Nov 15, 2024):

Let's close it.

<!-- gh-comment-id:2479968661 --> @djc commented on GitHub (Nov 15, 2024): Let's close it.
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#747
No description provided.