Show HN: VirtualDNS – a programmable internal DNS for private environments

  • Posted 2 days ago by virtualdns
  • 1 points
Hi HN,

I built VirtualDNS, a programmable internal DNS for private environments, because I kept breaking my own infrastructure every time I changed an IP, added a service, or tried to keep multiple environments consistent.

This is not public DNS. It is a private, multi-tenant DNS layer for internal connectivity, service discovery, and infra automation.

Why I built it:

- /etc/hosts drift across machines

- Internal DNS setups with no audit logs

- Environments behaving differently because configs weren’t aligned

- IP changes silently breaking services

- Teams building their own “mini DNS” scripts

- Using public domains just to test internal stuff

- Slow propagation inside private environments

- Wanting service discovery without the overhead of Consul/CoreDNS

What it does: - Virtual domains resolvable only inside your project/org

- Multi-IP records for load balancing, failover, and high availability

- Health-ordered IP responses

- Full audit logs for resolutions and modifications

- Versioned changes with rollback

- Granular tokens with per-project scopes

- CLI, SDKs, and a daemon for OS-level resolution

- No public DNS, no TTL delays, no external exposure

Technical notes:

- Resolver implemented from scratch, independent of OS DNS unless using the daemon

- Domains and records stored as versioned states (commit-like)

- Each resolution is logged with requester, token, timestamp, and metadata

- Projects are fully isolated, allowing identical domain names across orgs

- Multi-IP responses support rebalancing based on service health

- Daemon works as a lightweight local DNS forwarder

What I'm looking for:

- Feedback from people who handle internal DNS or service discovery

- Edge cases I should consider

- Concerns about using a managed internal DNS

- Suggestions for integration points (Terraform, WireGuard, Nomad, etc.)

Landing page (very early): https://virtualdns.io

Happy to answer technical questions.

0 comments