openmptcprouter icon indicating copy to clipboard operation
openmptcprouter copied to clipboard

Request: PROXY support for TCP VPN protocols

Open lars18th opened this issue 5 years ago • 22 comments

Hi @Ysurac ,

In my environment some of my Wan connections are using proxies (Socks4 and HTTP). So I suggest if you can add support for PROXIES using VPN protocols with TCP connections.

Please! :wink:

lars18th avatar Feb 20 '20 14:02 lars18th

This issue is stale because it has been open 120 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Sep 08 '20 19:09 github-actions[bot]

Hi @Ysurac ,

Please don't close this Request! What I'm requesting is that you will support for WAN connections, not only plain IP connections, or PPPoE, but VPN connections too. My suggestion is to add the ability to "mark" any network connection as "WAN for OMR" (and not use others for this objective).

I hope you agree. Regards.

lars18th avatar Sep 09 '20 09:09 lars18th

It's already possible to mark any connection as available by enabling Multipath on it.

Ysurac avatar Sep 09 '20 09:09 Ysurac

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Dec 30 '20 15:12 github-actions[bot]

Hi @Ysurac

It's already possible to mark any connection as available by enabling Multipath on it.

A multipath connection implies that's a WAN connection?

lars18th avatar Jan 02 '21 10:01 lars18th

This implies that it's a connection that should have direct Internet access.

Ysurac avatar Jan 02 '21 12:01 Ysurac

This implies that it's a connection that should have direct Internet access.

Why? I can think on almost two different cases in which this is not true:

  1. When the "target" network doens't have "direct" Internet access, but access through a proxy.
  2. When the "target" network is not Intenert, but a corporate network with multiple subnetworks with LAN private addresses.

My suggestion is simple: Please, not enforce that a connection labeled "WAN" (in the OMR) is a "direct connection to Internet". It only needs to be a connection with: 1) Multipath support; 2) And second, with the presence of a gateway server (that can or cannot have Internet access).

Regards.

lars18th avatar Jan 02 '21 14:01 lars18th

What you want exactly ? WAN is a connection to internet, at least it's not a LAN connection. All WANs should have access to same WAN (internet or any WAN). Then I don't enforce anything, if a connection have multipath enabled then some route needed for multipath to work are set.

Ysurac avatar Jan 02 '21 15:01 Ysurac

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Apr 03 '21 19:04 github-actions[bot]

What you want exactly ?

I want ot use OMR to route to PRIVATE LANs only.

WAN is a connection to internet, at least it's not a LAN connection. All WANs should have access to same WAN (internet or any WAN). Then I don't enforce anything, if a connection have multipath enabled then some route needed for multipath to work are set.

IMHO, the current implementation has the assumption that the WAN can only be achieved over the Multipath connection. Why this? Why not provide a method to leave the user to use any route over any link? For example, perhaps by default OMR thinks the best is to route all traffic over the multipath route to the server if it's available. But some user perhaps wants to route only some networks over this multipath link to the remote server and leave other networks (including the default route) to go over another link.

Please, consider this "complex use case". Thank you.

lars18th avatar Apr 06 '21 12:04 lars18th

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Jul 06 '21 19:07 github-actions[bot]

Hi @Ysurac ,

I hope at some time you will enhance the OMR to support PRIVATE REMOTE NETWORKS. The current implementation doesn't support directly these two use cases:

  1. When the "public" server has to be connected using a proxy. That's the case when the VPN protocol requires to run over a proxy or private connection (and for this case the strong encryption is useless and a wasting of power resources).
  2. When the "public" server not provides a connection to the public Internet but to a group of private networks. Then the "WAN" connection is not the "multipath VPN connection" but a regular single WAN. In this case you only want to route specific LANs over the VPN connection.

So in a simple graph:

               Internet
                  |
                  |
Client ----> LAN Router 1 ----> OMR Router --/MP-VPN/--> Private LAN
                  |
                  |
             LAN Router 2
                  |
                  |
               Internet

In this case the CLIENT is using these routes:

  • Default: Using LAN Router 1 (or 2) as default gateway.
  • Private LAN: Using OMR Router as a gateway.

And with this constrains:

  • The OMR Router uses the default gateway of the local LAN for the WAN connection.
  • The VPN connections of the OMR Router use a PROXY (or tunnel).

I hope you will want to support this. Regards.

