Jump to content
Калькуляторы

PCQ очереди в Miktoik Прошу помощи

Коллеги, доброго времени суток.

Прошу помощи в настройке PCQ на микротике. Не пойму, как-то странно работают очереди. Входящий трафик режут более менее нормально - похоже на правду, а вот с исходящим трафиком беда - скорость нестабильная и не соответствует установленным лимитам.

 

Крашу исходящий трафик в цепочке prerouting (сразу замечу, что пробовал красить в forward - все тоже самое)

 

[admin@MikroTik] > ip firewall mangle print chain=rate-limit-up
Flags: X - disabled, I - invalid, D - dynamic 
0  ;;; rate upload
     chain=rate-limit-up action=mark-packet new-packet-mark=unlim_500_up passthrough=no src-address-list=Speed_Limit_500 

1   chain=rate-limit-up action=mark-packet new-packet-mark=unlim_1000_up passthrough=no src-address-list=Speed_Limit_1000 

2   chain=rate-limit-up action=mark-packet new-packet-mark=unlim_2000_up passthrough=no src-address-list=Speed_Limit_2000 

3   chain=rate-limit-up action=mark-packet new-packet-mark=unlim_3000_up passthrough=no src-address-list=Speed_Limit_3000 

4   chain=rate-limit-up action=mark-packet new-packet-mark=unlim_4000_up passthrough=no src-address-list=Speed_Limit_4000 

5   chain=rate-limit-up action=mark-packet new-packet-mark=unlim_5000_up passthrough=no src-address-list=Speed_Limit_5000 

6   chain=rate-limit-up action=mark-packet new-packet-mark=unlim_6000_up passthrough=no src-address-list=Speed_Limit_6000 

7   chain=rate-limit-up action=mark-packet new-packet-mark=unlim_8000_up passthrough=no src-address-list=Speed_Limit_8000 

8   chain=rate-limit-up action=mark-packet new-packet-mark=unlim_10000_up passthrough=no src-address-list=Speed_Limit_10000

 

Задал типы очередей в соответствии со скоростями (исходящий намеренно завысил, чтобы хоть как-то приблизиться к нужным границам)

 

[admin@MikroTik] > queue type print 
0 name="default" kind=pfifo pfifo-limit=500 

1 name="ethernet-default" kind=pfifo pfifo-limit=50 

2 name="wireless-default" kind=sfq sfq-perturb=5 sfq-allot=1514 

3 name="synchronous-default" kind=red red-limit=60 red-min-threshold=10 red-max-threshold=50 red-burst=20 red-avg-packet=1000 

4 name="hotspot-default" kind=sfq sfq-perturb=5 sfq-allot=1514 

5 name="PCQ_download" kind=pcq pcq-rate=64000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

6 name="PCQ_upload" kind=pcq pcq-rate=30000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

7 name="unlim_500_download" kind=pcq pcq-rate=500000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

8 name="unlim_500_upload" kind=pcq pcq-rate=600000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

9 name="unlim_1000_download" kind=pcq pcq-rate=1000000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

10 name="unlim_1000_upload" kind=pcq pcq-rate=2000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

11 name="unlim_3000_download" kind=pcq pcq-rate=3000000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

12 name="unlim_3000_upload" kind=pcq pcq-rate=5000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

13 name="unlim_5000_download" kind=pcq pcq-rate=5000000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

14 name="unlim_5000_upload" kind=pcq pcq-rate=7000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

15 name="unlim_2000_download" kind=pcq pcq-rate=2000000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

16 name="unlim_2000_upload" kind=pcq pcq-rate=3000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

17 name="unlim_4000_download" kind=pcq pcq-rate=4000000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

18 name="unlim_4000_upload" kind=pcq pcq-rate=6000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

19 name="unlim_6000_download" kind=pcq pcq-rate=6000000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

20 name="unlim_6000_upload" kind=pcq pcq-rate=8000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

21 name="unlim_8000_download" kind=pcq pcq-rate=8000000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

22 name="unlim_8000_upload" kind=pcq pcq-rate=10000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

23 name="unlim_10000_download" kind=pcq pcq-rate=10000000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 

24 name="unlim_10000_upload" kind=pcq pcq-rate=12000000 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 

25 name="default-small" kind=pfifo pfifo-limit=10

 

Построил дерево (использьзуются ветки Total_download и Total_upload)

 

[admin@MikroTik] > queue tree print
Flags: X - disabled, I - invalid 
0   name="queue1" parent=global-in packet-mark=all limit-at=0 queue=PCQ_download priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

1   name="queue2" parent=global-out packet-mark=all limit-at=0 queue=PCQ_upload priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

2   name="Total_download" parent=LAN packet-mark="" limit-at=0 queue=default priority=1 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

3   name="Total_upload" parent=global-out packet-mark="" limit-at=0 queue=default priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s 

4   name="Unlim_500_download" parent=Total_download packet-mark=unlim_500_dn limit-at=0 queue=unlim_500_download priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

