Can't use two network interfaces at the same time

41,540

Solution 1

Configuring the output of ifconfig and the comments given to my first answer, I think that the problem is related to way you configure your NIC's in /etc/network/interfaces.

As you don't have any specific configuration for eth1 in /etc/network/interfaces, I suppose that your modem is giving to your server the IP info via DHCP. As per the route ouput, you get your default gateway pointing to the modem so to Internet.

But on your /etc/network/interfaces file for the eth0 you have also a default gateway configured (statement gateway 172.16.1.254).

You cannot have two default gateway on a system. The assignment of the default gateway on eth1 disable the static configuration of eth0, reason why there is no IP for eth0 in the ifconfig output and why Internet works and the internal network no more.

You will have to remove the line gateway 172.16.1.254 and try again.

By doing so, of course, if you have more than one subnet on the internal LAN you won't be able to reach them anymore. Unless you configure static route towards all of these subnets on your server :

sudo route add -net A.B.C.D gw 172.16.1.254

you can add the route command in a script saved under /etc/network/if-up.d to be run each time an interface goes up.

Solution 2

From what I understand of your post, you are connecting to Internet via eth1 and to your internal network via eth0. And your server is then playing the role of DHCP server and default gateway for your PC's to go the Internet.

First, on the PC, check that they've received correctly all DHCP settings, including the gateway. From your question, I assume it should be 172.16.1.100

Secondly, be sure that your eth1 is well connected to the Internet and well configured; this is obviously depending of your ISP.

Finally, the most important operation, you will have to enable IP forwarding between your two interfaces on the server. Without this, packet won't be routed between your PC's and the Internet :

Manual set-up :

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

To have the IP forward flag automatically setup at boot time uncomment the line #net.ipv4.ip_forward=1 in /etc/sysctl.conf

You will have also to ensure that there are no IPtables firewall rules that block the traffic. Do :

iptables -L -n

to get a list of rules if any. I would first try this setup with all firewall rules disabled :

iptables -F

Solution 3

I had similar issue, but my interfaces file was empty like this:

# The loopback network interface
auto lo
iface lo inet loopback

I managed to fix the issue by moving/removing the Wired connection file found: /etc/NetworkManager/system-connections/Wired connection 1

After reboot, was able to connect to both networks.

Share:
41,540

Related videos on Youtube

Andreikkaa
Author by

Andreikkaa

Love sportive programming. Took silver medals on the following olympiads in informatics: Russian olympiad 2015, Russian open olympiad 2015, Moscow olympiad 2015, Russian team olympiad 2015, international tournament in Shumen (Bulgaria) 2015. Going to participate in ACM ACPC very soon.

Updated on September 18, 2022

Comments

  • Andreikkaa
    Andreikkaa over 1 year

    I have a problem. First of all, I wan to set up a server on Ubuntu 14.04. I have 2 interfaces: eth0 for dhcp server and eth1 for internet connection. But if I connect to two networks at the same time, there isn't internet on PC. So I have to choose between server and internet. That's terrible, can anyone tell me how to close this issue?

    /etc/network/interfaces:

    auto lo eth0 eth1
    
    iface lo inet loopback
    
    iface eth0 inet static
    address 172.16.1.100
    netmask 255.255.255.0
    broadcast 172.16.1.255
    gateway 172.16.1.254
    

    sudo route outputs:

    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         192.168.0.1     0.0.0.0         UG    0      0        0 eth1
    192.168.0.0     *               255.255.255.0   U     1      0        0 eth1
    

    UPD: ifconfig outputs:

    eth0      Link encap:Ethernet  HWaddr 90:e6:ba:46:1d:50  
              inet6 addr: fe80::92e6:baff:fe46:1d50/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:184287 (184.2 KB)
    
    eth1      Link encap:Ethernet  HWaddr 00:04:75:98:5f:da  
              inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: fe80::204:75ff:fe98:5fda/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:14498 errors:0 dropped:0 overruns:2 frame:0
              TX packets:13096 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:9710708 (9.7 MB)  TX bytes:1840400 (1.8 MB)
              Interrupt:18 Base address:0x4c00 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:4398 errors:0 dropped:0 overruns:0 frame:0
              TX packets:4398 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:527890 (527.8 KB)  TX bytes:527890 (527.8 KB)
    
    • meccooll
      meccooll almost 10 years
      Is network manager configuring your devices? Show output of nmcli dev status also can you ping 192.168.0.1?
  • Andreikkaa
    Andreikkaa almost 10 years
    Sure. I'm connected via modem.
  • Benoit
    Benoit almost 10 years
    @user3452627: does this modem gives an IP address to your server via DHCP ?
  • Andreikkaa
    Andreikkaa almost 10 years
    i don't know how modem does it, but it gives IP correctly (i can surf the net)
  • JrBenito
    JrBenito almost 5 years
    Actually you can have two default routes on a given system (not on his system as server does not have internet access) but they shall have different priorities or configuration to balance both.