Difference between revisions of "Mesh/Bandwidth Quotas"

Jump to navigation Jump to search
1,504 bytes added ,  01:23, 20 February 2015
m
 
(4 intermediate revisions by 2 users not shown)
Line 3: Line 3:
notes about bandwidth monitoring and quotas
notes about bandwidth monitoring and quotas


The goal is to find a way to cap bandwidth usage, in and out.  The system can apportion the shareable bandwidth to a percentage of total bandwidth available. Here we research how this can be done.
The system can apportion the shareable bandwidth to a percentage of total bandwidth available. The goal is to find a way to cap bandwidth usage, in and out.  Here we research how this can be done.


[[Category:Monitoring]]
[[Category:Monitoring]]
[[Category:Technical]]
[[Category:Technical]]
== monitoring ==
to track bandwidth we need a way to quantify it.  Here are some likely candidates:
* [http://wiki.openwrt.org/doc/howto/bandwidthd bandwidthd] - very popular, but apparently it is resource heavy
* [http://wiki.openwrt.org/doc/howto/bwmon bmon] - [http://freecode.com/projects/bmon/ download it]
* [http://wiki.openwrt.org/doc/howto/bwmon iftop], [http://www.ex-parrot.com/pdw/iftop/ man page] - "iftop does for network usage what top(1) does for CPU usage. It listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts."
== monthly quota ==
[https://code.google.com/p/ipt-account/ ipt-account] is an iptables module capable of recording e.g. traffic usage on different interfaces and subnets.  This is what the EFF open wireless router uses. They currently use a [https://github.com/EFForg/OpenWireless/blob/0785708984cdae7ebf9ae83ae8d1d278d3a1d4fb/routerapi/get_bytecounts.py python script] that calls the iptaccount command to get usage info and display it in the browser.
The EFF wireless firmware probably intermittently calls [https://github.com/EFForg/OpenWireless/blob/02841f7f4c22bd58e6712b98de05613011076ccf/routerapi/accumulate_bytes this script] which accumulates bytes used in a UCI config file. We could do something similar but with a lua script called by a cron job that simply takes down the tunnel when the quota is reached.
There is also an iptables module called quota which can automatically enable/disable iptable rules when a quota is reached. It is not clear if it can be used to count both upstream and downstream bandwidth towards one total quota and it also has no built-in mechanism to persist the usage count between reboots.


== tc − show / manipulate traffic control settings ==
== tc − show / manipulate traffic control settings ==
Line 13: Line 28:
* Ixgr's setup using tc to fix bufferfloat: http://blog.lxgr.net/posts/2013/01/28/my-openwrt-setup/
* Ixgr's setup using tc to fix bufferfloat: http://blog.lxgr.net/posts/2013/01/28/my-openwrt-setup/


== monitoring ==
== QOS ==
to track bandwidth we need a way to quantify it. Here are some likely candidates:
[http://wiki.openwrt.org/doc/uci/qos Quality of Service (qos-scripts) configuration]


* [http://wiki.openwrt.org/doc/howto/bandwidthd bandwidthd] - very popular, but apparently it is resource heavy
Once we have the monitoring in hand we can then handle the bandwidth caps. We might want to cut off access once the limit has been reached.
* [http://wiki.openwrt.org/doc/howto/bwmon bmon] - [http://freecode.com/projects/bmon/ download it]
* [http://xmodulo.com/how-to-set-up-qos-bandwidth-rate-limit-on-openwrt.html How to set up QoS bandwidth rate limit on OpenWRT]
* [http://wiki.openwrt.org/doc/howto/bwmon iftop], [http://www.ex-parrot.com/pdw/iftop/ man page] - "iftop does for network usage what top(1) does for CPU usage. It listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts."


== ubus ==
== ubus ==
[http://wiki.openwrt.org/doc/techref/ubus OpenWrt micro bus architecture] - there is a Lua module for ubus...
[http://wiki.openwrt.org/doc/techref/ubus OpenWrt micro bus architecture] - there is a Lua module for ubus...

Navigation menu