DNS Server

From-scratch DNS server that moves from Python prototyping to a lower-level Go implementation to exercise protocol parsing, resolution flow, and packet handling.

The Problem

DNS is foundational to networked systems, but most application work hides it behind libraries and infrastructure. This project goes down a layer to implement record parsing, resolution logic, and server behavior directly.

Solution

The implementation focuses on:

  • DNS message parsing and serialization
  • Recursive and iterative resolution paths
  • Support for common record types
  • Caching to reduce repeated upstream lookups
  • Python prototype to validate behavior before the Go implementation
  • Modular structure for extending records and resolver logic

Screenshots

DNS Server

Tech Stack

Python Go DNS Networking Protocols Bit Manipulation