$29
• Please finish the lab according to this file
– submit the report of lab 5 based on the lab report template.
– submit your source code in zip file. (5.3.zip)
▪ comments is MUST
▪ DO NOT copy paste any existing source code of DNS resolver
Assignment 5.1
• make an DNS query which will invoke the EDNS0
– Screenshot on this command and its output
• capture the packages using Wireshark
– what is the content of this query message
▪ Find the name, type and class of this query
▪ How can you tell this DNS query is based on EDNS0
▪ From this query massage , can it handle DNSSEC security RRs or not
– what is the content of this response message
▪ Is there any answers, what’s the ttl of each answer
▪ Is there any authority RRs, what’s the type of each RR
▪ Is there any special additional RRs with OPT type, what does its ‘Do bit’ say: Does it accept DNSSEC security RRs or not
Assignment 5.2
• Make the query by using query method of “dns resolver”(a python package)
– To query the type A value of www.163.com based on TCP and UDP stream respectively
• capture the related TCP stream and UDP stream using Wireshark
– Screenshot on this two commands .
what’s the default transport lay protocol while invoke DNS query
– Screenshot on the TCP stream of query by TCP.
how many TCP packets are captured in this stream, Which port is used?
– Screenshot on the UDP stream of query by UDP.
how many UDP packets are captured in this stream, Which port is used?
– Is there any difference on DNS query and response message while using TCP and UDP respectively
Assignment 5.3 (Class A Only)
implement a local resolver
• Function:
– Listen and accept DNS queries.
▪ Support common query types: A, AAAA, CNAME, TXT, NS, MX
▪ EDNS implementation is not required.
– Forward query to a upstream DNS resolver (or a public DNS server).
– Check out the response and send response to your clients.
– Maintain a cache of DNS query-response of all results.
• Test method:
– using dig sending query to your resolver
• *comments is MUST
• *DO NOT copy paste any existing source code of DNS resolver.