A minimalist Authoritative DNS Server implemented in C++ from scratch.
- Authoritative Only: Provides direct answers for configured zones.
- UDP Protocol: Handles DNS queries over UDP (Default port: 5300).
- Binary Parsing: Manual parsing and construction of DNS packets (RFC 1035).
- A Record Support: Specifically handles IPv4 address lookups.
- In-Memory Store: Fast record lookup using a hash-map based zone store.
- No external libraries used for DNS protocol handling.
- Manual bit-manipulation for DNS header flags and fields.
- Endianness-aware byte serialization/deserialization.
- Modular architecture: Protocol, Zone, and Utility layers.
- Language: C++ 20
- Build System: CMake
- Supported Query: Type A (IPv4)
- Response Codes: NOERROR, NXDOMAIN