[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: