Возник вопрос в правильности правил которые я задаю для классификации трафика.
Схема следующая :
Код: Выделить всё
eth1 eth0
{INET}----{LINUX ROUTER(+NAT)}---{SWITCH}------PC1
|------PC2
|------myPC(odmin =) )192.168.1.99/32
|------* * *
|------PC NНа ротере организована трансляция адресов. Это работает.
Так же предпринял попытку организовать классификацию исходящего трафика по следующему принципу(для eth0):
к корневому классу прикрепляем дисциплину prio котрая создаёт 3 класса(приоритета).
В первый отправляю траффик ssh(исходящий порт 22), в этот же первый класс направляю пакеты с адресом назначения моего компьютера.(myPC).
В этих классах как я понял включается дисциплина pfifo_fast, что вполне устраивает.
Во второй класс отправляю пакеты с портом отправителя 80. То есть насколько я понимаю, если я буду принимать пакеты с портом отправителя 80 то они должны попадать в 1 класс. В этот же класс (2й) прикрепляю дисциплину sfq, для того что бы трафик распределялся по ip равномерно.
и в 3 класс весь оставшийся трафик, и то же с дисциплиной sfq. но судя по выводу
Код: Выделить всё
tc -s -d qdisc show dev eth0туда ничего не попадает никогда.. хотя юзаются и эл. почта и ася и тп..
вот сам код задания правил... пока напишу только для внутреннего интерфейса
Код: Выделить всё
tc qdisc add dev eth0 root handle 1: prio
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip sport 22 0xffff flowid 1:1
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 192.168.1.99/32 flowid 1:1
tc filter add dev eth0 protocol ip parent 1: prio 2 u32 match ip sport 80 0xffff flowid 1:2
tc qdisc add dev eth0 parent 1:2 handle 10: sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 20: sfq perturb 10где я накосячил... ? может что недопонял в принципе создания правил для tc??