Server functionality is limited to SOA, NS, MX, A, * type records.
Server does not support recursion, message compression, also authority and additional record sections of a response are always empty.
For the sake of easier parsing, I used JSON to format zone files for the domain.
Made as a study project for my Computer Networking class at Vilnius University.
Goal of the project was to try to implement some kind of an Application Layer Protocol on your own and get experience reading technical documentation.
Chose DNS as I was interested in how it works "under the hood", lots of fun!
Project requires:
- Python version: 3.7 or newer
To install Python go to Python Downloads
To install Dig go to Install Dig
Navigate to src folder locally and run:
python3 dns.py
Assuming you have server up and running, navigate to tests folder locally and run:
dig @localhost -f a_records.txt
dig @localhost -f mx_records.txt
dig @localhost -f any_records.txt
dig @localhost -f soa_records.txt
dig @localhost -f ns_records.txt
dig @localhost -f nxdomain.txt
This project is licensed under the MIT License - see the LICENSE file for details