BGP Neighbor IP Mismatch in Traceroute/MTR on CCR1009

Hello everyone,

I’m running into a peculiar issue with my MikroTik CCR1009-7G-1C-1S+, currently on RouterOS v6.49.17. My setup includes three upstream carriers, each configured with BGP, and each providing a default route. Here’s a breakdown of the setup:

ISP 1: Provides two peer neighbors for IPv4 (primary and backup/failover).
P1: 10.10.10.10
P2: 11.11.11.11
ISP 2: Provides a single IPv4 peer neighbor.
P1: 12.12.12.12
ISP 3: Also provides a single IPv4 peer neighbor.
P1: 13.13.13.13

The Issue:
When I perform an MTR or traceroute to any IP address within a subnet announced via BGP, the last hops in the trace seem to misrepresent the actual path the traffic takes. Instead of showing the correct neighbor IP address (from the ISP actually carrying the traffic), MikroTik advertises the IP of a neighbor from a different ISP.

Example Scenario:

Each ISP is configured with the highest permissible local-preference within their ASN for routes to my prefixes.
Let’s say I traceroute an IP within one of my BGP-announced subnets. The trace proceeds normally up to about hop 5 or 6, where it shows the expected neighbor IP.
However, at the final hop, instead of correctly displaying the IP of the neighbor on ISP1 (e.g., 10.10.10.10), it will incorrectly show the IP of a neighbor from ISP2 (e.g., 12.12.12.12).
Despite this, actual traffic flow is unaffected. I confirmed using MikroTik’s Bandwidth Test Tool that data is routed through the correct ISP (ISP1 in this case). This seems to be purely a reporting/advertising issue.

Impact:
Operationally, everything works as expected—ECMP is functioning correctly for both inbound and outbound traffic. However, this inconsistency creates problems for some external path analysis tools that inspect the routing paths to my IP subnets. These tools generate false positive alerts, as they believe traffic is entering the network via a “wrong” ISP neighbor, which isn’t actually the case.

Questions:

Has anyone else encountered this behavior where the wrong neighbor IP is displayed in traceroutes or MTR outputs?
Could this be a quirk of MikroTik’s handling of BGP neighbor advertisement in conjunction with ECMP?
Are there specific configurations or tweaks that might help ensure that the correct neighbor IP is advertised in such cases?
Any insights or recommendations would be greatly appreciated! Thanks in advance for your help.

P.S.: the IP Addresses of the neighbors are fake, of course :slight_smile:.

I have the same issue across my routers; only at the inbound hop from a carrier; once it’s inside my network all ospf interfaces return the correct ip during traceroutes.

Been looking for a solution for a while. If you find a way to address that please update! Cheers

For ROS v7 you can set /ip settings set icmp-errors-use-inbound-interface-address=yes

Thank you! I’d been looking for this for a while, and it worked perfectly.