作者 主題: [分享]CBQ 筆記  (閱讀 43049 次)

0 會員 與 1 訪客 正在閱讀本文。

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 於: 2003-06-19 17:30 »
CBQ 筆記

在下拜讀了如下,關於CBQ的相關文章.
http://netcity3.web.hinet.net/UserData/vegalou/qos-4.html
http://www.study-area.org/tips/adv-route/Adv-Routing-HOWTO-8.html
http://www.study-area.org/tips/cbq_init/cbq_init.htm
http://www.study-area.org/tips/cbq.htm
http://phorum.study-area.org/viewtopic.php?t=10356&highlight=cbq.init

而下面的內容是自己的實作筆記!


下面是我用tc(traffic control)指令,做的一些簡單練習,沒什麼,只是自己做個紀錄,若要有較深入的了解,請看Advanced Routing HOWTO中的說明,重點會放在cbq.init上.

1.宣告頂層戒律
2.宣告頂層類別
3.宣告自訂類別
4.宣告管理佇列
5.定義什麼封包屬於什麼類別


1.宣告頂層戒律
tc qdisc add dev eth1 root handle 10: cbq bandwidth 10Mbit avpkt 1000
宣告root discipline(頂層戒律):總支配頻寬為10Mbit,handle為10(handle 10的"10"像是代表頂層戒律的名字)

2.宣告頂層類別
tc class add dev eth1 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
宣告頂層類別:parent 10:0(表示源自handle 10),classid 10:1(10:1代表該頂層類別的名字)

3.宣告自訂類別
tc class add dev eth1 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate 1Mbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 1000 bounded
宣告此類別名稱為10:100,parent 10:1(表示源自handle 10),rate 1Mbit(表示撥出1Mbit),bounded(表示不能超過rate的限制)

4.宣告管理佇列
tc qdisc add dev eth1 parent 10:100 sfq quantum 1514b perturb 15
宣告queue的工具為sfq

5.定義什麼封包屬於什麼類別
tc filter add dev eth1 parent 10:0 protocol ip prio 25 u32 match ip dst 216.59.185.249 flowid 10:100
宣告filter的工具為u32,過濾由eth1出去目的為216.59.185.249的封包.

刪除
tc filter del dev eth1 parent 10:0 protocol ip prio 25 u32 match ip dst 216.59.185.249 flowid 10:100
tc qdisc del dev eth1 parent 10:100 sfq quantum 1514b perturb 15
tc class del dev eth1 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate 1Mbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc class del dev eth1 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
tc qdisc del dev eth1 root handle 10: cbq bandwidth 10Mbit avpkt 1000


自eth1流出目的為216.59.185.249的流量限制在5KB
tc qdisc add dev eth1 root handle 10: cbq bandwidth 10Mbit avpkt 1000
tc class add dev eth1 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
tc class add dev eth1 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate 50Kbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc qdisc add dev eth1 parent 10:100 sfq quantum 1514b perturb 15
tc filter add dev eth1 parent 10:0 protocol ip prio 25 u32 match ip dst 216.59.185.249 flowid 10:100

刪除
tc filter del dev eth1 parent 10:0 protocol ip prio 25 u32 match ip dst 216.59.185.249 flowid 10:100
tc qdisc del dev eth1 parent 10:100 sfq quantum 1514b perturb 15
tc class del dev eth1 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate 50Kbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc class del dev eth1 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
tc qdisc del dev eth1 root handle 10: cbq bandwidth 10Mbit avpkt 1000

自eth0流出來自216.59.185.249的流量限制在3KB
tc qdisc add dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000
tc class add dev eth0 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
tc class add dev eth0 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate 30Kbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc qdisc add dev eth0 parent 10:100 sfq quantum 1514b perturb 15
tc filter add dev eth0 parent 10:0 protocol ip prio 25 u32 match ip src 216.59.185.249 flowid 10:100

刪除
tc filter del dev eth0 parent 10:0 protocol ip prio 25 u32 match ip src 216.59.185.249 flowid 10:100
tc qdisc del dev eth0 parent 10:100 sfq quantum 1514b perturb 15
tc class del dev eth0 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate 30Kbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc class del dev eth0 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
tc qdisc del dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000




自eth0及eth1流出,來源及目的為216.59.185.249的流量限制為1KB
tc qdisc add dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000
tc class add dev eth0 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
tc class add dev eth0 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate 10Kbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc qdisc add dev eth0 parent 10:100 sfq quantum 1514b perturb 15
tc filter add dev eth0 parent 10:0 protocol ip prio 25 u32 match ip src 216.59.185.249 flowid 10:100
tc filter add dev eth1 parent 10:0 protocol ip prio 25 u32 match ip dst 216.59.185.249 flowid 10:100

刪除
tc filter del dev eth1 parent 10:0 protocol ip prio 25 u32 match ip dst 216.59.185.249 flowid 10:100
tc filter del dev eth0 parent 10:0 protocol ip prio 25 u32 match ip src 216.59.185.249 flowid 10:100
tc qdisc del dev eth0 parent 10:100 sfq quantum 1514b perturb 15
tc class del dev eth0 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate 10Kbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 1000 bounded
tc class del dev eth0 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate 10Mbit allot 1514 weight 1Mbit prio 8 maxburst 20 avpkt 1000
tc qdisc del dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000

cbq.init

一開始了解CBQ(Class Based Queueing)時是使用tc指令一行一行下宣告相關的設定,但tc指令實在不好下,參數很多不好了解也不好維護,而來用了cbq.init,發現好用多,真是個不錯的功具.

