22

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.

Jason C
  • 948

2 Answers2

26

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:

default via 192.168.0.1 dev eth0 ...
192.168.0.0/24 dev eth0 ...
192.168.1.0/24 dev eth1 ...
192.168.2.0/24 dev eth2 ...

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.

ændrük
  • 78,496
2

If you for some reason uses NetworkManager but don't have a desktop environment, you can configure it in the command-line:

nmcli connection show

You should get a list of connections, for example

NAME                            UUID                                  TYPE       DEVICE  
My Wi-Fi AP                     123e4567-e89b-12d3-a456-426614174000  wifi       wlp3s0  
Wired connection 1              123e4567-e89b-12d3-a456-426614174001  ethernet   enp0s25 

Then, get the UUID value and execute

nmcli connection modify 123e4567-e89b-12d3-a456-426614174001 ipv4.never-default yes

This does the same thing as the other answer (may need disconnect and reconnect for changes to apply)

Alternative solutions includes using route command to manage default gateway directly; however if you use NetworkManager don't do this (see linked questions on the right pane)