ipfw pipe/queue dynamicky mezi uzivatele

petr bezdìk FreeBSD at ares.adamov.cz
Thu Sep 25 21:38:55 CEST 2003


----- Original Message ----- 
From: "Cizek Milan" <cizek.milan at seznam.cz>
To: <users-l at freebsd.cz>
Sent: Thursday, September 25, 2003 5:49 PM
Subject: ipfw pipe/queue dynamicky mezi uzivatele


> Ahoj,
> zacal jsem experimentovat s dynamickym rozdelenim pasma mezi jednotlive
> uzivatele. Nasel jsem celkem hodne nazornych prikladu, ale proste nemuzu
> prijit na to, jak si overim, ze mi to doopravdy rozdeluje. Z ipfw
> pipe/queue show  toho bohuzel nedokazu prilis vycist a v chovani zadne
> velke zmeny nepozoruji. Muzete mi prosim poradit, jak overit, ze to bezi
> tak jak ma? Dekuji.

predem je potreba si uvedomit, ze shapovat prichozi provoz, lze pouze pokud
rychlost linky je vetsi nez rychlost, na kterou chcete omezovat. tedy pokud
omezujete prichozi provoz na 256kbit a mate 256kbit linku, tak shaping se
nemuze uplatnit!

> wi0=natd_interface (IP:81.2.200.123), mam 3 vnitrni site
> (10.0.1.0-10.0.3.0), kterym potrebuji spravedlive rozdelovat.
>
> # definice pro upload/download (šířka pásma a délka fronty) ${fwcmd}
> pipe 1 config bw 64Kbit/s queue 8Kbytes ${fwcmd} pipe 2 config bw
> 256Kbit/s queue 32Kbytes
>
> # rovnoměrné rozdělení pásma podle zdrojové a cílové IP adresy ${fwcmd}
> queue 1 config pipe 1 mask src-ip 0x000000ff queue 2 ${fwcmd} queue 2
> config pipe 2 mask dst-ip 0x000000ff queue 2

tady si myslim, ze maska ma byt  alespon 0x0000ffff, aby se rozlisily i
podsite 1, 2 a 3. a ne jen koncoveho cisla IP adresy.

> ${fwcmd} add 400 queue 1 ip from 10.0.0.0/16 to any in via wi0 ${fwcmd}
> add 500 queue 2 ip from any to 81.2.200.123 out via wi0

jestlize wi0 je vnejsi interface, potom upload (pres pipe 1) prochazi smerem
ven a ne dovnitr u pravidla 400, dale pravidlo 400 se musi nachazet pred
pravidlem, kterym delate divert.

pravidlo 500 zase musi byt az za pravidlem, ktere dela divert a melo by
vypadat asi takto:

${fwcmd} add 500 queue 2 ip from any to 10.0.0.0/16 in via wi0

> # povolené výjimky
> ${fwcmd} add 1100 allow all from any to 10.0.1.x via wi0
> ...
> ${fwcmd} add 1100 allow all from any to 10.0.2.x via wi0
> ...

vyjimky se daji udelat bud, ze vyjmenujete konkretni IP adresy, ktere pujdou
pres queues a vyjimky tam neuvedete, nebo me ted napada to resit pres
skipto, s tim ze vyjimky by byly pred pravidlem 400 pro upload a 500 pro
download a nedelaly by nic jineho nez ze by preskakovali pravidlo 400,
pripadne 500. nebo nastavit net.inet.ip.fw.one_pass = 1 a vyjimkam nastavit
mene striktni omezeni a umistit je pred pravidla 400, pripadne 500.

overit funkcnost lze napriklad pomoci trafshow

-pb




More information about the Users-l mailing list