常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

带宽限制的极好方法!!!! 大家可以试试!!!

 
发表新文章   回复文章    FreeBSD China -> 技术交流
阅读上一个主题 :: 阅读下一个主题  
作者 留言
zcnoffice
半仙


注册时间: 2007-11-15
文章: 52

文章发表于: Tue 2008-05-06 17:46:11    发表主题: 带宽限制的极好方法!!!! 大家可以试试!!! 引用并回复

freebsd使用ipfw和nat:
在内核中一定要加上
option HZ=1000
在rc.firewall中设置:
ipfw pipe 1 config bw 9500Kbits/s #设置下行通道带宽。
ipfw pipe 2 config bw 7000Kbits/s #设置上行通道带宽。
ipfw queue 1 config pipe 1 mask dst-ip 0x000000ff #设置下行策略把下行通道带宽按子网主机数量平均划分成若干份。
ipfw queue 2 config pipe 2 mask src-ip 0x000000ff #设置上行策略把上行通道带贡按子网主机数量平均划分成若干份。

ipfw add 40 queue 2 ip from 192.168.10.0/24 to any in #将内网应用上行策略。
ipfw add 41 queue 1 ip from any to 192.168.10.0/24 out #将内网应用下行策略。

以上设置没有任何错误,我已经测试并应用中效果极好。

运行效果:以上规则会根据内网在线的实际主机数来平均划分通道中的带宽,主机之间带宽相互不影响,每台主机用BT和迅雷等下载,只会占用自己的带宽,影响自己的上网速度,不影响其它主机。
在家可以试试!!
返回页首
阅览会员资料 发送站内信件 发送电子邮件
sharin
道童


注册时间: 2003-05-09
文章: 214

文章发表于: Tue 2008-05-06 19:33:55    发表主题: 引用并回复

关注。等测试报告。
返回页首
阅览会员资料 发送站内信件
bestwc
道童


注册时间: 2007-06-28
文章: 305

文章发表于: Wed 2008-05-07 03:50:13    发表主题: 引用并回复

若干概念错误。
_________________
最近在看:《PostgreSQL Hardware Perform》
最近搞懂:Pagein比Pageout更糟糕
返回页首
阅览会员资料 发送站内信件 发送电子邮件
tianlongcheng
半仙


注册时间: 2005-03-22
文章: 19

文章发表于: Wed 2008-05-07 08:58:34    发表主题: 引用并回复

请大家发表下意见,是不是有那么好的效果.
返回页首
阅览会员资料 发送站内信件
ljf331
半仙


注册时间: 2006-04-17
文章: 153

文章发表于: Wed 2008-05-07 09:10:46    发表主题: Re: 带宽限制的极好方法!!!! 大家可以试试!!! 引用并回复

关于利用ipfw限制单IP带宽,本论坛有许多帖子和成功的案例。有几个问题与楼主商榷,并提请各道友注意

1.关于option HZ
zcnoffice 写到:
在内核中一定要加上
option HZ=1000

ipfw对单IP带宽带宽的限制是结合dummynet来限制带宽的,因此内核配置文件中
代码:
options DUMMYNET

必不可少。而option HZ=1000 反倒不是必需的,系统有默认值。即使设置也要根据CPU频率修改HZ值,CPU频率1.5G以内,HZ为2000, 1.5G~2G, HZ=4000, 2G以上HZ=5000

2.关于策略的优化

zcnoffice 写到:

在rc.firewall中设置:
ipfw pipe 1 config bw 9500Kbits/s #设置下行通道带宽。
ipfw pipe 2 config bw 7000Kbits/s #设置上行通道带宽。
ipfw queue 1 config pipe 1 mask dst-ip 0x000000ff #设置下行策略把下行通道带宽按子网主机数量平均划分成若干份。
ipfw queue 2 config pipe 2 mask src-ip 0x000000ff #设置上行策略把上行通道带贡按子网主机数量平均划分成若干份。

