超笨問題:要使用 cbq 要載入什麼模組呢﹖

這個版面主要討論 debian 在 server 端的應用問題, server 種類繁多..舉凡 Web Server 、 File Server、 DHCP Server..等等。

版主: 阿信

超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章Tetralet » 週三 12月 18, 2002 1:29 pm

我使用了 apt-get install iproute 安裝了 iproute2,
然後使用以下指令:

tc qdisc add dev eth0 root handle 10: cbq bandwidth 100Mbit avpkt 1000

錯誤訊息:

RTNETLINK answers: Invalid argument

我猜是沒有載入 cbq 的模組的原固。
但是我找不到要載入哪一個模組 ...
可否請各位大大提示一下呢﹖

謝謝!

對了,作業環境:
Debian Linux 3.0 + 內建的 Kernel 2.4.18-bf2.4。
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章阿信 » 週三 12月 18, 2002 5:50 pm

應該是沒有清除舊指令的關係

而2.4.18-bf24小弟不知道是否有cbq support,但debian official的kernel有支援。

小弟的管理流量cbq script

#!/bin/bash

#root level
#下例為下傳:宣告佇列戒律
/sbin/tc qdisc add dev eth1 root handle 20: cbq bandwidth 10Mbit avpkt 1000

#top level
#宣告頂層的類別為: 20:0
/sbin/tc class add dev eth1 parent 20:0 classid 20:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000

#download from Linux Router max 10MKbits
#宣告客戶類別,及其頻寬大小 id:為20:100
/sbin/tc class add dev eth1 parent 20:1 classid 20:100 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 5 maxburst 20 avpkt 1000 bounded

#download from Linux Router max 240Kbits
#宣告客戶類別,及其頻寬大小 id:為20:200
/sbin/tc class add dev eth1 parent 20:1 classid 20:200 cbq bandwidth 10Mbit rate 160Kbit allot 1514 weight 16Kbit prio 5 maxburst 20 avpkt 1000

#declare the mangage queue
#宣告管理佇列
/sbin/tc qdisc add dev eth1 parent 20:200 sfq quantum 1514b perturb 15

### 限定那些 port 不鎖定速度
/sbin/tc filter add dev eth1 parent 20:0 protocol ip prio 8 u32 match ip sport 137 0xffff match ip dst 192.168.0.0/24 flowid 20:100

/sbin/tc filter add dev eth1 parent 20:0 protocol ip prio 8 u32 match ip sport 138 0xffff match ip dst 192.168.0.0/24 flowid 20:100

/sbin/tc filter add dev eth1 parent 20:0 protocol ip prio 8 u32 match ip sport 139 0xffff match ip dst 192.168.0.0/24 flowid 20:100

/sbin/tc filter add dev eth1 parent 20:0 protocol ip prio 8 u32 match ip sport 22 0xffff match ip dst 192.168.0.0/24 flowid 20:100
/sbin/tc filter add dev eth1 parent 20:0 protocol ip prio 8 u32 match ip sport 23 0xffff match ip dst 192.168.0.0/24 flowid 20:100

#向核心解釋什麼樣的封包屬於什麼樣別:除了47(Gateway)不限定

for((i=1;i<47;i=i+1))
do
/sbin/tc filter add dev eth1 parent 20:0 protocol ip prio 8 u32 match ip dst 192.168.0.$i flowid 20:200
done

for((i=48;i<254;i=i+1))
do
/sbin/tc filter add dev eth1 parent 20:0 protocol ip prio 8 u32 match ip dst 192.168.0.$i flowid 20:200
done


另外,如果要管理流量的話,可以安裝shaper,是一個cbq的script,不錯用,總比自己寫一堆指令來得好。
最後由 阿信 於 週四 12月 19, 2002 9:49 am 編輯,總共編輯了 1 次。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章Tetralet » 週四 12月 19, 2002 9:22 am

阿信 寫:no...是下錯指令。


事實上這是我第一次嘗試做流量控制。
我也覺得自己很笨。

