Serving DNS

60 points

OK, it's time for you do to some real work. Let's see if you can set up a DNS server. Fetch the problem set for this challenge, take a good look at the required DNS records it contains and get to work - set up a publicly-accessible DNS server containing those records. When you're done, POST back the IP and port, and we'll do a quick check to make sure all the stuff we asked for is there.

You have one minute counting from the time you ask for problem set. It's not too much, but after you've done the initial setup it should be enough to even copy-paste the settings to your zone files.

Getting the problem set

GET /challenges/serving_dns/problem?access_token=...

Problem JSON structure is simple:

  • records: a list of records your DNS server should know about

Submitting a solution

POST /challenges/serving_dns/solve?access_token=...

As solution, submit a JSON with the IP address and port of the DNS server you want us to interrogate.

  • dns_ip: the IP of your DNS server
  • dns_port: the port of your DNS server

We'll run a really quick check for the records we asked and send back a response.


The DNS infrastructure is nothing short of amazing. It gets bonus points because it handles crazy amounts of traffic, all while being nearly transparent to the users. And since it's an old beast, you're bound to run into forgotten specs or options, memories of a world long gone. It's a beautiful trip.

Fun fact: the IPv6 you're asked to set comes from RFC6666. That TXT value may also be interesting.

You too can support h^ by buying me a coffee. Cheers!
Also, I'd love to hear from you. Whatever you got, drop me an email. My h^ profile is here.