PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables mit connrate



Code7R
01.02.2006, 10:56
Hallo Leute,

ich habe ein kleines Problem, zu dem ich leider bisher im Internet keine Lösung finden konnte: ?(

Ich habe eine normale iptables-Firewall, auf Debian Sarge 3.1 mit dessen Standard-Kernel 2.6.8 und iptables 1.2.11.

Ich möchte eine oder mehrere IPs ausbremsen, besser gesagt die Geschwindigkeit, mit der diese IPs Daten aus dem Internet empfangen begrenzen. Ich habe ein wenig recherchiert und dachte, ich könnte dies mit der iptables-extension "connrate" bewerkstelligen.

Da connrate kein Bestandteil des 2.6.8er Kernels ist, habe ich mir patch-o-matic von netfilter.org besorgt um die Kernel- und iptables-Quellen zu patchen. Das hat auch wunderbar geklappt und ich konnte connrate mittels "make menuconfig" im Kernel aktivieren.
Anschließend wollte ich den Kernel neu übersetzen...



...
CC net/ipv4/fib_frontend.o
CC net/ipv4/fib_semantics.o
CC net/ipv4/fib_hash.o
net/ipv4/fib_hash.c: In function `fib_get_idx':
net/ipv4/fib_hash.c:978: Warnung: Initialisierung von inkompatiblem Zeigertyp
net/ipv4/fib_hash.c:981: Warnung: Zuweisung von inkompatiblem Zeigertyp
CC net/ipv4/proc.o
CC net/ipv4/ipconfig.o
CC net/ipv4/netfilter/ip_conntrack_rate.o
net/ipv4/netfilter/ip_conntrack_rate.c:98: Warnung: »int« ist Standardtyp in Deklaration von »DEFINE_RWLOCK«
net/ipv4/netfilter/ip_conntrack_rate.c:98: Warnung: Parameternamen (ohne Typen) in Funktionsdeklaration
net/ipv4/netfilter/ip_conntrack_rate.c: In function `ip_conntrack_rate_count':
net/ipv4/netfilter/ip_conntrack_rate.c:106: Warnung: implizite Deklaration der Funktion »local_bh_disable«
net/ipv4/netfilter/ip_conntrack_rate.c:106: Fehler: »rate_lock« nicht deklariert (erste Benutzung in dieser Funktion)
net/ipv4/netfilter/ip_conntrack_rate.c:106: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
net/ipv4/netfilter/ip_conntrack_rate.c:106: Fehler: für jede Funktion in der er auftritt.)
net/ipv4/netfilter/ip_conntrack_rate.c:115: Warnung: implizite Deklaration der Funktion »local_bh_enable«
net/ipv4/netfilter/ip_conntrack_rate.c: In function `ip_conntrack_rate_get':
net/ipv4/netfilter/ip_conntrack_rate.c:123: Fehler: »rate_lock« nicht deklariert (erste Benutzung in dieser Funktion)
net/ipv4/netfilter/ip_conntrack_rate.c: At top level:
net/ipv4/netfilter/ip_conntrack_rate.c:98: Warnung: »DEFINE_RWLOCK« als »static« deklariert, aber nirgendwo definiert
make[3]: *** [net/ipv4/netfilter/ip_conntrack_rate.o] Fehler 1
make[2]: *** [net/ipv4/netfilter] Fehler 2
make[1]: *** [net/ipv4] Fehler 2
make: *** [net] Fehler 2


Ich habe schon alles versucht was mir eingefallen ist: Andere Kernel Version, anderes iptables, anderes cpp und gcc... ohne Erfolg. :think:

Hat einer oder eine von euch schon einmal mit Connrate gearbeitet? Wenn ja, welche Kernel- und iptables-Version habt Ihr verwendet?
Könnt Ihr mir vielleicht generell Tips dazu geben wie man bestimmte Clients oder Ports ausbremsen könnte?

Danke für eure Hilfe, :)

Code7R

allesmueller
09.02.2006, 10:19
Hallo!

Ich glaub' mit iptables wirst du dein Ziel nicht erreichen connrate sagt ja nur aus wie viele _neue_ connections je Zeiteinheit aufgemacht werden duerfen.

Du willst scheinbar eher ein Quality of Service oder Bandbreitenmanagement..
http://tldp.org/HOWTO/Traffic-Control-HOWTO/components.html

in diese Richtung solltest du weiterforschen...

HTH,
allesmueller