cbq.init是一個shell script,能較簡單的設定CBQ是它存在的目的,用法也很容易.
其實就是給cbq.init一些必要的條件,來產生出相同目的的tc指令.

1.下載cbq.init於/sbin
2.建立cbq目錄及建立須要檔案.
3.執行


1.下載cbq.init於/sbin

http://freshmeat.net/projects/cbq.init
到這下載cbq.init目前版本為v0.7.2.

複製cbq.init-v0.7.2到/sbin為cbq.init
更改權限為700

2.建立cbq目錄及建立須要檔案.

建立/etc/sysconfig/cbq目錄(若不存在請自行建立).
目錄中建立的檔案,請參考
http://netcity3.web.hinet.net/UserData/vegalou/qos-4a.html
特別注意:文中提到0002到ffff的範圍,若有錯在執行cbq.init start時不會有錯誤訊息,但下cbq.init compile去看,
會得到類似如下的錯誤.

**CBQ: class ID of cbq-0001.scribe must be in range <0002-FFFF>!

文中關於檔案中的內容有{}的那行不用寫到檔案中.

3.執行

最後的執行時,可以先cbq.init compile看看,輸出的tc 指令為何,沒問題的話就cbq.init start啟動,停止就用cbq.init stop
可以下cbq.init 看說明.

以下面的條件及目的來建立,cbq目錄中的檔案,

1.gateway連internet的頻寬為512Kb
2.要管理的服務有4個,分別為http(80 port),smtp(25 port),php3(110 port),ftp data(passive mode port 20),這裡指的都是internet上server的port,
但client連到這些server 的port都是挑1024以上的port,這是要了解的地方.
3.假設local都是public ip (無nat)
4.頻寬分配:
  110port 分配 192Kb
  25port 分配 128Kb
  80port 分配 128Kb
  20port 分配 64Kb
5.gateway eth1與internet 介接,eth0與local public 介接.

建立檔案:

vi cbq-0002.eth0-110

代碼: [選擇]
DEVICE=eth0,100Mbit,512Kbit
RATE=192Kbit
WEIGHT=7Kbit
PRIO=5
RULE=:110,
BOUNDED=yes
ISOLATED=yes



vi cbq-0003.eth0-80

代碼: [選擇]
DEVICE=eth0
RATE=128Kbit
WEIGHT=5Kbit
PRIO=7
RULE=:80,
BOUNDED=yes
ISOLATED=yes
PARENT=0002



# vi cbq-0004.eth0-20

代碼: [選擇]
DEVICE=eth0
RATE=64Kbit
WEIGHT=3Kbit
PRIO=8
RULE=:20,
BOUNDED=yes
ISOLATED=yes
PARENT=0002



# vi cbq-0102.eth1-25

代碼: [選擇]
DEVICE=eth1,100Mbit,512Kbit
RATE=128Kbit
WEIGHT=5Kbit
PRIO=6
RULE=:25
BOUNDED=yes
ISOLATED=yes



# vi cbq-0103.eth1-20

代碼: [選擇]
DEVICE=eth1
RATE=64Kbit
WEIGHT=3Kbit
PRIO=8
RULE=:20
BOUNDED=yes
ISOLATED=yes
PARENT=0102


檔案中的各項參數請參考上面提到的文章,值得一提的是,欲管理的服務中pop3及web服務多為下載流量,smtp多為上傳流量,而ftp則上下傳流量不一定.
所以分別依其流向特性設定:

由eth0流出來源port為110,80,20的要管制,也就是cbq-0002.eth0-110,cbq-0003.eth0-80,cbq-0004.eth0-20
由eth1流出目的port為25,20的要管制,也就是cbq-0102.eth1-25,cbq-0103.eth1-20

這裡有個問題是關於ftp的,現在的設定是在使用active mode下server data的通道固定是20所以很好解決,但若換成passive mode後client及server的data通道是隨機的,這是比較麻煩的.
用u32分類器,我不知道能不能做到,但若搭配iptables並不難!

iptables加上下面二行.

iptables -A POSTROUTING -o eth1 -t mangle -p tcp --dport 1024:65535 -j MARK --set-mark 30
iptables -A POSTROUTING -o eth0 -t mangle -p tcp --sport 1024:65535 -j MARK --set-mark 20

而cbq-0103.eth1-20 、 cbq-0004.eth0-20 這二個檔改成下面那樣!

引用
DEVICE=eth1
RATE=64Kbit
WEIGHT=3Kbit
PRIO=8
RULE=:20
MARK=30
BOUNDED=yes
ISOLATED=yes
PARENT=0102



引用
DEVICE=eth0
RATE=64Kbit
WEIGHT=3Kbit
PRIO=8
RULE=:20,
MARK=20
BOUNDED=yes
ISOLATED=yes
PARENT=0002


cbq.init restart
這樣passiv mode 就限制住囉!但也代表上下傳所有的port在1024以上都受限制,不一定是ftp passive mode.


CBQ+SNAT的情形

先敘述一下環境與設定.

eth0:對內
eth1:對外
iptables rule(policy all accept):

代碼: [選擇]
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

cbq config:

代碼: [選擇]
DEVICE=eth0,100Mbit,512Kbit
RATE=64Kbit
WEIGHT=3Kbit
PRIO=5
RULE=192.168.1.1
BOUNDED=yes
ISOLATED=yes


代碼: [選擇]
DEVICE=eth1,100Mbit,512Kbit
RATE=64Kbit
WEIGHT=3Kbit
PRIO=6
RULE=192.168.1.1,
BOUNDED=yes
ISOLATED=yes


