Skip to content

mostafaahmed97/rootwalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rootwalk

Ceasefire Now

rootwalk is a tiny DNS resolver I wrote to learn more about how DNS works and to practice writing Go. Read the blog post: https://mostafaahmed.hashnode.dev/series/building-a-dns-resolver-in-go-from-scratch

It's a simple recursive* resolver using only the Go standard library. It's meant to be used for educational purposes, you probably shouldn't depend on this in production :D.

rootwalk's purpose is to resolve a domain name starting from the root nameservers, it navigates the hierarchy of DNS nameservers and outputs the resolution journey.

* Recursive resolvers should support result caching by definition, this is a limitation in rootwalk.

Usage

go build
./rootwalk <domain> <root>

# or
go run . <domain> <root>

Where:

  • domain is the domain name to be resolved.
  • root a value between a - m specifying which root server should be used, defaults to a.

Output Example

alt text

Limitations

  • No caching
  • Limited support for resource record types, only A, AAA and NS atm.

About

A tiny DNS resolver written in Go.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages