Today I tested two Linux tools named:
paris-traceroute.
This tool can be install with
dnf tool.
This tool named
paris-traceroute was implemented by Xavier Cuvellier. Debugged and enhanced by Brice Augustin.
The techniques invented by the authors of Paris-traceroute to enumerate the paths of ECMP flow-based load balancing.
I used the 8.8.8.8 address to test this tool.
[root@desk mythcat]# paris-traceroute 8.8.8.8 -p icmp
...
[root@desk mythcat]# paris-traceroute 8.8.8.8 -i
...
[root@desk mythcat]# paris-traceroute 8.8.8.8 -l
...
Using the verbose mode the tool will print debug messages:
[root@desk mythcat]# paris-traceroute 8.8.8.8 -v
[DEBUG](Options.cc, 222)dst_addr = 8.8.8.8
[DEBUG](Options.cc, 340)protocol = udp
[DEBUG](Options.cc, 341)src_add =
[DEBUG](Options.cc, 342)dst_addr = 8.8.8.8
[DEBUG](Options.cc, 343)ttl_initial = 1
[DEBUG](Options.cc, 344)ttl_max = 30
[DEBUG](Options.cc, 345)tos = 0
[DEBUG](Options.cc, 346)probe_length = 0
[DEBUG](Options.cc, 347)algo = hopbyhop
[DEBUG](Options.cc, 348)timeout = 5000
[DEBUG](Options.cc, 349)delay = 50
[DEBUG](Options.cc, 350)max_try = 3
[DEBUG](Options.cc, 351)max_missing = 3
[DEBUG](Options.cc, 352)id_initial = 1
[DEBUG](Options.cc, 353)resolve = true
[DEBUG](Options.cc, 354)ipid = false
[DEBUG](Util.cc, 246)p_proto = 1
[INFO](Server.cc, 216)waiting for the first packet..
[INFO](TracertImpl.cc, 48)HopByHop algo
[INFO](TracertImpl.cc, 183)Send probe, ttl=1, id=1
[DEBUG](UDPProbe.cc, 247)==> UDP Probe :
[DEBUG](IP4Header.cc, 346)IP4 header :
[DEBUG](IP4Header.cc, 347)tos = 0
[DEBUG](IP4Header.cc, 348)total_length = 30
[DEBUG](IP4Header.cc, 349)ttl = 1
[DEBUG](IP4Header.cc, 350)protocol = 17
[DEBUG](IP4Header.cc, 353)source_address =
[DEBUG](IP4Header.cc, 355)dest_address = 8.8.8.8
[DEBUG](UDPHeader.cc, 143)UDP header :
[DEBUG](UDPHeader.cc, 144)source_port =
[DEBUG](UDPHeader.cc, 145)dest_port =
[DEBUG](UDPHeader.cc, 146)datagram_length = 10
[DEBUG](UDPHeader.cc, 147)checksum = 12584
[DEBUG](UDPProbe.cc, 250)Data :
[DEBUG]0x01 0x00
[DEBUG]0x45 0x00 0x00 0x1e 0x00 0x01 0x00 0x00
[DEBUG]0x01 0x11 0x00 0x00 0xc0 0xa8 0x00 0x8f
[DEBUG]0x08 0x08 0x08 0x08 0x82 0xb0 0x82 0xb1
[DEBUG]0x00 0x0a 0x28 0x31 0x01 0x00
[INFO](Server.cc, 276)Captured first packet!
[DEBUG](Server.cc, 280)Incoming message :
[DEBUG](Server.cc, 281)parsing.. ef72baa0 58
[DEBUG]0x45 0xc0 0x00 0x3a 0x5c 0xcd 0x00 0x00
[DEBUG]0x40 0x01 0x9b 0x55 0xc0 0xa8 0x00 0x01
[DEBUG]0xc0 0xa8 0x00 0x8f 0x0b 0x00 0xc6 0x62
[DEBUG]0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x1e
[DEBUG]0x00 0x01 0x00 0x00 0x01 0x11 0xe8 0x87
[DEBUG]0xc0 0xa8 0x00 0x8f 0x08 0x08 0x08 0x08
[DEBUG]0x82 0xb0 0x82 0xb1 0x00 0x0a 0x28 0x31
[DEBUG]0x01 0x00
[DEBUG](Server.cc, 285)Incoming message parsed :
[DEBUG](IP4Header.cc, 346)IP4 header :
[DEBUG](IP4Header.cc, 347)tos = 192
[DEBUG](IP4Header.cc, 348)total_length = 58
[DEBUG](IP4Header.cc, 349)ttl = 64
[DEBUG](IP4Header.cc, 350)protocol = 1
[DEBUG](IP4Header.cc, 353)source_address =
...
You can see more about this tool
here.
Another tool is
dublin-traceroute works like
paris-traceroute but introduces a new technique for NAT detection ( this is not in the Fedora repo).