[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Filtry i IMQ



To opis mojego problemu:

Jak wpuszczę do IMQ pakiety w ten sposób:

(eth0 - wyjście w świat)
iptables -t mangle -A FORWARD -i eth0 -j IMQ --todev 0
iptables -t mangle -A FORWARD -o eth0 -j IMQ --todev 1

To mam problem z założeniem filtrów... objawy są takie, że pakiety wpadają,
ale filtry tego nie widzą.

$TC class add dev imq0 parent 1:1 classid 1:2 htb rate ${srv_dwl}kbit ceil
${max}kbit
$TC qdisc add dev imq0 parent 1:2 sfq perturb 10
$TC filter add dev imq0 protocol ip parent 1:0 u32 match ip dst $prs flowid
1:2

Ten filtr będzie wyłapywał ruch i wrzucał w odpowiednie klasy...

(obserwuje za pomocą watch:
watch -d -n 1 "echo \"Download: \" && tc -s class show dev imq0 |
 grep -A 3 \"1:$j \" && echo && echo \"Upload: \" && tc -s class show dev
imq1 | grep -A 3 \"2:$j \"")

Natomiast gdy założe filtr na ruch wychodzący to kolejki imq1 pozostaną
puste.
Jak dopiszę jeszcze klasy serwera to tam będzie zachowywało się to
odwrotnie...
Ruch wychodzący będzie wpadał, a przychodzący nie.

Jak zacznę wrzucać z łańcucha PREROUTING to wogóle u32 nie widzi IPków
userów.
Pomijam ten problem usttawiając wcześniej znaczki na pakietach, ale to nie
jest rozwiązanie.

Podrzucam skrypt i liczę na to, że ktoś mi wytłumaczy jak mam się posługiwać
u32 na IMQ, żeby zawsze działało.
(wersja 1.2_rc1 działa z kilkoma okężnymi rozwiązaniami, wersja 1.2_rc2 to
lekko zmodyfikowany pierwszy skrypt, ale już nie działa)

Jeśli ktoś nie połapał się z tekstu o co chodzi to na zakończenie jeszcze
piszę treść mojego pytania:
Czemu filtr u32 nie widzi pewnych pakietów, mimo, że one wpadają do IMQ?
Tak jakby te pakiety nie miały adresu IP.... i nie można ich wrzucić do
kolejek.

Attachment: htb1.2rc1
Description: Binary data

Attachment: htb1.2rc2
Description: Binary data


Reply to: