DNS server in Rust for learning and fun purposes

RFCs

  • rfc1034 DOMAIN NAMES - CONCEPTS AND FACILITIES
  • rfc1035 DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
  • rfc1101 DNS Encoding of Network Names and Other Types
  • rfc6895 Domain Name System (DNS) IANA Considerations

Testing

dig is an excellent tool to dig deeper into the world of DNS queries. You can set queryopts at the end of the commandline starting with +. For example to set specific flags in the query one could write something like this:

# setting RA and RC flag but no RD flag
dig @127.0.0.1 -p 13337 git.comff.net A +retry=0 +nordflag +raflag +tcflag

# force using TLS (TCP port 853)
dig @127.0.0.1 -p 13337 git.comff.net A +retry=0 +tls

# force using TCP (TCP port 53)
dig @127.0.0.1 -p 13337 git.comff.net A +retry=0 +tcp
Description
DNS server in Rust for learning and fun purposes
Readme 73 KiB
Languages
Rust 91.6%
Shell 4.7%
Python 3.7%