5   name="Unlim_1000_download" parent=Total_download packet-mark=unlim_1000_dn limit-at=0 queue=unlim_1000_download priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

6   name="Unlim_2000_download" parent=Total_download packet-mark=unlim_2000_dn limit-at=0 queue=unlim_2000_download priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

7   name="Unlim_500_upload" parent=Total_upload packet-mark=unlim_500_up limit-at=0 queue=unlim_500_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

8   name="Unlim_1000_upload" parent=Total_upload packet-mark=unlim_1000_up limit-at=0 queue=unlim_1000_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

9   name="Unlim_2000_upload" parent=Total_upload packet-mark=unlim_2000_up limit-at=0 queue=unlim_2000_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

10   name="Unlim_3000_download" parent=Total_download packet-mark=unlim_3000_dn limit-at=0 queue=unlim_3000_download priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

11   name="Unlim_4000_download" parent=Total_download packet-mark=unlim_4000_dn limit-at=0 queue=unlim_4000_download priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

12   name="Unlim_5000_download" parent=Total_download packet-mark=unlim_5000_dn limit-at=0 queue=unlim_5000_download priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

13   name="Unlim_3000_upload" parent=Total_upload packet-mark=unlim_3000_up limit-at=0 queue=unlim_3000_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

14   name="Unlim_4000_upload" parent=Total_upload packet-mark=unlim_4000_up limit-at=0 queue=unlim_4000_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

15   name="Unlim_5000_upload" parent=Total_upload packet-mark=unlim_5000_up limit-at=0 queue=unlim_5000_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

16   name="Unlim_6000_download" parent=Total_download packet-mark=unlim_6000_dn limit-at=0 queue=unlim_6000_download priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

17   name="Unlim_8000_download" parent=Total_download packet-mark=unlim_8000_dn limit-at=0 queue=unlim_8000_download priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

18   name="Unlim_10000_download" parent=Total_download packet-mark=unlim_10000_dn limit-at=0 queue=unlim_10000_download priority=8 max-limit=0 burst-limit=>
     burst-threshold=0 burst-time=0s 

19   name="Unlim_6000_upload" parent=Total_upload packet-mark=unlim_6000_up limit-at=0 queue=unlim_6000_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

20   name="Unlim_8000_upload" parent=Total_upload packet-mark=unlim_8000_up limit-at=0 queue=unlim_8000_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s 

21   name="Unlim_10000_upload" parent=Total_upload packet-mark=unlim_10000_up limit-at=0 queue=unlim_10000_upload priority=8 max-limit=0 burst-limit=0 
     burst-threshold=0 burst-time=0s

 

Для Total_upload пробовал указывать очередь внешнего интерфейса - все одно и тоже. Есть подозрение, что неправильно настроены типы очередей, а вернее их лимиты.

 

Ваше мнение?

Share this post


Link to post
Share on other sites

а зачем в дереве указывать ограничения ??? они же в ПЦкЮ указаны ... У тебя ограничение ветки накладывается на всех юзеров из подсети которую нужно нарезать.

Share this post


Link to post
Share on other sites
а зачем в дереве указывать ограничения ??? они же в ПЦкЮ указаны ... У тебя ограничение ветки накладывается на всех юзеров из подсети которую нужно нарезать.

Не совсем понял. У меня в дереве вроде не указано ограничение, а только соответствующая очередь и цвет пакетов. А вот сами типы очереди - там да, указаны ограничения.

Разве не так должно быть?

 

Задача этого дерева была сделать соответствующее ограничение каждому, чей пакет покрасился в тот или иной цвет (именно каждому выделить необходимую скорость, а не на всех общую трубу).

 

Я не так сделал, Вы это хотели сказать?

Share this post


Link to post
Share on other sites

сам тип ПЦкЮ уже режет юзера на столько сколько указано в типе ПЦкЮ, а вы еще и ветку дерева ограничиваете, тем замым зажимаете всех из этой ветки еще в одно ограничение. Вот и получается - чем больше юзеров- тем меньше у них скорость

Share this post


Link to post
Share on other sites
сам тип ПЦкЮ уже режет юзера на столько сколько указано в типе ПЦкЮ, а вы еще и ветку дерева ограничиваете, тем замым зажимаете всех из этой ветки еще в одно ограничение. Вот и получается - чем больше юзеров- тем меньше у них скорость

Ничего не понимаю - где я ветку ограничиваю? Покажите пальцем :)

Share this post


Link to post
Share on other sites

)) я тормозил ночью )) попутал название и лимит-алл. Конфиг правильный, проблема с исходящим в том что на этом же роутере у тебя и нас поднят, я прав ??

Share this post


Link to post
Share on other sites

)) я тормозил ночью )) попутал название и лимит-алл. Конфиг правильный, проблема с исходящим в том что на этом же роутере у тебя и нас поднят, я прав ??

Да, все верно - NATим здесь же, где и режем скорость.

Share this post