ipfw add 40 queue 2 ip from 192.168.10.0/24 to any in #将内网应用上行策略。
ipfw add 41 queue 1 ip from any to 192.168.10.0/24 out #将内网应用下行策略。

以上代码可以优化,将前四条策略合并为两条。以下配置就是我单位网关服务器有关带宽的核心配置
代码:
ipfw pipe 1 config mask src-ip 0x000000ff bw 1000Kbit/s queue 300Kbytes
ipfw pipe 2 config mask dst-ip 0x000000ff bw 1000Kbit/s queue 300Kbytes

ipfw -q add 400 pipe 1 ip from 192.168.0.0/24 to any out
ipfw -q add 500 pipe 2 ip from any to 192.168.0.0/24 in


3.关于队列。
在IPFW对单个IP进行限制是为每个IP设置一个队列, IPFW通过掩码计算自己设置的,而且是根据发起链接的IP随来随建,不是预先建立队列;每IP的带宽就是pipe中定义的值(1000Kbit/s)。 ipfw默认建立的队列最大是64个。
返回页首
阅览会员资料 发送站内信件
zcnoffice
半仙


注册时间: 2007-11-15
文章: 52

文章发表于: Wed 2008-05-07 10:08:27    发表主题: 引用并回复

本人是初学者,出现一些用词或概念错误,请大家纠正体谅!

楼上所说的优化策略:

代码:
ipfw pipe 1 config mask src-ip 0x000000ff bw 1000Kbit/s queue 300Kbytes
ipfw pipe 2 config mask dst-ip 0x000000ff bw 1000Kbit/s queue 300Kbytes

ipfw -q add 400 pipe 1 ip from 192.168.0.0/24 to any out
ipfw -q add 500 pipe 2 ip from any to 192.168.0.0/24 in


是指第个队列固定带宽1000Kbps吗? 还是随着网络中主机的上线数量变化??
能解释一下queue 300Kbytes的作用吗?? 如何更改最大的队列数?? 谢谢!!
返回页首
阅览会员资料 发送站内信件 发送电子邮件
ljf331
半仙


注册时间: 2006-04-17
文章: 153

文章发表于: Wed 2008-05-07 10:22:27    发表主题: 引用并回复

一、 1000Kbit/s是单IP的限制带宽,是固定值,不随接入主机数量的增加而变化。

二、queue 300Kbytes 是该IP所在队列的数据缓冲值,该值太小影响视频播放。

三、至于64的队列数是默认值,可以调整,具体调整哪个参数可以在网上搜一搜。学生机房主机最大不超过50台,我没有超过64台的应用环境,所以也没有去研究过。
返回页首
阅览会员资料 发送站内信件
zcnoffice
半仙


注册时间: 2007-11-15
文章: 52

文章发表于: Wed 2008-05-07 10:44:34    发表主题: 引用并回复

我上面做的策略是根据上线主机的数量来调整平均分配给定的带宽,两个策略的效果不一样,我做了测试,可以的.
而且option HZ必须指定,只是值就像你说的那样,不一定是1000.
如果不指定的话,会很慢的.
可以尝试一下.
请大家多纠正,谢谢!!
返回页首
阅览会员资料 发送站内信件 发送电子邮件
zcnoffice
半仙


注册时间: 2007-11-15
文章: 52

文章发表于: Wed 2008-05-07 11:44:27    发表主题: 引用并回复

我刚刚在这个论坛中找到的,借见一下.

假设我们希望产生64个队列,那么可以设置掩码为:0x0000003F。意思很简单,最大生成队列数为64,每4个IP共享一个队列!图我就不画了!那么回头看看m0m0掩码的方式:0x00000000和0xFFFFFFFF;很显然,0x00000000表示只有一个动态队列,所有IP共享一个队列!0xFFFFFFFF表示每个IP一个队列,用在管道上那就是一个IP独享一个队列(管道)拉。


