@bamond

Почему tc затрагивает все коннекты?

День добрый. Есть желание резать трафик по 80 порту. Использую для этого iptables + tc

iptables -A OUTPUT -t mangle -p tcp --sport 80 -j MARK --set-mark 10
iptables -A OUTPUT -t mangle -p tcp --sport 21 -j MARK --set-mark 6
iptables -A OUTPUT -t mangle -p tcp --sport 22 -j MARK --set-mark 7

tc qdisc del dev eth1 root
tc qdisc add dev eth1 root handle 1:0 htb default 10
tc class add dev eth1 parent 1:0 classid 1:10 htb rate 7000kbps ceil 8000kbps prio 0
tc class add dev eth1 parent 1:0 classid 1:11 htb rate 80000kbps ceil 90000kbps prio 5
tc class add dev eth1 parent 1:0 classid 1:12 htb rate 80000kbps ceil 90000kbps prio 4
tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 6 fw flowid 1:11
tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 7 fw flowid 1:12


траффик на интерфейсе падает с 100МБ до указанных в параметре. Но при это канал не освобождается для других подключение на другие порты... а начинает так же лагать и всё остальное.
Подскажите пожалуйста что не так?
задача урезать исходящий канал nginx для того что бы освободить часть для других задач. спасибо

P/S директивы limit_rate и $limit_rate не помогут.
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
не нужно маркировать OUTPUT
tc по портам фильтры сам может выставить
tc filter add dev eth1 protocol ip parent 1:0 prio 25 u32 match \
  ip sport 80 0xffff flowid 1:10

lartc.qdisc.filters

и нужно выставить скорость для рутового класса
tc class add dev eth1 parent 1: classid 1:1 htb rate 100Mbit ceil 100Mbit
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы