Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

So, I've got two NICs:

eth0
eth1

and I have multiple IP addresses assigned to each:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
    address 10.0.0.194
    netmask 255.255.255.0
    gateway 10.0.0.1
    network 10.0.0.0

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
    address 10.0.0.253
    netmask 255.255.255.0

auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
    address 10.0.0.252
    netmask 255.255.255.0

auto eth0:2
allow-hotplug eth0:2
iface eth0:2 inet static
    address 10.0.0.251
    netmask 255.255.255.0

auto eth1
allow-hotplug eth1
iface eth1 inet static
    address 10.0.0.74
    netmask 255.255.255.0
    gateway 10.0.0.1
    network 10.0.0.0

auto eth1:0
allow-hotplug eth1:0
iface eth1:0 inet static
    address 10.0.0.105
    netmask 255.255.255.0

auto eth1:1
allow-hotplug eth1:1
iface eth1:1 inet static
    address 10.0.0.104
    netmask 255.255.255.0

auto eth1:2
allow-hotplug eth1:2
iface eth1:2 inet static
    address 10.0.0.106
    netmask 255.255.255.0

I've also setup ip route like so:

sudo ip route add 10.0.0.0/24 dev eth0 table eth0
sudo ip route add default via 10.0.0.1 dev eth0 table eth0

sudo ip route add 10.0.0.0/24 dev eth1 table eth1
sudo ip route add default via 10.0.0.1 dev eth1 table eth1

sudo ip rule add from 10.0.0.194 table eth0
sudo ip rule add from 10.0.0.74 table eth1

Now when I execute the following commands, everything works fine I get back my external IP:

curl --interface eth0  http://ipecho.net/plain ; echo
curl --interface eth0:0  http://ipecho.net/plain ; echo
curl --interface eth0:1  http://ipecho.net/plain ; echo
curl --interface eth0:2  http://ipecho.net/plain ; echo
curl --interface eth1  http://ipecho.net/plain ; echo

However, when I run:

curl --interface eth1:0  http://ipecho.net/plain ; echo

Nothing happens. I've obviously messed up my routes or something. Can anyone help me out? Thanks.

ip route

default via 10.0.0.1 dev eth0 
10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.194 
10.0.0.0/24 dev eth1  proto kernel  scope link  src 10.0.0.74

route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1

EDIT:

So I found this, which is what I'm trying to do however, I don't want to specify any subnets. I just want it to round-robin the requests.

http://unix.stackexchange.com/questions/111293/load-balancing-among-multiple-virtual-network-interfaces

share|improve this question
    
I'm guessing you are statically assigning your IP addresses, no? If you are, wouldn't you agree that posting the contents of /etc/network/interfaces is more informative than the output of ifconfig? I'd like to see how you actually have it manually configured. –  not__p Mar 22 at 21:37
    
Updated. Thanks –  James Edwards Mar 23 at 16:48
    
Wich distribution are you using? –  Nils Mar 23 at 22:00
    
What happens when you add explicit routing rules for all outgoing IP addresses? –  Daniel B Mar 24 at 13:03
    
Where is your initial connection(s) to the Internet? Which interface(s)? What are configuration details for such interface(s). –  not__p Mar 24 at 23:53

2 Answers 2

I think you should read up about bonding interfaces.

If you want to load-balance using two interfaces the system you are connecting to has to "speak" exactly the same LB-protocol as you do.

Else you will loose packets.

share|improve this answer
    
Can I still choose which IPs are used for outbound requests over that bond for each interface? Thanks. –  James Edwards Mar 24 at 17:45
    
@James Why would you want to do that? –  Nils Mar 28 at 15:40

Having several NICs connected to the same network might just get you extra collisions. Unless you configure the network carefully, it won't work. And it is quite improbable that the last link is your bottleneck; if it is, you are probably better off with a high speed NIC (and upstream hardare to match).

The whole IP network idea is that you have one NIC on each net. A set up like the one you have is extremely out of line with what is normally done, and (if even legal) is unlikely to have ever been put through it's paces and any misbehaviour fixed.

share|improve this answer
    
Ok, I'll trying putting the interfaces on different subnets. Once I've done that how can I load-balance outbound requests over those two interfaces? –  James Edwards Mar 23 at 19:37
    
I don't see how having multiple NICs on the same network would cause any problems at all. Packet collisions don't exist on a fully switched network. Address collisions won't occur with the OPs configuration. –  Daniel B Mar 24 at 12:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.