cbq.init compile:

代碼: [選擇]
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8
tc class change dev eth0 root cbq weight 512Kbit allot 1514

tc qdisc del dev eth1 root
tc qdisc add dev eth1 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8
tc class change dev eth1 root cbq weight 512Kbit allot 1514

tc class add dev eth0 parent 1: classid 1:2 cbq bandwidth 100Mbit rate 64Kbit weight 3Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded isolated
tc qdisc add dev eth0 parent 1:2 handle 2 tbf rate 64Kbit buffer 10Kb/8 limit 15Kb mtu 1500
tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.1.1 classid 1:2

tc class add dev eth1 parent 1: classid 1:102 cbq bandwidth 100Mbit rate 64Kbit weight 3Kbit prio 6 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded isolated
tc qdisc add dev eth1 parent 1:102 handle 102 tbf rate 64Kbit buffer 10Kb/8 limit 15Kb mtu 1500
tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip src 192.168.1.1 classid 1:102


用以上的環境及設定,我在192.168.1.1上做ftp傳輸的時候,下載是有受控管的,但上傳是不受控管的(也就是cbq沒做用),原因是為封包先進POSTROUTING chain(改寫source address)才進QOS EGRESS
,所以這時的source address己經不是192.168.1.1了,那當然cbq的filter就對它產生不了作用了,可以參考下面這個link的圖,了解封包通過的流程!

http://www.docum.org/stef.coene/qos/kptd/

可以試試把eth1的設定改成如下:

引用
DEVICE=eth1,100Mbit,512Kbit
RATE=64Kbit
WEIGHT=3Kbit
PRIO=6
RULE=[eth1 ip],
BOUNDED=yes
ISOLATED=yes


設成eth1上綁的ip再試試,您會發現上傳受控管了,也就是生效了.但這是無意義的,因為local所以出去的封包都會snat成外部封包,那便所有的控管對local ip都一視同仁,造成無法管理.
了解到上面的原因後,可以用iptables把封包mark起來,讓這些封包進QOS EGRESS,實作如下:

iptables rule(policy all accept):
代碼: [選擇]
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A PREROUTING -i eth0 -t mangle -s 192.168.1.1  -j MARK --set-mark 40


cbq config:

引用
DEVICE=eth0,100Mbit,512Kbit
RATE=64Kbit
WEIGHT=3Kbit
PRIO=5
RULE=192.168.1.1
BOUNDED=yes
ISOLATED=yes


引用
DEVICE=eth1,100Mbit,512Kbit
RATE=64Kbit
WEIGHT=3Kbit
MARK=40
PRIO=6
BOUNDED=yes
ISOLATED=yes


cbq.init compile:

代碼: [選擇]
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8
tc class change dev eth0 root cbq weight 512Kbit allot 1514

tc qdisc del dev eth1 root
tc qdisc add dev eth1 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8
tc class change dev eth1 root cbq weight 512Kbit allot 1514

tc class add dev eth0 parent 1: classid 1:2 cbq bandwidth 100Mbit rate 64Kbit weight 3Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded isolated
tc qdisc add dev eth0 parent 1:2 handle 2 tbf rate 64Kbit buffer 10Kb/8 limit 15Kb mtu 1500
tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.1.1 classid 1:2

tc class add dev eth1 parent 1: classid 1:102 cbq bandwidth 100Mbit rate 64Kbit weight 3Kbit prio 6 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded isolated
tc qdisc add dev eth1 parent 1:102 handle 102 tbf rate 64Kbit buffer 10Kb/8 limit 15Kb mtu 1500
tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 40 fw classid 1:102


如此,在去試就生效了,而至於是在PREROUTING及POSTROUTING做mangle在下測試的結果是都可以,應該是反正只是mark而己麻,而POSTROUTING的mangle又在nat之前,所以沒差啦!!

但cbq 針對mark的話定,卻不能在eth0上,這是要注意的地方,而這是以snat做測試的,信相改成dnat也只是反過來而己!


整個測試的結論,其實不用太在意有沒有nat,一個關鍵是,只要能符合tc filter的條件,就能發生作用了!

jade-rabbit

  • 鑽研的研究生
  • *****
  • 文章數: 833
  • 性別: 男
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #1 於: 2003-06-19 19:14 »
:P  太好了多謝愛瑞克的心得
我只知道 cbq 即使是要做到最簡單的事,卻也難逃複雜..
不知道有沒有興趣研究一下 HTB 的作法?
--(中也者天下之大本也,和也者天下之達道也)--

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #2 於: 2003-06-20 11:10 »
引述: "JadeRabbit"
:P  太好了多謝愛瑞克的心得
我只知道 cbq 即使是要做到最簡單的事,卻也難逃複雜..
不知道有沒有興趣研究一下 HTB 的作法?


JadeRabbit兄,小的汗顏,什麼是HTB呀!?  f^^

ericshie獨自一人,跑去角落畫圈圈!

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #3 於: 2003-06-20 11:14 »
有用cbq的朋友,方便的話,請分享一下關於BOUNDED及ISOLATED參數的使用方法,在下試了半天,加跟不加好像沒什麼差別!

另下也推一下,下個這個連結的問題 :p

http://phorum.study-area.org/viewtopic.php?t=16971&highlight=

liber

  • 活潑的大學生
  • ***
  • 文章數: 225
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #4 於: 2003-06-20 15:59 »
請問一下大大

如果我的上傳要對每個 User 去限制是不是只有一條一條去看,比如說我有一條 T1 的線路,有五個 User 再用,但是我想限制每人最大上傳的K數只有 10K,就必須對五個IP 去限制呢?

那這樣的話萬一有個 100 個 User 不就要下100 條,而且他好像不能看 MAC 只看的懂IP

謝謝

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
[分享]CBQ 筆記
« 回覆 #5 於: 2003-06-20 16:30 »
引述: "ericshei"

JadeRabbit兄,小的汗顏,什麼是HTB呀!?  f^^


http://luxik.cdi.cz/~devik/qos/htb/

其實設定差不多.
我的經驗是, htb 似乎感覺比較好用些.

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #6 於: 2003-06-24 11:58 »
引述: "liber"
請問一下大大

如果我的上傳要對每個 User 去限制是不是只有一條一條去看,比如說我有一條 T1 的線路,有五個 User 再用,但是我想限制每人最大上傳的K數只有 10K,就必須對五個IP 去限制呢?


那這樣的話萬一有個 100 個 User 不就要下100 條,而且他好像不能看 MAC 只看的懂IP


可以切網段的方式做,不管是u32或fw分類器應該都行,MAC用fw應該也行,因為我沒實作過,但iptables能filter MAC,所以應該能mark起來.

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #7 於: 2003-06-24 12:07 »
引述: "twu2"
引述: "ericshei"

JadeRabbit兄,小的汗顏,什麼是HTB呀!?  f^^


http://luxik.cdi.cz/~devik/qos/htb/

其實設定差不多.
我的經驗是, htb 似乎感覺比較好用些.


lab環境被強走了,有機會再來試試了!(其實是害怕英文XD)

matt

  • 榮譽學長
  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
    • http://safe.ip-market.com
[分享]CBQ 筆記
« 回覆 #8 於: 2003-06-24 23:26 »
引述: "ericshei"
引述: "liber"
請問一下大大

如果我的上傳要對每個 User 去限制是不是只有一條一條去看,比如說我有一條 T1 的線路,有五個 User 再用,但是我想限制每人最大上傳的K數只有 10K,就必須對五個IP 去限制呢?


那這樣的話萬一有個 100 個 User 不就要下100 條,而且他好像不能看 MAC 只看的懂IP


可以切網段的方式做,不管是u32或fw分類器應該都行,MAC用fw應該也行,因為我沒實作過,但iptables能filter MAC,所以應該能mark起來.

iptables 只能 mark source mac , 若想要雙向都管到, 可能就要用 etables 了。

matt

  • 榮譽學長
  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
    • http://safe.ip-market.com
[分享]CBQ 筆記
« 回覆 #9 於: 2003-06-24 23:33 »
引述: "twu2"
引述: "ericshei"

JadeRabbit兄,小的汗顏,什麼是HTB呀!?  f^^


http://luxik.cdi.cz/~devik/qos/htb/

其實設定差不多.
我的經驗是, htb 似乎感覺比較好用些.

最早也是用 CBQ ,後來改用 HTB,因為處理封包處理的速度 HTB 比較快。
用起來也比較簡單.
HTB 3 performance compared
http://luxik.cdi.cz/~devik/qos/htb/htb3perf/cbqhtb3perf.htm

duan

  • 榮譽博士
  • 活潑的大學生
  • ***
  • 文章數: 253
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #10 於: 2003-06-25 01:21 »
引述: "matt"

HTB 3 performance compared
http://luxik.cdi.cz/~devik/qos/htb/htb3perf/cbqhtb3perf.htm


matt ? 咦? 是 linux 安全促進網 (抱歉, 全名忘了 :Q) 的站長嗎?

如果是, 好久不見了. 您大概不記得我是誰了, 我是 mejia 的舊同事.
如果不是, 那.....  ^^;;;   , 抱歉打擾了.  

(在這種嚴肅的討論下認人, 好像很破壞氣氛啊  :Q)

matt

  • 榮譽學長
  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
    • http://safe.ip-market.com
[分享]CBQ 筆記
« 回覆 #11 於: 2003-06-26 01:21 »
引述: "duan"
引述: "matt"

HTB 3 performance compared
http://luxik.cdi.cz/~devik/qos/htb/htb3perf/cbqhtb3perf.htm


matt ? 咦? 是 linux 安全促進網 (抱歉, 全名忘了 :Q) 的站長嗎?

如果是, 好久不見了. 您大概不記得我是誰了, 我是 mejia 的舊同事.
如果不是, 那.....  ^^;;;   , 抱歉打擾了.  

(在這種嚴肅的討論下認人, 好像很破壞氣氛啊  :Q)

呵呵!  猜對了..., 有空來坐坐喔!

jade-rabbit

  • 鑽研的研究生
  • *****
  • 文章數: 833
  • 性別: 男
    • 檢視個人資料
參考
« 回覆 #12 於: 2003-09-19 16:26 »
引述: "ericshei"
有用cbq的朋友,方便的話,請分享一下關於BOUNDED及ISOLATED參數的使用方法,在下試了半天,加跟不加好像沒什麼差別!

另下也推一下,下個這個連結的問題 :p

http://phorum.study-area.org/viewtopic.php?t=16971&highlight=


這陣子 project 告一段落,又鑑於公司512kbps頻寬有時會被塞滿,所以…也得兼任 administrator...
剛研究完 HTB user guild ,正在看 LARTC.org 的那份 HOWTO,
關於你說的 bounded/borrow 與 isolated/sharing 這些 CBQ 參數,應該是用來指定
某些 classes 可以向其他 classes 借 (borrow) 或出租 (lend, sharing)
如果用了 bounded 就是不會去借,isolated 就是不會出租給別的 sibling classes.
(refer to LARTC HOWTO Chapter 9.5.4.3)
相當於 HTB 裡面的 rate && ceil 參數的效果。

