OpenVPN Traffic limitieren pro User

J

Johni

Grünschnabel
Also, ich habe hier einen VPN Server über den einzelne Benutzer über NAT in das Internet können. Der Traffic der einzelnen Benutzer soll jeweils auf einen festen Wert limitiert werden.

Mit pptp funktioniert das auch sehr gut da jeder Benutzer einen eigenen Netzwerkadapter bekommt den ich dann limitieren kann.

Code:
#upload
DOWNSPEED=128
#download
UPSPEED=900
/sbin/tc qdisc del dev $1 root    > /dev/null
/sbin/tc qdisc del dev $1 ingress > /dev/null
##### speed server->client
if [ "$UPSPEED" != "0" ] ;
then
	/sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1
	/sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit burst 4k
	/sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit burst 4k prio 1
	/sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit burst 4k prio 2
	/sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1500
	/sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1500
	/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
	/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
	/sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
fi 
##### speed client->server
if [ "$DOWNSPEED" != "0" ] ;
then
	/sbin/tc qdisc add dev $1 handle ffff: ingress
	/sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kbit burst 12k drop flowid :1
fi

Das ist zur Zeit im if-up Script der ppp Adapter.

Jetzt will ich neben pptp auch OpenVPN einrichten wass auch soweit funktioniert bis auf das limitieren des Traffic. Der Ansatz von pptp funktioniert ja nicht da nicht jeder Client einen virtuellen Netzwerkadapter besitzt. Ich muss zugeben, dass die Configuration von tc nicht von mir selbst sondern aus dem Internet stammt. Vielleicht übersehe ich daher auch eine Möglichkeit.

Hat hier jemand vielleicht eine Idee wie man das lösen könnte?
 
Du könntest pro User eine feste IP vergeben, an die sich tc dann wieder ranmachen könnte. Direkt eingebaut scheint OpenVPN keine Traffic-Quota pro Nutzer zu haben.

So würde ich es jedenfalls versuchen.
 
Du könntest pro User eine feste IP vergeben, an die sich tc dann wieder ranmachen könnte. Direkt eingebaut scheint OpenVPN keine Traffic-Quota pro Nutzer zu haben.

So würde ich es jedenfalls versuchen.

Ja den Gedanke hatte ich auch schon. Jeder User hat ja eine IP. Aber dann kommen einige Fragen auf:

Das Traffic limit ist das pro Adapter? Pro qdisc? Weil so wie ich das verstanden habe müsste ich pro user eine qdisc anlegen und der eine id geben. Dann mit filter gegen die ip matchen. Aber das würde ja nur gehen wenn das limit dann pro Qdisc oder pro ip wäre. Und um das rauszu bekommen reichen meine tc Kentnisse nicht aus.
 

Ähnliche Themen

OpenVPN traffic redirect

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

OpenVPN - Server kann clients nicht erreichen.

Rollei Mini Wifi Camcorder

CentOS 6.3 RADIUS - Keine Verbindung möglich

Zurück
Oben