不過,
可否提示一下指令是哪裡下錯呢﹖

阿信 寫:#!/bin/bash

#root level
#下例為下傳:宣告佇列戒律
/sbin/tc qdisc add dev eth1 root handle 20: cbq bandwidth 10Mbit avpkt 1000


我在 Terminal 下了上面那行指令,
一樣的錯誤訊息:

RTNETLINK answers: Invalid argument

而在 http://bubba.org/?option=software/cbq 裡有提到:

If you get "RTNETLINK answers: Invalid argument" errors, chances are you didn't compile in all the necessary items into the kernel.

....

if the last "tc" command above delivers this error, it means that QoS u32 queueing is not compiled into the kernel or the module isn't loaded.

所以我還是認為是模組未載入的原因哦。

不過我還是會儘力去找出其它可能的原因的。
謝謝您的回答!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章阿信 » 週四 12月 19, 2002 9:44 am

看一下/boot/config-xxxx的檔案,可以檢查一下是否有cbq的module。

小弟這個script之前會出現invalid argument的時候是因為之前沒有用tc將舊的命令刪除掉才會出現的。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章mason » 週四 12月 19, 2002 10:30 am

要作 Qos 有個工具叫做 shaper
好像比那些指令容易懂。 :-P
頭像
mason
快樂的大學生
快樂的大學生
 
文章: 547
註冊時間: 週二 9月 10, 2002 3:40 pm
來自: SIDE 3

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章阿信 » 週四 12月 19, 2002 11:21 am

shaper其實只是將那些指令包在一起而已,只不過實用性倒是比tc指令來得好多了。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章Tetralet » 週四 12月 19, 2002 2:13 pm

阿信 寫:看一下/boot/config-xxxx的檔案,可以檢查一下是否有cbq的module。


這是 Debian Linux 的 Kernel 的編繹選項嗎﹖
如果是的話,
那麼,cbq 真的沒有編進 kernel 裡 ....
看來只好重新編譯 Kernel 了。

真覺得好麻煩哦~~~
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章Tetralet » 週四 12月 19, 2002 4:01 pm

果然是重新編譯 Kernel 之後就可以了。

對不起,又在問白痴問題了。
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章阿信 » 週四 12月 19, 2002 6:09 pm

Tetralet兄不是用official debian kernel-image嗎?
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章Tetralet » 週五 12月 20, 2002 9:00 am

阿信 寫:Tetralet兄不是用official debian kernel-image嗎?


就是使用官方版本的 Kernel,
所以才覺得很奇怪呀!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章阿信 » 週五 12月 20, 2002 9:07 am

耶...我就是使用官方kernel而且都沒重新編譯呢。

那是用bf24嗎?
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章Tetralet » 週五 12月 20, 2002 9:58 am

阿信 寫:耶...我就是使用官方kernel而且都沒重新編譯呢。

那是用bf24嗎?


嗯,我用的是 bf24。
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章阿信 » 週五 12月 20, 2002 1:31 pm

bf24阿...小弟覺得bf24只是將新功能加入而已,或許可以增加安裝時的方便,如果要用到網路功能的話,還是用kernel-image-2.4。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章Tetralet » 週五 12月 20, 2002 5:25 pm

阿信 寫:bf24阿...小弟覺得bf24只是將新功能加入而已,或許可以增加安裝時的方便,如果要用到網路功能的話,還是用kernel-image-2.4。


耶?
不是 Debian Linux 3.0 預設是裝 Kernel 2.2 版的,
而只有在安裝時鍵入 bf24 才是使用 Kernel 2.4 版的?
那要如何才能使用 kernel-image-2.4 呢?
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

re:超笨問題:要使用 cbq 要載入什麼模組呢﹖

文章阿信 » 週五 12月 20, 2002 11:21 pm

我好像讓Tetralet兄誤會了,因為我裝好之後,會馬上安裝apt-get install kernel-image-2.4.xxx
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

下一頁

回到 debian server

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客