Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/utkarsh5026/dngo
A short and simple DNS server implementation written in Golang
https://github.com/utkarsh5026/dngo
codecrafters codecrafters-dns-server dns dns-server golang
Last synced: 1 day ago
JSON representation
A short and simple DNS server implementation written in Golang
- Host: GitHub
- URL: https://github.com/utkarsh5026/dngo
- Owner: utkarsh5026
- Created: 2024-08-02T11:49:42.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2025-01-04T22:55:55.000Z (21 days ago)
- Last Synced: 2025-01-04T23:26:13.147Z (21 days ago)
- Topics: codecrafters, codecrafters-dns-server, dns, dns-server, golang
- Language: Go
- Homepage:
- Size: 23.4 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🌐 DNS Server Implementation
[![progress-banner](https://backend.codecrafters.io/progress/dns-server/2204d057-36c3-40cf-81ea-892532c3fbb6)](https://app.codecrafters.io/users/codecrafters-bot?r=2qF)
## 📝 Introduction
A modern DNS server implementation that provides:
- 📦 RFC 1035-compliant DNS packet handling
- 🔄 Efficient query resolution
- 📋 Support for common record types (A, AAAA)
- 🔍 Smart recursive resolution with forwarding
- 🗜️ Optimized message compression## ✨ Key Features
- **🔍 DNS Packet Parsing**: Robust implementation of DNS packet structures including headers, questions, and answers
- **📋 Record Types Support**:
- A Records (IPv4 addresses)
- AAAA Records (IPv6 addresses)
- **🔄 Recursive Resolution**: Intelligent query forwarding to upstream DNS servers
- **⚠️ Error Handling**: Comprehensive handling of DNS error conditions
- **🗜️ Message Compression**: Smart DNS message compression for optimal performance### 🔧 Core Components
1. **📝 DNS Header Processing**
- Efficient 12-byte header handling
- Robust query/response identification
- Comprehensive flag management (AA, TC, RD, RA)2. **❓ Question Section**
- Intelligent domain name parsing
- Flexible query type handling
- Full class code support3. **✅ Answer Section**
- Clean Resource Record (RR) formatting
- Smart TTL management
- Precise data length handling
- Type-specific data formatting4. **🔍 Name Resolution**
- Efficient label compression
- Reliable pointer handling
- Optimized domain name processing## 🎯 Summary & Roadmap
This implementation offers a solid foundation for DNS operations with a focus on reliability and extensibility.
### 🔜 Future Enhancements
- 🔒 DNSSEC implementation
- 🌐 Extended record type support (MX, TXT, etc.)
- ⚡ Performance optimizations
- 📊 Monitoring and metrics integration