LINUX.ORG.RU
ФорумAdmin

Help: QoS.


0

0
LAN-0 (192.168.10.0/24)
Comp1--                             $LAN-IP
       \        192.168.10.1        /|eth0|----LAN-1 (10.0.0.0/8)
Comp2---switch-----|eth1|router(NAT) 
       /                            \|ppp0|----Internet
Comp3--                             $WAN-IP


Описание:
Скорость по сети 100 Mbit/s. С интернетом через ppp по-сложнее:
In: Out:
1 Mbit/s 0.5 Mbit/s - Internet
2 Mbit/s 1 Mbit/s - UA-IX

* UA-IX - Украинские сеть обмена тарффиком
** Каналы Internet и UA-IX независимы, т.е. фактически максимальная скорость = Internet + UA-IX
*** Т.к. провайдер немного кривой, то у него есть некоторые приятные баги, такие как отсутствие ограничений на некоторые подсети в интернете, с которыми скорость может достигать до 50 Mbit/s

Задача:
По разбить траф по приоритетам (слева на право - от наибольшего к наименьшему):
ssh - other appl - http - torrents

*Порты у торрнета строго определены и не меняются

Пробовал через htb, но желаемого эффекта не получилось. Программы, требующие оперативного обмена с интернетом (относятся к other appl), так и не получили первоочередности, торрент, даже раздающий в LAN-1 не на максимально скорости вызывал увеличение задержки. + там приходится выставлять ограничения по скорости, чего в принципе не требуется.

Посоветуйте как лучше разрешить такую задачу. Не обязательно на основе htb. Так сказать рассмотрю любые варианты :).

Вы лучше приведите упрощенный конфиг на htb (2 полосы: торрент и остальные протоколы). Проверьте, что ограничивает трафик в оба направления, что торрент действительно работает только по укзанным портам и, что торрент не выжирает весь канал когда другого трафика нет, а то может вы установили ceil 100 Mbit для торрента.

mky ★★★★★
()
Ответ на: комментарий от mky

В общем ситуация немного поменялась с приходом новых тарифов провайдера. Немного упростилась, но остался 1 вопрос. Скорость 8 на аплоад и 8 на даунлоад. Хотелось бы все это дело разделить на 4 клиента (причем как полосу на аплоад так и на даунлоад). Ниже конфиг, который стоит сейчас. Пакеты маркируются фаерволом и по маркеру идет дележ канала.

/sbin/tc class add dev ppp0 parent 1: classid 1:2 htb rate 8Mbit ceil 8Mbit

/sbin/tc class add dev ppp0 parent 1:2 classid 1:07 htb rate 2Mbit ceil 8Mbit burst 50Kb prio 1
/sbin/tc qdisc add dev ppp0 parent 1:07 handle 07 sfq perturb 10
/sbin/tc filter add dev ppp0 parent 1:0 protocol ip prio 200 handle 101 fw classid 1:07

/sbin/tc class add dev ppp0 parent 1:2 classid 1:08 htb rate 2Mbit ceil 8Mbit burst 50Kb prio 5
/sbin/tc qdisc add dev ppp0 parent 1:08 handle 08 sfq perturb 10
/sbin/tc filter add dev ppp0 parent 1:0 protocol ip prio 200 handle 102 fw classid 1:08

/sbin/tc class add dev ppp0 parent 1:2 classid 1:09 htb rate 2Mbit ceil 8Mbit burst 50Kb prio 5
/sbin/tc qdisc add dev ppp0 parent 1:09 handle 09 sfq perturb 10
/sbin/tc filter add dev ppp0 parent 1:0 protocol ip prio 200 handle 103 fw classid 1:09

/sbin/tc class add dev ppp0 parent 1:2 classid 1:10 htb rate 2Mbit ceil 8Mbit burst 50Kb prio 1
/sbin/tc qdisc add dev ppp0 parent 1:10 handle 10 sfq perturb 10
/sbin/tc filter add dev ppp0 parent 1:0 protocol ip prio 200 handle 104 fw classid 1:10

/sbin/tc class add dev ppp0 parent 1:2 classid 1:11 htb rate 2Mbit ceil 8Mbit burst 50Kb prio 1
/sbin/tc qdisc add dev ppp0 parent 1:11 handle 11 sfq perturb 10
/sbin/tc filter add dev ppp0 parent 1:0 protocol ip prio 200 handle 105 fw classid 1:11

Но как я понимаю таким образом разделится только полоса для исходящего траффика. Тогда вопрос, как тогда поступать с входящим траффом?

SkeLLLa
() автор топика
Ответ на: комментарий от SkeLLLa

В общем то, шейпинг входящего трафика это специальный сетевой интерфейс IFB.

Добавляете правило:


tc filter add dev ppp0 parent ffff: protocol ip prio 1 u32 \
  match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0
[\code]

И заворачиваете весь входящий трафик на ifb0. При компиляции ядра он называется "Intermediate Functional Block support". На нём (dev ifb0) можно создавать классы и фильтры. Другое дело, что раньше, до ядра 2.6.3x трафик на ifb заворачивался до того, как пройдёт маркировку в iptables и поэтому в командах "tc filter add dev ifb0" нельзя было использовать маркер файервола, нужно было определять трафик по диапазонам портов, которые указывать при SNAT.

Сейчас, вроде, стало можно заворачивать трафик на ifb после того, как его отмаркировало, а может я что-то путаю.
mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.