Skip to content

Latest commit

 

History

144 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EdgeOn DNS

High-Performance GeoDNS & Intelligent Routing Server

Architecture Database IO License


Overview

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.


Architecture & Features

  • 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 mmap for 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 seamless mmap insertion.
  • Advanced GeoDNS: Delivers country-level routing precision. Region-specific IP address mappings are stored natively within the same mmap binary 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_uring paired 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.

Architectural Data Flow

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]
Loading

Installation Guide

1.0 - System Requirements

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

1.1 - Building Core Dependencies

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 ..

1.2 - Compiling EdgeDNS

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 ./EoDNS

Documentation & Support

For extensive deployment architecture, configuration parameters, and dashboard management, refer to the official EdgeOn documentation at edgeon.io.

About

A high-performance authoritative GeoDNS server built on io_uring and ScyllaDB. Features zero-latency mmap hot loading, split-horizon proxy routing, and Response Rate Limiting (RRL) for edge networks.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages