Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136527
  • 博文数量: 8
  • 博客积分: 1476
  • 博客等级: 上尉
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-29 09:14
文章分类

全部博文(8)

文章存档

2011年(2)

2010年(4)

2009年(2)

我的朋友

分类: BSD

2009-04-29 16:20:23

 
 
因為家裡需要,這週末我裝好了一台fb主機作gateway,帶上頻寬管制,需求除了最後一個外其他的都已經滿足。最後一個需求——『借』頻寬的地方不知道該如何實現,想請教各位先進:

需求:

1) 需要運行四種應用,按優先次序為: icmp, counter strike, http 以及 ppstream.
2) pps 再多也不能影響 http.
3) pps 與 http 再多也不能影響 cs.
4) pps + http + cs 不能影響 icmp.
5) gateway 對內部網路的頻寬開到最大
6) 如果同時出現pps與http應用, 兩者按照10:7比例分享頻寬
7) pps 與 http 能夠借用所有頻寬


頻寬規則:

1) icmp 獨占 64KB/s
2) cs 獨占 92KB/s
3) pps + http 分享 2.200KBit/s

環境:

1) freebsd 7.1-r-p4,
2) pppoe + nat,adsl 總頻寬為 2M
3) vr0為內部網路介面(192.168.0.10/24),vr1為internet介面。
4) 內部網路: 192.168.0.0/24
 

#!/usr/local/bin/bash

./ipfw.sh

CMD="/sbin/ipfw"

# -- Internal Network --
${CMD} add 1000 pipe 1 tcp from 192.168.0.10 80 to any
${CMD} add 1100 pipe 2 tcp from any to 192.168.0.10 80
${CMD} pipe 1 config bw 100MBit/s
${CMD} pipe 2 config bw 100MBit/s

# -- Down-link & up-link pipes --
${CMD} pipe 3 config bw 3000KBit/s queue 48
${CMD} pipe 4 config bw 480KBit/s queue 16

# -- ICMP --
${CMD} add 2000 queue 1 icmp from any to 192.168.0.0/24
${CMD} queue 1 config weight 50 pipe 3 mask dst-ip 0x000000ff
${CMD} add 2050 queue 2 icmp from 192.168.0.0/24 to any
${CMD} queue 2 config weight 50 pipe 4 mask src-ip 0x000000ff

# -- Counter Strike --
${CMD} add 2100 queue 3 udp from any 27010-27020 to 192.168.0.0/24
${CMD} queue 3 config weight 100 pipe 3 mask dst-ip 0x000000ff
${CMD} add 2150 queue 4 udp from 192.168.0.0/24 to any 27010-27020
${CMD} queue 4 config weight 100 pipe 4 mask src-ip 0x000000ff

# -- TCP Traffic --
${CMD} add 3000 queue 20 tcp from any to 192.168.0.0/24
${CMD} queue 20 config weight 10 pipe 3 mask dst-ip 0x000000ff
${CMD} add 3050 queue 21 tcp from 192.168.0.0/24 to any
${CMD} queue 21 config weight 10 pipe 4 mask src-ip 0x000000ff

# -- UDP Traffic --
${CMD} add 3100 queue 22 udp from any to 192.168.0.0/24
${CMD} queue 22 config weight 10 pipe 3 mask dst-ip 0x000000ff
${CMD} add 3150 queue 23 udp from 192.168.0.0/24 to any
${CMD} queue 23 config weight 1 pipe 4 mask src-ip 0x000000ff

 
有個小缺點:單台主機不能佔用所有頻寬,http下載到了極限也是165KB(我裝的是2Mb的adsl),損失了一些頻寬

效果:在一台主機看pps, 一台主機開迅雷下載的『惡劣』網路條件下, ping 的 reply time 平均比平時上升10ms. counter strike 的 ping 平均比平時上升 30ms 左右.

個人感覺還ok啦...

p.s. 我還是奇怪為何我的 down-link (pipe 3) 的速率要調到 3000KBit/s 才有 165KB 的下載速度... 還是想不明白. 再調高就會影響 ping 以及 counter strike. 調低則影響不大.
阅读(1526) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:freebsd 中文支持

给主人留下些什么吧!~~