Hallo miteinander!
In meiner WG teilen wir uns eine Internetleitung mit 2048/256.
Ich habe mich bereiterklärt einen Router aufzusetzen der gleichzeitig als Torrent-Box fungieren soll.
Soweit läuft das auch alles, die Platten sind mit GELI verschlüsselt, gebootet wird über einen USB Stick, NAT läuft auch, ich konnte also schon so einiges aus dem Projekt lernen.
Das Problem ist nun, dass der Router die Clients komplett ausbremst wenn Downloads laufen, ist ja auch irgendwie naheliegend. Also hab ich die Firewall von ipf auf pf umgestellt, um ALTQ verwenden zu können.
Das Ziel ist jetzt, jedem User und dem Router/Server bei voller Auslastung den gleichen Anteil an der Bandbreite zur Verfügung zu stellen. Ich möchte aber auch, dass, sollte die Leitung nicht ausgenutzt werden, im Extremfall bspw. ein User die volle Bandbreite beanspruchen kann.
Webbrowsing soll die höchste Priorität kriegen, dann die default queue jedes Users (für Instant Messenger o.ä.) und zuletzt eine kleine Range hoher Ports für Downloadprogramme o.ä.
Irgendwie steh ich jetzt auf der Leitung.
Hier erstmal meine pf.conf, ath0 is das LAN Interface, fxp0 hängt am Modem:
Ich hab rio beinahe für jede queue genommen, in der Hoffnung dass das bei so wenigen Clients keine negativen Auswirkungen auf die Performance haben wird..?
So, der Teil, den ich nicht verstehe, ist, wieso der ganze Traffic, wurscht ob In oder Out durch die jeweilige default queue geht.
Ich hab das Gefühl das ganze hängt mit dem NAT zusammen, aber ich weiß diesbezüglich nicht mehr weiter...
Für Anregungen wär ich sehr dankbar.
Achja: Hier läuft FreeBSD 7.1-Stable
In meiner WG teilen wir uns eine Internetleitung mit 2048/256.
Ich habe mich bereiterklärt einen Router aufzusetzen der gleichzeitig als Torrent-Box fungieren soll.
Soweit läuft das auch alles, die Platten sind mit GELI verschlüsselt, gebootet wird über einen USB Stick, NAT läuft auch, ich konnte also schon so einiges aus dem Projekt lernen.
Das Problem ist nun, dass der Router die Clients komplett ausbremst wenn Downloads laufen, ist ja auch irgendwie naheliegend. Also hab ich die Firewall von ipf auf pf umgestellt, um ALTQ verwenden zu können.
Das Ziel ist jetzt, jedem User und dem Router/Server bei voller Auslastung den gleichen Anteil an der Bandbreite zur Verfügung zu stellen. Ich möchte aber auch, dass, sollte die Leitung nicht ausgenutzt werden, im Extremfall bspw. ein User die volle Bandbreite beanspruchen kann.
Webbrowsing soll die höchste Priorität kriegen, dann die default queue jedes Users (für Instant Messenger o.ä.) und zuletzt eine kleine Range hoher Ports für Downloadprogramme o.ä.
Irgendwie steh ich jetzt auf der Leitung.
Hier erstmal meine pf.conf, ath0 is das LAN Interface, fxp0 hängt am Modem:
Ich hab rio beinahe für jede queue genommen, in der Hoffnung dass das bei so wenigen Clients keine negativen Auswirkungen auf die Performance haben wird..?
Code:
## ALTQ - Queues
# outbound
altq on ath0 cbq bandwidth 2048Kb queue { server_in, user1, user2, user3, default_in }
queue server_in on ath0 bandwidth 20% priority 1 cbq (borrow rio) { s_torrent, s_def }
queue s_torrent bandwidth 50% priority 1 cbq (borrow rio)
queue s_def bandwidth 50% priority 2 cbq (borrow)
queue user1 on ath0 bandwidth 20% priority 1 cbq (borrow rio) { u1_http, u1_highport, u1_def } # felix
queue u1_http bandwidth 33% priority 5 cbq (borrow rio)
queue u1_highport bandwidth 33% priority 3 cbq (borrow rio)
queue u1_def bandwidth 34% priority 4 cbq (borrow)
queue user2 on ath0 bandwidth 20% priority 1 cbq (borrow rio) { u2_http, u2_highport, u2_def } # robert
queue u2_http bandwidth 33% priority 5 cbq (borrow rio)
queue u2_highport bandwidth 33% priority 3 cbq (borrow rio)
queue u2_def bandwidth 34% priority 4 cbq (borrow)
queue user3 on ath0 bandwidth 20% priority 1 cbq (borrow rio) { u3_http, u3_highport, u3_def } # thomas
queue u3_http bandwidth 33% priority 5 cbq (borrow rio)
queue u3_highport bandwidth 33% priority 3 cbq (borrow rio)
queue u3_def bandwidth 34% priority 4 cbq (borrow)
queue default_in on ath0 bandwidth 20% priority 0 cbq (borrow default)
# inbound
altq on fxp0 cbq bandwidth 200Kb queue { server_out, ack_out, default_out } # 256 k
queue server_out bandwidth 33% priority 3 cbq (borrow rio)
queue ack_out bandwidth 33% priority 6 cbq (borrow rio)
queue default_out bandwidth 33% priority 4 cbq (default borrow rio)
## Nat
nat on ath0 inet from any to (fxp0) -> ath0:network
nat on fxp0 inet from ath0:network to any -> (fxp0) #raus
## package filter
server = "192.168.0.1"
user1 = "192.168.0.21"
user2 = "192.168.0.20"
user3 = "192.168.0.19"
netzwerk = "192.168.0.0/24"
table <firewall> const { self }
# loopback
pass in quick on lo0 all
pass out quick on lo0 all
set skip on lo0
# lan
# inbound
block in on ath0 all
pass in on ath0 proto {tcp, udp, icmp} from $netzwerk to any
#outbound
pass out on ath0 proto { tcp, udp, icmp } from any to $server queue server_in
pass out on ath0 proto { tcp, udp } from any to $server port 50000:50100 queue s_torrent
pass out quick on ath0 proto { tcp, udp } from any to $user1 port { 80, 443 } queue u1_http
pass out quick on ath0 proto { tcp, udp } from any to $user1 port 51000:51250 queue u1_highport
pass out on ath0 proto { tcp, udp, icmp } from any to $user1 queue u1_def
pass out quick on ath0 proto { tcp, udp } from any to $user2 port { 80, 443 } queue u2_http
pass out quick on ath0 proto { tcp, udp } from any to $user2 port 51251:51500 queue u2_highport
pass out on ath0 proto { tcp, udp, icmp } from any to $user2 queue u2_def
pass out quick on ath0 proto { tcp, udp } from any to $user3 port { 80, 443 } queue u3_http
pass out quick on ath0 proto { tcp, udp } from any to $user3 port 51501:51750 queue u3_highport
pass out on ath0 proto { tcp, udp, icmp } from any to $user3 queue u3_def
# internet
# inbound
pass in on fxp0 all # for testing purposes
#outbound
pass out quick on fxp0 proto { tcp, udp, icmp } from $server to any queue server_out
pass out quick on fxp0 proto tcp from $netzwerk to any flags S/SA queue ack_out
pass out on fxp0 proto { tcp, udp, icmp } from $netzwerk to any queue default_out
So, der Teil, den ich nicht verstehe, ist, wieso der ganze Traffic, wurscht ob In oder Out durch die jeweilige default queue geht.
Ich hab das Gefühl das ganze hängt mit dem NAT zusammen, aber ich weiß diesbezüglich nicht mehr weiter...
Für Anregungen wär ich sehr dankbar.
Achja: Hier läuft FreeBSD 7.1-Stable
Zuletzt bearbeitet: