[+] System nie osi

Konfiguracja serwerów, usług, itp.
fr0g
Posty: 47
Rejestracja: 08 maja 2007, 21:08
Lokalizacja: Olsztyn

[+] System nie osiąga pełnej prędkości łącza

Post autor: fr0g »

Witam.
Dzisiaj zauważyłem, że mam problem z osiągnięciem pełnej prędkości łącza.
Na Debianie mam zainstalowany LMS HFSC. Dzieli łącze na poszczególnych użytkowników.

Po próbie przeładowania reguły dla użytkowników mam błąd:

Kod: Zaznacz cały

iptables: Chain already exists
iptables: Chain already exists

Kod: Zaznacz cały

#!/bin/sh
IPT=/sbin/iptables
TC=/sbin/tc
LAN=imq1
WAN=imq0
WEW=eth1

DOWNLOAD=12000kbit
UPLOAD=950kbit

stop ()
{
$IPT -t mangle -D PREROUTING -i $WEW -j LIMITS >/dev/null 2>&1
$IPT -t mangle -D POSTROUTING -o $WEW -j LIMITS >/dev/null 2>&1
$IPT -t mangle -D PREROUTING -i $WEW -j IMQ --todev 0 >/dev/null 2>&1
$IPT -t mangle -D POSTROUTING -o $WEW -j IMQ --todev 1 >/dev/null 2>&1

$IPT -F
$IPT -X
$IPT -F -t nat
$IPT -X -t nat
$IPT -F -t filter
$IPT -X -t filter
$IPT -t mangle -F LIMITS >/dev/null 2>&1
$IPT -t mangle -X LIMITS >/dev/null 2>&1
$IPT -t mangle -F OUTPUT
$IPT -t mangle -F INPUT
$IPT -t filter -F FORWARD

$TC qdisc del dev $LAN root 2> /dev/null
$TC qdisc del dev $WAN root 2> /dev/null
}

start ()
{
stop
$IPT -t mangle -A PREROUTING -i $WEW -d ! 192.168.1.1 -j IMQ --todev 0
$IPT -t mangle -A POSTROUTING -o $WEW -j IMQ --todev 1
$IPT -t mangle -N LIMITS
$IPT -t mangle -A PREROUTING -i $WEW -j LIMITS 
$IPT -t mangle -A POSTROUTING -o $WEW -m tos ! --tos 8 -j LIMITS
$TC qdisc add dev $LAN root handle 1:0 hfsc default 3 
$TC class add dev $LAN parent 1:0 classid 1:1 hfsc ls m2 99000kbit ul m2 12000kbit
$TC class add dev $LAN parent 1:1 classid 1:2 hfsc ls m2 $DOWNLOAD ul m2 $DOWNLOAD
$TC class add dev $LAN parent 1:1 classid 1:3 hfsc ls m2 98500kbit ul m2 98500kbit 
$TC qdisc add dev $LAN parent 1:3 esfq perturb 10 hash dst
# priorities for ICMP, TOS 0x10 and ports 22 and 53
$TC class add dev $LAN parent 1:2 classid 1:20 hfsc ls m2 $DOWNLOAD ul m2 $DOWNLOAD 
$TC qdisc add dev $LAN parent 1:20 esfq perturb 10 hash dst
$TC filter add dev $LAN parent 1:0 protocol ip prio 2 u32 match ip sport 22 0xffff flowid 1:20
$TC filter add dev $LAN parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
$TC filter add dev $LAN parent 1:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 1:20
$TC filter add dev $LAN parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:20
# serwer -> LAN
$TC filter add dev $LAN parent 1:0 protocol ip prio 4 handle 1 fw flowid 1:3

# outgoing traffic
$TC qdisc add dev $WAN root handle 2:0 hfsc default 11
$TC class add dev $WAN parent 2:0 classid 2:1 hfsc ls m2 $UPLOAD ul m2 $UPLOAD
# priorities for ACK, ICMP, TOS 0x10, ports 22 and 53
$TC class add dev $WAN parent 2:1 classid 2:10 hfsc ls m2 $UPLOAD ul m2  $UPLOAD
$TC qdisc add dev $WAN parent 2:10 esfq perturb 10 hash dst
$TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 1 match u8 0x10 0xff at 33 flowid 2:10
$TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip dport 22 0xffff flowid 2:10
$TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip dport 53 0xffff flowid 2:10
$TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 2:10
$TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:10
# serwer -> Internet
$TC class add dev $WAN parent 2:1 classid 2:11 hfsc ls m2 $UPLOAD ul m2 $UPLOAD
$TC qdisc add dev $WAN parent 2:11 esfq perturb 10 hash dst
$TC filter add dev $WAN parent 2:0 protocol ip prio 3 handle 1 fw flowid 2:11
$TC filter add dev $WAN parent 2:0 protocol ip prio 9 u32 match ip dst 0.0.0.0/0.0.0.0 flowid 2:11\n
Może ktoś widzu tu jakiś błąd?

Dodane:
Piszę sam pod sobą tylko dlatego by oznajmić, że znalazłem rozwiązanie.

O dziwo, problem był w przełączniku sieciowym.
ODPOWIEDZ