關於你的 u32 問題,容我看懂後再述。
--(中也者天下之大本也,和也者天下之達道也)--

akong

  • 鑽研的研究生
  • *****
  • 文章數: 523
    • 檢視個人資料
    • http://www.aspa.idv.tw
各位大大
« 回覆 #13 於: 2004-02-28 21:53 »
我有一個問題
我按大大的作法
已確定可以鎖住上下傳
但是當有一個人上傳
我其他電腦上網就很慢
下載明明設定就設200K
就只能跑在20K左右
但是只要上傳一停止
網路就恢復正常
請問一下我還有哪裡要注意
我的頻寬是3M/512K
感謝各位大大

akong

  • 鑽研的研究生
  • *****
  • 文章數: 523
    • 檢視個人資料
    • http://www.aspa.idv.tw
[分享]CBQ 筆記
« 回覆 #14 於: 2004-05-24 17:14 »
請問一下呢
假設eth1是對外的ip,eth0是local ip(DHCP)
上傳的部分本來是直接鎖內部的ip(192.168.1.2...etc)
那我可不可以先鎖上傳在eth0身上(192.168.1.1)
然後在設定客戶的ip上傳頻寬是由eth0來拿的
大家了解我的意思嗎
下載鎖頻ok
上傳先鎖在eth0
dhcp的用戶的上傳頻寬設定是去eth0拿
雖然有點天馬行空
但希望真的可行 :D

sycross

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #15 於: 2004-11-02 16:36 »
請問cbq.init可對ip 及port 來控管頻寬之外,
那可否對protocol來做限制呢
thx for answer

sycross

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #16 於: 2004-11-11 11:51 »
引述: "ericshei"
CBQ 筆記檔案中的各項參數請參考上面提到的文章,值得一提的是,欲管理的服務中pop3及web服務多為下載流量,smtp多為上傳流量,而ftp則上下傳流量不一定.
所以分別依其流向特性設定:

由eth0流出來源port為110,80,20的要管制,也就是cbq-0002.eth0-110,cbq-0003.eth0-80,cbq-0004.eth0-20
由eth1流出目的port為25,20的要管制,也就是cbq-0102.eth1-25,cbq-0103.eth1-20

sycross

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #17 於: 2004-11-11 11:52 »
引述: "sycross"
引述: "ericshei"
檔案中的各項參數請參考上面提到的文章,值得一提的是,欲管理的服務中pop3及web服務多為下載流量,smtp多為上傳流量,而ftp則上下傳流量不一定.
所以分別依其流向特性設定:

由eth0流出來源port為110,80,20的要管制,也就是cbq-0002.eth0-110,cbq-0003.eth0-80,cbq-0004.eth0-20
由eth1流出目的port為25,20的要管制,也就是cbq-0102.eth1-25,cbq-0103.eth1-20

sycross

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #18 於: 2004-11-11 11:57 »
sorry ,因想修改我的文章。卻一時眼花,後來才知道我在這版面沒有編輯的選項。
不好意思,
請刪掉這篇我發言的文章

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #19 於: 2004-11-13 00:07 »
引用
你在這篇的筆記
http://phorum.study-area.net/viewtopic.php?p=137350&sid=4992b5928370beff017d62d5530025ee#137350

的這段文字敘述
--
由eth0流出來源port為110,80,20的要管制,也就是cbq-0002.eth0-110,cbq-0003.eth0-80,cbq-0004.eth0-20
由eth1流出目的port為25,20的要管制,也就是cbq-0102.eth1-25,cbq-0103.eth1-20
--

1.我的問題是,為何你的說明是有兩個,一個為流出來源,一個為流出目的 ?
2.那另一個問題是cbq-0002.xxx 與cbq-0102.xxx
0002與0102是有意義的嗎。還是只是讓cbq.init可讀?


1.  若改成如下,不知有沒有比較清楚!?   ^^
由eth0流出,來源port為110,80,20的要管制,也就是cbq-0002.eth0-110,cbq-0003.eth0-80,cbq-0004.eth0-20
由eth1流出,目的port為25,20的要管制,也就是cbq-0102.eth1-25,cbq-0103.eth1-20

我目前的理解是cbq作用在流出的封包上.

110,80,20服務多為下載流量(相對於eth0內的點來說),又基於cbq作用在流出的封包上,因此下載的封包會由eth0流出,所以在eth0做110,80,20服務的下載限制.

情形在eht1也是一樣的意思,只是方向向反而己.

2.檔案格式必須為   cbq-$$$$.SCRIBE_NAME
其中$$$$一定要是0002到fff之間f,由二個十六進位數值組成,從0002,0003累積,不一定要連續數值.
為了好記,我範例中的前二位數代表網卡,後二只是流水號:
0002代表eth0流水號為2
0103代表eth1流水號為3

關於這部份要配合我筆記中指明的link一起看比較能了解,不過link己經斷了!
我己經連絡作者看是否能取得資料!

sycross

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #20 於: 2004-11-23 14:09 »
ok
3Q回答,
我現在才發現cbq.init這script中的RULE後面如果加逗點為來源沒有加逗點為目的

sycross

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #21 於: 2004-12-14 17:08 »
請問
1.
你這篇測試的網路是雙向512嗎

