How to route packets back to incoming interface?


 
Thread Tools Search this Thread
Special Forums IP Networking How to route packets back to incoming interface?
# 1  
Old 03-09-2017
Question How to route packets back to incoming interface?

Hi folks,

I have a debian server running an Apache daemon on the eth0 interface. Now from time to time the server has to open an openvpn connection (tun0) to other networks to get some data from there. During this period the Apache is no longer reachable under it's IP address on eth0 because all outgoing traffic is routed over tun0.

I'm not that firm in routing, so what can I do, so all incoming packets are answered over the interface they came in and all outgoing traffic what is initiated by the server itself runs over tun0?

Image


Routing table w/o openvpn connection:

Code:
    root@j305934:/# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         sw-gate05.jiffy 0.0.0.0         UG    0      0        0 eth0
    134.119.3.0     *               255.255.255.0   U     0      0        0 eth0
    
    root@j305934:/# ip route
    default via 134.119.3.254 dev eth0
    134.119.3.0/24 dev eth0  proto kernel  scope link  src 134.119.3.16

Routing table with active openvpn connection:

Code:
 
    root@j305934:/# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         10.200.195.1    128.0.0.0       UG    0      0        0 tun0
    default         134.119.3.254   0.0.0.0         UG    0      0        0 eth0
    10.200.195.0    *               255.255.255.0   U     0      0        0 tun0
    62.113.251.130  134.119.3.254   255.255.255.255 UGH   0      0        0 eth0
    128.0.0.0       10.200.195.1    128.0.0.0       UG    0      0        0 tun0
    134.119.3.0     *               255.255.255.0   U     0      0        0 eth0

    root@j305934:/# ip route
    0.0.0.0/1 via 10.200.193.1 dev tun0
    default via 134.119.3.254 dev eth0
    10.200.193.0/24 dev tun0  proto kernel  scope link  src 10.200.193.43
    62.113.251.130 via 134.119.3.254 dev eth0
    128.0.0.0/1 via 10.200.193.1 dev tun0
    134.119.3.0/24 dev eth0  proto kernel  scope link  src 134.119.3.16

# 2  
Old 03-09-2017
I don't quite get what you are trying to do. Maybe you want TAP - bridge from eth1: to eth0: Which you not have now. In other words segregate and bridge on this server. Is this box in the DMZ?
# 3  
Old 03-09-2017
Quote:
Originally Posted by jim mcnamara
I don't quite get what you are trying to do. Maybe you want TAP - bridge from eth1: to eth0: Which you not have now. In other words segregate and bridge on this server. Is this box in the DMZ?
Mmmh. Ok let me try to eplain it...

The server hast 1 NIC (eth0) and is connected to the internet. There are several daemons running on it (Apache, FTP, ...). Now from time to time a script running on the machine has to connect by openvpn to some other servers of which I know only the domain name not the ip addresses because they change they rotate ips due load balancing and also have alot of IP ranges.

Now when script opens up a openvpn link (tun0) to connect to a openvpn host, all traffic of my server is then routed over the tun0 gateway. Therefor if some client tries to reach the Apache daemon under it's common address, he get's no reponse, because the reponse packet are not sent back on the eth0 interface but the tun0 route. So no more connection to the daemons are possible anymore until the openvpn connection is closed.

What I want now, is that the server responds to any ip packet it gets, on the same interface it was received. When the vpn link is up, all outgoing packets of tcp/udp traffic which were initiated by the server itself have to be routed to tun0, all answers on incoming packets on eth0 have to be answered to eth0.

Does this make any sense to you? Smilie
# 4  
Old 03-09-2017
Yes. You have to bridge somehow - that is what TAP does.
Does this link look familiar?

BridgingAndRouting – OpenVPN Community
# 5  
Old 03-09-2017
Quote:
Originally Posted by jim mcnamara
Yes. You have to bridge somehow - that is what TAP does.
Does this link look familiar?

Mmmh not to familiar with it - even after reading Smilie

Another approach would be if it's possible to route only the traffic on 1 application (or user) over the vpn tunnel by removing the default gateway to it and let all remaining traffic on eth0.

