[Eisfair] [E1] Bandwidth shaper?

Olaf Jaehrling eisfair at ojaehrling.de
So Mai 6 00:20:00 CEST 2012


Hallo Thomas

--- Original-Nachricht ---
Absender: Thomas Huebner
Datum: 05.05.2012 00:32
> Am 04.05.2012 23:27, schrieb Olaf Jaehrling:
>> Ich mache sowas mit iptables und tc. Kommt darauf an, was dein EIS am
>> DSL macht.
> 
> Der Eis ist im Internen Netzwerk hinter einer normalen Fritzbox die kein
> Traffic shaping macht. Der Eis bietet nach außen einen Apache und dient
> ansonsten fürs interner LAN als Mail Relay, Samba und NFS Server.

braucht die FB ja auch nicht.
> 
> Zuweilen bekomme ich große Mails mit Anhängen ~10MB. Für den Download
> legt fetchmail dann die ganze Leitung lahm. Die Mails sind nicht
> zeitkritisch, können als "reintröpfeln".

Genau dafür ist tc und iptables ja gedacht. Du weist dann dem Port 25
und 110 (smtp und pop3) nur 20 kbit zu und dann kann der eis dein DSL
nicht lahm legen. Wenn du willst, kann ich das für dich mal fertig machen.

Es könnte so hier schon gehen (immer in eine Zeile):

=========================================================================
#!/bin/bash

interface=eth0

## erstmal alte Regeln loeschen
/sbin/tc qdisc del dev $interface root

/sbin/iptables -t mangle -F

## aktivieren der Queueing DISCipline für das Device, die
## auf Klasse 1, Handle 12 (1:12) default-mäßig zeigt

/sbin/tc qdisc add dev $interface root handle 1:0 htb default 12

## Nun werden die Geschwindigkeits - Klassen eingerichtet: Zunächst die
oberste, parent

/sbin/tc class add dev $interface parent 1: classid 1:1 htb rate 368kbit
ceil 368kbit

## Klasse fuer normalen Traffic

/sbin/tc class add dev $interface parent 1:1 classid 1:12 htb rate
200kbit ceil 250kbit prio 2

## Für eingehenden SMTP - Traffic

/sbin/iptables -A PREROUTING -t mangle -i $interface -p tcp --sport 25
-j MARK --set-mark 12

## Für eingehenden POP - Traffic

/sbin/iptables -A PREROUTING -t mangle -i $interface -p tcp --sport 110
-j MARK --set-mark 12

## Und nun müssen die Filterregeln an die Klassen gebunden werden

/sbin/tc filter add dev $interface parent 1:0 prio 0 protocol ip handle
12 fw flowid 1:12

=========================================================================

ungetestet, notfalls nochmal genauer auf der Seite nachlesen, die ich
gepostet hatte. POP3 und smtp sollten nun maximal 200-250 kbit
bereitgestellt bekommen. Ausgegangen ich ich von DSL-lite mit 368 kbit,
also notfalls oben die 368 auf deine Gegebenheiten anpassen.

Bei mir funktioniert es, aber mit mehr Klassen und umfangreicher, wenn
sich jemand via VPN einwählt beschränke ich ihn damit.


Gruß

Olaf


> 
> Gruß,
> Thomas


Mehr Informationen über die Mailingliste Eisfair