tomeshnet / toronto-community-network

Organization, planning, and information related to Toronto's community network operation
https://tomesh.net/
21 stars 1 forks source link

Determine regulating mechanism for Network Bandwidth and Congestion #85

Open Pedro-on-a-bike opened 4 years ago

Pedro-on-a-bike commented 4 years ago

This initial comment is collaborative and open to modification by all.

Task Summary

There is currently no defined mechanism to regulate bandwidth and therefore alleviate congestion on the network. There is also no mechanism to define and discriminate traffic. The network is currently unrestricted and will assume full bandwidth for all users until saturated.

Moving forward, say if we are going to adopt a model where we suggest a donation to help support the network, are we then going to have a blanket QoS? Or traffic shape all connections to 15Mbps? What happens if one node requires more bandwidth than another? How do we prioritize traffic? In addition, how do we disincentivize users from saturating bandwidth and just leaving YouTube on all day at 4K. Do we then switch to PPPoE and define a tiered model? Or do we use a pay-per-use model to achieve the same behaviour?

🎟️ Re-ticketed from: # 📅 Due date: N/A 🎯 Success criteria:

[MAIN TEXT HERE]

To Do

darkdrgn2k commented 4 years ago

I think it may be to early to select a traffic control schema because we have no traffic and therefore don't really know what we need to do.

However I'm listing several traffic shaping options and as i understand them pros/cons. Not a definite list and some information may be inaccurate. Please add/correct as needed!

In a large network EACH DEVICE must follow the same traffic control standard for it to be effective. This is a large challenge with traffic shaping is the mesh topology. This is also the same reason QoS over the internet will not work. However it can still be used by sections of the mesh to deal with transit over their little part.

Traffic Shaping Options - Overview

UNMS

UNMS allows you to control the flow of traffic on Ubiquiti devices using their proprietary interface. Manipulates devices to facilitate the flow.

PRO

Con

PPPoE

Used by many isps in Ontario. Creates a tunnel over LAYER 2 back to ISP controlled server. Traffic shaping added there

Pro

Con

TC

TC is Linuxes traffic control/QoS interface (like iptables is for firewalls). It support many different mechanisms for different applications.

Pro

Con


TC Modules

Class Based Queuing - CBQ

Hierarchical Token Buckets - HTB

https://www.linuxjournal.com/article/7562

HTB is meant as a more understandable, intuitive and faster replacement for the CBQ qdisc in Linux. (lower CPU usage & better help). Both CBQ and HTB help you to control the use of the outbound bandwidth on a given link. Both allow you to use one physical link to simulate several slower links and to send different kinds of traffic on different simulated links. In both cases, you have to specify how to divide the physical link into simulated links and how to decide which simulated link to use for a given packet to be sent.

CoDel

CoDel is a novel “no knobs”, “just works”, “handles variable bandwidth and RTT”, and simple AQM algorithm.

Common Applications Kept Enhanced - CAKE

Cake is the rollup of 3 years of deployment experience of the htb + fq_codel based sqm-scripts SQM for aqm/fq/qos inbound and outbound bufferbloat management.

https://www.bufferbloat.net/projects/codel/wiki/Cake/

darkdrgn2k commented 4 years ago

I think before most of these questions can be answered we need to figure out how to actually onboard a person. What is required, what kind of experience do they even get being alone on the network.

I think initially a blanket suggested donation is the easiest way to get things started. We can update the ToS to include some verage about maintaining by use of traffic control or something.

Worst case scenario if we need to move to a more specific method we can at WORST grandfather the early adopters before we piviot to a different model.

Pedro-on-a-bike commented 3 years ago

To add to this, based on other discussions we have had and testing, the simplest solution right now to avoid congestion and make sure bandwidth is available to all members is to add a traffic shaping policy on all CPEs to limit the TX and RX rates to 25Mbps for individual users and adjust as needed and limit the total number of users that have access to a specific Access Point. At this current time, we are using Ubiquiti equipment for all access points and the CPEs require credentials to establish a connection over AirMax and this can be managed through the MAC Address allowed list as no (LAP-Lite) Access Point should have more than 20 CPEs assigned to it. Since both the network administrations and the end user will need remote access to the CPE, it is probably easiest at this time just to have a terms of use and "honor" system for the time being that all CPEs on Point to Multi Point links must have some sort of traffic shaping policy until we establish a long term plan for our "terms of use" policy.