Link to post
Share on other sites

в этом и проблема, изза ната микрик думает что дст адрес один и тотже, я когдато выкрутился, но не припомню точно как. Вобщем есть 2 варианта -

1 - поставить отдельно роутер для ната и шейпить все на форвардинговом роутере, проблем не будет.

2 - попробовать в аплоад ПЦкЮ поставить не срц-адрес а дст-адрес и запарентить его ветки на инерфейс который смотрит в инет, тоесть сделать аналог даунлоада для внутренней сетки. И красить пакеты только в прероутинге - так как он до НАТа идет.

Кстати, так и непонял зачем правмла 0 и 1 в дереве ?? шейпить всех кто не попал с адресс листы ?

Share this post


Link to post
Share on other sites

Т.к. мы красим трафик в прероутинге, то там нормальные локальные адреса и по сути он их должен нормально видеть. Более того - трафик режется, но как-то странно -- ниже установленно граници. Еще интересный момент - Simple Queue отрабатывались стабильно, там таких проблем не замечалось. Переходить на них не очень хочется :(

Из всего вышеизложенного, есть подозрение, что все таки не правильно настроено либо парент для дерева, либо типы очередей (их параметры).

Как Вы считаете?

 

PS: 0 & 1 правила не используются, просто затесались в листинг :)

Share this post


Link to post
Share on other sites

а какое количество клиентов в адресс листах примерно ?? может выходите за рамки ??

Но скорее всего это изза НАТа, так как входяший трафик шейпится нормально, попробуй всетаки вариант который я написал выше.

Share this post


Link to post
Share on other sites

клиентов не много - исчесляется десятками

Попробую, спасибо. Правда не понял пока, как оно будет работать, т.к. dst на исходящих пакетах будет всяко не клиентским...

Share this post


Link to post
Share on other sites

Вот пример нашего дерева. Работает стабильно уже полгода.

 

0   name="INPUT" parent=global-out packet-mark="" limit-at=0 queue=queue_tree priority=2 max-limit=60000000 
     burst-limit=0 burst-threshold=0 burst-time=0s 

1   name="6 - 256k dst" parent=INPUT packet-mark=256k dst limit-at=256000 queue=256k dst priority=6 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

2   name="6 - 512k dst" parent=INPUT packet-mark=512k dst limit-at=512000 queue=512k dst priority=6 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

3   name="6 - 1024k dst" parent=INPUT packet-mark=1024k dst limit-at=1024000 queue=1024k dst priority=6 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

4   name="6 - 2048k dst" parent=INPUT packet-mark=2048k dst limit-at=2048000 queue=2048k dst priority=6 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

5   name="8 - 3072k dst" parent=INPUT packet-mark=3072k dst limit-at=3072000 queue=3072k dst priority=8 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

6   name="8 - 4096k dst" parent=INPUT packet-mark=4096k dst limit-at=4000000 queue=4096k dst priority=8 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

7   name="OUTPUT" parent=global-out packet-mark="" limit-at=0 queue=queue_tree priority=1 max-limit=60000000 
     burst-limit=0 burst-threshold=0 burst-time=0s 

8   name="6 - 256k src" parent=OUTPUT packet-mark=256k src limit-at=256000 queue=256k src priority=6 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

9   name="6 - 512k src" parent=OUTPUT packet-mark=512k src limit-at=512000 queue=512k src priority=6 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

10   name="7 - 2048k src" parent=OUTPUT packet-mark=2048k src limit-at=2048000 queue=2048k src priority=7 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

11   name="7 - 1024k src" parent=OUTPUT packet-mark=1024k src limit-at=1024000 queue=1024k src priority=7 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

12   name="8 - 3072k src" parent=OUTPUT packet-mark=3072k src limit-at=3076000 queue=3072k src priority=8 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

13   name="8 - 4096k src" parent=OUTPUT packet-mark=4096k src limit-at=4000000 queue=4096k src priority=8 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

14   name="2 - lite dst" parent=INPUT packet-mark=lite dst limit-at=8000000 queue=lite dst priority=2 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

15   name="2 - simple dst" parent=INPUT packet-mark=simple dst limit-at=20000000 queue=simple dst priority=2 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

16   name="2 - simple src" parent=OUTPUT packet-mark=simple src limit-at=20000000 queue=simple src priority=2 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

17   name="2 - lite src" parent=OUTPUT packet-mark=lite src limit-at=8000000 queue=lite src priority=2 
     max-limit=60000000 burst-limit=0 burst-threshold=0 burst-time=0s 

18   name="6 - 96k dst" parent=INPUT packet-mark=96k dst limit-at=96000 queue=96k dst priority=6 max-limit=100000>
     burst-limit=0 burst-threshold=0 burst-time=0s

 

максимальное количество одновременных клиентов до 400. Правда последние дни наблюдается ккая то аномалия, при 20 мегабитах свободных на внешнем канале, у не которых абонентов наблюдается резкое падение скорости. Пока не поняли в чем проблема.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this