These are the passing problems for the Netreads W'16 term. You will find the exercises for S'14 in passing-S14.txt and those for F'15 in passing-F15.txt. Submit your command line scripts and packet captures. Add screenshots as needed. Please note that I will _not_ accept MS Word files (.doc, .docx), but only plain text, Markdown, LaTeX, or PDF. You are expected to use the Unix shell, Scapy, tcpdump, wireshark/tshark or any other tools necessary. Throughout these exercises, you will need to suppress some responses of your native OS kernel. Use IPtables if your machine is GNU/Linux; if it's MacOS X, work from a Linux VM or use MacOS' native pf (see solutions-f15.txt for hints). 0. Get yourself some kind of IPv6 connectivity. Hurricane Electric's tunnelbroker.net would work best with a public routable IP or a NAT box that supports protocol 41, otherwise a Miredo IPv6 tunnel should work for you. The task5.txt file has the details. You should be able to ping both 2604:5f00:ffff:fe00::1:53 and 2604:5f00:ffff:fe00::5353 . Miredo tunnels can be unreliable, so always start checking connectivity to these hosts, and repeat sending your crafted packets several times to make sure it's not a connectivity glitch that's getting in your way. In particular, Scapy's sr1() _may not work the first time_ if you are using Miredo. Try a few times---and remember that sr1() may not work at all for crafted IPv6 packets. You should also check that you can query the DNS server at 2604:5f00:ffff:fe00::5353 at all times. This example query should always succeed: dig @2604:5f00:ffff:fe00::5353 AAAA test6.dartmouth.edu --> returning 2604:5f00:ffff:fe00::1:53 (+ extra info) If you don't get this response, please alert me. 1. Ping 2604:5f00:ffff:fe00::1:53 with an ICMPv6 echo request packet that has your first and last name as a payload. This way I can check from which address you are working. You should receive an ICMPv6 echo reply for your packet. 2. The host 2604:5f00:ffff:fe00::5353 runs a DNS server (see above). This DNS server can be queried for the IPv6 address of puzzle.test6.dartmouth.edu---but the query will only succeed if your IPv6 packet is longer than 100 bytes. Otherwise it will be blocked, and you will receive no reply (even though you should still be able to query for test6.dartmouth.edu). Get the address for puzzle.test6.dartmouth.edu Note: sr1() only works for straightforward packets. Use tcpdump or Scapy's sniff() to capture responses to crafted packets to be sure! 3. The address from (2) hosts a webserver. You should be able to ping this address. However, getting a webpage from it will fail, because the firewall in-between will inject TCP RST packets into your connections. Find a way to ignore these packets and get the page. In this problem, the firewall will not drop any packets passing between you and the server; it will just inject extra RST packets. Note: Most browsers or tools such as wget or curl need [] around an IPv6 address, e.g.: http://[2604:5f00:ffff:fe00::ADDRPART]/ You should get a webpage with some further URLs for (3). 4. Using the URL(s) retrieved in (3), extract the pictures served at these URL(s). Use the above DNS server to resolve the hostname(s). Note that the firewall does something different for the address serving these pictures! You will likely need to examine the packets to see what it is, and to undo it. Send me the transcript of your shell session (use script, tee, or just plain copy-paste from the terminal).