You've got something else going on. I did a brand new install of Debian stable, created in a KVM VM using the following command: virt-install -n test --os-type=Linux --os-variant=debiansqueeze --ram=512 --vcpus=1 --disk path=test.img,bus=virtio,size=10 --graphics none --location http://ftp.us.debian.org/debian/dists/testing/main/installer-amd64/ --network bridge:br0 --network bridge:br1 --console pty,target_type=serial --extra-args 'console=ttyS0,115200n8 serial'
I installed tcpdump and mtr (the 0.87 version from stable), and configured the two network interfaces with static IPs, with a default gateway on the first interface. root@test:~# mtr --version mtr 0.87 root@test:~# ip -4 addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 192.168.9.29/24 brd 192.168.9.255 scope global ens2 valid_lft forever preferred_lft forever 3: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 192.168.10.29/24 brd 192.168.10.255 scope global ens3 valid_lft forever preferred_lft forever root@test:~# ip route default via 192.168.9.1 dev ens2 onlink 192.168.9.0/24 dev ens2 proto kernel scope link src 192.168.9.29 192.168.10.0/24 dev ens3 proto kernel scope link src 192.168.10.29 I ran mtr in one window, using -a to specify the IP for ens3. In other windows, I ran tcpdump on ens2 and ens3: root@test:~# mtr -c 1 --report -a 192.168.10.29 1.2.3.4 Start: Thu Nov 23 07:51:36 2017 HOST: test Loss% Snt Last Avg Best Wrst StDev root@test:~# tcpdump -ni ens2 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens2, link-type EN10MB (Ethernet), capture size 262144 bytes 07:51:37.025564 IP 192.168.10.29 > 1.2.3.4: ICMP echo request, id 22275, seq 59520, length 44 07:51:37.126989 IP 192.168.10.29 > 1.2.3.4: ICMP echo request, id 22275, seq 59776, length 44 07:51:37.228430 IP 192.168.10.29 > 1.2.3.4: ICMP echo request, id 22275, seq 60032, length 44 07:51:37.328767 IP 192.168.10.29 > 1.2.3.4: ICMP echo request, id 22275, seq 60288, length 44 07:51:37.429117 IP 192.168.10.29 > 1.2.3.4: ICMP echo request, id 22275, seq 60544, length 44 07:51:37.529475 IP 192.168.10.29 > 1.2.3.4: ICMP echo request, id 22275, seq 60800, length 44 07:51:37.629855 IP 192.168.10.29 > 1.2.3.4: ICMP echo request, id 22275, seq 61056, length 44 root@test:~# tcpdump -ni ens3 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes The packets egress via ens2 using the 192.168.10.29 IP. Bottom line: If you want to do this, you need to set up a separate routing table in Linux and you need to configure rules to use that routing table. This is not a regression in mtr.

