Package: wnpp Severity: wishlist * Package name : dublin-traceroute Version : 0.2 Upstream Author : insomniac <[email protected]> * URL : https://dublin-traceroute.net/ * License : 2-clause BSD? Programming Lang: C++ Description : NAT-aware multipath tracerouting tool
Dublin Traceroute uses the techniques invented by the authors of Paris-traceroute to enumerate the paths of ECMP flow-based load balancing, but introduces a new technique for NAT detection. Dublin Traceroute forges the IP ID in the probe packet and analyzes the responses in order to detect all the encountered NATs. This is a new algorithm, not found in other network mapping solutions, despite the IP ID is not new for NAT-related tasks. For example, Paris-traceroute uses the IP ID to tell whether a loop in a traceroute is due to a NAT box, using the IP ID of the response packet as explained by Steven Bellovin in his paper A technique for Counting NATted Hosts. I make this distinction because you may claim that Paris-traceroute already detects NAT boxes, but this is actually very different: Paris-traceroute can tell you whether a hop that appears as a loop in a traceroute is due to NAT, while Dublin Traceroute can tell you whether there is a NAT after a given point, and can also identify multiple NATs. At the best of my knowledge, there is no tool nor public research using this technique. If I am wrong, please let me know so that I can give the credit where due. Dublin Traceroute is written in C++11 on top of a beautiful network packet sniffing and crafting library, libtins. Dublin Traceroute also features a Python extension on top of the C++ core if you prefer.

