DNS server in Rust for learning and fun purposes
Go to file
2022-08-17 22:58:29 +02:00
src Create module structure (#29) 2022-06-05 19:05:49 +02:00
.gitignore Create module structure (#29) 2022-06-05 19:05:49 +02:00
Cargo.lock (deps) update hexhex to v1.1 2022-08-17 22:58:29 +02:00
Cargo.toml (deps) update hexhex to v1.1 2022-08-17 22:58:29 +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 DNSMessageType tests added (#21) 2022-05-08 16:15:02 +02: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