Specify interface for TVE

Hello,

I live in a remote area where the maximum download speed is 15mbps (WISP). Thankfully I have been successful buying two connections and combining them into a 30mbps connection. I do this using MPTCP

The problem I am running into is that as my internet now technically goes through a datacenter, I am having issues with TVE (understandably) unfortunately, its not an option for me to have the Windows machine my channels DVR runs on connected to just one of the connections.

I am asking for a feature to be added that lets you specify the interface or a proxy to be used for TVE requests. This will allow me to send TVE traffic through my ISP connection instead of the datacenter while retaining a fast connection on my Windows pc.

I think the term is 'split tunnel' networking. I basically want to send TVE through LAN2 and everything else through LAN1.

If this cannot be added to channels, could you let me know what domains/ips are used by TVE providers, and I might be able to do this at a router level.

Thanks in advanced!

Just to clarify, it's 15mbps on a good day. Since I work from home and download large projects and like watching YouTube in 4K, 30mbps is much more usable for me. Even if 15mbps is enough bandwidth for most people, there's a lot of traffic in my house so bandwidth is at a premium haha

That type of networking requirement needs to be done on the OS—not application—level.

Whichever device is bonding your interfaces needs to handle the separation/routing. This is not really some that can be handled by Channels if you are bonding/sharing interfaces.

That is what I was thinking, but I cannot find any documentation on how TVE works. I was hoping someone could tell me the domains it uses so I can do split tunnel at the router as you mentioned.

Do you know what domains or IPs/ASNs I need to route?

Thanks in advanced

I don't. And the hosts can change based upon DNS resolution.

My first thought: enable HTTP logging on the server, then sequentially tune every TVE channels and note the hosts contacted. If that doesn't work, Wireshark or some other packet sniffer can give you where requests are going.

Just as a note (but take it as you will): bonded WAN interfaces don't really work in an additive manner as one might expect. And depending upon how you configured them, you are more likely to experience packet loss—or worse—each using different hosts because of servers' load-balancing that you experience no gain in speed.

(Load balancing and round-robin are great for servers, but they aren't really conducive for clients. If you're hosting content, dual-WAN can be good; but it kinda sucks for consuming. If your main goal is ingesting data, a second WAN is best used as a rollover, not as an aggregate.)

I will run It through Charles Proxy or something similar and route via ASNs.

Ps, you're wrong about the bonding thing btw. Whenever I tell someone about how my network works, they always think I am talking about load balancing. This isn't the case.

If I go to speediest.net it actually does say 30mbps. I've helped my friend in the UK do something similar via two 80mbps ADSL connections and he is getting 120-130mbps. His latency to google is only 19ms too and we both use GeforceNow just fine, so packet loss isn't an issue.

I've also checked bufferbloat and got an A/A+ rating.

MPTCP Is how mobile networks operate, it's what allows you to be handed off between cell towers without dropping connections. It works by creating multiple TCP connections to the same server, Linux supports this via a kernel add-on and many web hosts support it too. Basically I am taking my packets and splitting them in half, sending half the data through each connection and combining them on a VPS which then sends it to the destination.

LTT has actually done a video back in 2017 on this, but they used a proprietary solution. I use something open source, which can be found here if you're interested :slight_smile: https://www.openmptcprouter.com

2016*

Then you are using some software bonding that I am not familiar with. I wish you luck, as the more esoteric your use-case, the less likely you will find aid.

(If you run Channels inside a container, you can usually bind it to a single interface that way. However, with your odd bonding setup, I do not know if individual applications/containers can access parent interfaces directly. This would run all of Channels through that interface, but I have no other suggestions for your situation.)

The streams come from CDN's, so it would be hard to pin down domains for every TVE channel.

1 Like

I'm familiar with docker networking, but as far as I am aware, the windows DVR has more features than the linux/container/macOS versions? Unless I am imagining that. Might be getting confused with Plex.

Will go double check, might end up just running it in a Windows VM bridged to my network and then route via it's macaddress

Docker doesn't support --net on Windows/Mac so bonjour doesn't work. This is what I was thinking of, will run on linux directly :slight_smile:

Is it not possible to spawn the chromium instance with a proxy specified? I think chromium supports proxies natively, if so, it shouldn't be too much effort to add a 'TVE Proxy Support' check box with some forms to specify the proxy details?

I bind my docker containers to a specifix host ip on my Synology NAS's
create a user defined bridge network 'cdvr-net' with subnet 172.18.0.0/16 gateway 172.18.0.1
and use this in my docker run command
--network=cdvr-net -p 192.168.1.4:8089:8089/tcp

So you can specify a proxy for chromium to use like so:

--proxy-server="socks5://myproxy:8080"
--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE myproxy"

Source: https://www.chromium.org/developers/design-documents/network-stack/socks-proxy/

I am not sure where the chromium binary is located, I can only find ffmpeg. Is It embedded in the channels app?

No, it is the exact same software.

I have no clue. I have used Channels solely on Linux: using systemd-nspawn, bare metal, and Podman. Docker on Windows routes everything through HyperV and WSL, which just mucks crap up.

Were I in your position, I would put a much better edge router in place between the dual-WAN and LAN networks than Windows. (Yes, I'm biased; I cannot stand MS' constant changing of Windows and its inconsistencies ... I can never find my way around! In my household it would likely be OpenBSD on an APU/ALIX, but you do you ...)