Short Version: We've had a problem with a particular server receiving massive duplicates of packets. After much fault finding we found the problem was caused by a switch sending my packet out every port (ie acting like a hub) and 3 routers were reflecting the packet back. When the routers reflected the packet back the switch would again send the packet out every other port and they would again get reflected back by the other routers. This would last until the TTL decremented to 0. What I don't understand is why the routers were sending the packet back. Shouldn't the router drop the packet as the dest mac address doesn't match its mac address?
Long Version: Say there are 3 routers (A, B and C) attached to a switch and my VM. A udp packet would arrive from router A destined for my VM. At this stage the TTL is 60. The switch doesn't have my VM's mac address so it floods the packet out every other port. Routers B and C receive the packet and see the IP address is on the same port so decrement the TTL and send the packet back out the same port. We now have 2 packets with TTL of 59. The switch again floods the 2 packets out and it is reflected off the other 2 routers, so we end up with 4 packets with TTL of 58. We then get 8 at 57, 16 at 56 etc until packets start to get dropped. All the while my VM is receiving a copy of all these packets. Because the VM only ever receives it never manages to get itself into the switch's MAC table. ARP helps here but it's timeout was larger than the switches timeout on the mac table. Lowering that solved the problem but the question remains as to why the routers were reflecting the packet back. From what I understand this isn't standard behavior.
EDIT: Details from the wireshark capture (showing last 2 digits of mac only):
MAC TTL 95 60 99 59 EC 59 95 58 EC 58 95 58 99 58 then 8 packets at 57 etc
See how it looks like it comes in from MAC address ending with 95, then bounces off the other 2 routers, then both those packets bounce off the other 2 again to make 4 packets?