Bug#818284: RFP: dublin-traceroute -- NAT-aware multipath tracerouting tool
Package: wnpp
Severity: wishlist
* Package name : dublin-traceroute
Version : 0.2
Upstream Author : insomniac <insomniac@slackware.it>
* 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.
Reply to: