web-dev-qa-db-ja.com

Mikrotikキューと合計アップストリーム帯域幅の制限

Mikrotikルーター(組み込みLinuxの形式)を使用して、送信元IPアドレスと一致するマシンごとに単純なキューを作成しました。

4つのマシンキューのそれぞれには、Tx/Rxに対して無制限のバースト3Mbps/3Mbpsがあります。

4台すべてのマシンで同時にspeedtest.netを実行すると、各マシンは3Mbpsを示します(正しく制限されます)が、アップリンクの合計帯域幅は12Mbpsになります(アップストリームではこれを最大10Mbpsに設定する必要があります)。

他のキューが何をしているかに関係なく、アップリンクポートを通過する実際のトラフィックを10Mbpsに制限したいと思います(これは、すべてのキューをキャッチして、アップリンク速度を最終的に決定する必要があります)。

たとえば、私は必要です:

シナリオA

  • 3Mbpsで転送するマシンA
  • 3Mbpsで転送するマシンB
  • 3Mbpsで転送するマシンC
  • マシンDが0Mbpsで転送アップリンク速度= 9Mbps

シナリオB

  • マシンAが3Mbpsで転送しようとしています
  • マシンBが3Mbpsで転送しようとしています
  • マシンCが3Mbpsで転送しようとしています
  • マシンDが3Mbpsで転送しようとしています
  • アップリンク速度= 10Mbps
  • マシンA、B、C、Dの実際の転送速度= 2.5Mbps

これは、すべてが常に3Mbpsで送信されるわけではないため、帯域幅キューのわずかなオーバーサブスクリプションを許可するためです。

これは可能ですか?もしそうなら、どうやってこれを行うのでしょうか?

2
g18c

単純なキューを使用する代わりに、キューツリーを使用することをお勧めします。参照: http://wiki.mikrotik.com/wiki/Manual:Queue#Queue_Tree

簡単に言うと、アップロード用にトップレベルのキューが必要で、ダウンロード用に別のキューが必要になるため、方向ごとにこれを複製して、必要に応じてsrc-addressをdest-addressに変更します。

  1. 最大10Mbpsのキューを作成します。

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

  2. パケットマークを使用して、送信元または宛先IPごとに各パケットにタグを付けます。例えば。マシンAからのトラフィックはmachine_a_upとしてマークされます。

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

  3. 指定された親キューでマークされたトラフィックを形成するためのキューを作成します。

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

または、 PCQを見てください 。それはより少ない仕事であなたが望むことをするかもしれません。

1
jda