还有一个重要的参数: buckets hash-table-size ;指定哈西表大小,是为了储存不同的列队。由net.inet.ip.dummynet.hash_size默认为64,允许范围是16到1024。 有效的动态队列不完全由掩码决定,必须能通过哈西表引用队列才行,因此当IP数量超过64的时候,有可能会导致某些队列失效(从哈西表中删除其引用)!有几种方法可以解决这个问题,配置xml文件可以解决,也可以在webgui页面中为不同组的IP分配不同的管道来解决!

原地址:
http://www.freebsdchina.org/forum/viewtopic.php?t=34590
返回页首
阅览会员资料 发送站内信件 发送电子邮件
tianlongcheng
半仙


注册时间: 2005-03-22
文章: 19

文章发表于: Wed 2008-05-07 15:29:42    发表主题: 引用并回复

我单位是ADSL上行512KB,下行是2m,在IPFW这样加上规则(如下)为什么没效果,单机下载还超过这个值,为什么?
ipfw pipe 20 config bw 20KBytes/s
ipfw add pipe 20 ip from any to 192.168.63.0/24 out
ipfw pipe 30 config bw 30KBytes/s
ipfw add pipe 30 ip from 192.168.63.0/24 to any in
返回页首
阅览会员资料 发送站内信件
ljf331
半仙


注册时间: 2006-04-17
文章: 153

文章发表于: Wed 2008-05-07 15:44:45    发表主题: 引用并回复

tianlongcheng 写到:
我单位是ADSL上行512KB,下行是2m,在IPFW这样加上规则(如下)为什么没效果,单机下载还超过这个值,为什么?
ipfw pipe 20 config bw 20KBytes/s
ipfw add pipe 20 ip from any to 192.168.63.0/24 out
ipfw pipe 30 config bw 30KBytes/s
ipfw add pipe 30 ip from 192.168.63.0/24 to any in


1.单IP限制带宽,关键字是mask dst-ip 0x000000ff
2.ipfw list ? 看你加的策略顺序是否靠前。
返回页首
阅览会员资料 发送站内信件
delphij
精神病


注册时间: 2002-08-07
文章: 8427
来自: Mountain View, California

文章发表于: Thu 2008-05-08 05:56:26    发表主题: 引用并回复

HZ现在在i386/amd64上的默认值是1000,个人建议如果不是真的了解这个数值的含义最好不要改。
_________________
BSD是独立的一蹴,我们有自己的圈子,我们不以商业驱动,追求完美是我们的源动力,任何不好的代码都不能在这里存活。
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 MSN Messenger
zcnoffice
半仙


注册时间: 2007-11-15
文章: 52

文章发表于: Thu 2008-05-08 08:58:24    发表主题: 引用并回复

代码:
在rc.firewall中设置:
ipfw pipe 1 config bw 9500Kbits/s #设置下行通道带宽。
ipfw pipe 2 config bw 7000Kbits/s #设置上行通道带宽。
ipfw queue 1 config pipe 1 mask dst-ip 0x000000ff #设置下行策略把下行通道带宽按子网主机数量平均划分成若干份。
ipfw queue 2 config pipe 2 mask src-ip 0x000000ff #设置上行策略把上行通道带贡按子网主机数量平均划分成若干份。

ipfw add 40 queue 2 ip from 192.168.10.0/24 to any in #将内网应用上行策略。
ipfw add 41 queue 1 ip from any to 192.168.10.0/24 out #将内网应用下行策略。

以上策略中,如果不改HZ为适当值的话,使用默认值,内网中客户机上网会很慢的。希望有人能测试一下,看看实际情况!
返回页首
阅览会员资料 发送站内信件 发送电子邮件
ljf331
半仙


注册时间: 2006-04-17
文章: 153

文章发表于: Thu 2008-05-08 09:39:20    发表主题: 引用并回复

zcnoffice 写到:

ipfw add 40 queue 2 ip from 192.168.10.0/24 to any in #将内网应用上行策略。
ipfw add 41 queue 1 ip from any to 192.168.10.0/24 out #将内网应用下行策略。


