Я объясню проблему на простом примере: Допустим, у нас есть роутер с двумя Ethernet-картами – внутренняя и внешняя. Мы хотим использовать его для ограничения полосы пропускания и src-nat. Если использовать пример из руководства, показанный ниже, и добавить правило src-nat на внешнюю карту, то каждый пользователь будет загружать, используя одну и ту же PCQ sub queue, поскольку адрес источника теперь замаскирован, и таким образом, для всех пользователей один и тот же IP-адрес источника, а PCQ-классификатор не работает хорошо.
/ip firewall mangle add chain=forward src-address=192.168.0.0/24 \
action=mark-connection new-connection-mark=users-con
/ip firewall mangle add connection-mark=users-con action=mark-packet \
new-packet-mark=users chain=forward
/queue type add name=pcq-download kind=pcq pcq-classifier=dst-address
/queue type add name=pcq-upload kind=pcq pcq-classifier=src-address
/queue tree add name=Download parent=Local max-limit=10240000
/queue tree add parent=Download queue=pcq-download packet-mark=users
/queue tree add name=Upload parent=Public max-limit=2048000
/queue tree add parent=Upload queue=pcq-upload packet-mark=users
Моя ситуация отличается только тем, что я использую ограниченный PCQ для ограничения полосы пропускания пользователя (pcq-rate). Именно так я и заметил, что два пользователя используют одну и ту же PCQ sub queue. Когда один пользователь загружает, скорость загрузки ограничивается PCQ rate, но если второй пользователь начинает загружать, то оба пользователя загружают со скоростью в половину лимита, даже если доступна полоса пропускания. Обратите внимание, что загрузка работает хорошо, поскольку PCQ-классификатор работает. Я пробовал использовать простые очереди (PCQ type), и это работает хорошо!!! Но я хотел бы знать, как это можно сделать с помощью queue tree. Может кто-нибудь помочь? Спасибо за ваши усилия.
/ip firewall mangle add chain=forward src-address=192.168.0.0/24 \
action=mark-connection new-connection-mark=users-con
/ip firewall mangle add connection-mark=users-con action=mark-packet \
new-packet-mark=users chain=forward
/queue type add name=pcq-download kind=pcq pcq-classifier=dst-address
/queue type add name=pcq-upload kind=pcq pcq-classifier=src-address
/queue tree add name=Download parent=Local max-limit=10240000
/queue tree add parent=Download queue=pcq-download packet-mark=users
/queue tree add name=Upload parent=Public max-limit=2048000
/queue tree add parent=Upload queue=pcq-upload packet-mark=users
Моя ситуация отличается только тем, что я использую ограниченный PCQ для ограничения полосы пропускания пользователя (pcq-rate). Именно так я и заметил, что два пользователя используют одну и ту же PCQ sub queue. Когда один пользователь загружает, скорость загрузки ограничивается PCQ rate, но если второй пользователь начинает загружать, то оба пользователя загружают со скоростью в половину лимита, даже если доступна полоса пропускания. Обратите внимание, что загрузка работает хорошо, поскольку PCQ-классификатор работает. Я пробовал использовать простые очереди (PCQ type), и это работает хорошо!!! Но я хотел бы знать, как это можно сделать с помощью queue tree. Может кто-нибудь помочь? Спасибо за ваши усилия.
