All of lore.kernel.org
 help / color / mirror / Atom feed
* Linux 5.15 + v2ray + mptcp
@ 2021-11-04 11:10 Mark Burton
  2021-11-04 11:51 ` Matthieu Baerts
  2021-11-05 10:48 ` Paolo Abeni
  0 siblings, 2 replies; 4+ messages in thread
From: Mark Burton @ 2021-11-04 11:10 UTC (permalink / raw)
  To: mptcp

Just a very brief note to say I have this working with good results:

Kernel 5.15.0-rc6

V2Ray - I hacked the ‘go’ library as follows:
diff -s go/src/net/ipsock_posix.go go1.17.1/src/net/ipsock_posix.go
138,139d137
<         family, ipv6only := favoriteAddrFamily(net, laddr, raddr, mode)
< 
143,145c141
< 	if (sotype == syscall.SOCK_STREAM && !laddr.isWildcard()) {
<             return socket(ctx, net, family, sotype, syscall.IPPROTO_TCP+256, false , laddr, raddr, ctrlFn)
<         }
---
> 	family, ipv6only := favoriteAddrFamily(net, laddr, raddr, mode)

This is far from a good fix, but for testing purposes it suffices. NOTE v2ray must listen to the correct endpoint address, not just 0.0.0.0 or [::]


I enabled fq  qdiscs and BBR congestion control.

In my case I have a VDSL line and a 4g line, I am reliably able to get very close to 100% utilisation of both lines - (I say ‘very close’ - both lines fluctuate somewhat wildly from minute to minute, so it’s nearly impossible for me to measure with any degree of certainty).

Cheers

Mark.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Linux 5.15 + v2ray + mptcp
  2021-11-04 11:10 Linux 5.15 + v2ray + mptcp Mark Burton
@ 2021-11-04 11:51 ` Matthieu Baerts
  2021-11-05 10:48 ` Paolo Abeni
  1 sibling, 0 replies; 4+ messages in thread
From: Matthieu Baerts @ 2021-11-04 11:51 UTC (permalink / raw)
  To: Mark Burton; +Cc: mptcp

Hi Mark,

On 04/11/2021 12:10, Mark Burton wrote:
> Just a very brief note to say I have this working with good results:

Thank you for sharing this positive comment!

Good to see it is working as expected instead of only seeing here
typical "I found a bug!" messages :-)

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Linux 5.15 + v2ray + mptcp
  2021-11-04 11:10 Linux 5.15 + v2ray + mptcp Mark Burton
  2021-11-04 11:51 ` Matthieu Baerts
@ 2021-11-05 10:48 ` Paolo Abeni
  2021-11-05 10:59   ` Mark Burton
  1 sibling, 1 reply; 4+ messages in thread
From: Paolo Abeni @ 2021-11-05 10:48 UTC (permalink / raw)
  To: Mark Burton, mptcp

Hello,

On Thu, 2021-11-04 at 12:10 +0100, Mark Burton wrote:
> Just a very brief note to say I have this working with good results:
> 
> Kernel 5.15.0-rc6
> 
> V2Ray - I hacked the ‘go’ library as follows:
> diff -s go/src/net/ipsock_posix.go go1.17.1/src/net/ipsock_posix.go
> 138,139d137
> <         family, ipv6only := favoriteAddrFamily(net, laddr, raddr,
> mode)
> < 
> 143,145c141
> < 	if (sotype == syscall.SOCK_STREAM && !laddr.isWildcard()) {
> <             return socket(ctx, net, family, sotype,
> syscall.IPPROTO_TCP+256, false , laddr, raddr, ctrlFn)
> <         }
> ---
> > 	family, ipv6only := favoriteAddrFamily(net, laddr, raddr, mode)
> 
> This is far from a good fix, but for testing purposes it suffices. 

Thanks for sharing your experience. Note that alternatively you can use
the mptcpize command available in the mptcpd project:

https://github.com/intel/mptcpd

for the details, please, see the related man-page.

> NOTE v2ray must listen to the correct endpoint address, not just
> 0.0.0.0 or [::]

I'm unsure I read the above correctly?!? do you mean that while
listening on 0.0.0.0 the v2ray server using mptcp does not accept
incoming subflows and/or does not signal the addresses ?!?

If so, that is quite unexpected...

Cheers,

Paolo


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Linux 5.15 + v2ray + mptcp
  2021-11-05 10:48 ` Paolo Abeni
@ 2021-11-05 10:59   ` Mark Burton
  0 siblings, 0 replies; 4+ messages in thread
From: Mark Burton @ 2021-11-05 10:59 UTC (permalink / raw)
  To: Paolo Abeni; +Cc: mptcp



> On 5 Nov 2021, at 11:48, Paolo Abeni <pabeni@redhat.com> wrote:
> 
> Hello,
> 
> On Thu, 2021-11-04 at 12:10 +0100, Mark Burton wrote:
>> Just a very brief note to say I have this working with good results:
>> 
>> Kernel 5.15.0-rc6
>> 
>> V2Ray - I hacked the ‘go’ library as follows:
>> diff -s go/src/net/ipsock_posix.go go1.17.1/src/net/ipsock_posix.go
>> 138,139d137
>> <         family, ipv6only := favoriteAddrFamily(net, laddr, raddr,
>> mode)
>> < 
>> 143,145c141
>> < 	if (sotype == syscall.SOCK_STREAM && !laddr.isWildcard()) {
>> <             return socket(ctx, net, family, sotype,
>> syscall.IPPROTO_TCP+256, false , laddr, raddr, ctrlFn)
>> <         }
>> ---
>>> 	family, ipv6only := favoriteAddrFamily(net, laddr, raddr, mode)
>> 
>> This is far from a good fix, but for testing purposes it suffices. 
> 
> Thanks for sharing your experience. Note that alternatively you can use
> the mptcpize command available in the mptcpd project:
> 

Yes - agreed.

> https://github.com/intel/mptcpd
> 
> for the details, please, see the related man-page.
> 
>> NOTE v2ray must listen to the correct endpoint address, not just
>> 0.0.0.0 or [::]
> 
> I'm unsure I read the above correctly?!? do you mean that while
> listening on 0.0.0.0 the v2ray server using mptcp does not accept
> incoming subflows and/or does not signal the addresses ?!?
> 

This is purely a result of the ‘hack’ above.  Basically the code above only requests a MPTCP socket in the (one) case that V2Ray is setting up sockets that will be used for the tunnel itself, and it does so by checking the address being used isn’t a wildcard. In other words, it’s a crap hack.

I wanted to try to be ‘clean’ about which sockets were MPTCP and which were not - in the end, that ‘cleanliness’ comes with a lot of ‘dirtiness’ :-))))

Cheers
Mark.


> If so, that is quite unexpected...
> 
> Cheers,
> 
> Paolo
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-11-05 11:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-04 11:10 Linux 5.15 + v2ray + mptcp Mark Burton
2021-11-04 11:51 ` Matthieu Baerts
2021-11-05 10:48 ` Paolo Abeni
2021-11-05 10:59   ` Mark Burton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.