IMQ + HTB a nefungujici filtry

Ondrej Puzman puzmano na volny.cz
Úterý Září 2 14:42:59 CEST 2003


 Zdravim
Pisu skript na shapovani downloadu z internetu a pote co jsem napsal
krasny skript, ktery vytvoril class presne tak, jak jsem chtel, jsem
zjistil, ze mi nefunguji filtry :(
Trapim se s tim uz druhy den a porad nevim v cem muze byt chyba -
skript jsem postupne zjednodusil az na uplne minimum, ale stejne
veskery traffic prochazi pres default class.
Z tabulek mangle a nat jsem vyhazel vsechna pravidla krome
presmerovani prichozich dat z wlan0 na imq0 a maskarady na wlan0,
ale k nicemu to nebylo.
Nakonec jsem se rozhodl ten samy skript vyzkouset na jinem stroji a k
memu prekvapeni tam funguje (s maskaradou i bez ni) !

Vubec netusim co si o tom mam myslet.
Na konci mailu prikladam tu minimalni verzi skriptu.
Pokud by mel nekdo nejaky napad, co jeste vyzkouset, tak bych mu byl
velice zavazan.
     Ondrej Puzman


#!/bin/sh

IPTABLES="`which iptables`"
TC="`which tc`"
IP="`which ip`"

# Inet interface
INETIFACE="wlan0"

IMQDEVNUM=0
IMQDEV=imq$IMQDEVNUM

STOCHASIS="sfq perturb 10"

FACE="$IMQDEV"
                                                                                                    
$TC qdisc del dev ${FACE} root &>/dev/null
                                                                                                    
$TC qdisc add dev ${FACE} root handle 1: htb default 99
$TC class add dev ${FACE} parent 1:  classid 1:2   htb rate 530kbit ceil 530kbit burst 10k
$TC class add dev ${FACE} parent 1:2 classid 1:10  htb rate 128kbit ceil 530kbit burst 8k prio 3
$TC class add dev ${FACE} parent 1:2 classid 1:99  htb rate 128kbit ceil 530kbit burst 1k prio 5

$TC filter add dev ${FACE} parent 1:0 protocol ip u32 match ip dst 10.24.85.2/32 flowid 1:10

$TC qdisc add dev ${FACE} parent 1:10  handle 10: $STOCHASIS
$TC qdisc add dev ${FACE} parent 1:99  handle 99: $STOCHASIS

$IPTABLES -t mangle -A PREROUTING -i $INETIFACE -j IMQ --todev $IMQDEVNUM
$IP link set $IMQDEV up



Další informace o konferenci Linux