
Ich arbeite derzeit an einer Verkehrsgestaltung unter Linux. Wir haben einen Client, der mit einem Server verbunden ist, auf dem NAT und DHCP laufen. Wir möchten sowohl die Upload- als auch die Download-Geschwindigkeit des/der Clients begrenzen.
Allerdings funktioniert nur das Download-Limit.
Download-Limit (Teil des Skripts) FUNKTIONIERT
tc class add dev eth1 parent 1:1 classid 1:4 htb rate 30000kbit
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.101/32 flowid 1:4
Upload-Limit (Teil des Skripts)
tc class add dev eth1 parent 1:1 classid 1:4 htb rate 30000kbit
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.101/32 flowid 1:4
Das einzige, was im Upload-Teil geändert wird, ist „dst“ in „src“. Das Problem ist, dass keine Begrenzung erfolgt, wenn wir den Download-Teil des Skripts durch den Upload-Teil ersetzen. Was ist falsch?
Antwort1
Ihre Traffic-Shaping-Anwendung läuft auf Ihrem Server mit der IP-Adresse 192.168.0.101. Sie können die Download-Bandbreite daher nur durch einen Filter mit der Quelle 192.168.0.101 steuern. Wenn Sie einen Filter mit dem Ziel 192.168.0.101 verwenden, werden die Pakete zuerst auf dem Server empfangen, dann wird das Traffic-Shaping für sie durchgeführt, Sie können die Upload-Bandbreite also nicht steuern. Dazu sollten Sie eine Maschine zwischen Ihrem Server und Ihren Benutzern verwenden, um die Download- und Upload-Bandbreite durch diese beiden Filter zu steuern.