Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Suche Tool um Traffic Volumen zu beschränken
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
return13
Guru
Guru


Joined: 02 Feb 2004
Posts: 513
Location: Hamburg - Germany

PostPosted: Thu May 10, 2007 9:42 pm    Post subject: Suche Tool um Traffic Volumen zu beschränken Reply with quote

Wie bereits in der Überschrift Stand suche ich ein Tool im mein Traffic zu beschränken z.B. auf 40 Mb/Tag oder 2 GB / Monat - oder ähnlich... nice wäre es als Zusatz auch wenn ich netzwerkbereiche davon ausschließen könnte - gibts solche tools? Habt ihr ein paar Tipps?
_________________
Wer Recht erkennen will, muß zuvor in richtiger Weise gezweifelt haben.
Aristoteles (384-322), griech. Philosoph, Begründer d. abendländ. Philosophie
Back to top
View user's profile Send private message
sschlueter
Guru
Guru


Joined: 26 Jul 2002
Posts: 578
Location: Dortmund, Germany

PostPosted: Sat May 12, 2007 11:08 am    Post subject: Reply with quote

Eine ziemlich rudimentäre Lösung läßt sich mit dem iptables quota-Modul realisieren. Damit kann man eine Filterregel mit einem Byte-Counter initialisieren, der fortan rückwärts zählt. Wenn der Counter bei 0 angekommen ist, gilt die Regel nicht mehr.

Ich habe das noch nicht ausprobiert, aber ich schätze das so ein, dass man bei er Erstellung der iptables-Regeln aufpassen muss, dass man den Traffic damit auch richtig zählt. Da es in den allermeisten Fällen nicht möglich sein dürfte, den gesamten Internet-Traffic mit nur einer einzigen Regel in einer der eingebauten Ketten zu zählen, wird man vermutlich mit zwei benutzerdefinierten Ketten arbeiten müssen: Die erste benutzerdefinierte Kette zur Gruppierung der Regeln in den eingebauten Ketten, d.h. überall dort, wo Traffic gezählt werden soll, wird in diese benutzerdefinierte Kette gesprungen. Dort befindet sich die Quota-Regel, die an eine zweite benutzerdefinierte Kette weitergibt, die den Traffic erlaubt. Wenn der Quota-Regel nicht mehr gilt, findet auch kein Sprung in die zweite benutzerdefinierte Regel statt, die den Traffic erlaubt.

Diese Lösung ist sehr sicher, weil es nicht möglich ist, die Quota zu überschreiten. Es wäre auch möglich, ohne das Quota-Modul zu arbeiten, indem man sich ein Skript schreibt, das regelmäßig per Cron aufgerufen wird und die Byte-Counter der relevanten Regeln zusammen addiert, dann entscheidet, ob die Quota überschritten ist und in diesem Fall eine oder mehrere iptables-Regeln setzt, die weiteren Traffic unterbinden. Der Nachteil ist, dass es bei einer solchen periodischen Prüfung möglich ist, die Quota (geringfügig) zu überschreiten. Der Vorteil ist, dass man, wenn man schon ein solches Skript hat, auch gleich eine Benachrichtigung per Mail, Jabber, smbpopup o.ä. generieren kann. Das iptables Quota-Modul hat von sich auch keine solche Benachrichtigungsfunktion und müßte daher auch mit einem periodisch aufgerufenen Benachrichtigungsskript ergänzt werden, das checkt, ob der Counter bei der Quota-Regel schon auf 0 ist.

Zum Neu-Initialisieren des Counters bei der Quota-Regel muß diese vermutlich durch eine identische Regel ersetzt werden, denn es gibt anscheinend keine explizite Möglichkeit, den Counter bei dieser Regel zurückzusetzen.
Back to top
View user's profile Send private message
schmutzfinger
Veteran
Veteran


Joined: 26 Oct 2003
Posts: 1287
Location: Dresden/Germany

PostPosted: Sat May 12, 2007 12:28 pm    Post subject: Reply with quote

Ich habe mal eine Lösung für das Problem gebaut/weiterentwickelt. Ein Linux-Router mit iptables, ipt_account und ipset.

Ein Script liest die counter von ipt_account regelmässig aus und schreibt sie in eine Datenbank. Dannach wird überprüft ob jemand übers quota ist und darauf reagiert.

IPs die unter dem quota sind werden in einem ipset zusammengefasst und die, die drüber sind in einem anderen. Alle die drüber sind werden gesperrt, ihre Anfragen auf die ports 80/443 werden per DNAT auf eine Seite umgeleitet die ihnen sagt das sie gesperrt sind.

Die Lösung hat zwar den Nachteil das die Hosts ein wenig über das quota kommen können (wegen dem cronjob), aber sie hat auch entscheidende Vorteile.
* schnelles routing:
- accounting ganzer subnetze in nur einer regel (keine chains/regeln pro IP)
- matchen von vielen IPs+MACs in nur einer Regel (ipset)
* Firewall Regelsatz statisch:
- die ganze Dynamik liegt in den sets, sie können zur Laufzeit atomar ausgetauscht werden (keine Flushs -> lags)
- iptables helfer wie shorewall können genutzt werden

Bei mir war das für ein Netz mit 2 /24er Subnetzen. Da kam es also drauf an das man den Regelsatz nicht bei jeder Änderung neu laden muss und das man nicht Regeln pro IP bauen muss. Für ein DSL-Heimnetz ist das wohl zu viel Aufwand außer man hat Spass am scripten.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum