Loading...

Build your own DNS server

Learn about the DNS protocol, record types, recursive resolve, forwarding servers and more.

This challenge is free to try when it's in beta. We keep challenges in beta for a few weeks to gather feedback.

In this challenge, you'll build a DNS server that's capable of parsing and creating DNS packets, responding to DNS queries, handling various record types and doing recursive resolve. Along the way we'll learn about the DNS protocol, DNS packet format, root servers, authoritative servers, forwarding servers, various record types (A, AAAA, CNAME, etc) and more.

Stages

Setup UDP server

In this stage, we'll start a UDP server on port 2053.

Very easy
We'd expect a proficient developer to take < 5 minutes to complete this stage.
Write header section

In this stage, we'll write a DNS packet's header contents

Medium
We'd expect a proficient developer to take 30 minutes to 1 hour to complete this stage.
show all...