A guide to writing a DNS Server from scratch in Rust