4

I want to route packets coming in on eth0 back over eth0 and the ones coming in to eth1 back over eth1. I don't care which gateway is used for outgoing connections.

If i just enter two gateways in /etc/network/interfaces then the kernel routes packets out on both interfaces.

I remember it has something to do with routing tables but I don't know how to do it/where can I read more about it.

3 Answers 3

3

What you want to achieve is multi-homing, not bonding or load-balancing.

To do this you'll need to implement what is known as "policy" or "source based" routing.

Which you can do in Linux by using the iproute2 package.

There is a good article that explains how to, here.

2
  • This just solved about 3 hrs of banging my head against a brick wall. "Why arn't packets coming back...... disable rp_filter" Thanks a bunch! :)
    – Jason
    Mar 1, 2010 at 23:38
  • This is probably what I'm looking for in serverfault.com/questions/567487/…. Unfortunately, the link is broken :-( Jan 17, 2014 at 23:03
0

I have implemented a working MultiISP setup using shorewall based on this answer: NIC bonding with two uplinks

It easy to implement and manage, works well in a "load balancing" configuration, where packets are evenly distributed between uplinks if no cached routes are found.

Read more about it here: http://www.shorewall.net/MultiISP.html

2
  • 1
    Ok, thanks I don't need load balancing but it should work so I'll try that.
    – Jure1873
    Jul 23, 2009 at 8:52
  • No problem. Although raw iproute2 solutions are ok, having shorewall gives you a very nice abstraction and less maintenance problems for acomplishing the same task.
    – Karolis T.
    Jul 23, 2009 at 13:10
0

I found this web page describing exactly how to achieve this using iptables2.

I found it using google and "linux 2 default gateways"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .