Originally Posted by pwn
Let me restate. Lets take OpenVPN out of the equation. I have two networks connected to a linux machine, and I want to be able to pass traffic between the clients from both networks. I do not want to use masquerading, which is essentially a nat. I want to have a "full routing" type of setup, where if I connect from client A through the linux router to client B, it shows client A's IP as the connecting host and not the linux router's IP (which would happen if it was doing NAT).
I want true routing functionality.
ok, that is actually an easiest configuration.
You have Linux box with two networks, which is connected to the two ethernet cards, so when you activate those two ethernet interfaces, let's say for 192.168.5.0 and 192.168.6.0 networks, you should get in "route -n" output:
linux-xmc2:~ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.6.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Now, when client with 192.168.5.100 will try to establish connection with 192.168.6.20 it will send packets to the GW (192.168.5.1), then GW will look into routing table and will find that 192.168.6.20 belong to 192.168.6.0 network on eth1, and will send packets to eth1.