Mit Raspberry Pi Internetgeschwindigkeit steuern

Gast #4778331
Lesenswert?

Hi, ich möchte wissen, ob ich mit dem Rasbperry Pi und einem 
Linux-Debian die Internetgeschwindigkeit einstellen kann? Ich habe ein 
kleines Netzwerk mit mehreren Computern, die an dem Netzwerk dranhängen 
und gleichzeitig ins Internet gehen können. Der Router ist mit einem 
Switch verbunden und das Switch mit den Computern. Meine Idee ist es, 
zwischen Router und Switch einen Raspberry Pi zu schalten, ich habe zwei 
Netzwerkanschlüsse daran - den festen und einen USB-Netzwerkanschluss, 
und dann darüber die Geschwindigkeit der einzelnen Rechner einstellen zu 
können, wenn mehrere da sind.

Gibt es eine Debian-Raspian-Linux-Software, mit der ich IP-abhängig 
Priorisierungen vornehmen kann?
Gast #4778346
Lesenswert?

Nick S. schrieb:
> Das erledigt dann wohl schon der Durchsatz der USB Netzwerkkarte..

ja, aber ich will ja den Durchsatz steuern, z.B. soll Rechner 1 mehr 
Volumen kriegen als Rechner 2 oder andersrum, weil ich einen PC-Computer 
für die Arbeit brauche und wenn meine Tochter am PC sitzt, dann zieht 
sie zu viel Leistung ab, ich habe nur eine 2MBit-Leitung.
#4778374
Lesenswert?

Anfänger schrieb:
> Hi, ich möchte wissen, ob ich mit dem Rasbperry Pi und einem
> Linux-Debian die Internetgeschwindigkeit einstellen kann?

Ja. Ausgehender Traffic kann in Linux anhand eines beliebig 
komplizierten Regelwerks bandbreitenbegrenzt werden.

> Gibt es eine Debian-Raspian-Linux-Software, mit der ich IP-abhängig
> Priorisierungen vornehmen kann?

QoS aka Advanced Traffic Control ist in Linux von Haus aus schon drin. 
Siehe "tc" Kommando.

Beispiel (kein RasPi), um den Datenstrom zu den beiden PCs in Summe auf 
4Mb/s zu begrenzen:
1
#!/bin/sh
2
rate="4mbit"
3
pc1="11.22.33.44"
4
pc2="55.66.77.88"
5

6
tc qdisc del dev eth0 parent 1:1 sfq >/dev/null 2>&1
7
tc filter del dev eth0 parent 1: protocol ip prio 16 u32 match ip dst $pc1 >/dev/null 2>&1
8
tc filter del dev eth0 parent 1: protocol ip prio 16 u32 match ip dst $pc2 >/dev/null 2>&1
9
tc class del dev eth0 parent 1: classid 1:1 >/dev/null 2>&1
10
tc qdisc del dev eth0 root handle 1: >/dev/null 2>&1
11

12
tc qdisc add dev eth0 root handle 1: cbq avpkt 1000 bandwidth 1000mbit
13
tc class add dev eth0 parent 1: classid 1:1 cbq rate $rate allot 1500 prio 5 bounded isolated
14
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst $pc1 flowid 1:1
15
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst $pc2 flowid 1:1
16
tc qdisc add dev eth0 parent 1:1 sfq perturb 10

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren