Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ChrisRol99 opened this issue Nov 16, 2023 · 2 comments

Comments

@ChrisRol99
Copy link

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.

@rewolff
Copy link
Collaborator

rewolff commented Nov 16, 2023

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.

@yvs2014
Copy link

yvs2014 commented Nov 24, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants