I have an OpenVPN server running on my Ubuntu 14.04 PC that is also my gateway to the internet (and is running Squid3).
I have created a bridged VPN between my LAN's eth1 and tap0. My WAN is on eth0.
Internet
|
+----------+---------+
| +-------+------+ |
| | eth0 | |
| | Routing/NAT | |
VPN-+--+--------------+--+-LAN
| | Bridging | |
| | br0 | |
| | tap0 eth1 | |
| +--------------+ |
+--------------------+
My bridge works perfectly connecting VPN clients to my LAN devices and the server itself.
OpenVPN clients can access the internet through the bridge if they connect to the HTTP proxy (Squid3).
What I am struggling with is how to give the OpenVPN clients access to the internet if they don't use the HTTP proxy, or if they aren't using http. What it looks like is happening is that the bridge is sending ALL packets to my LAN, when the ARP fails for an internet address (which is not unreasonable for a bridge!); but the trouble with this is that my gateway is the bridge (I don;t have a separate gateway on my LAN). I therefore believe I have Bridge/Router (brouter) scenario.
I have looked into Proxy-Arp and ebtables (with Ubuntu 14.04 the br_netfilter module needs manually loading), but have been unsuccessful in getting it working so far. I am also unsure which would be the best to solve my problem in the most efficient way (assuming there is a way 😉 )?