Witam,
usiłuję uruchomić LMS w sieci gdzie userzy są przypięci do więcej niż
jednego interfejsu lokalnego -- konkretnie eth1, eth2, eth3. Wszystko jest
poprawnie ustawione przez WWW -- są zdefiniowane sieci, przypisane do
konkretnych interfejsów.
ALMSD generuje skrypt w którym $LAN i $WAN są ustawione na sztywno na
początku -- zamiast być pobierane z bazy przy każdym userze. Nie jestem w
stanie uzyskać prawidłowych ograniczeń. Jak sobie z tym poradzić??
Oto fragment skryptu wygenerowany przez tc.so.
######
#!/bin/sh
IPT=/usr/sbin/iptables
TC=/sbin/tc
LAN=eth0
WAN=eth1
BURST="burst 30k"
(.....skip....)
start ()
(.....skip....)
#USER
$IPT -t mangle -A LIMITS -s 10.1.5.50 -j MARK --set-mark 102
$IPT -t mangle -A LIMITS -d 10.1.5.50 -j MARK --set-mark 102
$IPT -t filter -I FORWARD -p tcp -s 10.1.5.50 -m connlimit --connlimit-above
5 -m ipp2p --ipp2p -j R
$IPT -t filter -I FORWARD -p tcp -d 10.1.5.50 -m limit --limit 100/s -m
ipp2p --ipp2p -j ACCEPT
$IPT -t filter -I FORWARD -p tcp -s 10.1.5.50 -m limit --limit 100/s -m
ipp2p --ipp2p -j ACCEPT
$TC class add dev $WAN parent 2:1 classid 2:102 htb rate 8.00kbit ceil
32.00kbit $BURST prio 2 quant
$TC qdisc add dev $WAN parent 2:102 esfq perturb 10 hash dst
$TC filter add dev $WAN parent 2:0 protocol ip prio 5 handle 102 fw flowid
2:102
$TC class add dev $LAN parent 1:2 classid 1:102 htb rate 64.00kbit ceil
256.00kbit $BURST prio 2 qua
$TC qdisc add dev $LAN parent 1:102 esfq perturb 10 hash dst
$TC filter add dev $LAN parent 1:0 protocol ip prio 5 handle 102 fw flowid
1:102
######
Lepiej byłoby gdyby LAN i WAN były definiowane dla każdego usera z osobna:
#USER
+LAN=eth2
+WAN=eth0
$IPT -t mangle -A LIMITS -s 10.1.5.50 -j MARK --set-mark 102
$IPT -t mangle -A LIMITS -d 10.1.5.50 -j MARK --set-mark 102
Z góry dzięki!
Andrzej Kukula