2.
如果是的話
110、80、20是下載
25、20是上傳
你的設定是110、80、20、25去分配這512的頻寬

那怎麼不這麼做
因為是雙向
如果這麼配呢
110、80、20去分配512
25、20去分配512

會有那些考量因素
3q

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #22 於: 2004-12-15 21:58 »
引述: "sycross"
請問
1.
你這篇測試的網路是雙向512嗎

2.
如果是的話
110、80、20是下載
25、20是上傳
你的設定是110、80、20、25去分配這512的頻寬

那怎麼不這麼做
因為是雙向
如果這麼配呢
110、80、20去分配512
25、20去分配512


會有那些考量因素
3q


1.我是在lan裡面玩的.

2. Sorry!! 恕在不能體會您的第二個問題!

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #23 於: 2004-12-15 22:06 »
sycross兄,下面是我之前建構用來要試cbq的環境(其實就只是多劃一個lan出來而己),供您參考!!  ^^





routing lab(建置測試cbq平台過程)

因為須要有個lab的環境來測試cbq所以做了一些環境的調整及測試環境的建置.

原環境架構如下:

代碼: [選擇]
Internet <--> eth0 [NAT] eth1(172.16.7.250/21) <--> 172.16.0.0/21
                   eth2(172.16.15.250/21) <--> 172.16.8.0/21


[NAT]的使用情形:
執行Transparent Proxy ,Packet filter ,NAT.

代碼: [選擇]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
x.x.185.0    0.0.0.0            255.255.255.0   U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.248.0   U     0      0        0 eth1
172.16.8.0      0.0.0.0         255.255.248.0   U     0      0        0 eth2
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         x.x.185.x       0.0.0.0         UG    0      0        0 eth0


另一個在172.16.0.0/21上的ip 172.16.7.248的routing table

代碼: [選擇]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.7.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         172.16.7.250    0.0.0.0         UG    0      0        0 eth0


欲建置環境架構如下:

代碼: [選擇]

                              eth2(172.16.15.250) <--> 172.16.8.0/21
Internet <--> eth0 [color=red][NAT] [/color]eth1(172.16.7.250) <--?#123;
┌----------------------------------------------------------------?#125;
└-> (172.16.7.247/21)eth1[router]eth0(192.168.1.254) <--> 192.168.1.0/24


也就是增加[router]並讓172.16.0.0/21與192.168.1.0/24互通,好讓我以後能以此新增的網段做為cbq測試的lab

心想先別在work中的[NAT]中設定怕出問題,所以先測試,讓172.16.0.0/21中的單獨ip 172.16.7.248能與192.168.1.0網段的192.168.1.1互通.
欲達目的:讓172.16.0.0/21中的單獨ip 172.16.7.248能與192.168.1.0網段的192.168.1.1互通.

172.16.7.248目前情形

代碼: [選擇]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.7.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         172.16.7.250    0.0.0.0         UG    0      0        0 eth0


# ping 172.16.7.247
引用
PING 172.16.7.247 (172.16.7.247) 56(84) bytes of data.
64 bytes from 172.16.7.247: icmp_seq=1 ttl=64 time=1.90 ms
64 bytes from 172.16.7.247: icmp_seq=2 ttl=64 time=0.794 ms
64 bytes from 172.16.7.247: icmp_seq=3 ttl=64 time=1.42 ms
64 bytes from 172.16.7.247: icmp_seq=4 ttl=64 time=1.43 ms

--- 172.16.7.247 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3029ms
rtt min/avg/max/mdev = 0.794/1.389/1.900/0.393 ms

# ping 192.168.1.254
引用
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
From 216.59.185.1 icmp_seq=1 Time to live exceeded
From 216.59.185.1 icmp_seq=2 Time to live exceeded
From 216.59.185.1 icmp_seq=3 Time to live exceeded
From 216.59.185.1 icmp_seq=4 Time to live exceeded

--- 192.168.1.254 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3029ms

# ping 192.168.1.1
引用
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
From 216.59.185.1 icmp_seq=1 Time to live exceeded
From 216.59.185.1 icmp_seq=2 Time to live exceeded
From 216.59.185.1 icmp_seq=3 Time to live exceeded

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2019ms


192.168.1.1目前情形

代碼: [選擇]
Active Routes:

  Network Address          Netmask  Gateway Address        Interface  Metric
          0.0.0.0          0.0.0.0    192.168.1.254      192.168.1.1       1
        127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1       1
      192.168.1.0    255.255.255.0      192.168.1.1      192.168.1.1       1
      192.168.1.1  255.255.255.255        127.0.0.1        127.0.0.1       1
    192.168.1.255  255.255.255.255      192.168.1.1      192.168.1.1       1
        224.0.0.0        224.0.0.0      192.168.1.1      192.168.1.1       1
  255.255.255.255  255.255.255.255      192.168.1.1      192.168.1.1       1

C:\WINDOWS\Desktop>ping 192.168.1.254

引用
Pinging 192.168.1.254 with 32 bytes of data:

Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time<10ms TTL=64
Reply from 192.168.1.254: bytes=32 time<10ms TTL=64
Reply from 192.168.1.254: bytes=32 time<10ms TTL=64

Ping statistics for 192.168.1.254:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  1ms, Average =  0ms


C:\WINDOWS\Desktop>ping 172.16.7.247

引用
Pinging 172.16.7.247 with 32 bytes of data:

Reply from 172.16.7.247: bytes=32 time<10ms TTL=64
Reply from 172.16.7.247: bytes=32 time<10ms TTL=64
Reply from 172.16.7.247: bytes=32 time<10ms TTL=64
Reply from 172.16.7.247: bytes=32 time<10ms TTL=64

