openmptcprouter
openmptcprouter copied to clipboard
What would cause some VPN traffic from client to go through only one uplink?
OMR is sitting after opnsense router as gateway that has some devices that use VPN (OpenVPN & Wireguard). Some of these connections are not aggregated, some of them are. Trying to figure out why this happens.
V2Ray is used on OMR as it provides best overall performance from my testing (and as it supports UDP too).
Two types of VPN routing on the network:
- Client with VPN connection --> opnsense firewall with OMR as default gateway --> OMR
- Client without VPN connection --> opnsense interface (outbound NAT) --> OpenVPN / Wireguard connection as gateway for all outgoing connections --> OMR as gateway.
This is my testing:
- OpenVPN over UDP on client = No aggregation / only one uplink used
- OpenVPN over UDP on opnsense = No aggregation / only one uplink used
- OpenVPN over TCP on client = Aggregation / All links are used
- OpenVPN over TCP on opnsense = No aggregation / only one uplink used
- WireGuard UDP on client = No aggregation
- WireGuard UDP on opnsense = No aggregation
All of these devices (and sometimes entire subnets) need to utilize a different VPN connection, so configuring VPN on the VPS is not an option, configuring VPN on OMR is also not an option as it's not aware of different subnets/devices (it's basically a single uplink/wan on opnsense), it also will not be able to handle all of this on its own.
So as you can see, aggregation of traffic that's encapsulated in VPN tunnel only works when OpenVPN over TCP is used on client. But if an entire subnet is routed through the same OVPN-over-TCP on router before OMR, it's not aggregated, while openvpn configuration is the same.
What could be happening here? I'm especially curious why OVPN-over-TCP is aggregated when tunnel is established from client, but is not aggregated when tunnel is established on router before OMR. System log did not really point in any right direction