Answered step by step
Verified Expert Solution
Question
1 Approved Answer
COMP/ECPE 177: Course Project 2: Traceroute In this course project, you will develop a Python script that probes the route from the local machine
COMP/ECPE 177: Course Project 2: Traceroute In this course project, you will develop a Python script that probes the route from the local machine to a given host address. 1 Description Traceroute program identifies IP addresses of all intermediary machines in between the source and desti- nation. A UDP-based traceroute program is discussed in the class. In this project, you will implement such a tool with the following features. The tool must be implemented in Python (in order to utilize Scapy). The tool should accept a single argument, which would be the IP address of the destination host. - Your program should reject any non-IP-address argument to the traceroute program. This is in contrast with the traceroute program in Linux, where you can also pass host names. In this sense, your implemented traceroute is simpler. The tool must be able to identify all IP addresses in the path with the distance less that or equal to 20 hops. - The default limit for traceroute in Linux is 30 hops. As you have seen in the Wireshark lab, traceroute uses unconventional destination port numbers. To this end, traceroute begins with destination port number 33434. In each probe, it increments the port number by 1. That is, the first probe has destination port number 33434, the second probe has destination port number 33435, etc. - In your implementation of traceroute, randomize the destination port number in the range [33434,33464] for each probe. For example, the first probe may have the destination port number 33458, the second probe may have the destination port number 33442, etc. Similar to traceroute in Linux, use a random high number for the source UDP port. Your tool must attempt for only one probe for a node at a certain distance. - The traceroute tool in Linux, by default, sends three probes for a specific distance. This is, of course, configurable. The tool must report each discovered IP address in the path along with the distance from the source. If the address is unknown for a distance, use, similar to the Linux-based tool. The Linux-based tool reports the host name in addition to the discovered IP address whenever possible. This is out of scope of this project. Your tool must stop sending probes as soon as it receives an ICMP Port Unreachable message from the target. It is desirable to eliminate verbosity of Scapy within a tool. You may use conf.verb = 0 for this purpose. It is desirable to report the discovered IP addresses along the path to the target in real-time fashion (similar to Linux-based tool), rather than computing a hole list of addresses up to the target and reporting them as a whole. At the top of the script file, briefly describe how your tool works. As a rule of thumb, if your traceroute program output differs from the Linux-based tool to a great extent, then probably you are doing something wrong. Compare the traffic generated by your tool vs. the traffic from the Linux-based tool. That may help you to tune your probing packets appropriately. 2 Deliverables You will submit a single Python script source code that implements traceroute tool, through Canvas. 3 Sample Output Running the tool may generate an output similar to the following in a terminal in Ubuntu Linux. 1. 2. 3. 4. 5. 6. 7. 8. HN 1. 2. $ sudo python traceroute.py 4.2.2.4 10.0.2.2 192.168.0.1 96.120.84.13 68.85.105.17 162.151.18.133 3. 4. $ sudo python traceroute.py 138.9.111.34 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 4.2.2.4 16. 17. 18. 19. 20. 10.0.2.2 192.168.0.1 96.120.84.13 68.85.105.17 162.151.18.133 162.151.40.154 162.151.40.114 50.201.195.182 $ sudo python traceroute.py www.pacific.edu Input is not a valid IP address.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started