Ping statistics for 172.16.7.247:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  0ms, Average =  0ms

C:\WINDOWS\Desktop>ping 172.16.7.248

引用
Pinging 172.16.7.248 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.

Ping statistics for 172.16.7.248:
    Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  0ms, Average =  0ms


172.16.7.247目前情形

代碼: [選擇]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.248.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         172.16.7.250    0.0.0.0         UG    0      0        0 eth1

# ping 192.168.1.1
引用
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=128 time=0.207 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=128 time=0.217 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=128 time=0.232 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.207/0.218/0.232/0.019 ms

# ping 192.168.1.254
引用
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=0.198 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=0.030 ms

--- 192.168.1.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.030/0.089/0.198/0.077 ms

# ping 172.16.7.247
引用
PING 172.16.7.247 (172.16.7.247) 56(84) bytes of data.
64 bytes from 172.16.7.247: icmp_seq=1 ttl=64 time=0.166 ms
64 bytes from 172.16.7.247: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from 172.16.7.247: icmp_seq=3 ttl=64 time=0.045 ms

--- 172.16.7.247 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.045/0.086/0.166/0.057 ms

# ping 172.16.7.248
引用
PING 172.16.7.248 (172.16.7.248) 56(84) bytes of data.
64 bytes from 172.16.7.248: icmp_seq=1 ttl=64 time=0.366 ms
64 bytes from 172.16.7.248: icmp_seq=2 ttl=64 time=0.183 ms
64 bytes from 172.16.7.248: icmp_seq=3 ttl=64 time=0.179 ms

--- 172.16.7.248 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.179/0.242/0.366/0.089 ms


設定步驟:

1.在[router]上啟動ip forward.

echo "1" > /proc/sys/net/ipv4/ip_forward
目前的情形和上面都是一樣的.


2.在172.16.7.248上設定對192.168.1.0/24的路由.

route add -net 192.168.1.0 netmask 255.255.255.0 gateway 172.16.7.247

代碼: [選擇]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.7.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
[color=red]192.168.1.0     172.16.7.247    255.255.255.0   UG    0      0        0 eth0[/color]
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         172.16.7.250    0.0.0.0         UG    0      0        0 eth0


3.互ping做測試.

172.16.7.248目前情形

# ping 192.168.1.254
引用
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=0.297 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=0.290 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=0.291 ms

--- 192.168.1.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.290/0.292/0.297/0.020 ms

# ping 192.168.1.1
引用
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=127 time=0.534 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=127 time=0.413 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=127 time=0.417 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.413/0.454/0.534/0.061 ms


192.168.1.1目前情形

C:\WINDOWS\Desktop>ping 172.16.7.248

引用
Pinging 172.16.7.248 with 32 bytes of data:

Reply from 172.16.7.248: bytes=32 time<10ms TTL=63
Reply from 172.16.7.248: bytes=32 time<10ms TTL=63
Reply from 172.16.7.248: bytes=32 time<10ms TTL=63
Reply from 172.16.7.248: bytes=32 time<10ms TTL=63

Ping statistics for 172.16.7.248:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  0ms, Average =  0ms


欲達的目的成功!

但以此方是,只要172.16.0.0/21的ip要與192.168.1.0/24的ip互通,皆須在172.16.0.0/21的ip中下route增加對192.168.1.0/24的路由.
而因為172.16.0.0/21中的ip只要是不知去向的packet皆會向gateway丟,而在沒新增對192.168.1.0/24路由的前提下,192.168.1.0/24的packet
對172.16.0.0/21中的ip來說都是不知去向的,所以可以在gateway(也就是[NAT])上加對192.168.1.0/24的路由,如此當gateway收到,
來自172.16.0.0/21目的是192.168.1.0/24的packet就會route向192.168.1.0/24了,也就是gateway會幫整個172.16.0.0/21的ip處理目的是
192.168.1.0/24的routing了,不必在對172.16.0.0/21的ip一一做設定.

欲達目的:讓172.16.0.0/21中的ip皆能與192.168.1.0網段的ip互通.

續上面lab的設定.

設定步驟:

1.在[nat](也就是gateway)上增加對192.168.1.0/24的routel.

代碼: [選擇]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
x.x.185.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.248.0   U     0      0        0 eth1
172.16.8.0      0.0.0.0         255.255.248.0   U     0      0        0 eth2
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         x.x.185.x       0.0.0.0         UG    0      0        0 eth0


# route add -net 192.168.1.0 netmask 255.255.255.0 gateway 172.16.7.247 dev eth1

# route -n

代碼: [選擇]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
[color=red]192.168.1.0     172.16.7.247    255.255.255.0   UG    0      0        0 eth1[/color]
216.59.185.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.248.0   U     0      0        0 eth1
172.16.8.0      0.0.0.0         255.255.248.0   U     0      0        0 eth2
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         216.59.185.1    0.0.0.0         UG    0      0        0 eth0

2.刪除172.16.7.248上對192.168.1.0/24的route.

代碼: [選擇]
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.7.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
[color=red]192.168.1.0     172.16.7.247    255.255.255.0   UG    0      0        0 eth0[/color]
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         172.16.7.250    0.0.0.0         UG    0      0        0 eth0


# route del -net 192.168.1.0 netmask 255.255.255.0

# route -n
代碼: [選擇]
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.7.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         172.16.7.250    0.0.0.0         UG    0      0        0 eth0


3.測試

