Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can this be user for Live Video Streaming ? #87

Open
gaamaaresosa opened this issue Jan 30, 2023 · 15 comments
Open

Can this be user for Live Video Streaming ? #87

gaamaaresosa opened this issue Jan 30, 2023 · 15 comments

Comments

@gaamaaresosa
Copy link

gaamaaresosa commented Jan 30, 2023

Hi ale-rinaldi,

First of all thank you so much for your wonderful project.

I am trying this on
engarde server on Ubuntu VPS
engarde cliner on Window 10

What ever I try I see internet becoming dead slow after injecting engarde.
Other wise WireGuard alone works fine.

The installation guide is not clear to understand.
But some how understood the flow and started.

Btw, can we use this for live video streaming ?

@ale-rinaldi
Copy link
Member

Hello @gaamaaresosa ,

I can confirm you can use this for video streaming, as for whatever else.

Sorry if the guide is not clear, I know and I'd like to have more time to refactor the code and create a simpler setup flow. I'm sure it will happen one day.

As for the Internet becoming dead slow, the first thing I'd do is to make sure you excluded the Wireguard interface itself from Wireguard, as well as the other interfaces that are not connected to the Internet.

Please let me know if this is useful.

Thanks

@gaamaaresosa
Copy link
Author

Thank you so much for quick reply.
I doubt my cloud vps show having eth1 (Local IP)
May be that could be the issue.
I will try changing another could vps.

@ale-rinaldi
Copy link
Member

I don't think this is the issue: can you please enable the webui on engarde client and share with me a screenshot of what you see in it?

@gaamaaresosa
Copy link
Author

Client

Here is the client UI
But I couldn't take Server UI because once I starting engarde client the internet becoming very slow.

This is ping report after starting engarde client:

ping 8.8.8.8 -t

Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=237ms TTL=114
Reply from 8.8.8.8: bytes=32 time=244ms TTL=114
Reply from 8.8.8.8: bytes=32 time=245ms TTL=114
Request timed out.
Reply from 8.8.8.8: bytes=32 time=252ms TTL=114
Request timed out.
Request timed out.
Request timed out.
Reply from 8.8.8.8: bytes=32 time=241ms TTL=114

Ping statistics for 8.8.8.8:
Packets: Sent = 9, Received = 5, Lost = 4 (44% loss),
Approximate round trip times in milli-seconds:
Minimum = 237ms, Maximum = 252ms, Average = 243ms

This is my cloud VPS :

