Mikrotik队列和限制总上游带宽

使用Mikrotik路由器(embedded式Linux的forms),我已经为每台机器创build了简单的队列,匹配的源IP地址。

4个机器队列中的每一个对于Tx / Rx具有无限制的3Mbps / 3Mbps的突发。

在所有4台机器speedtest.net同时,每台机器显示3Mbps(并正确限制在那里),但上行总带宽达到12Mbps(我需要设置为上游10Mbps的最大值)。

我想限制通过上行链路端口的实际stream量为10Mbps,而不pipe其他队列在做什么(我需要这个捕获所有队列在上行速度上有最后的发言权)。

比如我需要:

情景A

  • 机器A传输@ 3Mbps
  • 机器B传输@ 3Mbps
  • 机器C传输@ 3Mbps
  • 机器D传输@ 0Mbps上行链路速度= 9Mbps

情景B

  • 机器A试图传输@ 3Mbps
  • 机器B试图传输@ 3Mbps
  • 机器C试图传输@ 3Mbps
  • 机器D试图传输@ 3Mbps
  • 上行链路速度= 10Mbps
  • 机器A,B,C,D的实际传输速度D = 2.5Mbps

这是为了允许带宽队列的轻微超额订阅,因为不是所有的都将始终以3Mbps传输。

这是可能的,如果是这样,怎么会这样做呢?

而不是使用简单的队列,你可能想要使用队列树。 请参阅: http : //wiki.mikrotik.com/wiki/Manual : Queue#Queue_Tree

简而言之,你需要一个上传队列和一个单独的下载队列,以便将每个方向的src-address改为dest-address。

  1. 创build一个最大10Mbps的队列,用于:

    /queue tree add name=all_up limit-at=10M parent=machine_ingress_interface

  2. 使用数据包标记通过源或目标IP标记每个数据包。 例如,来自机器A的stream量被标记为machine_a_up:

    /ip firewall mangle add action=mark chain=prerouting new-packet-mark=machine_a_up src-address=192.168.1.2

  3. 创build一个队列来形成标记有指定父队列的stream量:

    /queue tree add name=machine_a_up packet-mark=machine_a_up parent=all_up

或者, 看一下PCQ 。 它可以做你想要的东西,less工作。