Releases: c3l3si4n/pugdns
Releases · c3l3si4n/pugdns
Bug fixes!
Full Changelog: v1.0.2...v1.0.3
Bug fixes!
v1.0.2 Fix: Filter empty authority records
v1.0.1
Full Changelog: v1.0.0...v1.0.1
v1.00 - Major Release
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, usingbpf_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
.
- New Config Options: Added flags to configure the number of BPF workers (
Full Changelog: https://github.com/c3l3si4n/pugdns/commits/v1.0.0