Simple Queue简单配置
功能包: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>