Skip to content

Releases: c3l3si4n/pugdns

Bug fixes!

25 Apr 21:33
Compare
Choose a tag to compare

Bug fixes!

08 Apr 22:26
Compare
Choose a tag to compare
v1.0.2

Fix: Filter empty authority records

v1.0.1

28 Mar 22:41
Compare
Choose a tag to compare

Full Changelog: v1.0.0...v1.0.1

v1.00 - Major Release

28 Mar 07:20
Compare
Choose a tag to compare

PugDNS v1.0.0 - The Leap Forward! 🚀

This is the first major release of PugDNS (v1.0.0)! It contains major overhauls from previous development versions, focusing significantly on performance, reliability, and observability for high-speed DNS querying using AF_XDP and eBPF.

We've rebuilt core components to provide a more robust and efficient experience. If you've tried earlier versions, you'll find v1.0.0 is a significant step up.

✨ Key Highlights & Improvements:

  • 🚀 Enhanced Performance & Throughput:
    • BPF Worker Pool: Introduced a concurrent worker pool in the Go user-space application to parse incoming DNS responses from the BPF ring buffer in parallel, dramatically increasing processing capacity.
    • Optimized Packet Transmission: Refined AF_XDP packet sending logic using batching and improved descriptor handling via a dedicated sender goroutine.
    • Efficient eBPF: The underlying eBPF program (pugdns.c) has been refactored to efficiently pass metadata and packet payloads, using bpf_probe_read_kernel for better performance and verifier compatibility. Tuned XDP socket options for better frame/descriptor allocation.
  • 🛡️ Improved Reliability & Query Management:
    • Retry Logic: Implemented robust domain status tracking. PugDNS now automatically retries queries for domains that haven't received a response after a configurable timeout, up to a specified number of attempts.
    • Managed Transmission: Replaced the previous "send-all" approach with a central manager that controls the flow of initial queries and retries, ensuring resources are used effectively.
  • 📊 Better Observability & Statistics:
    • Drop Monitoring: Added counters and warnings for both kernel-level drops (e.g., BPF ring buffer full) and user-space drops (e.g., processing queue full), helping diagnose bottlenecks.
    • Domain-Centric Stats: The statistics display (both UI and text mode) now focuses on the progress of domains (Total, Responded, Retrying, Failed), providing a clearer picture of the query campaign's success, alongside raw packet rates.
  • ⚙️ Enhanced Configuration & Usability:
    • New Config Options: Added flags to configure the number of BPF workers (-workers), AF_XDP poll timeout (-poll), and query retries (-retries).
    • Pretty JSON Output: Results saved to the output file are now formatted in a more readable "pretty" JSON structure.
    • Clearer Setup: Added installation and build instructions to the README.md.

Full Changelog: https://github.com/c3l3si4n/pugdns/commits/v1.0.0