890
edits
m (→monitoring) |
|||
(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. 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/ | ||
== | == QOS == | ||
[http://wiki.openwrt.org/doc/uci/qos Quality of Service (qos-scripts) configuration] | |||
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:// | * [http://xmodulo.com/how-to-set-up-qos-bandwidth-rate-limit-on-openwrt.html How to set up QoS bandwidth rate limit on OpenWRT] | ||
== 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... |