I need a minimal but working DNS resolver that can handle an iterative resolution.
Some background from geeks for geeks:
Iterative Resolution –
The main difference between iterative and recursive resolution is that, here each server that does not know the mapping sends the IP Address of the next server to the one requested it. Here, client allows the server to return the best answer it can give as a match or as a referral. A DNS Query is generated by the application program to the resolver to fetch the destination IP Address. The Query is then forward to the local DNS Server. Assuming, it does not know the IP Address, it sends the query to the root name server.
The root name server returns the IP Address of the Top-Level Domain Server to the Local Server. The Top-Level Domain server is contacted by Local Server and it returns either the IP of the destination host or its local DNS Server. If it returns the server’s address, then by contacting the destination’s Local DNS Server, we get the IP Address of the destination host. The response/mapping is then passed from host’s local DNS server to the resolver and then finally to the host.
Caching Mechanism –
In both iterative and recursive resolution, after a server asks a mapping request from another server, it receives the response and it stores this information in the Cache memory before sending it to the client. This is done to lower the search time it takes for a server to check the IP Address in its Database. So, from the next time, if a request comes to the server, it first checks its cache memory and tries to resolve the request. The response is marked as Unauthoritative to inform the client that the response is from Cache. The only way caching can be problematic is when server caches the mapping for a long time and the mapping gets outdated. However, there are techniques to resolve this like using TTL.
I pulled a rough algorithm from the RFC 1034 docmentation from online at [login to view URL]
If you scroll down to section 5.3.3. Algorithm you’ll see the specifics of how the algorithm for the DNS resolver works.
The program must work with the following command line:
python3 [login to view URL] PORT
An example of this would be:
python3 [login to view URL] 5444
I will then submit a number of requests through dig for both major and minor domain names to see if your program responds correctly. More more obscure cases which are harder to test I could pass. Edge cases you should implement around 5-10 things from the rest of the documentation and note which ones you implemented.
Some good places to start are things that we are not implementing, such as returning the proper response, for example section 7 of [login to view URL] and section 6.4 of [login to view URL]
Another 3 good places to start are properly dealing with the TC bit properly (and resending over TCP), the security formulations in 9.2. of [login to view URL] and negative caching as mentioned in [login to view URL] In the end it is up to you which ones you do just make sure you do as many as seem reasonable to you timewise.
The basic algorithm described in 5.3.3. and 5.3.2 of [login to view URL] is working this means all normal dig queries to your resolver should succeed and return basically the same results as the queries to the built in resolver
I’ve created some helper methods a [login to view URL] and a skeleton of a function I need done in the my_server.py. I need this done in python3. Thank you!
Skills: DNS, System Admin, Windows Server, Network Administration, Python
thank online shipment sites, online gif text scroll, air ticket reservation online project docmentation, captcha resolver online, online dns debug, online filtering dns, webmin dns resolver, dns resolver, dns resolver scan, lightweight dns resolver, dns open resolver scan, online skype resolver, online skype address resolver, open resolver dns, online based skype resolver, dns open resolver scanner, open dns resolver project, online article writing jobs in banking regulation computer algorithm
New Brunwick, United States
Project ID: #26772407