lars18th avatar Jul 07 '21 07:07 lars18th

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Oct 05 '21 19:10 github-actions[bot]

Hi,

This request continues to be valid. Please, don't close it! The current configuration doesn't provide support to connect to private LANs "only". Please, add support to "Not Route to Internet over the Multi-path connection".

Thank you!

lars18th avatar Oct 07 '21 17:10 lars18th

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Jan 05 '22 19:01 github-actions[bot]

Hi,

This request is still valid. Please, consider it.

lars18th avatar Jan 10 '22 08:01 lars18th

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Apr 10 '22 19:04 github-actions[bot]

Hi,

This request is still valid. Please, consider it.

lars18th avatar Apr 11 '22 09:04 lars18th

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Jul 11 '22 20:07 github-actions[bot]

Hi,

This request is still valid. Please, consider it.

lars18th avatar Jul 12 '22 06:07 lars18th

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Oct 10 '22 19:10 github-actions[bot]

Request still valid.

lars18th avatar Oct 11 '22 03:10 lars18th

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Jan 10 '23 19:01 github-actions[bot]

Hi @Ysurac ,

I continue requesting this. Please, consider it!

lars18th avatar Jan 11 '23 13:01 lars18th

I'm also adding in my 2 cents to this. In my use case scenario using cellular WAN connections via a tethered phone, for some devices/carriers it may be necessary to use something like PDAnet to not get hard throttled to abysmal speeds even on speedy, uncapped LTE/5G connections. However how these usually work for clients that cannot run their own software is using a simple proxy server per their documentation linked below (It indicates this primaryly works over Wifi Direct. I have not had a chance to see if this also applies via USB which is my preferred connection method here).

http://pdanet.co/a/wifi/others.php

Ideally the proxy use would be isolated to each individual WAN connection and just OMPTCP's internal use to gain a functional, full speed WAN link and not interfere with the other functionality.

cr08 avatar Jan 27 '23 15:01 cr08

Expanding on my comment above and this may stray off of the intended needs for the OP, but for anyone else aiming for unthrottled cellular connections, I found a working alternative at least for Android devices:

There's an application called EasyTether which basically does the same as PDAnet. However they provide installable network drivers for various operating systems to accomplish the same thing instead of using a proxy. They have also provided compiled packages for OpenWRT. The files are all relatively dated with the latest version of the OpenWRT drivers provided labelled for version 19.07.3+. However testing it seems to function just fine on the current version OMPTCP uses. This is with a Pi 2B test bench. And their OpenWRT packages seem to cover the wide range of platforms OpenWRT already supports. However being dated, it may be missing some. The obvious current exception is no Pi 4 support. But in the end it just shows up as another available network interface to use and allows full unthrottled bandwidth.

Figured I'd toss this out for anyone who may come across this.

cr08 avatar Jan 29 '23 00:01 cr08

I am glad to hear others asking for the same thing: please PROXY suppport for all VPN protocols. 😢

lars18th avatar Jan 29 '23 18:01 lars18th

For now, the only possible solution I can see is to use MPTCP over VPN with OpenVPN as VPN with http proxy configured. But this will be slow...

Ysurac avatar Jan 29 '23 18:01 Ysurac

Hi @Ysurac ,

For now, the only possible solution I can see is to use MPTCP over VPN with OpenVPN as VPN with http proxy configured. But this will be slow...

Why? You can proxy any TCP stream with a HTTP or Socks4 proxy. And any UDP transport with a Socks4/5 proxy. So in fact ALL VPN protocols used by OMR could operate using proxies.

lars18th avatar Jan 29 '23 18:01 lars18th

Hi @Ysurac ,

I feel the problem with the PROXY support could be a miss interpretation of the technical aspects. Please, see this environment:

CLIENT --/ TCP /--> OMR (mTCP support) --/ mTCP path 1 /--> PROXY-1 --> OMR-Server (mTCP support)
                                      |--/ mTCP path 2 /--> PROXY-2 --^                          

Then my question is: The PROXY-1 and PROXY-2 servers require mTCP support or not? My feeling is that the mTCP support is not required for intermediate proxies. This is true or not?

And another question is why you want to execute a TCP VPN protocol over the top if you can directly transport the TCP stream over a TCP connection. TCP-over-TCP is a bad idea, however STREAM-over-TCP is not a problem... that's is what SSH is doing with forwardings.

lars18th avatar Feb 20 '23 07:02 lars18th