1、我在网关做的NAT,内网用户通过网关地址转换后访问外网。因此从192.168.0.0/24 to any (上行)是out ,反之是in。 不知你的网络环境是否与我的一致。

2、如果你的服务器只是对内网提供服务,为什么上下行不对称?

3、ipfw对队列的控制不如PF,队列好像不能像PF那样借用带宽,你在运行一下ipfw pipe list 看看队列的建立情况。

4、个人认为HZ设置应对带宽不会产生大的影响,至多对带宽的控制不是特别精细。
返回页首
阅览会员资料 发送站内信件
zcnoffice
半仙


注册时间: 2007-11-15
文章: 52

文章发表于: Thu 2008-05-08 09:48:47    发表主题: 引用并回复

ipfw add 40 queue 2 ip from 192.168.10.0/24 to any in #将内网应用上行策略。
ipfw add 41 queue 1 ip from any to 192.168.10.0/24 out #将内网应用下行策略。
对,这个问题也是我一直想弄清楚的,我在handbook中的防火墙教程中说明是像我这样的,但很多资料中显示是你说的那样,这两种我都用过,现在我用的就是上面的设置,效果还可以,就是在主机流量大的时间丢包较多。
返回页首
阅览会员资料 发送站内信件 发送电子邮件
zcnoffice
半仙


注册时间: 2007-11-15
文章: 52

文章发表于: Thu 2008-05-08 10:09:17    发表主题: 引用并回复

这是我的rc.firewall内容:
代码:
ipfw pipe 1 config bw 9500Kbits/s
ipfw pipe 2 config bw 7000Kbits/s
ipfw queue 1 config pipe 1 mask dst-ip 0xffffffff
ipfw queue 2 config pipe 2 mask src-ip 0xffffffff

ipfw add 40 queue 2 ip from 192.168.10.0/24 to any in
ipfw add 41 queue 1 ip from any to 192.168.10.0/24 out

