嵌入式linux qos tc,iptables和tc脚本实现智能QOS

为了解决多机共享带宽,疯狂研究QOS,正好使用的是linux路由器,于是对iptables和tc作了一番研究。

网上浏览教程无数,TC,HTB,NETFILTER,IMQ的官网都去过,《Iptables 指南

1.1.19》和《linux高级路由与流量控制》都翻烂了,

自觉大有长进,写了个所谓的“智能QOS”脚本。(还不会系统编程啊)

所谓“智能QOS”,就是依据当前内网主机数的动态变化指定不同的QOS流量控制策略。只需要设定接入带宽参数即可很好控制流量。

脚本中用到一些模块如BCOUNT,ipt_length,IMQ等需要预先装载。

脚本对“小包”和http浏览作了一些优化。

规则如下:

1.依据路由器ARP表的地址数判断当前在线主机数。

2.在线1PC,不限速;PC增加时,动态分配最小保证速率,单IP最大下载速率为总下载速率60%,但实际下载速率可能会超过这个值,因为还有来自小包和http下载的速。

3.对小包和网页浏览做了优先,利用iptables的BCOUNT模块区分网页浏览和http下载。

4.单IP连接数限制,默认每个内网IP地址TCP限制60,UDP限制80。为了防止连接数占满后无法打开网页等情况,对

53,80等常见端口作了例外。(可自己添加一些常见游戏端口,这样可以一边下载一边玩游戏)

5.对在线主机数动态判定加入反震荡措施(主机数变化只有1个时候不改TC策略,但1PC→2PC和2PC→1PC例外)

用法:分两部分,第一个较长的脚本只需要执行一次,主要作用是设定iptables规则生成一些脚本文件,

另一个脚本为定期执行脚本,作用是定期(比如1分钟)检测ARP地址表并作出相应的TC策略。(需要自己使用crontab等命令设置为例行任务)

参数修改:

1.export NET=192.168.1.0/24\n #内网IP网段

export UIP="192.168.1."\n #内网IP前缀

export IPS=2\n #开始IP地址为192.168.1.2

export IPE=8\n #结束IP地址为192.168.1.8

2.ADSL用户:如果你申请带宽是2M,那么N=2(脚本默认),如果是4M,把第2行

N=2\n改为N=4\n就OK了。

3.小区宽带或其他情况:修改UPN参数,脚本默认是40,如果你小区宽带上传100KB/S,那么把第3行

UPN=40\n改为UPN=100\n。

4.其它一些参数:

export UPLOADC=8kbps\n #单机最大上传速率(不包括小包和http上传)

export DOWNN=$((N*90))\n

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值