Назад | Перейти на главную страницу

Почему я не могу ограничить пропускную способность с помощью команды tc

Я хочу ограничить полосу пропускания для интерфейса eth1, я прочитал команду в эта ссылка.

sudo tc qdisc add dev eth1 root handle 1:0 htb default 10
sudo tc class add dev eth1 parent 1:0 classid 1:10 htb rate 200kbps ceil 200kbps

Работает хорошо (скорость загрузки ~ 200 кб / с). Когда я добавляю 1 команду, я думаю, что скорость загрузки будет ~ 170 кб / с, но это не так (скорость загрузки ~ 500 кб / с).

sudo tc qdisc add dev eth1 root handle 1:0 htb default 10
sudo tc class add dev eth1 parent 1:0 classid 1:10 htb rate 200kbps ceil 200kbps
sudo tc class add dev eth1 parent 1:10 classid 1:100 htb rate 170kbps ceil 170kbps

Может кто-нибудь помочь мне? Большое спасибо!

Вы указываете два класса / скорости. Вы этого хотели? Вы не объясняете, почему вы устанавливаете такие значения. Вам нужны правила iptables, чтобы соответствовать этим правилам, но не упоминайте о них.

http://www.cyberciti.biz/faq/linux-traffic-shaping-using-tc-to-control-http-traffic/

Определите класс с ограничениями, то есть установите разрешенную полосу пропускания на 512> Килобайт и полосу пропускания пакета на 640 Килобайт для порта 80:

# /sbin/tc class add dev eth1 parent 1:0 classid 1:10 htb rate 512kbps ceil 640kbps prio 0

Обратите внимание, что порт 80 НЕ определен нигде в указанном выше классе. Вы будете> использовать правило исключения iptables следующим образом:

# /sbin/iptables -A OUTPUT -t mangle -p tcp --sport 80 -j MARK --set-mark 10