Hickory DNS is a modern, Rust-based DNS client, server, and resolver designed with a focus on safety, security, and performance.
It provides a comprehensive suite of tools for DNS operations, catering to developers and administrators seeking reliable DNS solutions. Below is an overview of its key components and functionalities.
Key Components Of Hickory DNS
Hickory DNS is structured into multiple crates, each offering specialized functionality:
- hickory-dns: A binary for running a DNS server.
- hickory-proto: A low-level library for DNS message encoding/decoding and transport management.
- hickory-client: Used for sending queries, updates, and notifications directly to DNS servers. It supports advanced features like DNSSEC validation and dynamic updates.
- hickory-server: Enables the creation of custom DNS servers.
- hickory-resolver: Acts as a resolver for DNS queries, replacing standard OS resolution facilities.
- hickory-recursor: Performs recursive DNS resolution by querying authoritative name servers.
Core Features
1. DNS Server
The Hickory DNS server supports both IPv4 and IPv6 over UDP and TCP. While it is still under development, it offers features like zone file parsing, dynamic updates, and zone signing with DNSSEC.
The server also supports modern protocols like DNS-over-TLS (DoT) and DNS-over-HTTPS (DoH), ensuring secure communication.
2. DNS Client
The client library allows interaction with DNS servers for operations such as querying records, validating DNSSEC, and performing atomic updates. Unique features include:
- Atomic record creation (
create
). - Record appending (
append
). - Secure dynamic updates using SIG(0).
3. Resolver
The resolver is a native Rust implementation that supports common query patterns and system configurations on Unix and Windows platforms.
It can handle CNAME chains and SRV record lookups while supporting DoT/DoH for secure query resolution.
Hickory DNS emphasizes security by leveraging Rust’s safety guarantees. It implements numerous RFCs for secure operations, including DNSSEC (RFC 4035) and encrypted transport protocols like DoT (RFC 7858) and DoH.
Hickory DNS aims to deliver:
- A safe and secure environment with error handling.
- Protection against DDoS attacks.
- Easy-to-operate tools with modern features like global load balancing.
Hickory DNS is a robust solution for managing DNS infrastructure with cutting-edge security protocols and high configurability.
While still under development, its modular design makes it a promising tool for modern networking needs.