HackerTrans
TopNewTrendsCommentsPastAskShowJobs

rdme

no profile record

Submissions

Show HN: Running the second public ODoH relay

numa.rs
125 points·by rdme·há 2 meses·41 comments

Show HN: I built a DNS resolver from scratch in Rust – no DNS libraries

github.com
115 points·by rdme·há 3 meses·68 comments

comments

rdme
·há 2 meses·discuss
might want to check https://github.com/alexandru/social-publish
rdme
·há 2 meses·discuss
actually that is exactly how i am currently running it - dogfooding from my Mac

sudo numa install handles launchd, numa then becomes tailscale's fallback resolver

docker socket service discovery - on the roadmap
rdme
·há 2 meses·discuss
honestly, nothing major, just deployed the docker-compose to a hetzner $5 instance https://github.com/razvandimescu/numa/tree/main/packaging/re...

then submit a pr to Frank https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v...
rdme
·há 2 meses·discuss
sovereign naming without ICANN or registrars - pkarr through DHT (not blockchain)
rdme
·há 2 meses·discuss
no, you are actually telling the relay where to redirect your question from the start (because you are encrypting the question with the public key of the destination resolver) - the relay sending the question where it wants would result in the destination to not be able to decrypt it
rdme
·há 2 meses·discuss
The relay sees IP + ciphertext, the target sees question + relay's IP. No single party gets both
rdme
·há 2 meses·discuss
I agree with you, however that's a separate problem that needs to be solved
rdme
·há 2 meses·discuss
They solve different things. ODoH hides your question, not who you're talking to.
rdme
·há 2 meses·discuss
The relay is a systemd unit on a VPS, Caddy for TLS, SSRF-hardened (regex-strict hostnames, no IP literals). eTLD+1 same-operator check rejects relay+target run by the same org by default. HPKE is odoh-rs from Cloudflare

``` cargo install numa

# set mode = "odoh" in numa.toml ```

Repo: https://github.com/razvandimescu/numa
rdme
·há 2 meses·discuss
this must be some a/b testing as i’m not seeing anything different

actually it does have a dismissable banner i haven’t even noticed
rdme
·há 3 meses·discuss
How would this work? One would connect it's repository to a cloud platform that would then act based on the existing daemons of the repo?
rdme
·há 3 meses·discuss
Just shipped numa v0.13.0: added request hedging (fires a parallel query after 10ms if the primary stalls, inspired by Google's Tail at Scale paper) wire-level cache with serve-stale (RFC 8767) and a DoT client for encrypted upstream.

Wrote about the tail latency investigation: https://numa.rs/blog/posts/fixing-doh-tail-latency.html
rdme
·há 3 meses·discuss
should be fixed by #54 in 0.10.3 thanks again!
rdme
·há 3 meses·discuss
Thanks for pointing this out! I’ve created https://github.com/razvandimescu/numa/issues/36
rdme
·há 3 meses·discuss
let me know how it goes
rdme
·há 3 meses·discuss
Split DNS already works — Numa auto-detects Tailscale forwarding rules from the system config. Queries matching .<ts.net> go to Tailscale’s DNS, everything else goes through Numa

If you want to skip Tailscale entirely for home servers, Numa’s LAN discovery auto-finds machines running Numa on the same network. Or add static records in numa.toml for machines that don’t run it.
rdme
·há 3 meses·discuss
This was started as a learning project, went from the start to the lowest level then I've just added features I wanted one by one, it just made the most sense
rdme
·há 3 meses·discuss
let me know if you do it!
rdme
·há 3 meses·discuss
Numa can do recursive resolution from root nameservers + DNSSEC, .numa local domains with auto HTTPS for dev, and LAN service discovery. What features would you be interested in?
rdme
·há 3 meses·discuss
It definitely is and you can see it in the git commits. The DNS wire protocol parser was the original learning project I wrote to understand the spec. Later features (recursive resolver, DNSSEC validation, the dashboard) were built with the help of AI