PF/ALTQ p2p und gaming

kab

Member
Nach dem ich vorletzte Woche mir ein Firewall aufgesetzt habe bin ich nun ein Schritt weiter gegangen und habe PF mit ALTQ eingerichtet. Im Grunde funktionierts aber eben nicht ganz so wie ich mir das vorstelle.
Um den Traffic zu queuen habe ich mich für priq entschieden. Das Ziel ist das aller p2p Traffic eine niedrige priorität bekommt alls alles andere. Da mit priq zuerst der komplett höher priorisierte Traffic bearbeitet wird sollte dies wohl das richtige sein, oder mache ich hier schon ein Denkfehler?

Also wenn ich den p2p client anschalte kann ich nicht mehr Counter Strike Online spielen da der Ping einfach zu lang ist. Nach fünf Tagen PF Doku und google weis ich nicht mehr was ich noch ausprobieren sollte. Weis einer Rat?

Hier meine aktuelle pf.conf in Version x tausend

Code:
int_if = "fxp0"
ext_if = "fxp1"
server = "192.168.1.66"
client1 = "192.168.1.98"
client2 = "192.168.1.99"

emuletcp = "{ 4661, 4662, 4663 }"
emuleudp = "{ 4665, 4672, 4673 }"

priv_nets = "{ 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 }"

scrub in all

# Queueing
altq on $ext_if priq bandwidth 256Kb queue { emule_out, std_out, web_req, dns_out, web_server, tcp_ack_out }
queue emule_out priority 0
queue std_out priq(default)
queue web_req priority 3
queue dns_out priority 4
queue web_server priority 5
queue tcp_ack_out priority 6

#downstream 700kb
altq on $int_if priq bandwidth 700Kb queue { emule_in, trash, other, server, client1, client2 }
queue emule_in priority 0
queue trash priq(default)
queue other priority 3
queue server priority 4
queue client1 priority 5
queue client2 priority 6

nat on $ext_if from $int_if:network to any -> ($ext_if:0) static-port
rdr pass on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
rdr pass on $ext_if proto tcp from any to any port $emuletcp -> $server
rdr pass on $ext_if proto udp from any to any port $emuleudp -> $server

block drop log all

pass quick on lo0 all

block in  quick on $ext_if from $priv_nets to any
block out quick on $ext_if from any to $priv_nets

pass in on $ext_if inet proto tcp from any to $ext_if user proxy keep state

# to the 'net
pass out quick on $ext_if from $server to any keep state queue emule_out
pass out on $ext_if from ($ext_if) to any flags S/SA modulate state queue(std_out, tcp_ack_out)
pass out on $ext_if proto tcp from ($ext_if) to any port 80 modulate state queue (web_req, tcp_ack_out)
pass out on $ext_if proto { udp icmp } from ($ext_if) to any keep state queue std_out
pass out on $ext_if proto { tcp udp } from ($ext_if) to any port domain modulate state queue dns_out
pass out on $ext_if proto tcp from ($ext_if) to any user www modulate state queue web_server

# Internal queueing
pass out quick on $int_if from any to $server keep state queue emule_in
pass in on $int_if from $int_if:network to any
pass out quick on $int_if from any to $client1 keep state queue client1
pass out quick on $int_if from any to $client2 keep state queue client2
pass out on $int_if from any to $int_if:network keep state queue other

Oder hat jemand Ahnung wie man es anders lösen könnte? Ich möchte einfach ungestört des p2p traffic online spielen und anständig surfen können.

mfg kab
 
ich hatte das mal so geloest, dass ich einfach manuell zum spielen die verbindungen von emule auf 100 runtergesetzt hab und danach wieder hoch. einen anderen weg hatte ich nicht gefunden.
 
Internal queueing?

Du verwendest ein "Internal queueing"? - Meiner Meinung nach bringt das keinen Nutzen: die Pakete, die dort behandelt werden, sind ja schon durch deine "Internet-Leitung" gegangen, haben also schon Bandbreite "verbraucht". Um die eingehenden Pakete beeinflussen zu können müsste ein Queueing beim sendenden Router gemacht werden.

Zu deinem Ping-Problem:
Wie gehst du ans Netz? Schwachbrüstige DSL-Router z.B. bekommen dicke Backen durch die vielen Connections die ein p2p-Client aufmacht, und da hilft leider kein Queueing sondern das Beschränken der Connections im Client.
 
Zurück
Oben