找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8713|回复: 6

[其它] 官方文档- Connection Rate连接速率

[复制链接]
发表于 2010-10-4 05:12:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
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传输
  1. /ip firewall filter
  2. add action=accept chain=forward connection-rate=0-100k protocol=tcp
  3. 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上传和下载
  1. per-connection-classifier=
  2. PerConnectionClassifier ::= [!]ValuesToHash:Denominator/Remainder
  3.   Remainder ::= 0..4294967295    (integer number)
  4.   Denominator ::= 1..4294967295    (integer number)
  5.   ValuesToHash ::= src-address|dst-address|src-port|dst-port[,ValuesToHash*]
复制代码
实例脚本
  1. /ip firewall mangle
  2. add chain=forward action=mark-connection connection-mark=!heavy_traffic_conn new-connection-mark=all_conn
  3. 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
  4. 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
  5. add chain=forward action=mark-packet connection-mark=heavy_traffic_conn     new-packet-mark=heavy_traffic passthrough=no
  6. add chain=forward action=mark-packet connection-mark=all_conn     new-packet-mark=other_traffic passthrough=no
复制代码
  1. /queue tree
  2. add name=upload parent=public max-limit=6M
  3. add name=other_upload parent=upload limit-at=4M max-limit=6M     packet-mark=other_traffic priority=1
  4. add name=heavy_upload parent=upload limit-at=2M max-limit=6M     packet-mark=heavy_traffic priority=8
  5. add name=download parent=local max-limit=6M
  6. add name=other_download parent=download limit-at=4M max-limit=6M     packet-mark=other_traffic priority=1
  7. 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规则配置
  1. /ip firewall mangle
  2. add chain=forward action=mark-connection connection-mark=!heavy_traffic_conn new-connection-mark=all_conn
复制代码
这个规则将确定"heavy"连接,连接将只剩下“heavy”
  1. 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
  2. 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”。
  1. add chain=forward action=mark-packet connection-mark=heavy_traffic_conn     new-packet-mark=heavy_traffic passthrough=no
  2. 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,你将需要标记上行和下行分离标记
  1. /queue tree
  2. add name=upload parent=public max-limit=6M
  3. add name=other_upload parent=upload limit-at=4M max-limit=6M     packet-mark=other_traffic priority=1
  4. add name=heavy_upload parent=upload limit-at=2M max-limit=6M     packet-mark=heavy_traffic priority=8
  5. add name=download parent=local max-limit=6M
  6. add name=other_download parent=download limit-at=4M max-limit=6M     packet-mark=other_traffic priority=1
  7. add name=heavy_download parent=download limit-at=2M max-limit=6M     packet-mark=heavy_traffic priority=8
复制代码
注:以上规则仅适用于非nat地址转换的路由器配置
routeros
发表于 2010-10-4 11:41:15 | 显示全部楼层
现在的p2p很多是小包传输,
routeros
回复

使用道具 举报

发表于 2010-12-30 12:03:52 | 显示全部楼层
楼上正解
routeros
回复

使用道具 举报

发表于 2010-12-30 15:38:48 | 显示全部楼层
现在传文件不流行大包了,哈哈哈
routeros
回复

使用道具 举报

发表于 2011-1-6 22:12:05 | 显示全部楼层
现在传文件不流行大包了,
routeros
回复

使用道具 举报

发表于 2011-3-15 15:57:25 | 显示全部楼层
如果在线视频之类的个这能准确捕捉否?
routeros
回复

使用道具 举报

发表于 2011-3-15 19:39:06 | 显示全部楼层
好东西! 多谢分享!
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-22 19:27 , Processed in 0.051117 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表