Prioritera spel-portar i OpenBSD(PF)

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2001

Prioritera spel-portar i OpenBSD(PF)

God Kväll!

Tänkte höra om ni har några tips och trix, för att få ned pingen så mycket som möjligt?

Min psuedo-konfig ser ut som följande:

Några utvalda portar (7171,27015, 27016) ligger i high-prioriteringskön. Port 80,21 ligger i prioriteringskön low.

Startar jag nu igång Counter-Strike och ansluter till en server, så ligger jag runt 10-15ms. Detta är när jag inte laddar ned något.

Börjar jag däremot ladda ner något (testat både http,ftp,torrent) så höjs pingen till runt 60ms.

Finns det något sätt att reducera ping-tiden när man spelar, även fast personer tankar?

Spelar ingen roll om det kommer gå väldigt segt att surfa, etc. Huvudsaken är att pingen är så låg som möjligt till utvalda portar.

Mvh,
Marwin

Trädvy Permalänk
Hedersmedlem
Plats
Stockholm
Registrerad
Dec 2002

Detta är nog intressant för dig att läsa:
http://cvs.openbsd.org/faq/pf/queueing.html

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Trädvy Permalänk
Medlem
Registrerad
Jul 2001

Posta gärna din pf.conf, iaf de relevanta delarna.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2001

lo = lo0
int = dc1
ext = dc0
reserved = " { 0.0.0.0/8, 10.0.0.0/8, 20.20.20.0/24, 127.0.0.0/8,
169.254.0.0/16, 172.16.0.0/12, 192.0.2.0/24, 192.168.0.0/16,
224.0.0.0/3, 255.255.255.255 } "

table <blacklist-tabell> file "/etc/blacklistedips"

set block-policy drop

set optimization aggressive # Kan denna påverka det negativt?

scrub in on $ext all

altq on $ext priq bandwidth 16000Kb queue { def, high, low }

queue high priority 2
queue low priority 0
queue def priority 1 priq(default)

nat on $ext inet from ($int)/24 to any -> ($ext)

pass log quick on $ext proto { tcp, udp } from any to any port 7171 keep state queue high
pass log quick on $ext proto { tcp, udp } from any to any port 27015 keep state queue high
pass log quick on $ext proto { tcp, udp } from any to any port 27016 keep state queue high
pass log quick on $ext proto { tcp, udp } from any to any port 80 keep state queue low
pass log quick on $ext proto { tcp, udp } from any to any port 21 keep state queue low

pass quick on $lo all

antispoof for { $lo, $int, $ext }

pass quick on $int all

block in on $ext all
block out quick on $ext inet from ! ($ext) to any

block return in quick on $ext proto tcp from any to any port 113

pass in log quick on $int proto tcp from any to any port 22 flags S/SA keep state

pass in log quick on $int proto { tcp, udp } from any to any port 80
pass in log quick on $ext proto { tcp, udp } from any to any port 80

pass in quick on $ext proto { tcp, udp } from any to any port 53 flags S/SA keep state

block out quick on $int from any to <blacklist-tabell>

pass out on $ext proto tcp from $ext to any flags S/SA keep state queue (high)
pass in on $ext proto tcp from any to $ext flags S/SA keep state queue (high)

pass out on $ext proto {tcp, udp, icmp} all keep state

Trädvy Permalänk
Medlem
Registrerad
Jul 2001

Nej, din optimization ska inte påverka detta negativt.

Lite generella förslag:

* Jag antar att du har mätt upp din faktiska utbandbredd som du använder vid prioriteringen? Hellre för lite än för mycket i detta fall.
* Gör din pf.conf lite bättre/mer logisk, t.ex. ta bort dubletterna, gruppera in och ut osv., och använd gärna pfctl -o när du laddar dina regler.
* pftop är utmärkt att använda här, så att du ser vilka regler som används vid ett visst tillfälle.

Lycka till.

Trädvy Permalänk
Medlem
Registrerad
Mar 2004

Utgående trafik är lätt att prioritera med köerna men laddar du hem saker behöver du "prioritera" inkommande trafik. Det gör man vanligtvis genom att bandbegränsa all annan inkommande trafik än din högprioriterade (eg droppa allt som kommer in snabbare än en viss takt). Hur mycket du skall bandbegränsa ser du på ping kontra bandbredd.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Maj 2004

har du verkligen 16Mbps i upload? som bandwith i altq påstår.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2001

Var det som var problemet. Hade angivit downstream-hastigheten

Trädvy Permalänk
Medlem
Registrerad
Jul 2001
Citat:

Ursprungligen inskrivet av Soulfly
Utgående trafik är lätt att prioritera med köerna men laddar du hem saker behöver du "prioritera" inkommande trafik. Det gör man vanligtvis genom att bandbegränsa all annan inkommande trafik än din högprioriterade (eg droppa allt som kommer in snabbare än en viss takt). Hur mycket du skall bandbegränsa ser du på ping kontra bandbredd.

Rätta mig om jag har fel, men vid regler som är 'statekeeping' så kommer även inkommande trafik som tillhör den utgående regeln (som är prioriterad) att prioriteras.

Citat:

Ursprungligen inskrivet av Marwin
Var det som var problemet. Hade angivit downstream-hastigheten

Fint, berätta gärna lite om hur bra det funkar.

Trädvy Permalänk
Medlem
Registrerad
Mar 2004
Citat:

Ursprungligen inskrivet av tdm
Rätta mig om jag har fel, men vid regler som är 'statekeeping' så kommer även inkommande trafik som tillhör den utgående regeln (som är prioriterad) att prioriteras.

Jag kan inte rätta dig då jag inte känner till OpenBSD:s mekanismer här, men jag ser inte heller hur prioriteringar skulle appliceras på inkommande trafik eftersom den inte har kontroll över hur andra skickar paket till dig. Jag tror inte man kommer undan att bandbegränsa lågprioriterad inkommande trafik med någon algoritm och jag såg inte någonting i dina regler som antydde att detta skedde.

Jag har gjort precis det du vill (med en cs-server), jag fick då offra lite inkommande bandbredd för att kunna göra detta (för att hindra att paketen köas hos ISP:n).