DNS server in Rust for learning and fun purposes
Go to file
2022-04-06 20:20:34 +02:00
src Improve tests 2022-04-06 20:20:00 +02:00
.gitignore Code for parsing headers added. 2022-03-13 21:56:17 +01:00
Cargo.lock (tests) Implement tests for DNS header parsing 2022-04-06 20:19:41 +02:00
Cargo.toml (tests) Implement tests for DNS header parsing 2022-04-06 20:19:41 +02:00
dig_query.sh add test script for useful dig command to test queries against the server 2022-04-06 20:20:17 +02:00
README.md (docs) README 2022-04-06 20:20:34 +02:00
udp_sender.py Code for parsing headers added. 2022-03-13 21:56:17 +01:00

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