FreeBSDstream量整形

我正在尝试使用FreeBSD进行stream量整形,这是我的规则

 su-3.2#ipfw show |  greppipe道
 08380 1514852 125523804从任何到任何dst-port 80pipe道1 tcp
 su-3.2#ipfw pipe 1 show
 00001:2.000 Mbit / s 0 ms 50 sl。  1队(1桶)尾巴
    掩码:0x00 0x00000000 / 0x0000  - > 0x00000000 / 0x0000
 BKT Prot ___来源IP /端口____ ____待办事项。  IP /端口____ Tot_pkt / bytes Pkt / Byte Drp
   0 tcp 64.237.55.83/60598 72.21.81.133/80 6520267 1204533020 0 0 1216
 SU-3.2# 

首先为什么当我运行IPFWpipe道1显示我得到相同的源和目的IP,这似乎并没有改变,但总包/字节增加

和最重要的问题,donig所有,我看着我的MRTG统计后,我看我已经超过2Mbit / s的限制。

我究竟做错了什么?

这里是configuration文件

红晕
pipe道冲洗
pipe道1 config bw 2Mbit / s
从任何地方通过lo0添加100个允许ip
从任何地方添加200拒绝ip到127.0.0.0/8
从127.0.0.0/8添加300拒绝ip到任何
从任何src-port www uid守护进程添加8380 pipe 1 tcp
从任何到任何dst端口www uid守护进程添加8380pipe道1 tcp
加65000通全部从任何到任何

您将httpstream量限制为2Mb / s,但您允许所有其他stream量通过。 所以你仍然可以有50Mb / s的FTPstream量,例如不受限制

我曾经这样设定政策:

# flush all rules ipfw -f flush ipfw pipe 1 config bw 256Kbits/s ipfw pipe 2 config bw 512Kbits/s ipfw pipe 10 config bw 1Mbits/s ipfw pipe 50 config bw 20Mbits/s ipfw pipe 60 config bw 20Mbits/s ipfw pipe 100 config bw 100Mbits/s ipfw add 1 pipe 50 ip from XXXX/21 to any out ipfw add 2 pipe 60 ip from any to XXXX/21 in 

所以你内部有20Mb / s,外面有20Mb / s。 如果你只使用一个pipe道,那么它是20Mb / s共享,所以10Mb / s。

你必须在最后包括所有的交通,所以没有交通线路没有stream量

如果你绑定到ipfw看看这个网站 – 他们谈论OS X的stream量整形,但IPFW是IPFW,它应该让你去。 (基本上看起来你错过了pipe道上的队列,如果我记得正确的话,就会使stream量整形失效)。

如果你没有和ipfw结婚,你可以用pf和ALTQ来更简单地做到这一点(还有很多其他的QOS和排队的东西)( 一个引用 ,还有更多可用的,包括pf排队文档 )

一般说明:当应用于出站stream量时,排队/成形往往效果最好(所以如果要限制ISP接口上的入站stream量,可能会更好地限制内部接口上的出站stream量)