学习了TC的限速,具体知识可以参考LINUX高级流量管理HOWTO中文版
 
采用HTB比CBQ要好。
 
jiangdaoyou的文章中是通过在2个网卡上限速 注:因为TC只能限制发送数据包,所以下载在内网卡上进行,而上传在外网卡上进行控制。
 
使用后发现对内网网卡限速后有副作用,导致依赖内网网卡的其他服务都非常缓慢,如samba,ftp。
 
故改用第2个脚本
并结合我的实际情况加入vip不限速的功能
 
业务需求:保证正常的网页浏览,FTP,SMTP,POP3,对其它的所有应用加以限制,以免影响正常业务的使用。

1、让交互数据包保持较低的延迟时间,也就是说上载或下载文件不会打扰SSH/telnet等。
2、上载或下载期间有合理的速率用于网页浏览,即使http属于一种大量数据传输,也不应受其它传输影响太大
3、对FTP-data限速,不会占用所有带宽
4、对SMTP,pop3限速
5、对未分类的进行限制,以免影响
6、保证上载不会影响下载,上载数据流会影响下载的速率,这是相当普遍的现象。
7、对每个IP的下载速率进行限制
8、取得空闲带宽的优先级别如:交互数据,FTP-data,smtp,pop3;网页浏览,其它业务优先级别最低
 
关于注释,脚本里面写的很详细了,就不多解释了。
 
只写一下自己添加的功能,vip限速
 
上面的脚本是对全局用户限速的。如果有少数用户不希望被限速,比如自己。嘿嘿。则添加自己的ip到vip用户中。
 
采用U32匹配。
 
tc filter add dev #DEV parent ffff: protocol ip prio 3 u32 match ip dst $VIP1 police rate 3000kbit burst 10k drop flowid :1
 
这样$VIP1的带宽就加大到3000kbit了。3000可以根据自己的线路自行调整。
 
最后把脚本放在附件里面。大家可以学习。