Simple queue简单队列是IP地址或子网段进行流量限制,IP限流最简单方法就是使用/queue simple。也可以用simple queue建立高级QoS应用,如mangle标记和等级队列。

 

功能包:system
等级: Level 3
操作路径: /queue simple

 

在/queue simple创建一个流控配置项目,会分别有三个独立的队列,分别是 global-in, global-out和 global-total. 如果在/queue simple创建一个默认队列规则(无流控限制、queue type为默认),并且该队列没有子队列,即这样的队列实际上没有创建。如果队列只配置了upload/download流控属性,global-total队列可以被忽略。如果仔细观察,当建立一条queue simple规则同时在queue tree可以瞬间看到3条规则的建立,然后被隐藏到后台,即queue simple被建立在queue tree下。

 

Simple queues是有序对队列即FIFO,每个数据包都必须经过每一个队列处理,直到最后一条队列规则,即如果有1000条队列,匹配的队列规则是排列在第1000条,那么数据包过经过前面999条后,才能到达该规则。 因此Simple queue在出现大量队列规则后,处理效率会降低。

 

在v6大改动后,simple queue已经具备了和queue tree相同的等级流控功能。在v6前simple queue使用的是FIFO算法,后v6之后FIFO算法已经取消,优化了RouterOS在流控处理性能。

 

  • P2P流量队列
  • 计划时间任务执行队列规则
  • 优先级队列
  • 从 /ip firewall mangle 使用多重包标记
  • 双向流控(对上行和下行的带宽限制)

 

应用举例

 

下面假设我们想要对网络192.168.0.0/24流量限制为:下行1Mb上行512kb,这里我们需要让服务器192.168.0.1不受流量控制。网络的基本设置如图:

 

这里我们使用(simple queue)简单队列,首先我们配置RouterOS的IP地址、网关和NAT等基本网络参数:

 

 [admin@MikroTik] ip address> print
Flags: X – disabled, I – invalid, D – dynamic
 #   ADDRESS            NETWORK         BROADCAST       INTERFACE
 0   192.168.0.254/24    192.168.0.0     192.168.0.255      Local
 1   10.5.8.104/24           10.5.8.0            10.5.8.255             Public
[admin@MikroTik] ip address>

 

路由配置:

 

[admin@MikroTik] ip route> print
Flags: X – disabled, A – active, D – dynamic,
C – connect, S – static, r – rip, b – bgp, o – ospf
 #     DST-ADDRESS        G GATEWAY        DISTANCE   INTERFACE
 0 ADC 10.5.8.0/24                                                                   Public
 1 ADC 192.168.0.0/24                                                            Local
 2 A S 0.0.0.0/0                   r 10.5.8.1                                      Public
[admin@MikroTik] ip route>
最后不要忘记在ip firewall nat中配置src-nat的伪装或nat,做地址转换操作。

 

为网络192.168.0.0/24的所有客户端添加一个限制下载流量为2Mb上传流量1Mb的简单队列规则。

 

[admin@MikroTik] queue simple> add name=Limit-Local target-address=192.168.0.0/24 max-limit=1000000/2000000
[admin@MikroTik] queue simple> print
Flags: X – disabled, I – invalid, D – dynamic
 0    name=”Limit-Local” target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
      parent=none priority=8 queue=default/default  limit-at=0/0 max-limit=1000000/2000000 total-queue=default
[admin@MikroTik] queue simple>
max-limit限制了最大可用带宽,从客户的角度看,参数target-addresses定义限制带宽的目标网络或者主机(也可以用逗号分隔开网络段或主机地址)。
这里不想让服务器受到我们添加上面规则的任何流量限制,我们可以通过添加一个没有任何限制的规则(max-limit=0/0代表没有任何限制)并把它移到列表的顶部:
[admin@MikroTik] queue simple> add name=Server target-addresses=192.168.0.1/32
[admin@MikroTik] queue simple> print
Flags: X – disabled, I – invalid, D – dynamic
 0    name=”Limit-Local” target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
      parent=none priority=8 queue=default/default limit-at=0/0 max-limit=65536/131072 total-queue=default
 1    name=”Server” target-addresses=192.168.0.1/32 dst-address=0.0.0.0/0
      parent=none priority=8 queue=default/default limit-at=0/0 max-limit=0/0       total-queue=default
使用move命令将第二条规则移动到第一条,即从编号1,移动到编号0,用于queue simple中FIFO的优先顺序(注意:v6.0后FIFO算法被取消,所以不存在move命令
[admin@MikroTik] queue simple> move 1 0
[admin@MikroTik] queue simple> print
Flags: X – disabled, I – invalid, D – dynamic
 0    name=”Server” target-addresses=192.168.0.1/32 dst-address=0.0.0.0/0
      parent=none priority=8 queue=default/default
      limit-at=0/0 max-limit=0/0 total-queue=default
 1    name=”Limit-Local” target-addresses=192.168.0.0/24 dst-address=0.0.0.0/0
      parent=none priority=8 queue=default/default
      limit-at=0/0 max-limit=65536/131072 total-queue=default
[admin@MikroTik] queue simple>

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章很值,打赏犒劳作者一下