I was about to ask "how do I verify it works", but figured it out as I was typing the question:
Code:
ip route
192.168.50.0/24 dev ovirtbr0 proto kernel scope link src 192.168.50.1
172.29.0.0/24 dev eth0 proto kernel scope link src 172.29.0.83 metric 1
172.29.0.0/24 dev wlan0 proto kernel scope link src 172.29.0.84 metric 2
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
default
nexthop via 172.29.0.2 dev eth0 weight 1
nexthop via 172.29.0.2 dev wlan0 weight 1
ping -c 5 www.google.ca; route -Cn | grep -e Source -e 74.125.95
PING www.l.google.com (74.125.95.99) 56(84) bytes of data.
64 bytes from iw-in-f99.google.com (74.125.95.99): icmp_seq=1 ttl=245 time=48.2 ms
64 bytes from iw-in-f99.google.com (74.125.95.99): icmp_seq=2 ttl=245 time=63.3 ms
64 bytes from iw-in-f99.google.com (74.125.95.99): icmp_seq=3 ttl=245 time=45.7 ms
64 bytes from iw-in-f99.google.com (74.125.95.99): icmp_seq=4 ttl=245 time=50.9 ms
64 bytes from iw-in-f99.google.com (74.125.95.99): icmp_seq=5 ttl=245 time=47.8 ms
--- www.l.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4052ms
rtt min/avg/max/mdev = 45.785/51.228/63.327/6.266 ms
Source Destination Gateway Flags Metric Ref Use Iface
172.29.0.83 74.125.95.104 172.29.0.2 0 0 5 eth0
172.29.0.84 74.125.95.99 172.29.0.2 0 0 5 wlan0
74.125.95.104 172.29.0.83 172.29.0.83 l 0 0 4 lo
74.125.95.147 172.29.0.83 172.29.0.83 l 0 0 1 lo
172.29.0.84 74.125.95.99 172.29.0.2 0 0 0 eth0
172.29.0.83 74.125.95.147 172.29.0.2 0 0 2 eth0
172.29.0.83 74.125.95.147 172.29.0.2 0 0 0 wlan0
172.29.0.83 74.125.95.104 172.29.0.2 0 0 0 wlan0
74.125.95.99 172.29.0.84 172.29.0.84 l 0 0 4 lo
So now my question how does it choose the route? Is it simply a case of which interface responds first? Which theoretically would be the interface which has the least amount of traffic?