EdgeDNS (EoDNS) is a custom-built, ultra-low-latency authoritative DNS server tailored for global edge networks. Architected with io_uring and memory-mapped (mmap) hot loading, it seamlessly integrates GeoDNS, strict rate limiting, and split-horizon proxy routing into a unified, high-throughput pipeline backed by ScyllaDB.
ScyllaDB Persistence: All DNS records are persistently stored and managed within a highly available ScyllaDB cluster.
Zero-Latency Hot Loading (Mmap): The primary data tier leverages
mmapfor in-memory reads. On a cache miss, the system queries ScyllaDB, instantly serves the client, and asynchronously dispatches the record to a background operational thread queue for seamlessmmapinsertion.Advanced GeoDNS: Delivers country-level routing precision. Region-specific IP address mappings are stored natively within the same
mmapbinary structure for instantaneous geographic resolution.Intelligent Proxy Routing: For proxied domains, DNS records return an assigned IP Group ID representing the EdgeOn proxy network. These IP groups dynamically resolve based on the client's geographic location.
Split-Horizon Origin Resolution: Bypasses proxy abstraction dynamically. If a query originates from a known EdgeOn Proxy IP, the server intelligently responds with the true Origin IP instead of the proxy IPs.
Asynchronous Core: Built on
io_uringpaired with a custom Buffer Pool for zero-copy memory management and extreme request concurrency.Response Rate Limiting (RRL): Integrated DDoS mitigation. Clients exceeding request thresholds are automatically rate-limited, triggering response truncation to prevent amplification attacks.
graph TD
Client[Client Request] --> Uring[io_uring Event Loop]
Uring --> Mmap{Mmap Cache Check}
Mmap -- Cache Hit --> Resp[Construct Response]
Mmap -- Cache Miss --> Scylla[(ScyllaDB)]
Scylla --> MmapQueue[Hot Load Queue / Background Thread]
Scylla --> Resp
MmapQueue -.->|Updates| Mmap
Resp --> Filter{RRL & Proxy Check}
Filter -- Internal Proxy IP --> Origin[Return Origin IP]
Filter -- External User --> Geo[GeoDNS / Proxy IP Group]
Filter -- Rate Limited --> Truncate[Truncated Response]
Deployment requires a compatible Linux distribution with a modern kernel supporting io_uring. The following shared libraries must be available in your build environment:
-lxxhash -lssl -lcassandra -lDotenv -lpthread -lmaxminddb -luring -ltcmalloc
Before compiling EdgeDNS, ensure the custom .env parser module is installed.
git clone https://github.com/wyrexdev/Dotenv.git
cd Dotenv
sudo make
sudo make install
cd ..Clone the main repository and build the binary utilizing multi-threaded compilation.
git clone https://github.com/edge-on/EdgeDNS.git
cd EdgeDNS
make -j $(nproc)
sudo ./EoDNSFor extensive deployment architecture, configuration parameters, and dashboard management, refer to the official EdgeOn documentation at edgeon.io.
