diff --git a/README.md b/README.md new file mode 100644 index 0000000..1ab008f --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# DNS server in Rust for learning and fun purposes + +## RFCs +* [rfc1034](https://datatracker.ietf.org/doc/html/rfc1034) DOMAIN NAMES - CONCEPTS AND FACILITIES +* [rfc1035](https://datatracker.ietf.org/doc/html/rfc1035) DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION +* [rfc1101](https://datatracker.ietf.org/doc/html/rfc1101) DNS Encoding of Network Names and Other Types +* [rfc6895](https://datatracker.ietf.org/doc/html/rfc6895) Domain Name System (DNS) IANA Considerations + +## Testing +[dig](https://linux.die.net/man/1/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 +```