#1 2011-11-12 11:57:07
- hollowaysxp
- 新生
- 註冊日期: 2011-03-15
- 文章數: 46
- 目前積分 : 1
DD-WRT 手動iptables+tc做QoS頻寬管理
因為買了一陣子了ASUS 520GC,刷了DD-WRT後,在DD-WRT內的QoS功能每次設定後網路變慢之外....而且IP分享器整台就怪怪的。
就連設定的速度都到不了....而且測試時網路都不能用。
這幾天下大雨自己到Google找了一下,大部份的網站建議使用iptables+tc,做QoS限速時,昨天同時用BT下載3個linux的iso檔,有QoS限速開網頁速度都還可以接受,有時候開很快,有時候網頁會停頓個3~5秒之後網頁一次打開。我限制Session是預設的4096。
首先是用一個叫做wrt54 script generator的東西可以產生頻寬Qos的一些文件,但產生出來下載限制有用上傳沒用。
所以找了一些資料自己修改就變成我要的使用方式。
首先你必須先要有要限制速度的電腦的MAC ADDRESS。可在Windows電腦用ipconfig /all或是在DD-WRT的DHCP裡觀察。
到Service頁面可以新增MAC ADDRESS指定一個IP給指定的電腦。
接下來到Administration->Commands
到Commands貼上要使用的iptables指令,然後點下方的Save Firewall
##-------------------------2個IP做QOS限速-------------------------
##==============
## br0:Download下載速度
##==============
TCA="tc class add dev br0"
TFA="tc filter add dev br0"
TQA="tc qdisc add dev br0"
SFQ="sfq perturb 10"
tc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb
tc class add dev br0 parent 1: classid 1:1 htb rate 12288kbit #設定你的總下載速度,以我50M為例,我是分出12M速度
#第一組IP的QOS限速rate是保證頻寬,ceil是最大頻寬,在這邊我第一組IP設定12M
##藍色的為限制速度,紅色2為優先權0最優先,優先權最低4
$TCA parent 1:1 classid 1:10 htb rate 12288kbit ceil 12288kbit prio 2
$TQA parent 1:10 handle 10: $SFQ
$TFA parent 1:0 prio 2 protocol ip handle 10 fw flowid 1:10
#IP修改成你的IP
iptables -t mangle -A POSTROUTING -d 192.168.11.115 -j MARK --set-mark 10
#第二組IP我設定10M
$TCA parent 1:1 classid 1:11 htb rate 10240kbit ceil 10240kbit prio 2
$TQA parent 1:11 handle 11: $SFQ
$TFA parent 1:0 prio 2 protocol ip handle 11 fw flowid 1:11
iptables -t mangle -A POSTROUTING -d 192.168.11.237 -j MARK --set-mark 11
##這邊可以看到綠色的10和11就是設定的編號!最後可用iptables設定指定IP,用--set-mark 編號來做限速
##不過上述的下載速度我隨便設定的,因為總下載12M,分給兩個人用平均分配應該是6M,或是9M+3M總和為12M
##一個12M一個10M就超過了下載總速度
##==============
## ppp0:Upload 上傳速度
## ppp0:PPPoE ppp0為PPPOE撥號上網,如果是ADSL或是現在的光世代上網前需要做PPPOE撥號這邊就是ppp0
##如果是自動取得IP可能會是eth1實際上要看interface列表
##==============
TCAU="tc class add dev ppp0"
TFAU="tc filter add dev ppp0"
TQAU="tc qdisc add dev ppp0"
tc qdisc del dev ppp0 root
tc qdisc add dev ppp0 root handle 1: htb
##總上傳速度我設定1024kbit
tc class add dev ppp0 parent 1: classid 1:1 htb rate 1024kbit
#上傳512kbit為保證速度,ceil最大上傳768kbit
$TCAU parent 1:1 classid 1:10 htb rate 512kbit ceil 768kbit prio 2
$TQAU parent 1:10 handle 10: $SFQ
$TFAU parent 1:0 prio 2 protocol ip handle 10 fw flowid 1:10
iptables -t mangle -A PREROUTING -s 192.168.11.115 -j MARK --set-mark 10
$TCAU parent 1:1 classid 1:11 htb rate 512kbit ceil 768kbit prio 2
$TQAU parent 1:11 handle 11: $SFQ
$TFAU parent 1:0 prio 2 protocol ip handle 11 fw flowid 1:11
iptables -t mangle -A PREROUTING -s 192.168.11.237 -j MARK --set-mark 11
##上傳限速的部份就比較屬於正確的,上傳總共分1024kbit就是1M,兩個IP保證頻寬512k就是總和1M。
##那768k最大頻寬就是上傳速度最大是768kbit,如果A電腦上傳檔案跑768kbit B電腦正常上網上傳用很少,A電腦就可以使用最大頻寬,如果A電腦傳擋案,B電腦也在傳檔案就會變成頻寬吃緊,A和B兩台電腦都會變成512Kbit在上傳檔案,這樣設定比較正確
----------------------檔案結尾-------------------------
因為我家IP分享器我只有再用無線網路,有線接到另一台IP分享器,因為另一台IP分享器那邊網路不是我再用的,因為那邊又一下常把我網路頻寬吃滿(之前10M/2M)那個上傳2M頻寬被吃完,所以我就要做限速。我家都用撥號上網,換IP也方便尤其是JDownload
一個IP的設定QOS文件
-----------------------------
##==============
## br0:Download
##==============
TCA="tc class add dev br0"
TFA="tc filter add dev br0"
TQA="tc qdisc add dev br0"
SFQ="sfq perturb 10"
tc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb
tc class add dev br0 parent 1: classid 1:1 htb rate 12288kbit
$TCA parent 1:1 classid 1:10 htb rate 12288kbit ceil 12288kbit prio 2
$TQA parent 1:10 handle 10: $SFQ
$TFA parent 1:0 prio 2 protocol ip handle 10 fw flowid 1:10
iptables -t mangle -A POSTROUTING -d 192.168.11.246 -j MARK --set-mark 10
##==============
## ppp0:Upload
## ppp0:PPPoE
##==============
TCAU="tc class add dev ppp0"
TFAU="tc filter add dev ppp0"
TQAU="tc qdisc add dev ppp0"
tc qdisc del dev ppp0 root
tc qdisc add dev ppp0 root handle 1: htb
tc class add dev ppp0 parent 1: classid 1:1 htb rate 1024kbit
$TCAU parent 1:1 classid 1:10 htb rate 1024kbit ceil 1024kbit prio 2
$TQAU parent 1:10 handle 10: $SFQ
$TFAU parent 1:0 prio 2 protocol ip handle 10 fw flowid 1:10
iptables -t mangle -A PREROUTING -s 192.168.11.246 -j MARK --set-mark 10
---------------------------檔案結尾---------------------------------------
測試結果10M 上傳768
12M和768k
我的一個IP和兩個IP的QOS設定下載詳見論壇附件檔
原本是鎖MAC ADDRESS作限速,但下載有限制到上傳沒限制到。所以就改限制IP
不過這種設定方法只能說是,普通的設定,因為如果使用者直接指定電腦IP速度就沒限制到了。
如果要更進階的就只好多加個IP綁定MAC ADDRESS。
-------------------至於自動取得IP應該是把ppp0改成eth1------------
WAN自動取得IP,上傳部份ppp0改成eth1我是從sshd的console查的
eth1對應到WAN的MAC ADDRESS
最後修改: hollowaysxp (2011-11-12 12:10:35)
附件:
DD-WRT_QoS_Command.zip, 大小: 1,009 bytes, 下載: 4
離線