Ubuntu, two NICs but only one with internet connection
As pointed out in the above comments you have two default routes (via 192.168.1.1
and 10.0.0.1
) but only the first one connects to the Internet. If the routing table remains as you posted you will have an Internet connection: whenever you have two routes for the same destination, the one with smaller metric
wins.
However, since the metric
is not assigned by you, but by the DHCP clients, the value of metric
depends on the order in which the interfaces are brought up. I would change your configuration to a static one. Add to the file /etc/network/interfaces
the following lines:
auto enp2s0
iface enp2s0 inet static
address 192.168.1.2
netmask 24
gateway 192.168.1.1
auto enp2s1
iface enp2s1 inet static
address 10.0.0.5
netmask 24
and restart networking (sudo systemctl restart networking
).
PS: This is the oldest way to configure networking on Ubuntu/Debian. On a new Ubuntu there is certainly also NetworkManager and systemd-networkd (in order of appearance). There is also an equivalent configuration for those two.
Related videos on Youtube
Comments
-
weyhei over 1 year
I am having issue with my Ubuntu because I am unable to use wget or access any website with my current setup.
I have two NICs, enp2s0 and enp2s1.
enp2s0 is connected to the internet but connected to a NAT router (IP Address: 192.168.1.2)
While for enp2s1, it is connected to another router buth with no internet since it will only be used for internal networking (IP Address: 10.0.0.5)
If the only NIC connected is the one with the internet (enp2s0), the computer can access any website. But once the second NIC is connected (enp2s0 & enp2s1), the computer doesn't load any webpage, wget, or even apt-get update or apt-get install.
Is this something to do with iptables or routing? Help me out as I am new with this.
Here are some current details of the machine:
$ ip route show default via 192.168.1.1 dev enp2s0 proto dhcp metric 20100 default via 10.0.0.1 dev enp2s1 proto dhcp metric 20101 169.254.0.0/16 dev enp2s0 scope link metric 1000 192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.2 metric 100 10.0.0.0/24 dev enp2s1 proto kernel scope link src 10.0.0.5 metric 101 $ iptables -S -t nat; iptables -S -P PREROUTING ACCEPT -P INPUT ACCEPT -P OUTPUT ACCEPT -P POSTROUTING ACCEPT -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT $ ip r default via 192.168.1.1 dev enp2s0 proto dhcp metric 20100 default via 10.0.0.1 dev enp2s1 proto dhcp metric 20101 169.254.0.0/16 dev enp2s0scope link metric 1000 192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.2 metric 100 10.0.0.0/24 dev enp2s1 proto kernel scope link src 10.0.0.5 metric 101
/etc/network/interfaces
auto lo iface lo inet loopback
Since this is a newly installed ubuntu, we haven't maintained anything in the machine yet.
For the network 10.0.0.0/24 we wanted to have network connectivity for each device connected, (i.e., file sharing, web server checking) and it is completely isolated from internet.....
10.0.0.5 was given to the enp2s1 NIC since the router has its own DHCP, and 10.0.0.1 is the router gateway
-
Dom over 4 yearsCould you add the routes : "ip route show" and "iptables -S -t nat; iptables -S"
-
Lenniey over 4 yearsYou have to set your default gateway correctly, please add the output of
ip r
-
weyhei over 4 yearsHere's a screenshot of the result imgur.com/a/iCtFVKv
-
weyhei over 4 years@Dom I have updated the above question. What happen here is when the both NICs are connected, the whole computer seem to have no internet connection. Also, above is the screenshot of the requested commands.
-
Zoredache over 4 yearsYou have a default route for the interface with no internet. You need to remove it, or prevent it from being added.
-
weyhei over 4 yearsThanks for that @Zoredache .. I searched on how to delete a route , but which line should I remove?
-
Piotr P. Karwasz over 4 yearsPlease add your interface config as text. I suppose you are using
/etc/network/interfaces
? What is the network prefix you want to reach behind10.0.0.1
?
-
-
weyhei over 4 yearsThis worked somehow. But I think I only got one issue here, and that is DNS setting. I tried to do
nslookup google.com
, and the resolver being used is 127.0.0.53 so, I triednslookup google.com 8.8.8.8
and it could lookup for the domain name......First thing I addeddns-nameserver 8.8.8.8 8.8.4.4
in the /etc/network/interfaces and restarted but it didn't work. DNS would only work when I addnameserver 8.8.8.8 nameserver 8.8.4.4
in /etc/resolv.conf but since this is a dynamic file, it is removed whenever the computer is rebooted. How do I make a permanent fix for this? -
Piotr P. Karwasz over 4 yearsSo you met systemd-resolved. It runs a small DNS resolver on the local address
127.0.0.53
and forwards everything to the probably wrong DNS servers he gets from DHCP. You can delete the symlink/etc/resolv.conf
and create a real file instead. systemd-resolved will not touch it.