Re: [問答] 管制頻寬問題??
※ 引述《kuangs (kuangs)》之銘言:
: 小弟正在嘗試 利用Linux 來當路由器
: 配置為
: eth0 eth1 出Internet
: eth2 eth3 給LAN 使用
: 使用狀況良好 目前想開始限制頻寬
: 網路上查了一些資料 Iproute 的tc 指令可以達到這個功能
: 也親自動手操作了 但是碰到一個問題
: 如果今天我想讓eth0 & eth1 的總頻寬 限制為2M
: 也就是說當eth0 無人使用時 eth1 的頻寬可以到2M
: eth0 和 eth1 同時使用時 兩條加起來也只能到2M
: 似乎無法達成??
: tc指令只能限制單一網卡(OR 可以達成但我沒試出來??)
: 請問我該怎麼做??
在這裡先謝謝回應的大大!!!
我去找了IMQ 的相關資料 自己也動手做了設定
證實了IMQ的確可以 達到一次管理多個介面的能力
由於我是利用網路上的範例去做修改
所以有幾個地方知道怎麼設定卻不知原理
也沒找到關於TC指令的解說
導致與實際上需要的功能有落差
附上我的指令碼 一起討論 含網頁註解
-----------------------------------------------------------------------------
#一開始就清除所有的佇列規則並且忽略錯誤訊息(2>/dev/null)
tc qdisc del dev imq9 root 2>/dev/null
#定義最頂層(根)佇列規則,並指定 default 類別編號
tc qdisc add dev imq9 root handle 10: htb default 20
# 定義第一層的 10:1 類別 (總頻寬)
tc class add dev imq9 parent 10: classid 10:1 htb rate 300kbps ceil 300kbps
# 定義第二層葉類別(rate 保證頻寬,ceil 最大頻寬,prio 優先權)
tc class add dev imq9 parent 10:1 classid 10:10 htb rate 160kbps ceil 200kbps prio 0
tc class add dev imq9 parent 10:1 classid 10:20 htb rate 90kbps ceil 150kbps prio 1
tc class add dev imq9 parent 10:1 classid 10:30 htb rate 50kbps ceil 100kbps prio 2
#------定義各葉類別的佇列規則---------------
#parent 類別編號,handle 葉類別佇列規則編號
#因上面已經用htb來頻寬管理了故後面用簡單無qos的佇列規則piffo即可
tc qdisc add dev imq9 parent 10:10 handle 101: pfifo
tc qdisc add dev imq9 parent 10:20 handle 102: pfifo
tc qdisc add dev imq9 parent 10:30 handle 103: pfifo
#---------------set filter--------------------------
#FW可以依標籤將封包分類
#指定貼有 10 標籤 (handle) 的封包,歸類到 10:10 類別,以此類推
tc filter add dev imq9 parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev imq9 parent 10: protocol ip prio 100 handle 30 fw classid 10:30
#---------------set iptables mangle-----------------
iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 9
iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 9
--------------------------------------------------------------------------
1.tc class 可以只設定第一層而不設定第二層嗎??
2.保證頻寬可否為 0 意思是不給使用者保證頻寬
3.原本的範例有這條
iptables -t mangle -A POSTROUTING -d 192.168.1.123 -j MARK --set-mark 30
但是我並沒有下 改成 把eth0 導向 imq9 所以沒有handle 的問題
產生下面兩個問題
a.qdisc 這一層的功用是如何?? 測試過如果沒有三個指令都下無法限制流量
b.filter 同上 如果沒有兩個指令都設定無法限制流量
c.由於沒有設定handle 所以應該不會跑進filter 和 qdisc ???
但是結果下載速度卻只有50K~100K
跑進
tc class add dev imq9 parent 10:1 classid 10:30 htb rate 50kbps ceil 100kbps prio 2
這是甚麼原因??
依照指令碼去執行 得到結果 下載約55~70K
原本無限速 下載約300K
不好意思 !!小第資質不好 在等大大們的指教前
還是會去網路上找資料 但網路上都是講求速成
小第想要了解原理 與正確用法 還請大大們多多幫忙
※ 編輯: kuangs 來自: 218.211.253.68 (01/30 16:57)
推
01/30 18:38, , 1F
01/30 18:38, 1F
→
01/30 18:41, , 2F
01/30 18:41, 2F
→
01/30 18:41, , 3F
01/30 18:41, 3F
→
01/30 18:42, , 4F
01/30 18:42, 4F
推
01/30 18:46, , 5F
01/30 18:46, 5F
→
01/30 18:46, , 6F
01/30 18:46, 6F
→
01/30 18:46, , 7F
01/30 18:46, 7F
推
01/30 18:52, , 8F
01/30 18:52, 8F
→
01/30 18:53, , 9F
01/30 18:53, 9F
推
01/30 18:55, , 10F
01/30 18:55, 10F
→
01/30 18:56, , 11F
01/30 18:56, 11F
推
01/30 18:58, , 12F
01/30 18:58, 12F
推
01/30 19:02, , 13F
01/30 19:02, 13F
→
01/30 19:02, , 14F
01/30 19:02, 14F
→
01/30 19:03, , 15F
01/30 19:03, 15F
→
01/30 19:04, , 16F
01/30 19:04, 16F
→
01/30 19:06, , 17F
01/30 19:06, 17F
→
01/30 19:06, , 18F
01/30 19:06, 18F
→
01/30 19:07, , 19F
01/30 19:07, 19F
→
01/30 19:07, , 20F
01/30 19:07, 20F
推
01/30 19:11, , 21F
01/30 19:11, 21F
→
01/31 09:47, , 22F
01/31 09:47, 22F
推
02/01 02:14, , 23F
02/01 02:14, 23F
→
02/01 02:15, , 24F
02/01 02:15, 24F
→
02/01 02:16, , 25F
02/01 02:16, 25F
→
02/01 02:17, , 26F
02/01 02:17, 26F
推
02/01 04:13, , 27F
02/01 04:13, 27F
討論串 (同標題文章)
Network 近期熱門文章
PTT數位生活區 即時熱門文章