IMQ+NAT

Jarek Poplawski domat w klub.chip.pl
Wto, 20 Wrz 2005, 13:28:03 CEST


Przemysław Backiel wrote:
...
> 
> podłącze się troche pod pytanie, co ja robię źle u siebie,
> 
> co moge robic zle, jesli ruch z imq0 idzie mi do kolejki defaultowej tylko
> tzn mam tak
> podnosze interfejs imq0
> (IF_IN to imq0)
> ip link set $IF_IN down
> ip link set $IF_IN up
> $IPTABLES -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0
> na eth0 mam internet..
> 
> teraz robie NAT.....
> 
> i teraz robie markowanie pakietów w stylu
> $IPTABLES -t mangle -A POSTROUTING -o eth0 -p udp --dport 443 -j 
> CLASSIFY --set-class 1:30
> $IPTABLES -t mangle -A POSTROUTING -o eth0 -p tcp --dport 443 -j 
> CLASSIFY --set-class 1:30

To będzie miało sens, jeśli będą qdisc i class 1:30 dla dev eth0, 
i będziesz chciał kontrolować ruch wychodzący.

> $IPTABLES -t mangle -A POSTROUTING -o $IF_IN -p udp --sport 443 -j 
> CLASSIFY --set-class 1:30
> $IPTABLES -t mangle -A POSTROUTING -o $IF_IN -p tcp --sport 443 -j 
> CLASSIFY --set-class 1:30

imq0 nie jest prawdziwym interfejsem wyjściowym
i wg mojej wiedzy "-o imq0" nie będzie działać.
Zakładam, że chodzi tu o kontrolę ruchu przychodzącego z 
internetu, a nie z samego serwera.

> 
> a skrypt htb wyglada tak:
> /sbin/tc qdisc del dev imq0 root
> /sbin/tc qdisc add dev imq0 root handle 1 htb default 50 r2q 100
> 
> /sbin/tc class add dev imq0 parent 1:2 classid 1:10 htb rate 3600Kbit 
> ceil 3600Kbit
> 
> /sbin/tc class add dev imq0 parent 1:10 classid 1:30 htb rate 400Kbit 
> ceil 900Kbit burst 45Kb prio 1
> /sbin/tc qdisc add dev imq0 parent 1:30 handle 30 sfq perturb 1
> 
> 
> dodam, że jak zmieniam imq0 na eth1 (czyli interfejs od strony lanu) to 
> wszystko działa ok
> gdy mam imq0, to ruch trafia do klasy defaultowej

Jeśli defaultowa jest 50, to tu tego nie widać.

> 
> gdzie popełniam błąd?
> 

Powinno zadziałać, jeśli zmienisz miejsce wysyłania do IMQ.
Można ew. spróbować takiej kombinacji:

$IPTABLES -t mangle -A PREROUTING -i eth0 -j MARK --set-mark 1

$IPTABLES -t mangle -A PREROUTING -i eth0 -p udp --sport 443 -j 
CLASSIFY --set-class 1:30

$IPTABLES -t mangle -A PREROUTING -i eth0 -p tcp --sport 443 -j
CLASSIFY --set-class 1:30

$IPTABLES -t mangle -A POSTROUTING -m mark --mark 1 -j IMQ --todev 0


Jarek P.




Więcej informacji o liście dyskusyjnej pld-users-pl