Skip to content

feat: Front Authoritative queries with dnsdist - #125

Open
mattdjenkinson wants to merge 1 commit into
mainfrom
feat/dnsdist-query-front
Open

feat: Front Authoritative queries with dnsdist#125
mattdjenkinson wants to merge 1 commit into
mainfrom
feat/dnsdist-query-front

Conversation

@mattdjenkinson

Copy link
Copy Markdown
Contributor

Summary

Public DNS queries currently hit PowerDNS Authoritative, which cannot emit dnstap. The in-pod recursor can, but it only expands ALIAS records on loopback and never sees those queries. Nothing on the serving path produces a stream Vector can consume.

dnsdist now binds UDP and TCP port 53 and forwards to Authoritative on 127.0.0.1:5301. Recursor stays on 5300. The pdns-auth Service still targets port 53, so in-cluster lookups do not change.

dnsdist writes dnstap to /run/dnsdist/dnstap.sock as a Frame Stream client. There is no listener in the pod yet. dnsdist reconnects until Vector (or another fstrm process) binds the socket. Query billing is not in this change.

Writer and edge share this StatefulSet, so both get the same query path. Authoritative no longer listens on the pod IP, and it runs as uid 953 now that it does not bind a privileged port.

Test plan

  • A hosted zone still answers dig @pdns-auth.dns-agent-system.svc.cluster.local
  • ALIAS records still expand
  • Port 53 on the pod is dnsdist, not Authoritative
  • dnsdist stays up when /run/dnsdist/dnstap.sock has no listener
  • Build, kustomize, and the e2e suites pass

Notes for reviewers

Vector still needs to listen on /run/dnsdist/dnstap.sock. dnstap has qname, rcode, and type. It does not have a Milo project or DNSZone UID.

Related to #49

PowerDNS Authoritative has no dnstap; query metering needs a Frame
Stream from dnsdist. Bind dnsdist on :53, keep Auth on loopback
:5301, and emit dnstap to /run/dnsdist/dnstap.sock for Vector.
@mattdjenkinson

Copy link
Copy Markdown
Contributor Author

@scotwells & @0xmc could you have a quick browse over this please?

@mattdjenkinson mattdjenkinson self-assigned this Sep 5, 2026
@mattdjenkinson
mattdjenkinson requested a review from 0xmc September 5, 2026 13:42
@mattdjenkinson
mattdjenkinson marked this pull request as ready for review September 5, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant