Assignment Description
DNS servers communicate with each other using their own protocol. It is your job to implement your own DNS server
that adheres to this protocol and performs recursive queries. Start by reading the official specification, RFC 1035.6 The
RFC mentions in detail the request formats, the queries that you will receive, and many other valuable information.
Requirements
Typically, a client application forwards a domain name to the operating system, which in turn forwards it to a DNS
server that performs recursive queries. Performing a recursive query means that the DNS server will query other DNS
servers until it finds the address that belongs to the given domain name. This address is then returned to the application
via the operating system.
Your task is to implement your own DNS server with the following requirements:
1. Perform recursive DNS queries.
2. Handle requests from multiple operating systems.
3. Implement the RTT (Round Trip Time) algorithm to choose a name server.
4. Implement the caching policy specified in the RFC section “7.4. Using the cache”
5. Handles mail exchange servers requests.
Evaluation
Your implementation is evaluated by the TAs. To test your server implementation, you can configure your Web browser
or operating system to use it as its DNS server. Make sure that your server is able to handle requests from different
operating systems. Your implementation must resolve requests by communicating with the root server and the servers
it lists in its replies. You cannot pass the assignment if you simply forward requests to another DNS server that performs
recursive queries.
Resources
Below is a list of free, popular, and public DNS servers. You can analyze their responses to learn more about how to
implement your own server.
(8.8.8.8 and 8.8.4.4)
Quad9
(9.9.9.9 and 149.112.112.112)
OpenDNS
(208.67.222.222 and 208.67.220.220)
You can find the addresses of the DNS root servers at
https://www.iana.org/domains/root/server
CS 340 Milestone One Guidelines and Rubric Overview: For this assignment, you will implement the fundamental operations of create, read, update,
Retail Transaction Programming Project Project Requirements: Develop a program to emulate a purchase transaction at a retail store. This
7COM1028 Secure Systems Programming Referral Coursework: Secure
Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip
CS 340 Final Project Guidelines and Rubric Overview The final project will encompass developing a web service using a software stack and impleme