mtr icon indicating copy to clipboard operation
mtr copied to clipboard

traceroute does not stop on subnet router anycast addresses on linux routers

Open ChrisRol99 opened this issue 1 year ago • 2 comments

Hi,

I filed a bugreport(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055978) on the debian package 'mtr-tiny' and they told me I should open a github issue.

The problem is, that the traceroute does not terminate if the target is a anycast address, below i presented an example and attached some network traces.

I prepared a test setup and captured two traces of the network. The test consists of three linux routers which are connected as follows: R1 <-> R2 <-> R3 (see test_setup.png) test_setup

1st trace(intended_behavior.pcap) works as expected: From R1 to R3: mtr -c 1 2001:db8:0:3::1 Host Loss% Snt Last Avg Best Wrst StDev

  1. 2001:db8:0:1::2 0.0% 1 1.0 1.0 1.0 1.0 0.0
  2. 2001:db8:0:3::1 0.0% 1 1.4 1.4 1.4 1.4 0.0

2nd trace(unintended_behavior.pcap) does not stop, because I try to reach the anycast address: mtr -c 1 2001:db8:0:3:: Host Loss% Snt Last Avg Best Wrst StDev

  1. 2001:db8:0:1::2 0.0% 1 1.0 1.0 1.0 1.0 0.0
  2. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  3. 2001:db8:0:2::2 0.0% 1 1.3 1.3 1.3 1.3 0.0
  4. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  5. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  6. 2001:db8:0:2::2 0.0% 1 1.0 1.0 1.0 1.0 0.0
  7. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  8. 2001:db8:0:2::2 0.0% 1 1.2 1.2 1.2 1.2 0.0
  9. 2001:db8:0:2::2 0.0% 1 1.4 1.4 1.4 1.4 0.0
  10. 2001:db8:0:2::2 0.0% 1 1.2 1.2 1.2 1.2 0.0
  11. 2001:db8:0:2::2 0.0% 1 1.3 1.3 1.3 1.3 0.0
  12. 2001:db8:0:2::2 0.0% 1 1.4 1.4 1.4 1.4 0.0
  13. 2001:db8:0:2::2 0.0% 1 1.2 1.2 1.2 1.2 0.0
  14. 2001:db8:0:2::2 0.0% 1 1.3 1.3 1.3 1.3 0.0
  15. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  16. 2001:db8:0:2::2 0.0% 1 1.1 1.1 1.1 1.1 0.0
  17. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  18. 2001:db8:0:2::2 0.0% 1 1.3 1.3 1.3 1.3 0.0
  19. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  20. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  21. 2001:db8:0:2::2 0.0% 1 1.3 1.3 1.3 1.3 0.0
  22. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  23. 2001:db8:0:2::2 0.0% 1 1.3 1.3 1.3 1.3 0.0
  24. 2001:db8:0:2::2 0.0% 1 1.5 1.5 1.5 1.5 0.0
  25. 2001:db8:0:2::2 0.0% 1 1.4 1.4 1.4 1.4 0.0
  26. 2001:db8:0:2::2 0.0% 1 1.2 1.2 1.2 1.2 0.0
  27. 2001:db8:0:2::2 0.0% 1 1.4 1.4 1.4 1.4 0.0
  28. 2001:db8:0:2::2 0.0% 1 1.2 1.2 1.2 1.2 0.0
  29. 2001:db8:0:2::2 0.0% 1 1.4 1.4 1.4 1.4 0.0
  30. 2001:db8:0:2::2 0.0% 1 1.4 1.4 1.4 1.4 0.0

Network traces: networkTrace.tar.gz

Summary of my problem: BUG: An ICMP reply should be interpreted as a "destination reached" Wishlist: tag the IP when the address doesn't match the destination we're targetting.

ChrisRol99 avatar Nov 16 '23 11:11 ChrisRol99

With "ICMP reply's" coming back, MTR should conclude that the destination has been reached and not probe further. No half-assed workarounds with "after three hops the same IP assume we won't get anything new when going further".

BUG: An ICMP reply should be interpreted as a "destination reached" Wishlist: tag the IP when the address doesn't match the destination we're targetting.

rewolff avatar Nov 16 '23 11:11 rewolff

in some way it's probably similar to trace of some network or unspecified target ip address, if I'm not mistaken something like mtr -n 0

yvs2014 avatar Nov 24 '23 03:11 yvs2014