We want to route all traffic from one pc to a local virtual device (TAP-Win32 Adapter which is also used by OpenVPN) and then from there to another tap device on a public server. after that all packets need to be processed from the server and responces should be sent back to their own clients by writing them on server's tap device.
Our problem is mainly with the part packets have to be sent to their destinations from the server. So far, we know two solutions for that, tunneling and bridging connections. apparently tunneling requires packetizing TCP streams which can get quite complex, however, since we're not planning to modify packets (just routing them) we thought bridging tap device on the server with its ethernet interface is a better and simpler solution. after trying ethernet bridging, we figured that the bridge connection uses IPv6 and not IPv4 and it didn't have any internet access (perhaps we did it wrong). now we're kinda confused!
First, I'd be glad if someone can give us some clue on how to solve this problem with bridging. also I'd be grateful if you can guide us with our main objective (simply routing all traffic from multiple clients via a single server with public ip) even if it requires tunneling.