Comments (5)
yes, this would be a nice feature to add. I think it's also related to #1924, as this could be used in the forwarding hickory-dns server.
To make this accurate it would probably mean recording some stats on each RRSet and it's use in the cache, which I don't think we do today. That said, I think randomizing the order of the addresses is also something that the calling code can do. I've always been a little uncomfortable with changing RRSets from what was returned upstream, but I'm not a purest on this.
If you wanted to post something up, maybe even keeping it simple for now by just randomizing the order of the records in the result from the cache, that would be interesting to see.
from trust-dns.
Hey Benjamin, thanks for your reply :)
Ah I didn't know hickory also provided DNS server capability, I was just using it as a resolver to call DNS server.
I think having a feature where you select a random record in the DNS cache if cache item has multiple records sounds like a great start. Perhaps hickory-resolver users would find that this is good enough for their use-case with short enough TTL. And later we can add round robin.
I am new to this repo and wonder how features are prioritized and released, what is next?
from trust-dns.
we basically include things as they're ready and then publish in the next release. We're working on a new 0.25
release that will probably come once we have all of the related crates that use ring
and rustls
updated. So that will come as soon as some of our dependencies are updated.
from trust-dns.
Something to consider when implementing this, perhaps it could be included only in the RRSet returned by the lookup function... i.e. that way it would make it something like lookup_ip(...).await?.randomized().next()
from trust-dns.
I see, then I will keep an eye on this feature request. Thanks again!
from trust-dns.
Related Issues (20)
- Request for a wildcard with ANY returns nothing HOT 2
- Handle sockets that have been shut down HOT 5
- Make ```hickory_proto::quic::QuicClientStream``` clonable
- why hickory-proto 0.24.1 ring dependencies is still 0.16.20 HOT 4
- Not convenient to call bind_with_addr to make a AsyncResolver HOT 4
- Bind address in ResolverConfig does not take effort for AsyncResolver HOT 10
- `hickory-dns` responds to `dig A doesnotexist.fqdn.com.` with NOERROR instead of with NXDOMAIN HOT 6
- `hickory-dns` resolver does not honor the DO bit in client's queries HOT 2
- [RFC] DNSSEC validation: configuration syntax HOT 11
- [RFC] re-structure `named.toml` syntax to reject invalid configurations HOT 3
- TCP fallback is not always used and forcing it is not ergonomic HOT 3
- 0.25 Release HOT 10
- Static build support (openssl + cross-compile) HOT 6
- `DnssecDnsHandle` does not appear to validate RRSIG's signature {inception,expiration} fields HOT 1
- malformed query can cause assertion failure at encoder.rs:234 HOT 1
- should `proto::rr::resource::Record.rdata` really be an `Option`? HOT 6
- `just clippy` does not catch warnings produced by `just dnssec-openssl` HOT 5
- [Featture] Expose Path Parameter for DoH Client HOT 1
- Allow passing in a custom client UDP socket to send data from HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from trust-dns.