how-to

Linux network: reply on same interface as incoming

Long story short: local corporate server have 2 interfaces:

1) Public Internet IP address (eth0)

2) Local network IP address (eth1)

By default Linux tries to reply on default (eth0 – first) interface. Let’s fix it.

We need to create an ip rule with IP adresses table and configure it for all interfaces:

echo 200 reth0 >> /etc/iproute2/rt_tables
echo 201 reth1 >> /etc/iproute2/rt_tables
ip rule add from <ip address of eth1> table reth0
ip route add default via <gateway of eth0> dev eth0 table reth0
ip rule add from <ip address of eth1> table reth1
ip route add default via <gateway of eth1> dev eth1 table reth1

That’s all!

To load on boot you need to add “up” lines for last interface in /etc/network/interfaces :

...
iface eth1 inet static
...
 up ip rule add from <ip address of eth1> table reth0
 up ip route add default via <gateway of eth0> dev eth0 table reth0
 up ip rule add from <ip address of eth1> table reth1
 up ip route add default via <gateway of eth1> dev eth1 table reth1

 

Based on this page.

Leave a Reply

Your email address will not be published. Required fields are marked *