gbonding@199:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 68.XXX.161.199 netmask 255.255.255.255 broadcast 0.0.0.0
inet6 fe80::5054:fdff:fed7:2d4b prefixlen 64 scopeid 0x20
ether 52:54:fd:d7:2d:4b txqueuelen 1000 (Ethernet)
RX packets 26246115 bytes 22197690764 (22.1 GB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 88842407 bytes 72111525017 (72.1 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 127028441 bytes 84878347254 (84.8 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 127028441 bytes 84878347254 (84.8 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1423
inet 10.0.0.1 netmask 255.255.255.255 destination 10.0.0.1
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 5359467 bytes 3997983915 (3.9 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 23698227 bytes 14947911497 (14.9 GB)
TX errors 0 dropped 34 overruns 0 carrier 0 collisions 0

@ale-rinaldi
Copy link
Member

Sorry, I can't understand exactly what are the different interfaces that are connected to the Internet. For what I see, only HATWAY_ONBOARD. At this point, using Wireguard directly is enough.

For the Internet drop, just try adding engarde_Bonding to the exclusions, I think it will do it.

@Marctraider
Copy link

Did you account for MTU on endpoints? Tunnel for ipv4 is 1440, ipv6 1420 iirc.

@gaamaaresosa
Copy link
Author

gaamaaresosa commented Jan 30, 2023

MTU = 1440 is maditory on both client and server of WireGuard ?
First I am re testing WireGuard tunnel p2p alone without Engarde.
Its working...
When I ping from client to 10.0.0.1 (wg server) I get responce.
But when I ping from server to 10.0.0.2 (wg client) I don't get responce.
The ping from server to client is must right ?
I changed DigitalOcean VPS also and I see same issue.
I even pulled out HATWAY_ONBOARD main ISP on ethernet and used Mobile tethering as main internet.
Still reverse ping from server to client (10.0.0.2) not happening.
First I need to fix it, then only I should try Engarde

@Marctraider
Copy link

Marctraider commented Jan 30, 2023

Not sure about the rest, but everything that gets pushed over the tunnel needs to adjust it's MTU to 1420/1440 respectably.

Otherwise packets will get fragmented and this is primarily causing TCP protocol to fragment packets, can cause throughput issues.

I.e all my windows boxes required lowering MTU with powershell or cmd on network adapter.

For devices where this is harder to accomplish (i.e. android phone), I had to use TCP MMS clamping in firewall.

With decent cpu (older i5/i7 or celeron ~ 2.6ghz) thoughput should easily be a few hundred megabit. (Assuming two connections)

@gaamaaresosa
Copy link
Author

gaamaaresosa commented Jan 30, 2023

Hi ale-rinaldi,

I think I am managing to make engarde to work on my Ubuntu Server/Windows Client.
AVG Firewall keep blocking WireGuard interface on every start/stop. I am allowing on firewall.
But most of the time my internet not working after activating the WireGuard+Engarde.

Please clear me these doubts :

  1. I am connecting 3 SIM card based USB dongles for internet with 1Mbps upload speed each.
    I see 3 interfaced on Encarde Client UI.
    I need to do live video streaming (upload) with 2.5Mbps bandwidth.
    Can I get all these 3 dongles internet aggregated and get 2.5 to 3Mpbs ?

  2. Is this technology does Channel Bonding, Internet Aggregation, Load Balancing and Failover on
    the live video streaming ?

  3. If I disconnect and reconnect one of these USB dongle while live video stream, what will happen ?
    The live video stream goes black for a while and restarts or seamlessly works with other 2 USB dongle
    internet ?

  4. In short can we use it as an alternate solution for speedify.com ?

  5. WireGuard tunnel suppose to bypass Firewalls, but why so must trouble I face on evert Stop/Start
    Firewall produce new instance named networks and that manually I have to unblock every time ?

I appologies for these long questions and thanks in advance.

@gaamaaresosa
Copy link
Author

On my several hours of experiments the "Engarde Windows Clients (engarde-client_Windows_amd64.exe)" could not transfer the pockets to destination WireGuard client.

I use AVG Internet Security software in which I see only WireGuard interface Allow/Block option.
I set Allow and complete chain till server no issue only if I bypass "Engarde Windows Clients".

May be "Engarde Windows Client" has some bug or Windows 10 blocking "Engarde Windows Client" somewhere.

If any one faced this issue and fixed, please help me.

@Marctraider
Copy link

This application is not for aggregating of multiple internet connections to get higher speed.

@ale-rinaldi
Copy link
Member

Sorry @gaamaaresosa , at the moment engarde can aggregate multiple connections only for stability, not to improve speed. That's like the "reduntant mode" bonding of Speedify. I'm planning to add the other mode, to improve speed, but I'm struggling to find time to do that (contributions are always appreciated, btw ;D). I promise I will one day.

@gaamaaresosa
Copy link
Author

Hi ale-rinaldi,
That would be a great news.
You are a genius can do the addons easily, but as you said the time availability.
Thanks a ton !

@TalalMash
Copy link

Sorry @gaamaaresosa , at the moment engarde can aggregate multiple connections only for stability, not to improve speed. That's like the "reduntant mode" bonding of Speedify. I'm planning to add the other mode, to improve speed, but I'm struggling to find time to do that (contributions are always appreciated, btw ;D). I promise I will one day.

Engarde is a very useful tool and works well with livestreaming (added it to SmoothWAN for Speedify redundant alternative) thanks for making this public.

The advantages/disadvantages compared to Speedify redundant from my tests if it's any use:
Engarde:

  • No buffer(bloat) and low latency under saturation
  • Doesn't reduce bandwidth usage on slower WANs if the quality is good, this may be an advantage for low latency, disadvantage for those with cellular plans
  • Low/no packet ordering (? - doing more tests)

@ale-rinaldi
Copy link
Member

Thanks for your feedback @TalalMash, I hope to be able to provide the classic bonding to improve speed, I feel like it would be useful for SmoothWAN :)

About packet ordering, it's not guaranteed by Engarde itself, it's Wireguard that will drop packets which are not in order. In some specific situation this may lead to some packet loss; in fact I usually do stuff with TCP over Wireguard over Engarde :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants