LINUX.ORG.RU

Сообщения pavel_ep

 

опять IMQ + TC

Форум — Admin

пробую реализовать такую схему:

это фрагмент скрипта ppp-up для pptp

$TC qdisc del dev $INTERFACE root
$TC qdisc add dev $INTERFACE root handle 1: htb default 1
$TC class add dev $INTERFACE parent 1: classid 1:1 htb prio 10 rate ${SPEED_1}kbit ceil ${SPEED_2}kbit burst 15k
$TC qdisc add dev $INTERFACE parent 1:1 handle 10: prio
$TC qdisc add dev $INTERFACE parent 10:1 handle 101 sfq
$TC qdisc add dev $INTERFACE parent 10:2 handle 102 sfq
$TC qdisc add dev $INTERFACE parent 10:3 handle 103 sfq

$TC filter add dev $INTERFACE parent 1: protocol ip prio 10 u32 match u32 0 0 flowid 1:1 action ipt -j MARK --set-mark $NET

в скрипте iptables

$IPTABLES -A POSTROUTING -t mangle -o ppp+ -j IMQ --todev 0

навешивание классов на imq0

ip link set dev imq0 up
tc qdisc add dev imq0 root handle 1: htb default 100
tc class add dev imq0 parent 1: classid 1:1 htb rate ${RATE_ALL}kbit burst 15k
tc class add dev imq0 parent 1:1 classid 1:100 htb prio 7 rate 128kbit ceil ${RATE_ALL}kbit burst 15k
tc qdisc add dev imq0 parent 1:100 handle 100: sfq perturb 10
tc class add dev imq0 parent 1:1 classid 1:5 htb prio 0 rate 128kbit ceil ${RATE_ALL}kbit burst 15k
tc qdisc add dev imq0 parent 1:5 handle 5: sfq
tc class add dev imq0 parent 1:1 classid 1:20 htb prio ${CLASS_20_PRIO} rate ${CLASS_20_MIN}kbit ceil ${CLASS_20_MAX}kbit burst 15k
tc class add dev imq0 parent 1:1 classid 1:30 htb prio ${CLASS_30_PRIO} rate ${CLASS_30_MIN}kbit ceil ${CLASS_30_MAX}kbit burst 15k
tc class add dev imq0 parent 1:1 classid 1:40 htb prio ${CLASS_40_PRIO} rate ${CLASS_40_MIN}kbit ceil ${CLASS_40_MAX}kbit burst 15k
tc class add dev imq0 parent 1:1 classid 1:50 htb prio ${CLASS_50_PRIO} rate ${CLASS_50_MIN}kbit ceil ${CLASS_50_MAX}kbit burst 15k
tc qdisc add dev imq0 parent 1:20 handle 20: tbf rate ${CLASS_20_MAX}kbit latency 50ms burst 1540
tc qdisc add dev imq0 parent 1:30 handle 30: tbf rate ${CLASS_30_MAX}kbit latency 50ms burst 1540
tc qdisc add dev imq0 parent 1:40 handle 40: tbf rate ${CLASS_40_MAX}kbit latency 50ms burst 1540
tc qdisc add dev imq0 parent 1:50 handle 50: tbf rate ${CLASS_50_MAX}kbit latency 50ms burst 1540
tc qdisc add dev imq0 parent 20:1 handle 200: prio
tc qdisc add dev imq0 parent 200:1 handle 201: sfq
tc qdisc add dev imq0 parent 200:2 handle 202: sfq
tc qdisc add dev imq0 parent 200:3 handle 203: sfq
tc qdisc add dev imq0 parent 30:1 handle 300: prio
tc qdisc add dev imq0 parent 300:1 handle 301: sfq
tc qdisc add dev imq0 parent 300:2 handle 302: sfq
tc qdisc add dev imq0 parent 300:3 handle 303: sfq
tc qdisc add dev imq0 parent 40:1 handle 400: prio
tc qdisc add dev imq0 parent 400:1 handle 401: sfq
tc qdisc add dev imq0 parent 400:2 handle 402: sfq
tc qdisc add dev imq0 parent 400:3 handle 403: sfq
tc qdisc add dev imq0 parent 50:1 handle 500: prio
tc qdisc add dev imq0 parent 500:1 handle 501: sfq
tc qdisc add dev imq0 parent 500:2 handle 502: sfq
tc qdisc add dev imq0 parent 500:3 handle 503: sfq

tc filter add dev imq0 protocol ip parent 1:0 prio 5 handle 3 fw flowid 1:20
tc filter add dev imq0 protocol ip parent 1:0 prio 5 handle 10 fw flowid 1:20
tc filter add dev imq0 protocol ip parent 1:0 prio 5 handle 5 fw flowid 1:30
tc filter add dev imq0 protocol ip parent 1:0 prio 5 handle 6 fw flowid 1:40
tc filter add dev imq0 protocol ip parent 1:0 prio 5 handle 9 fw flowid 1:40
tc filter add dev imq0 protocol ip parent 1:0 prio 5 handle 7 fw flowid 1:50
tc filter add dev imq0 protocol ip parent 1:0 prio 5 handle 8 fw flowid 1:50

в ресультате всего этого пакеты на imq0 попадают, но все идет на default (100) класс. Такое впечатление, что маркирование отрабатывает уже после $IPTABLES -A POSTROUTING -t mangle -o ppp+ -j IMQ --todev 0. В чем ошибка?

Вариант с маркированием пакетов через iptables работает, но при слете соединения остается правило. Номер маркера определяется тарифным планом клиента. Пакеты начинают маркироваться не тем маркером и клиент идет не в свою полосу. Приходится удалять правило руками. Согласитель, что для сервера доступа это мягко говоря не очень удобно.

>>>

pavel_ep
()

RSS подписка на новые темы