Traffic Shaping für Server hinter FritzBox-Router

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
smo
Beiträge: 489
Registriert: 19.12.2005 16:34:40
Lizenz eigener Beiträge: MIT Lizenz

Traffic Shaping für Server hinter FritzBox-Router

Beitrag von smo » 27.04.2006 22:30:37

Hallo,
mein Netzwerk (die internen Verbindungen laufen über 54 MBit-WLAN):

Code: Alles auswählen

                   Desktop-Rechner
                             | 
Internet(2 MBit)---"FritzBox WLAN"
                             |
                   Debian-Server(imap, ldap, apache, squirrelmail, torrentflux)
Nach Hinweis in http://www.debianforum.de/forum/viewtopic.php?t=66494 möchte ich für den Server gern Traffic-Shaping einrichten, das HowTo und einige Posts zum Thema sowie lartc.org habe ich auch bereits gefunden.

Das Problem:
In den Beispielen wird das Shaping auf nem Debian-Router durchgeführt. Ich möchte/muss(?) es aber auf nem Client (dem "Debian-Server") innerhalb des Netzes durchführen, da meine FritzBox sich dahingehend nicht beeinflussen lässt. Im lokalen Netz möchte ich die (theoretischen) 54MBit ausnutzen, also zwischen Server und Desktop Rechner. Vom Server ins Internet sollen alle anderen Dienste (ssh, imap, squirrelmail) höher als Torrent priorisiert werden.

Ist sowas machbar? Das WLAN-Interface am Router ist vom Torrent-Upload ja nie ausgelastet, da erst danach der Flaschenhals Router kommt und erst dort gebremst wird. Reglementierung am Router würde also ins Leere laufen, oder?

Wenn was unklar ist, fragt einfach nach.

Danke vorab,
smo

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 28.04.2006 11:03:24

Ich habe sowas mit HTB gemacht. Mein Setup: 2 Mbit/s/384 kbit/s Internet-Leitung <--> Sinus DSL 1054-Router <--> 11 mbit/s devolo Verbindung <--> Debian Server.

Nun habe ich mittels HTB 2 Klassen erstellt. Die eine mit hat max. 10800kbit/s und die andere 200 kbit/s.

Nun markiere ich bestimmte "unwichtige" Pakete mit Ziel ungleich meines LANs - also dem Internet - , so dass sie die zweite Klasse durchlaufen und damit den max. Upload meiner DSL-Strecke nicht erreichen. Pakete im LAN durchlaufen die erste Klasse, so dass ich nahezu volle Bandbreite habe.

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

smo
Beiträge: 489
Registriert: 19.12.2005 16:34:40
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von smo » 28.04.2006 20:05:52

Hallo,

danke für den Tip. Hab's mir mal angeschaut und versucht alles was ich brauche zusammenzufassen:

Code: Alles auswählen

# htb an eth0 hängen, default: LAN
tc qdisc add dev eth0 root handle 1: htb default 1

# Zwei Root-Klassen, die nicht voneinander borgen können:

# 1. LAN
tc class add dev eth0 parent 1: classid 1:1 htb rate 53800kbps ceil 53800kbps

# 2. Internet (gesamt 200kbps Upload, die "borgbar" sein sollen)
tc class add dev eth0 parent 1: classid 1:2 htb rate 200kbps ceil 200kbps
# viel Bandbreite für wichtige dinge
tc class add dev eth0 parent 1:2 classid 1:21 htb rate 150kbps ceil 200kbps
# wenig garantierte Bandbreite für Filesharing
tc class add dev eth0 parent 1:2 classid 1:22 htb rate 50kbps ceil 200kbps


# Markierung der Pakete
# (Regeln nur für's Internet, vorher müssten noch LAN-Regeln greifen?)
# ssh
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
   match ip dport 22 0xffff flowid 1:21
# http
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
   match ip dport 80 0xffff flowid 1:21
# imap
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
   match ip dport 993 0xffff flowid 1:21
# torrentflux
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
   match ip dport ??? flowid 1:22
Passt das soweit (auch vom Verständnis - siehe Kommentare)? Wie markiere ich wohl die ausgehenden Torrentflux-Pakete am geschicktesten? Könnte es natürlich einfach unter "Rest" laufen lassen, also nicht separat behandeln..

Wie kann ich die Regeln verschachteln? Also

Code: Alles auswählen

if (lan){
  flowid 1:1
}else{
   if (ssh){
      flowid 2:1
   }else if (imap){
      flowid 2:2
   ...
}
smo

Antworten