add dns-server-tutorial

This commit is contained in:
2025-03-08 21:24:00 +08:00
parent 10672a86b1
commit 48ad5122f2
12 changed files with 994 additions and 3 deletions

View File

@@ -0,0 +1,49 @@
# DNS Server in Rust
This repository contains the code for a **DNS server implemented in Rust**, as part of the tutorial [**Building a DNS Server in Rust**](https://rust-trends.com/posts/building-a-dns-server-in-rust/) . The tutorial covers:
- Understanding DNS requests and responses.
- Handling UDP packets in Rust.
- Parsing and constructing DNS packets.
- Implementing decompression of DNS packets.
- Forwarding DNS queries to resolvers.
## 📖 Tutorial
For a step-by-step guide, check out the full tutorial:
[Building a DNS Server in Rust: Part 1 of 2](https://rust-trends.com/posts/building-a-dns-server-in-rust/)
## 🛠 Installation
Ensure you have **Rust** installed:
```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
## Clone this repository:
```sh
git clone https://github.com/Rust-Trends/dns-server-tutorial.git
cd dns-server-tutorial
```
## 🚀 Running the Server
Goto to the step you want to explore, e.g. step1, and start the DNS server on port 1053:
```sh
cd step1
cargo run
```
## 🔍 Testing with dig
To test your server, open another terminal and run:
```sh
dig @localhost -p 1053 www.rust-trends.com
```
## 🤝 Contributions
Feel free to open issues or submit pull requests to improve the project!
📜 License: MIT