I think there was some way with iptables to mark packages of a user and apply some postrouting rules to change the ip and route them over a different interface, but I really can't remember how anymore Smilie
# 6  
Old 03-09-2017
Is the VPN something you control? You're using it in bridging mode, which takes over your connection, but if you use routing mode, it doesn't... Routing mode just allows you to connect to a new subnet of IP's.
# 7  
Old 03-09-2017
I would not add a default route for the tun0.
Once it is present, I would try to delete it, with
Code:
route delete default 10.200.195.1

or similar.
AFAIK in a standard IP stack there is no way to return packets to the incoming interface - it always follows the routing table.
This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. IP Networking

How to route all incoming packets from one virtual interface?

Hello, I'm trying to route all packets arriving at a particular interface by entering the same interface the virtual interface eth1: 2 and now everything is routed by default gw configured on eth1. eth1 Link encap:Ethernet HWaddr 0a:0e:64:18:52:72 inet addr:192.168.10.15 eth1:2 ... (1 Reply)
Discussion started by: faka
1 Replies

2. IP Networking

Route packets over specified interface

Hi, I'm quite new to unix networking and ip tables. I'm running a debian (htpc) server with two NIC's; eth0 and wlan0. I'm trying to set it up in a way that eth0 is the default interface for internet, but some processes should run through wlan0. For example, I'm using eth0 for downloads... (2 Replies)
Discussion started by: Subbeh
2 Replies

3. Linux

how to allow incoming UDP packets with iptables

I am looking for an iptables command to allow incoming UDP packets for my Linux server also is there a command I can use to set the default action for outgoing packets to accept? Thank you (1 Reply)
Discussion started by: crimputt
1 Replies

4. IP Networking

how to hack linux driver to delay incoming packets

hello, can anyone suggest how to delay the incoming packets ?? or how the packets are prossed inside the kernal and a way to make the packets wait a while?? it wud be vry helpful regards sameer (7 Replies)
Discussion started by: sameer kulkarni
7 Replies

5. Solaris

route and interface configuration in solaris

Hi, Every time when i boot my system i have to manually issue the following commands. ifconfig elxl0 plumb 192.168.200.129 netmask 255.255.255.0 up route add default 192.168.200.1 I need some help so that it should be configured permanently and i wouldn't have to manually issue... (2 Replies)
Discussion started by: malikshahid85
2 Replies

6. Solaris

Network interface down after adding static route

Please , I have a problem I have add a statis route on Solaris 10, but after this, the network interface of Server was Offline. The system is in cluster mode (3.2) route add -net 10.10.1.128 -netmask 255.255.255.128 10.10.1.51 ------------------- lo0:... (1 Reply)
Discussion started by: Ruggero
1 Replies

7. UNIX for Dummies Questions & Answers

Linux box drops the incoming packets

Hi all, I am new to Linux kernel. we have a c file that counts the no. of sends and received packets in each interface, and indicate the user about the error/drop ration of incoming and outgoing packets. in our Linux box , the incoming packets are dropped at random interval. we have our... (1 Reply)
Discussion started by: kannandv
1 Replies

8. Solaris

Route new network interface Solaris 8

Hi there, I'm trying to configure an additional network interface on Solaris 8 (eri0). The interface has been activated, but all the frames are still routed to the current default interface (ce0) I've tried following command (with various syntaxes...) unsuccessfully so far: # route add... (2 Replies)
Discussion started by: sreiniche
2 Replies

9. Solaris

Had to bounce interface to add network route

Hi All, yesterday I was trying to add a network route to my solaris 8 host using 'route add'. Everytime I tried, I kept getting the response 'network is unreachable'. I was trying all kinds of different methods, however I eventually got it to work after bouncing the interface that I was... (2 Replies)
Discussion started by: badoshi
2 Replies

10. Cybersecurity

~ IPTables : Limit Incoming UDP Packets With a Certain Length ~

Hello, I am currently trying to limit incoming UDP length 20 packets on a per IP basis to 5 a second using IPTables on a Linux machine (CentOS 5.2). Basically, if an IP is sending more than 5 length 20 UDP packet a second to the local machine, I would like the machine to drop the excess... (1 Reply)
Discussion started by: tomboy123
1 Replies
Login or Register to Ask a Question