这是我的ipfw pipe list.大家帮看看,我把0x000000ff改为了0xffffffff之后的显示:
代码:
00001:   9.500 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
00002:   7.000 Mbit/s    0 ms   50 sl. 0 queues (1 buckets) droptail
q00001: weight 1 pipe 1   50 sl. 50 queues (1024 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  4 ip           0.0.0.0/0             0.0.0.4/0     34594  7563051  0    0   0
 10 ip           0.0.0.0/0            0.0.0.10/0     18504  9456852  0    0   0
 14 ip           0.0.0.0/0            0.0.0.14/0      891   317021  0    0   0
 35 ip           0.0.0.0/0            0.0.0.35/0     984786 482776361  0    0 75
5
 38 ip           0.0.0.0/0            0.0.0.38/0     106925 54537426  0    0   0
 50 ip           0.0.0.0/0            0.0.0.50/0     11335  1934056  0    0   0
 55 ip           0.0.0.0/0            0.0.0.55/0     1043   435946  0    0   0
 56 ip           0.0.0.0/0            0.0.0.56/0     7853  3113500  0    0   0
 63 ip           0.0.0.0/0            0.0.0.63/0     5160  1777378  0    0   0
 65 ip           0.0.0.0/0            0.0.0.65/0     17528  4645232  0    0   0
 71 ip           0.0.0.0/0            0.0.0.71/0     61018 26961152  0    0   3
 72 ip           0.0.0.0/0            0.0.0.72/0     3874   651622  0    0   0
 74 ip           0.0.0.0/0            0.0.0.74/0      710   215826  0    0   0
 81 ip           0.0.0.0/0            0.0.0.81/0     1457960 645091734  0    0 2
24
 85 ip           0.0.0.0/0            0.0.0.85/0     34654 12728535  0    0   0
 89 ip           0.0.0.0/0            0.0.0.89/0     36111 16606006  0    0   0
 94 ip           0.0.0.0/0            0.0.0.94/0     4983  2259820  0    0   0
104 ip           0.0.0.0/0           0.0.0.104/0       51    12468  0    0   0
105 ip           0.0.0.0/0           0.0.0.105/0     521043 436767248  0    0 12
079
106 ip           0.0.0.0/0           0.0.0.106/0     58764 28478800  0    0   0
142 ip           0.0.0.0/0           0.0.0.142/0     1214   508769  0    0   0
148 ip           0.0.0.0/0           0.0.0.148/0     93371 33289336  0    0  21
171 ip           0.0.0.0/0           0.0.0.171/0     1637322 1864599505  0    0
75693
173 ip           0.0.0.0/0           0.0.0.173/0     1777244 1818282417  0    0
41170
192 ip           0.0.0.0/0           0.0.0.192/0     67785  5476080  0    0   0
193 ip           0.0.0.0/0           0.0.0.193/0     15238  2460455  0    0   0
769 ip           0.0.0.0/0       192.168.10.81/0     159953 38984427  0    0   0
773 ip           0.0.0.0/0       192.168.10.85/0      290    33958  0    0   0
777 ip           0.0.0.0/0       192.168.10.89/0     1694   735722  0    0   0
791 ip           0.0.0.0/0       192.168.10.71/0     23836  9799868  0    0   4
792 ip           0.0.0.0/0       192.168.10.72/0     3344   470637  0    0   0
794 ip           0.0.0.0/0       192.168.10.74/0       30     6811  0    0   0
825 ip           0.0.0.0/0      192.168.10.105/0     210256 182313726 30 21846 8
838
826 ip           0.0.0.0/0      192.168.10.106/0     15182  9201533  0    0   0
852 ip           0.0.0.0/0        192.168.10.4/0     5016  1246574  0    0   0
858 ip           0.0.0.0/0       192.168.10.10/0     5296  2791612  0    0   0
866 ip           0.0.0.0/0       192.168.10.50/0     1209   139729  0    0   0
871 ip           0.0.0.0/0       192.168.10.55/0     2581  1436715  0    0   0
872 ip           0.0.0.0/0       192.168.10.56/0     10258  5289468  0    0   0
878 ip           0.0.0.0/0       192.168.10.62/0       28     4354  0    0   0
879 ip           0.0.0.0/0       192.168.10.63/0     3439   966968  0    0   0
883 ip           0.0.0.0/0       192.168.10.35/0     41634  8945215  0    0   0
912 ip           0.0.0.0/0      192.168.10.192/0     8634   530634  0    0   0
913 ip           0.0.0.0/0      192.168.10.193/0     2092   332497  0    0   0
964 ip           0.0.0.0/0      192.168.10.148/0     5525  1733432  0    0   0
971 ip           0.0.0.0/0      192.168.10.155/0       16     7045  0    0   0
972 ip           0.0.0.0/0      192.168.10.156/0      229   110945  0    0   0
974 ip           0.0.0.0/0      192.168.10.158/0      465    54859  0    0   0
1019 ip           0.0.0.0/0      192.168.10.171/0     150143 171385283  2 2936 1
680
1021 ip           0.0.0.0/0      192.168.10.173/0     184249 174505343 22 22361
4553
q00002: weight 1 pipe 2   50 sl. 46 queues (1024 buckets) droptail
    mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  2 ip     192.168.10.85/0             0.0.0.0/0      494   489200  0    0   0
  8 ip           0.0.0.4/0             0.0.0.0/0     27325  2825806  0    0   0
 10 ip     192.168.10.81/0             0.0.0.0/0     234396 199537137  0    0 31
2
 20 ip          0.0.0.10/0             0.0.0.0/0     15586  1343677  0    0   0
 26 ip     192.168.10.89/0             0.0.0.0/0     1273    66512  0    0   0
 28 ip          0.0.0.14/0             0.0.0.0/0      746   126164  0    0   0
 38 ip     192.168.10.71/0             0.0.0.0/0     38227  3896111  0    0   0
 56 ip     192.168.10.72/0             0.0.0.0/0     3282   190386  0    0   0
 60 ip     192.168.10.74/0             0.0.0.0/0       65     4585  0    0   0
 70 ip          0.0.0.35/0             0.0.0.0/0     1249605 477388469  0    0 8
04
 76 ip          0.0.0.38/0             0.0.0.0/0     134506  9377552  0    0   7
100 ip          0.0.0.50/0             0.0.0.0/0     10688   562037  0    0   0
110 ip          0.0.0.55/0             0.0.0.0/0      899    70934  0    0   0
112 ip          0.0.0.56/0             0.0.0.0/0     7068  1071361  0    0   0
122 ip    192.168.10.105/0             0.0.0.0/0     184123 12083398  0    0   0
124 ip    192.168.10.106/0             0.0.0.0/0     11725   626412  0    0   0
126 ip          0.0.0.63/0             0.0.0.0/0     4757   466074  0    0   3
130 ip          0.0.0.65/0             0.0.0.0/0     14235   747212  0    0   0
142 ip          0.0.0.71/0             0.0.0.0/0     80250  7651324  0    0   0
144 ip          0.0.0.72/0             0.0.0.0/0     3784   224022  0    0   0
148 ip          0.0.0.74/0             0.0.0.0/0      700    50847  0    0   0
160 ip      192.168.10.4/0             0.0.0.0/0     4784   902953  0    0   0
162 ip          0.0.0.81/0             0.0.0.0/0     1971994 1270807714  0    0
1295
170 ip          0.0.0.85/0             0.0.0.0/0     37017 17685185  0    0   0
178 ip          0.0.0.89/0             0.0.0.0/0     28844  2641938  0    0   0
188 ip     192.168.10.10/0             0.0.0.0/0     4465   342906  0    0   0
198 ip     192.168.10.55/0             0.0.0.0/0     1850    78158  0    0   0
204 ip     192.168.10.50/0             0.0.0.0/0     1182    53142  0    0   0
208 ip         0.0.0.104/0             0.0.0.0/0       89     5765  0    0   0
210 ip         0.0.0.105/0             0.0.0.0/0     448972 32412481  0    0   0
212 ip     192.168.10.62/0             0.0.0.0/0       29     2018  0    0   0
214 ip     192.168.10.63/0             0.0.0.0/0     2916   172948  0    0   0
216 ip     192.168.10.56/0             0.0.0.0/0     8045   931188  0    0   0
238 ip     192.168.10.35/0             0.0.0.0/0     49027 27516863  0    0   0
284 ip         0.0.0.142/0             0.0.0.0/0     1047   123542  0    0   0
296 ip    192.168.10.192/0             0.0.0.0/0     6531   402231  0    0   0
298 ip    192.168.10.193/0             0.0.0.0/0     2112   126156  0    0   0
342 ip         0.0.0.171/0             0.0.0.0/0     1706289 136145863  0    0
83
346 ip         0.0.0.173/0             0.0.0.0/0     1770059 205683119  0    0 4
01
384 ip    192.168.10.148/0             0.0.0.0/0     5050   792838  0    0   0
386 ip         0.0.0.193/0             0.0.0.0/0     14801   943248  0    0   0
400 ip    192.168.10.156/0             0.0.0.0/0      258    24553  0    0   0
404 ip    192.168.10.158/0             0.0.0.0/0      477    35084  0    0   0
414 ip    192.168.10.155/0             0.0.0.0/0       20     2214  0    0   0
498 ip    192.168.10.173/0             0.0.0.0/0     186713 18780687  0    0  33
510 ip    192.168.10.171/0             0.0.0.0/0     159960 11823107  0    0   0
返回页首
阅览会员资料 发送站内信件 发送电子邮件
从以前的文章开始显示:   
发表新文章   回复文章    FreeBSD China -> 技术交流 论坛时间为 北京时间
1页/共1

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2022cc © 2003 Opensource Steps; © 2003-2007 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标