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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.