LordDNS banner

LordDNS

2 devlogs
10h 30m 17s

LordDNS is a proof-of-concept DNS server build on… node? yeah ok, we’ll go with Node. LordDNS will offer free domains to all users (accessible to those who also use the service) and will query authoritative DNS servers for domains that aren’t in it’s registry.

Loading README...

Lordseriouspig

i got a bit carried away haha, and completely forgot to write any devlogs, Since my last devlog, I’ve done a lot of refactoring. The code feels so much cleaner now, instead of just every feature thrown together, i have no clue how i managed to keep my sanity before haha. I’ve moved some stuff to functions in external files, and moved all error handling over to the main file using some custom error classes for the different rcodes. Not all of them are used, I just added them in case I decided to use them later. I’ve also made a sqlite db, with a basic seed, to query DNS records from, instead of just hardcoding an IP. Speaking of DNS records, it now supports multiple DNS record types. The next steps for the DNS server is to implement winston. Apart from that, I think that’s everything I need to do for the DNS. After I’d probably make a small web dashboard to get your own records on the server, and maybe even reciprocate for unknown domains, however I’m not sure how that will work regarding security. I don’t want to be vulnerable to amplification attacks. Anyway, unfortunately there isn’t a lot to show you, however below is a video of the server in use, visiting example.com.

0
Lordseriouspig

I’ve been holding back on writing a devlog for a while because one of my other projects (FlavorCLI) (shameless plug, ik), wasn’t picking up on all the time tracked by Hackatime, but I’m getting that fixed. I only just checked how much was here, and lo and behold, its all there. These are the devlogs I’ve written locally, in order.

I’ve decided to make a DNS server, because what better way to learn how something works than to make it yourself. I’m planning to start with a Codecrafters tutorial, which are great, because they make you figure everything out yourself. I would seriously recommend it. Anyway, I’ve started on the first stage, where I’ve set up a basic server. My goals for this are to have a basic authoritative DNS server that has a few records for basic websites, and records for custom (free!) domains for users who use the DNS, with a small web dashboard to manage your records. I’ll also make it reciprocal for domains its not responsible for.

I’ve finished up the sections where I’ve had to build a header, question, and answer, and right now, it can receive a request, and completely ignore what you send and reply with a probably unrelated record.

I’ve now finished up parsing the request the user has sent, so now it can at least form (probably) RFC compliant responses. It still responds with a hardcoded IP however. I’ve decided to not do the last stage, as it deviates too far from my goals for the project. I’ve also thrown together a quick script to The next step is to make a DB. and look up records from there, as well as process non A records, and after that, expose an internal API, and set up a web dashboard to manage your own DNS records.

Attachment
1

Comments

Lordseriouspig
Lordseriouspig about 1 month ago

idk why the formatting of this messed up so much but now I have to live with it