Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
up vote 3 down vote accepted

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.

share|improve this answer
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 '10 at 23:38
This is probably what I'm looking for in…. Unfortunately, the link is broken :-( – Daniel Alder Jan 17 '14 at 23:03

I have implemented a working MultiISP setup using shorewall based on this answer:

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:

share|improve this answer
Ok, thanks I don't need load balancing but it should work so I'll try that. – Jure1873 Jul 23 '09 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 '09 at 13:10

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

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

share|improve this answer

Your Answer


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.