阿木DE 发表于 2010-10-4 05:12:46

官方文档- Connection Rate连接速率

Connection Rate是一个防火墙标记器,允许捕获在当前传输的连接速度
Connection Rate原理

每个连接项目在connection tracking表中是双向通讯。每次得到相关的数据包到特定的项目,数据包的长度值(包括IP数据包头)被添加到“Connection-bytes”值,换句话说,Connection-bytes包括两部分上行和下行。

Connection Rate计算连接的速度基于"connection-bytes"的变化。Connection Rate每秒会被重新计算,且没有任何平均值。

两个选项 "connection-bytes" 和"connection-rate" 工作只能在TCP和UDP传输。(你需要指定协议激活这些选项) 在 "connection-rate"您可以指定速度,和你想捕获范围。
例如:

这个规则是捕获当连接速度低于100kbps通过路由器的TCP/UDP传输/ip firewall filter
add action=accept chain=forward connection-rate=0-100k protocol=tcp
add action=accept chain=forward connection-rate=0-100k protocol=udp
注意:Connection Rate 从3.30才能获得,这个选项是用于捕获传输密集的连接
传输优先级

Connection-rate能被使用在各种方式,通常的方式是使用队列树进行HTB的优先级控制,检测并设置低优先级给“heavy connections”(连接在一段时间内保持较快速率,例如:P2P、HTTP、FTP下载)通过这样做,你可以区分所有其它传输的优先次序,通常包括VOIP、HTTP浏览和在线游戏

connection-rate 选项没有任何平均值,我们需要确定识别"heavy connections"的差额。如果我们假设正常的HTTP浏览连接小于500kB(4Mb,即connection-bytes值)长度,VOIP需要不超过200kbps 的流量,那么每次连接当超过500kB后,仍然有200kbps的流量将被认为是"heavy connections"

(对于HTTP浏览和VOIP可能有不同的"connection-bytes"在你的网络环境中,所以请你在实际操作时,这个实例仅做参考。)

下面实例让我们假设,我们有6Mbps上传和下载per-connection-classifier=
PerConnectionClassifier ::= [!]ValuesToHash:Denominator/Remainder
Remainder ::= 0..4294967295    (integer number)
Denominator ::= 1..4294967295    (integer number)
ValuesToHash ::= src-address|dst-address|src-port|dst-port[,ValuesToHash*]
实例脚本/ip firewall mangle
add chain=forward action=mark-connection connection-mark=!heavy_traffic_conn new-connection-mark=all_conn
add chain=forward action=mark-connection connection-bytes=500000-0   connection-mark=all_conn connection-rate=200k-100M   new-connection-mark=heavy_traffic_conn protocol=tcp
add chain=forward action=mark-connection connection-bytes=500000-0   connection-mark=all_conn connection-rate=200k-100M   new-connection-mark=heavy_traffic_conn protocol=udp
add chain=forward action=mark-packet connection-mark=heavy_traffic_conn   new-packet-mark=heavy_traffic passthrough=no
add chain=forward action=mark-packet connection-mark=all_conn   new-packet-mark=other_traffic passthrough=no
/queue tree
add name=upload parent=public max-limit=6M
add name=other_upload parent=upload limit-at=4M max-limit=6M   packet-mark=other_traffic priority=1
add name=heavy_upload parent=upload limit-at=2M max-limit=6M   packet-mark=heavy_traffic priority=8
add name=download parent=local max-limit=6M
add name=other_download parent=download limit-at=4M max-limit=6M   packet-mark=other_traffic priority=1
add name=heavy_download parent=download limit-at=2M max-limit=6M   packet-mark=heavy_traffic priority=8
脚本说明

在mangle中,我们需要分离所有连接到2个组中,这样数据包标记从2个组取得。我们讨论的客户的传输理论上大多标记在forward链表中。

请记住,“heavy”连接将有低的优先级,队列将打压max-limit—heavy连接将被限制速度。这样引起改变高优先级连接获取更多的带宽,当在一次产生connection-rate将上升,并导致其改变为较低优先级。为了避免这一点,我们必须确保,一旦发现“heavy”连接,剩下的标记在所有时间仍然是"heavy"连接
Mangel规则配置/ip firewall mangle
add chain=forward action=mark-connection connection-mark=!heavy_traffic_conn new-connection-mark=all_conn
这个规则将确定"heavy"连接,连接将只剩下“heavy”add chain=forward action=mark-connection connection-bytes=500000-0   connection-mark=all_conn connection-rate=200k-100M   new-connection-mark=heavy_traffic_conn protocol=tcp
add chain=forward action=mark-connection connection-bytes=500000-0   connection-mark=all_conn connection-rate=200k-100M   new-connection-mark=heavy_traffic_conn protocol=udp
这两个规则将根据我们的标准标记所有heavy连接,每次连接在第一次超过500KB流量后,仍然保持200kbps以上速度被认为“heavy”。add chain=forward action=mark-packet connection-mark=heavy_traffic_conn   new-packet-mark=heavy_traffic passthrough=no
add chain=forward action=mark-packet connection-mark=all_conn   new-packet-mark=other_traffic passthrough=no
最后2条规则在mangle中将标记数据包传输从相应的连接中。
队列配置

这个是一个简单的队列树被放到接口的HTBThis is a simple queue tree that is placed on the Interface HTB – 你的ISP连接的“wan”接口,“lan“连接你的内网客户。如果你有多个wan接口或者多个lan,你将需要标记上行和下行分离标记/queue tree
add name=upload parent=public max-limit=6M
add name=other_upload parent=upload limit-at=4M max-limit=6M   packet-mark=other_traffic priority=1
add name=heavy_upload parent=upload limit-at=2M max-limit=6M   packet-mark=heavy_traffic priority=8
add name=download parent=local max-limit=6M
add name=other_download parent=download limit-at=4M max-limit=6M   packet-mark=other_traffic priority=1
add name=heavy_download parent=download limit-at=2M max-limit=6M   packet-mark=heavy_traffic priority=8
注:以上规则仅适用于非nat地址转换的路由器配置

WGHBOY 发表于 2010-10-4 11:41:15

现在的p2p很多是小包传输,

michaelyuan 发表于 2010-12-30 12:03:52

楼上正解:lol

9939781 发表于 2010-12-30 15:38:48

现在传文件不流行大包了,哈哈哈:lol

7ac012674 发表于 2011-1-6 22:12:05

现在传文件不流行大包了,

cooljay 发表于 2011-3-15 15:57:25

如果在线视频之类的个这能准确捕捉否?

kyer2012 发表于 2011-3-15 19:39:06

好东西! 多谢分享!
页: [1]
查看完整版本: 官方文档- Connection Rate连接速率