/etc/sysconfig/cbq/cbq-<класс>.<комментарии> В каталоге /etc/sysconfig/cbq/ описываются шейпера - логические устройства, управляющие траффиком в физическом интерфейсе (например eth0). Для этого используется механизм CBQ (Class Based Queueing), который позволяет классифицировать пользовательский траффик и управлять им, присваивая конкретному классу различные характеристики, такие как пропускная способность, приоритет, способ взаимодействия с другими классами. Таким образом, используя механизм CBQ можно описать некий класс и присвоить ему определенную пропускную способность. Для построения шейпера (устройства, ограничивающего траффик) необходимо описать его характеристики в файле конфигурации cbq-<класс>.<комментарии>. cbq-1280.My_first_shaper ^^^ ^^^ ^^^^^^^^^^^^^ | | |______ Название шейпера, любое слово | |___________________ ID класса (0000 - FFFF) |______________________ Имя файла конфигурации должно начинаться с "cbq-" Проще всего это рассмотреть на примере: /cbq/cbq-1280.My_first_shaper: ----------8<--------------------- DEVICE=eth0,10Mbit,1Mbit RATE=128Kbit WEIGHT=10Kbit PRIO=5 RULE=192.168.1.0/24 ----------8<--------------------- DEVICE=eth0,10Mbit,1Mbit eth0 - физическое устройство, на котором будет создан шейпер 10Mbit - реальная скорость интерфейса 1Mbit - так называемый "вес" класса :1 , который является родительским классом для всех шейперов, работающих на данном интерфейсе. Обычно эта величина берется из расчета "реальная скорость/10" т.е. в 10 раз меньше реальной скорости физического интерфейса. *** Если вы хотите создать на одном физическом интерфейсе несколько шейперов, достаточно лишь в одном файле конфигурации описать DEVICE полностью. В остальных можно ограничится лишь DEVICE=eth0. RATE=128Kbit 128Kbit - пропускная способность шейпера - в Mbit, Kbit или bps (байт в секунду) WEIGHT=10Kbit 10Kbit - "вес" шейпера - аналогично весу родительского класса, т.е. в десять раз меньше пропускной способности _шейпера_. PRIO=5 Приоритет шейпера - от 1 до 8. 1 - высший приоритет. RULE=192.168.1.0/24 192.168.1.0/24 - адрес назначения пакетов, для которых шейпер будет ограничивать скорость. Формат записи RULE следующий: [source addr][:source port],[dest addr][:dest port], где source addr - IP адрес интерфейса, который отправил пакет source port - порт, с которого пакет покинул интерфейс dest addr - IP адрес назначения dest port - порт назначения Несколько примеров RULE: RULE=10.1.1.0/24:80 - весь траффик в сторону сети 10.1.1.0 и с портом назначения 80 будет ограничиваться шейпером. RULE=10.2.2.5 - шейпер будет работать только для пакетов с адресом назначения 10.2.2.5 RULE=:25,10.2.2.128/25:5000 - весь траффик с порта 25 с адресом назначения 10.2.2.128-10.2.2.255 и портом назначения 5000 будет ограничен пропускной способностью шейпера. RULE=10.5.5.5:80, - траффик с адреса 10.5.5.5 и порта 80 будет ограничен шейпером. В одном шейпере может быть несколько правил RULE: RULE=10.1.1.2:80 RULE=10.1.1.2:25 RULE=10.1.1.2:110 ВНИМАНИЕ: Шейпер работает только на _исходящий_ траффик. Для того, чтобы ограничить траффик в двух направлениях, необходимо создать аналогичный шейпер на втором физическом интерфейсе. Для примера рассмотрим вариант, когда нам необходимо ограничить траффик в сторону клиента до 28Kbit, а траффик от клиента - до 128Kbit: --------- 192.168.1.1 BACKBONE -----eth0-| linux |-eth1------*[our client] --------- ---8<-----/etc/sysconfig/cbq/cbq-28.client-out---- DEVICE=eth1,10Mbit,1Mbit RATE=28Kbit WEIGHT=2Kbit PRIO=5 RULE=192.168.1.1 ---8<--------------------------------------------- ---8<-----/etc/sysconfig/cbq/cbq-128.client-in---- DEVICE=eth0,10Mbit,1Mbit RATE=128Kbit WEIGHT=10Kbit PRIO=5 RULE=192.168.1.1, ---8<--------------------------------------------- ^обратите внимание на "," - это адрес клиента-отправителя!