I have a machine with three network interfaces running Ubuntu 12.04 LTS, 64-bit, kernel 3.5.0-49.
I am using all three interfaces. Two of them are connected to LANs (eth0 and eth1) and one is connected to the internet (eth2); but when I try to access the internet, it attempts to go through eth0 (error responses come from eth0's IP).
I know that it will work (from experience elsewhere) if I don't set a gateway address for eth0 or eth1, but I have to because for some reason the network manager GUI won't let me save connection settings if no gateway is specified (?).
How do I either a) set eth0 and eth1 to not have gateway addresses, or b) tell the system to use eth2 for internet access (that is, IPs not on eth0/eth1's subnets).
As for trying to unset eth0 and eth1's gateway addresses: Trying to bypass the network manager GUI, I checked in /etc/network/interfaces but Ubuntu doesn't seem to use it (it only has an entry for lo). I'm not really familiar with more modern ways of configuring interfaces though, and so I gave up there.
It sounds like you're looking for a way to set the default gateway. You can see the current settings by running
ip route. You probably want yours to look like something like this:
These routes are automatically created by NetworkManager. Try checking Edit ▸ IPv4 Settings ▸ Routes ▸ Use this connection only for resources on its network on the two LAN connections to prevent them from becoming the default gateway.
You shouldn't need to work around NetorkManager.