Автоматизация PCQ шейпера

PCQ - турбо режим доступно с версии 2.8.13

PCQ была разработана для оптимизации массивных QoS-систем, в которых большинство очередей являются однотипными для разных подпотоков. Например, подпоток может быть входящим или исходящим для одного отдельного клиента (IP) или соединения с сервером.

Алгоритм работы PCQ очень прост: сперва он использует выбранные классификаторы, чтобы отличить один подпоток от другого, затем применяет персональные значения размера FIFO-очереди и ограничения для каждого подпотока, после чего группирует все подпотоки вместе и применяет общие значения размера FIFO-очереди и ограничения.

Что даст - лучшая оптимизация очередей, меньше нагрузка чем у SFQ.

Проверим чтобы на веб-сервере был загружен модуль SuExec. Для Apache выполните :

apachectl -M | grep suexec
Syntax OK
suexec_module (shared)

Для Nginx проверьте файл nginx.conf, параметр user должен соответствовать имени пользователя в файле /etc/sudoers.d.

Для Debian:

www-data ALL=(ALL) NOPASSWD:ALL

Для Centos:

apache          ALL=(ALL)       NOPASSWD: ALL

Для Apache эта запись тоже нужна, проверьте обязательно.

Очень важно - проверьте возможность авторизации без пароля между серверами, почитать тут можно.

Обновите файл установки шейпера, для этого скачайте обновленную версию дистрибутива Mikbill.

Разархивируйте из дистрибутива файл pcq_script_6x.php, который находится в DISTR/system/admin.tar.gz/admin/res/pcq Скопируйте его себе в /var/www/mikbill/admin/res/pcq

Проверьте /usr/share/freeradius/dictionary/dictionary.mikrotik он должен иметь вид:

VENDOR          Mikrotik                        14988

BEGIN-VENDOR    Mikrotik

ATTRIBUTE       Mikrotik-Recv-Limit                     1       integer
ATTRIBUTE       Mikrotik-Xmit-Limit                     2       integer

# this attribute is unused
ATTRIBUTE       Mikrotik-Group                          3       string

ATTRIBUTE       Mikrotik-Wireless-Forward               4       integer
ATTRIBUTE       Mikrotik-Wireless-Skip-Dot1x            5       integer
ATTRIBUTE       Mikrotik-Wireless-Enc-Algo              6       integer
ATTRIBUTE       Mikrotik-Wireless-Enc-Key               7       string
ATTRIBUTE       Mikrotik-Rate-Limit                     8       string
ATTRIBUTE       Mikrotik-Realm                          9       string
ATTRIBUTE       Mikrotik-Host-IP                        10      ipaddr
ATTRIBUTE       Mikrotik-Mark-Id                        11      string
ATTRIBUTE       Mikrotik-Advertise-URL                  12      string
ATTRIBUTE       Mikrotik-Advertise-Interval             13      integer
ATTRIBUTE       Mikrotik-Recv-Limit-Gigawords           14      integer
ATTRIBUTE       Mikrotik-Xmit-Limit-Gigawords           15      integer
ATTRIBUTE       Mikrotik-Address-List                   19      string
# MikroTik Values

VALUE   Mikrotik-Wireless-Enc-Algo      No-encryption           0
VALUE   Mikrotik-Wireless-Enc-Algo      40-bit-WEP              1
VALUE   Mikrotik-Wireless-Enc-Algo      104-bit-WEP             2

END-VENDOR      Mikrotik

Обратите внимание на атрибут - Mikrotik-Address-List. Если не хватает чего-то добавьте.

Теперь настроим тариф

Укажем "address list", в примере Unlim_month_5, это необходимо т.к. пакеты будут промаркированы исходя из этого списка.

 |

В меню шейперы:

1 - убрать галки "Использовать шейперы" и "Radius шейперы"

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

 |

Если планируется предоставлять услугу Turbo, в меню услуги активируйте это. Вы можете задать стоимость услуги, время действия в часах, и скорость.

 |

Укажите в меню "NAS шейперы" Ваш сервер доступа:

 |

При использовании повременных шейперов, в меню "день/ночь" необходимо задать время и ограничения:

 |

Затем в меню "Настройки" - "Сервера NAS" нужно сделать ряд настроек:

1 - Указать логин и пароль пользователя для управления сервером ssh

2 - И тип шейпера указать "Mikrotik PCQ"(скрипт обрабатывает только устройства с этим типом шейпера)

 |

Ещё один важный нюанс, проверьте запуск скрипта вручную, для этого перейдите в каталог:

cd /var/www/mikbill/admin/sys/scripts 

И запустите:

./mikbill_pcq.sh

На консоль должна быть выведена отладочная информация:

string(13) "10.231.255.86"
string(9) "begin_ssh"
string(7) "end_ssh"
</сode>

Если выдаст:

<code>
./mikbill_pcq.sh: 6: [: Linux: unexpected operator
./mikbill_pcq.sh: 11: cd: can't cd to /usr/local/www/mikbill/admin/res/pcq
Could not open input file: ./pcq_script.php

Измените в скрипте mikbill_pcq.sh первую строчку на #!/bin/bash

И повторите запуск.

Выполните пункт меню - "Настройки" - "Действия" - "обновить шейперы"

В итоге у Вас должно получится следующее:

В примере созданы 6 типов очередей на входящий и исходящий трафик по временным интервалам и 2 типа очереди для услуги турбо.

 |

Если используется услуга Турбо, проверьте чтобы создались очереди.

 |

При использовании повременных шейперов, должны создатся очереди. В зависимости от времени суток, неактивные шейпера помечены в красный цвет.

 |

В таблице mangle должны создатся правила пометки пакетов для созданного адрес-листа.

 |

Пример пользователя который активировал услугу Turbo. Для него создан элемент адрес листа, пакеты которго потом помечаются изходя из названия этого списка.

 |
  • billing/howto/pcq_mikrotik.txt
  • Последние изменения: 4 лет назад
  • — Алексей Ларюшкин