Prioritering af "dårlig" traffik.

From: doozer@freakout.dk
Date: Sat 23 Oct 2004 - 13:36:07 CEST


Date: Sat, 23 Oct 2004 13:36:07 +0200 (CEST)
Subject: Prioritering af "dårlig" traffik.
From: doozer@freakout.dk
To: bsd-dk@bsd-dk.dk

Hej venner,

I mit ejerforeningsnet, begynder de første firewall udfordringer
at melde sig. Efterhånden som flere kommer på oplever jeg en
masse samtidige connections til port 4661, 4662, osv.
Jeg har nu lært at det er noget der hedder eMule, som er et
dødsmart program til distribueret download. (Ok, jeg har
naturligvis hørt om alle disse P2P programmer, men det er
faktisk første gang jeg rigtigt er eksponeret for dem).

En rigtig ufed ting ved denne type trafik er, at den stjæler
al båndbredden fra "ordenlige" brugere.
En pragmatisk holdning kunne jo være slet og ret at blokkere
skidtet. Selvom der er en teoretisk (om end temmelig akademisk)
mulighed for at P2P bliver anvendt til at hente legitime ting
og sager ned med (BSD ISO images, etc.), så er jeg heller ikke
mere blåøjet end at jeg ved at traffiken nok ikke er noget man
skal tale alt for højt om.
Det ender nok også med at jeg blokkerer for skidtet.

In any case, for at lære pf (på OpenBSD) lidt bedre at kende,
satte jeg mig for at finde ud af om ALTQ kunne gøre at der var
plads til begge lejre. Jeg lavede 7 klasser af traffik og den
absolut laveste prioritet fik P2P traffik. Jeg bruger cbq køer,
og med pftop, kan jeg se at traffikken fra de forskellige klasser
farer i de rigtige køer.

I teorien skulle fx. websurfing og lignende nu være mere responsiv,
men det er den bare ikke.

Mit spørgsmål er nu om i har nogle erfaringer med den slags?
Er der en ande køtype der egner sig bedre? Skal man hellere
begrænse båndbredden? Eller søge at bregrænse antallet af connections?
Kan jeg lige så godt opgive på forhånd og blokkere skidtet?

Blot for et syns skyld har jeg påklistret min kø-definition.
Jeg har en fast til inbound og en slow til outbound (jeg har 2 4096/768
linier).

Mvh, Anders

-----
Kø definitioner:

# Parent queues
altq on $ext_if1 cbq bandwidth $ext_if1_bw_total queue { if1_slow_q,
if1_fast_q }
altq on $ext_if2 cbq bandwidth $ext_if2_bw_total queue { if2_slow_q,
if2_fast_q }

# First child queues

queue if1_slow_q bandwidth $ext_if1_bw_up priority 7 cbq(red)
{dns_if1_slow, ssh_if1_slow, www_if1_slow, mail_if1_slow, ftp_if1_slow
, other_if1_slow, trash_if1_slow, default_if1}
queue if2_slow_q bandwidth $ext_if2_bw_up priority 7 cbq(red)
{dns_if2_slow, ssh_if2_slow, www_if2_slow, mail_if2_slow, ftp_if2_slow
, other_if2_slow, trash_if2_slow, default_if2}
queue if1_fast_q bandwidth $ext_if1_bw_down priority 7 cbq(red)
{dns_if1_fast, ssh_if1_fast, www_if1_fast, mail_if1_fast, ftp_if1_fa
st, other_if1_fast, trash_if1_fast}
queue if2_fast_q bandwidth $ext_if2_bw_down priority 7 cbq(red)
{dns_if2_fast, ssh_if2_fast, www_if2_fast, mail_if2_fast, ftp_if2_fa
st, other_if2_fast, trash_if2_fast}

# Final child queues
queue dns_if1_slow priority 7 cbq(red)
queue dns_if2_slow priority 7 cbq(red)

queue ssh_if1_slow priority 6 cbq(red)
queue ssh_if2_slow priority 6 cbq(red)

queue www_if1_slow priority 5 cbq(red)
queue www_if2_slow priority 5 cbq(red)

queue mail_if1_slow priority 4 cbq(red)
queue mail_if2_slow priority 4 cbq(red)

queue ftp_if1_slow priority 3 cbq(red)
queue ftp_if2_slow priority 3 cbq(red)

queue other_if1_slow priority 2 cbq(red)
queue other_if2_slow priority 2 cbq(red)

queue trash_if1_slow priority 0 cbq(red)
queue trash_if2_slow priority 0 cbq(red)

queue default_if1 priority 0 cbq(default)
queue default_if2 priority 0 cbq(default)

queue dns_if1_fast priority 7 cbq(red)
queue dns_if2_fast priority 7 cbq(red)

queue ssh_if1_fast priority 6 cbq(red)
queue ssh_if2_fast priority 6 cbq(red)

queue www_if1_fast priority 5 cbq(red)
queue www_if2_fast priority 5 cbq(red)

queue mail_if1_fast priority 4 cbq(red)
queue mail_if2_fast priority 4 cbq(red)

queue ftp_if1_fast priority 3 cbq(red)
queue ftp_if2_fast priority 3 cbq(red)

queue other_if1_fast priority 2 cbq(red)
queue other_if2_fast priority 2 cbq(red)

queue trash_if1_fast priority 0 cbq(red)
queue trash_if2_fast priority 0 cbq(red)



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:44 CET