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 [...]
浙公网安备 33010602011771号