172.16.7.248目前的情形

# ping 192.168.1.1
引用
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=127 time=1.07 ms
From 172.16.7.250: icmp_seq=2 Redirect Host(New nexthop: 172.16.7.247)
64 bytes from 192.168.1.1: icmp_seq=2 ttl=127 time=0.509 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=127 time=0.490 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2009ms
rtt min/avg/max/mdev = 0.490/0.690/1.071/0.269 ms

# ping 192.168.1.254
引用
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=0.542 ms
From 172.16.7.250: icmp_seq=2 Redirect Host(New nexthop: 172.16.7.247)
64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=0.331 ms
64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=0.288 ms

--- 192.168.1.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.288/0.387/0.542/0.111 ms


當然172.16.0.0/21上其它的ip ping 192.168.1.1及192.168.1.254也都成功.

192.168.1.1目前的情形

C:\WINDOWS\Desktop>ping 172.16.7.248

引用
Pinging 172.16.7.248 with 32 bytes of data:

Reply from 172.16.7.248: bytes=32 time=1ms TTL=63
Reply from 172.16.7.248: bytes=32 time<10ms TTL=63
Reply from 172.16.7.248: bytes=32 time<10ms TTL=63
Reply from 172.16.7.248: bytes=32 time<10ms TTL=63

Ping statistics for 172.16.7.248:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  1ms, Average =  0ms

當然ping 172.16.7.0.0/21上其它的ip 也都通了!甚致192.168.1.0/24上的ip上internet也都沒問題了(當然您可能要注意firewall rule的寫法!)!!
能上internet的原因是為為二個網段的routing通了,另外在加上[NAT]機器上的SNAT功能.

注意:介接172.16.0.0/21與192.168.1.0/24中的[router]上只做routing沒有做nat哦!

欲達的目的成功!cbq測試平台建置完成!

sycross

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #24 於: 2004-12-16 09:34 »
引述: "ericshei"
引述: "sycross"
請問
1.
你這篇測試的網路是雙向512嗎

2.
如果是的話
110、80、20是下載
25、20是上傳
你的設定是110、80、20、25去分配這512的頻寬

那怎麼不這麼做
因為是雙向
如果這麼配呢
110、80、20去分配512
25、20去分配512


會有那些考量因素
3q


1.我是在lan裡面玩的.

2. Sorry!! 恕在不能體會您的第二個問題!

ok,
多謝回答
關於第二問題呢,
這麼講吧
頻寬為512/512
從對內的ehternet出去的設定為:
110port 分配 136Kb
80port 分配 240Kb
20port 分配 136Kb

從對外的ethernet出去的設定為:
25port 分配 256Kb
20port 分配 256Kb

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #25 於: 2004-12-22 09:26 »
引述: "sycross"
引述: "ericshei"
引述: "sycross"
請問
1.
你這篇測試的網路是雙向512嗎

2.
如果是的話
110、80、20是下載
25、20是上傳
你的設定是110、80、20、25去分配這512的頻寬

那怎麼不這麼做
因為是雙向
如果這麼配呢
110、80、20去分配512
25、20去分配512


會有那些考量因素
3q


1.我是在lan裡面玩的.

2. Sorry!! 恕在不能體會您的第二個問題!

ok,
多謝回答
關於第二問題呢,
這麼講吧
頻寬為512/512
從對內的ehternet出去的設定為:
110port 分配 136Kb
80port 分配 240Kb
20port 分配 136Kb

從對外的ethernet出去的設定為:
25port 分配 256Kb
20port 分配 256Kb


我的下載就是從對內的ethernet出去,也就是限制source port為110、80、20由對內的ethernet流出,進入內部網路的流量,也就是限制下載流量的部份.

而上傳也是一樣的,從對外的ethernet出去,也就是限制dest port為25、20由對外ethernet流出到外部的流量,也就是限制上載流量的部份.

sycross

  • 憂鬱的高中生
  • ***
  • 文章數: 104
    • 檢視個人資料
[分享]CBQ 筆記
« 回覆 #26 於: 2004-12-28 13:22 »
引述: "ericshei"
引述: "sycross"
引述: "ericshei"
引述: "sycross"
請問
1.
你這篇測試的網路是雙向512嗎

2.
如果是的話
110、80、20是下載
25、20是上傳
你的設定是110、80、20、25去分配這512的頻寬

那怎麼不這麼做
因為是雙向
如果這麼配呢
110、80、20去分配512
25、20去分配512


會有那些考量因素
3q


1.我是在lan裡面玩的.

2. Sorry!! 恕在不能體會您的第二個問題!

ok,
多謝回答
關於第二問題呢,
這麼講吧
頻寬為512/512
從對內的ehternet出去的設定為:
110port 分配 136Kb
80port 分配 240Kb
20port 分配 136Kb

從對外的ethernet出去的設定為:
25port 分配 256Kb
20port 分配 256Kb


我的下載就是從對內的ethernet出去,也就是限制source port為110、80、20由對內的ethernet流出,進入內部網路的流量,也就是限制下載流量的部份.

而上傳也是一樣的,從對外的ethernet出去,也就是限制dest port為25、20由對外ethernet流出到外部的流量,也就是限制上載流量的部份.

你解釋說明的部份我懂
不過
不好意思,
我上面的意思是頻寬的分配。

你的分配是
80+110+20+25 = 512Kbit

我的分配
80+110+20 = 512Kbit
20+25 = 512Kbit

這兩種調配方式

以你的分配來看。不是就沒有完全利用到全部的頻寬
(如果是雙向512)

thx