On a 4.6 system, I'm seeing something that I believe to be wrong. When sourcing packets from a specific IP, the traffic is being (incorrectly?) routed out the wrong interface. In this case, packets sourced via vr2's IP are being sent out vr1. While this doesn't happen all the time, it happens enough to be a problem. pf is not being used to route packets. Details:
# sysctl net.inet.ip.multipath net.inet.ip.multipath=1 # ifconfig vr1 vr1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ... inet 72.x.y.z netmask 0xfffff800 broadcast 255.255.255.255 # ifconfig vr2 vr2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ... inet 192.168.1.65 netmask 0xffffff00 broadcast 192.168.1.255 # route -nv show -inet -gateway | fgrep default default 72.x.y.z UGSP 6 27036 - 8 vr1 default 192.168.1.254 UGSP 2 197 - 8 vr2 # ping -I 192.168.1.65 www.excite.com PING www95.excite.com (66.235.126.95): 56 data bytes --- www95.excite.com ping statistics --- 7 packets transmitted, 0 packets received, 100.0% packet lost # tcpdump -ni vr1 icmp tcpdump: listening on vr1, link-type EN10MB 20:32:50.861377 192.168.1.65 > 66.235.126.95: icmp: echo request 20:32:51.869561 192.168.1.65 > 66.235.126.95: icmp: echo request 20:32:52.879676 192.168.1.65 > 66.235.126.95: icmp: echo request 20:32:53.889845 192.168.1.65 > 66.235.126.95: icmp: echo request 20:32:54.899987 192.168.1.65 > 66.235.126.95: icmp: echo request 20:32:55.910130 192.168.1.65 > 66.235.126.95: icmp: echo request 20:32:56.920277 192.168.1.65 > 66.235.126.95: icmp: echo request ^C Can anyone explain why this is happening and how to correct? What am I missing? Thank you.