數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 2011-11-12 11:57:07

hollowaysxp
新生
註冊日期: 2011-03-15
文章數: 46
目前積分 :   

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給指定的電腦。
https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/373944_2252501430647_1191623624_32080239_543475793_n.jpg

接下來到Administration->Commands
https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/s720x720/388543_2252501950660_1191623624_32080243_1282817801_n.jpg

到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
https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/s720x720/374865_2252501870658_1191623624_32080242_468958534_n.jpg

12M和768k
https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/s720x720/379139_2252501670653_1191623624_32080240_1270904114_n.jpg


我的一個IP和兩個IP的QOS設定下載詳見論壇附件檔

原本是鎖MAC ADDRESS作限速,但下載有限制到上傳沒限制到。所以就改限制IP
不過這種設定方法只能說是,普通的設定,因為如果使用者直接指定電腦IP速度就沒限制到了。
如果要更進階的就只好多加個IP綁定MAC ADDRESS。
-------------------至於自動取得IP應該是把ppp0改成eth1------------

WAN自動取得IP,上傳部份ppp0改成eth1我是從sshd的console查的
https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/s720x720/306344_2255818193564_1191623624_32081621_1661239137_n.jpg

eth1對應到WAN的MAC ADDRESS
https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-snc7/s720x720/317875_2252501790656_1191623624_32080241_1080486172_n.jpg



最後修改: hollowaysxp (2011-11-12 12:10:35)


附件:
Attachment Icon DD-WRT_QoS_Command.zip, 大小: 1,009 bytes, 下載: 4

離線

 

友情連結

論壇頁尾

Powered by PunBB
© Copyright 2018 Rickard Andersson
RSS Feed