You're wanting a router.
Routers are what are used between two nets to route appropriate traffic between them.
And when you drop in a router, you get a network of networks. An Internetwork. Sound familiar?
Fortunately, you have some flex with Linux. If you don't have a router to park between the two boxes, you can add a 2nd IP to each server's interface belonging to the other's LAN.
Server 1 - eth0 192.168.1.x eth0:0 10.0.0.x
Server 2 - eth0 10.0.0.x eth0:0 192.168.1.x
Add in appropriate routes and voila - the two private networks are talking to each other. (hint: man route)
You could also just add static routes for each LAN to each machine - see previous hint
You could also drop a 2nd NIC into each server and do similar.
Now, getting the services on each server to listen on multiple IPs - doable, but depends on the service as to how.
Likely a better idea would be to re address one or the other to match a common LAN range. Make that a DMZ, stick it behind your edge device and you're in production.
So - what exactly - are you doing?