HTB & Ограничение трафика на шлюзе

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

MasterFess
Сообщения: 23
ОС: debian

HTB & Ограничение трафика на шлюзе

Сообщение MasterFess »

Есть сервер под управлением Debian, выполняющий роль шлюза и torrent качалки.
Пытаюсь настроить HTB по примеру: http://www.opennet.ru/docs/RUS/LARTC/x2755.html
Главная задача - сделать трафик локальной сети более приоритетным по отношению к трафику процессов на шлюзе.
На шлюзе в инет смотрит eth0(192.168.1.2), в LAN eth1(192.168.2.1).
Маскарадим так:

Код: Выделить всё

OUTIF="eth0"
INTIF="eth1"

$IPTABLES -A FORWARD -i $OUTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $OUTIF -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $OUTIF -j MASQUERADE


HTB:

Код: Выделить всё

CEIL=100
tc qdisc add dev eth0 root handle 1: htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate ${CEIL}kbit ceil ${CEIL}kbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 50kbit ceil ${CEIL}kbit prio 0
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 50kbit ceil ${CEIL}kbit prio 1
tc qdisc add dev eth0 parent 1:10 handle 120: sfq perturb 10
tc qdisc add dev eth0 parent 1:11 handle 120: sfq perturb 10

tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1 fw classid 1:10
tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:11

iptables -t mangle -A PREROUTING -j MARK --set-mark 0x1

iptables -t mangle -A OUTPUT -j MARK --set-mark 0x2

Но проблему это не решает.
LAN трафик идет через приоритетный 10 класс.

Код: Выделить всё

class htb 1:11 parent 1:1 prio 1 rate 50000bit ceil 100000bit burst 1624b cburst 1649b
 Sent 3695055 bytes 13767 pkt (dropped 0, overlimits 0 requeues 0)
 rate 12384bit 4pps backlog 0b 0p requeues 0
 lended: 11658 borrowed: 1785 giants: 0
 tokens: -179845 ctokens: -87969

class htb 1:10 parent 1:1 leaf 120: prio 0 rate 50000bit ceil 100000bit burst 1624b cburst 1649b
 Sent 352060 bytes 1129 pkt (dropped 0, overlimits 0 requeues 0)
 rate 832bit 0pps backlog 0b 0p requeues 0
 lended: 1082 borrowed: 47 giants: 0
 tokens: 245155 ctokens: 124531

class htb 1:1 root rate 100000bit ceil 100000bit burst 1649b cburst 1649b
 Sent 4047115 bytes 14896 pkt (dropped 0, overlimits 0 requeues 0)
 rate 13216bit 4pps backlog 0b 0p requeues 0
 lended: 1832 borrowed: 0 giants: 0
 tokens: -87969 ctokens: -87969

Но торрент на шлюзе все равно съедает весь канал.
Что я делаю не правильно?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: HTB & Ограничение трафика на шлюзе

Сообщение Alex2ndr »

Может быть канал съедает входящий трафик? Ведь вы ограничиваете только исходящий.
Спасибо сказали:
MasterFess
Сообщения: 23
ОС: debian

Re: HTB & Ограничение трафика на шлюзе

Сообщение MasterFess »

входящего трафика считайте нет
в выложенном коде есть ошибочка
tc qdisc add dev eth0 parent 1:10 handle 120: sfq perturb 10
tc qdisc add dev eth0 parent 1:11 handle 120: sfq perturb 10
поменял на 110 и 111, но проблему это, конечно не решает
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: HTB & Ограничение трафика на шлюзе

Сообщение Alex2ndr »

во-первых не ясно что у вас в 10 попадает - уточните фильтрацию - иначе туда и входящий трафик попадает
iptables -t mangle -A PREROUTING -i eth1 -j MARK --set-mark 0x1

во-вторых не ясно почему у вас одинаковые handle в обоих очередях - вместо 120: поставьте 110: и 120:
tc qdisc add dev eth0 parent 1:10 handle 110: sfq perturb 10
tc qdisc add dev eth0 parent 1:11 handle 120: sfq perturb 10

в-третьих
Если у вас класс по умолчанию 11 то зачем ему фильтр?
Спасибо сказали: